Personas IA
Crea una persona realista y ponla en cualquier vídeo
Una persona es una persona realista creada a partir de rasgos (edad, pelo, ropa, ...) o de fotos del propio rostro del usuario. Una vez guardada, reemplaza a la persona de cualquier vídeo de la biblioteca, manteniendo la escena, la cámara, el movimiento y el sonido.
Las fotos y los vídeos corren en segundo plano: creas y luego consultas. Todo cobro se reembolsa solo cuando una generación falla.
Las personas siempre consumen créditos, incluso en un workspace con uso gratuito. Lee los precios de GET /personas/catalog en lugar de fijarlos en el código.
Lee el catálogo
GET /personas/catalog lista todas las opciones de rasgos, los valores por defecto, los precios y los límites del vídeo de origen.
curl https://api.cut.pro/api/v1/personas/catalog \
-H "X-Api-Key: $CUTPRO_API_KEY"Crea la persona
Manda una opción por rasgo en chips. La foto empieza a generarse y la llamada responde 202.
curl -X POST https://api.cut.pro/api/v1/personas \
-H "X-Api-Key: $CUTPRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "chips": { "vibe": "natural", "gender": "female", "age": "25_34", "origin": "latin", "skin": "medium", "eyes": "brown", "hair_style": "long_wavy", "hair_color": "brown", "facial_hair": "none", "face": "none", "body": "average", "outfit": "basic", "accessory": "none", "mark": "freckles" } }'Para mantener la identidad de una persona real, sube antes fotos del propio rostro del usuario (multipart/form-data, el usuario debe tener 18 años o más) y pasa los ids en face_ids. Solo siguen valiendo los rasgos de face_photo_groups.
curl -X POST https://api.cut.pro/api/v1/personas/faces \
-H "X-Api-Key: $CUTPRO_API_KEY" \
-F "photo=@selfie.jpg" \
-F "own_face_adult=true"Sigue, ajusta y guarda
Consulta GET /personas/{id} cada 5 segundos hasta que image_status sea ready. POST /personas/{id}/regenerate lo intenta de nuevo, con nuevos chips o con una note de una línea, como make the jacket red. Cuando la foto esté bien, guárdala:
curl -X POST https://api.cut.pro/api/v1/personas/PERSONA_ID/save \
-H "X-Api-Key: $CUTPRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "Ana" }'Personajes listos
GET /personas/presets lista personajes con la foto ya lista, desde raros hasta creadores del día a día. POST /personas/presets/{presetId} convierte uno en una persona sin costo, lista para nombrar con POST /personas/{id}/save y usar en videos. Para marcar favoritos: PUT /personas/presets/{presetId}/favorite con { "favorite": true }.
Versiones
Una persona guardada todavía puede generarse de nuevo o ajustarse con POST /personas/{id}/regenerate. Cada foto que termina se convierte en una versión nueva y pasa a ser la actual; las anteriores quedan en versions, en GET /personas/{id}. Para volver a una de ellas, sin costo:
curl -X POST https://api.cut.pro/api/v1/personas/PERSONA_ID/versions/VERSION_ID/restore \
-H "X-Api-Key: $CUTPRO_API_KEY"Cada video queda ligado a la versión de la que salió (version_id). Los videos nuevos usan la versión actual, salvo que envíes version_id en POST /personas/{id}/videos; GET /personas/{id}/videos?version_id=... lista solo los videos de una versión. Los videos ya hechos no cambian.
Para contarnos qué salió bien, valora cada foto con POST /personas/{id}/versions/{versionId}/feedback y cada video con POST /personas/{id}/videos/{videoId}/feedback: { "vote": "up" }, o { "vote": "down", "reason": "..." } con el motivo. Valorar es gratis.
Sube el vídeo y consulta el precio
POST /personas/sources/upload devuelve un media_id y una URL firmada. Haz el PUT de los bytes ahí, llama a POST /personas/sources/upload/complete y luego pide el precio. Un vídeo que ya está en la biblioteca no necesita subirse.
quality elige la calidad: standard (por defecto) sigue las características de la persona y es la más barata, hasta 15 segundos en MP4; high también sigue las fotos de la persona, deja la cara más fiel y acepta hasta 30 segundos, a un precio mayor. Para una persona hecha con fotos de la cara, prefiere high. replace dice qué cambia en la persona principal del vídeo: head cambia solo la cabeza y el pelo y mantiene el cuerpo y la ropa, person (por defecto) cambia a la persona entera. Los precios y límites de cada calidad están en GET /personas/catalog.
curl "https://api.cut.pro/api/v1/personas/swap/quote?media_id=MEDIA_ID&quality=standard&replace=head" \
-H "X-Api-Key: $CUTPRO_API_KEY"{ "media_id": "7412908365112823", "quality": "standard", "replace": "head", "seconds": 8.4, "credits": 81 }Empieza el vídeo
type es el tipo de vídeo, y swap es el que existe hoy. Manda los credits que vinieron del precio, con la misma quality y el mismo replace. Si el servidor mide un precio distinto, responde 409 PRICE_CHANGED con el valor correcto en extra, y no se cobra nada.
curl -X POST https://api.cut.pro/api/v1/personas/PERSONA_ID/videos \
-H "X-Api-Key: $CUTPRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "type": "swap", "media_id": "7412908365112823", "quality": "standard", "replace": "head", "credits": 81 }'Consulta GET /personas/{id}/videos/{videoId} cada 10 segundos. Cuando status sea ready, download_url tiene el MP4 y el edit_id va directo a POST /renders o POST /posts.
Créditos insuficientes
Toda llamada que cobra puede responder 402 INSUFFICIENT_CREDITS. extra.credits_needed dice cuánto falta, extra.top_up_url es la página donde se compran créditos, y extra.is_owner dice si el usuario de la clave puede comprarlos para este workspace o tiene que pedírselo al dueño.