Funcionalidad · Generación de maniquíes
API de generación de maniquíes con IA para tus propios modelos
En una frase
La API de generación de maniquíes de Photta crea un modelo fotorrealista con IA a partir de los atributos que elijas, devuelve un id de maniquí reutilizable y cuesta 4 credits. Dos generadores: uno para ropa y otro ajustado para primeros planos de joyería.
- Tiempo típico: 30-60s
- Credits: 4 credits
- Procesamiento: asíncrono, polling
- Límites: 600 requests/min
- Autenticación: Bearer key
Cada cifra de esta página proviene de la documentación de la API de Photta · verificado
RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/mannequins/generate \
-H "Authorization: Bearer $PHOTTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"category": "Female",
"ethnicity": "east_asian_korean",
"age": "late_20s",
"skin_tone": "light_medium",
"expression": "neutral",
"hair_style": "long_straight",
"hair_color": "black",
"body_type": "slim",
"height": "average"
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')const res = await fetch("https://api.photta.app/api/v1/mannequins/generate", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PHOTTA_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
"category": "Female",
"ethnicity": "east_asian_korean",
"age": "late_20s",
"skin_tone": "light_medium",
"expression": "neutral",
"hair_style": "long_straight",
"hair_color": "black",
"body_type": "slim",
"height": "average"
}),
});
const { data } = await res.json(); // data.id, data.statusimport os, requests
res = requests.post(
"https://api.photta.app/api/v1/mannequins/generate",
headers={"Authorization": f"Bearer {os.environ['PHOTTA_API_KEY']}"},
json={
"category": "Female",
"ethnicity": "east_asian_korean",
"age": "late_20s",
"skin_tone": "light_medium",
"expression": "neutral",
"hair_style": "long_straight",
"hair_color": "black",
"body_type": "slim",
"height": "average"
},
)
data = res.json()["data"] # data["id"], data["status"]De un vistazo
De un vistazo
- Endpoint
- POST /api/v1/mannequins/generate
- Autenticación
- Bearer API key
- Procesamiento
- Asíncrono — realiza polling al endpoint de estado
- Tiempo típico
- 30-60s
- Credits
- 4 credits
- Límites de entrada
- Hasta 10 MB por imagen; JPEG, PNG, WebP
- Idempotente
- No
Petición y respuesta
Petición
RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/mannequins/generate \
-H "Authorization: Bearer $PHOTTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"category": "Female",
"ethnicity": "east_asian_korean",
"age": "late_20s",
"skin_tone": "light_medium",
"expression": "neutral",
"hair_style": "long_straight",
"hair_color": "black",
"body_type": "slim",
"height": "average"
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')const res = await fetch("https://api.photta.app/api/v1/mannequins/generate", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PHOTTA_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
"category": "Female",
"ethnicity": "east_asian_korean",
"age": "late_20s",
"skin_tone": "light_medium",
"expression": "neutral",
"hair_style": "long_straight",
"hair_color": "black",
"body_type": "slim",
"height": "average"
}),
});
const { data } = await res.json(); // data.id, data.statusimport os, requests
res = requests.post(
"https://api.photta.app/api/v1/mannequins/generate",
headers={"Authorization": f"Bearer {os.environ['PHOTTA_API_KEY']}"},
json={
"category": "Female",
"ethnicity": "east_asian_korean",
"age": "late_20s",
"skin_tone": "light_medium",
"expression": "neutral",
"hair_style": "long_straight",
"hair_color": "black",
"body_type": "slim",
"height": "average"
},
)
data = res.json()["data"] # data["id"], data["status"]202 Accepted / Completado
{
"data": {
"id": "mmk_r4s5t6",
"status": "processing",
"category": "Female",
"credits_used": 4,
"created_at": "2026-04-10T14:00:00Z"
},
"request_id": "req_mnk002"
}{
"data": {
"id": "mmk_r4s5t6",
"status": "completed",
"mannequin": {
"id": "mnk_v7w8x9",
"name": "Generated Mannequin",
"gender": "female",
"thumbnail_url": "https://cdn.photta.app/mannequins/mnk_v7w8x9-thumb.jpg"
},
"credits_used": 4,
"created_at": "2026-04-10T14:00:00Z",
"completed_at": "2026-04-10T14:00:42Z",
"duration_ms": 42000
},
"request_id": "req_mnk003"
}Parámetros de la petición
categoryTipo: stringObligatorio
Mannequin category.
Valores:FemaleMaleGirlChildBoyChildethnicityTipo: string
Ethnic appearance.
Valores:east_asian_koreaneast_asian_chinesesoutheast_asiansouth_asiannordicwestern_europeaneastern_europeanmediterraneanafricanafrican_americanmiddle_easternlatin_americanbrazilianmixed_asian_europeanpolynesianageTipo: string
Age range.
Valores:early_20slate_20searly_30slate_30s40s50sbaby_1toddler_2_4young_5_7child_8_10preteen_11_13skin_toneTipo: string
Skin tone.
Valores:lightlight_mediummediummedium_darkdarkface_shapeTipo: string
Face shape.
Valores:ovalsquareroundheartoblongdiamondeye_colorTipo: string
Eye color.
Valores:browndark_brownblackbluegreenhazelgrayambereye_shapeTipo: string
Eye shape.
Valores:almondroundmonolidhoodedupturneddownturnedexpressionTipo: string
Facial expression.
Valores:neutralsoft_smilewarm_smileseriousconfidentfriendlyfacial_hairTipo: string
Facial hair style (Male only).
Valores:nonelight_stubblemedium_stubbleshort_beardfull_beardgoateemustachemakeupTipo: string
Makeup style (Female only).
Valores:naturalminimalsoft_glamprofessionaleditorialhair_styleTipo: string
Hair style. Available options depend on category — use /options endpoint.
hair_colorTipo: string
Hair color.
Valores:blackdark_brownmedium_brownlight_brownauburnredblondeplatinum_blondegraywhitehair_textureTipo: string
Hair texture.
Valores:straightwavycurlycoilybody_typeTipo: string
Body type. Options depend on category — use /options endpoint.
heightTipo: string
Height.
Valores:shortaveragetallglassesTipo: string
Glasses.
Valores:noneeyeglassessunglassesfrecklesTipo: string
Freckles.
Valores:nonelightprominentpiercingsTipo: string
Piercings.
Valores:noneearnosemultiple
Errores
- 400
invalid_request_error - The request is malformed or contains invalid parameters.
- 401
authentication_error - The API key is missing, invalid, or expired.
- 402
insufficient_credits_error - Your account does not have enough credits.
- 404
not_found_error - The requested resource does not exist.
- 409
conflict_error - The request conflicts with current state — e.g. your concurrent-batch cap is reached.
- 429
rate_limit_error - Too many requests. Slow down and retry.Retry-After: 30
- 500
api_error - An internal server error occurred. Retry later.
Límites
- 600 solicitudes por minuto por API key (Ventana fija; el límite es el mismo en todos los planes)
- Un 429 incluye Retry-After: 30 segundos
- Hasta 10 MB por imagen
- Formatos: JPEG, PNG, WebP
- Lotes simultáneos por plan: Free 1 · Hobby 2 · Seller 3 · Brand 4 · Studio 6
- Solo polling — la API no envía webhooks.
Entrada de atributos, salida de un modelo reutilizable
Lee las opciones, elige los atributos, envía la solicitud, haz polling y luego reutiliza el id.
Paso 1
Genera una API key
La generación de maniquíes utiliza las mismas credenciales y el mismo saldo de credits que cualquier otra funcionalidad de Photta.
Paso 2
Consulta el catálogo de opciones
GET `/api/v1/mannequins/generate/options` devuelve todos los valores aceptados, incluidas las listas de `hair_style` y `body_type` que varían según la categoría. Construye tu formulario a partir de él en lugar de codificar los enums de forma fija.
Paso 3
Haz POST del maniquí
POST `/api/v1/mannequins/generate` con `category` —`Female`, `Male`, `GirlChild` o `BoyChild`— más cualquiera de los 17 atributos opcionales: etnia, edad, tono de piel, forma de la cara y de los ojos, expresión, vello facial, maquillaje, cabello, tipo de cuerpo, altura, gafas, pecas y piercings.
Paso 4
Haz polling hasta que el trabajo se complete
GET `/api/v1/mannequins/generate/:id` cada 3 segundos hasta que `data.status` sea `completed` o `failed`; la finalización típica tarda de 30 a 60 segundos.
Paso 5
Reutiliza el maniquí
El cuerpo de la respuesta completada incluye un objeto `mannequin` con su propio id. Envía ese id como `mannequin_id` en trabajos posteriores de try-on o de gafas y cada toma mantendrá el mismo rostro.
El mismo endpoint en Node.js, Python y cURL
Node.js
API de generación de maniquíes con IA en Node.js
Llama a aPI de generación de maniquíes con IA de Photta desde un backend de Node.js con fetch nativo. Sin SDKs: guarda tu key, envía el trabajo y haz polling para obtener el resultado.
LeerPython
API de generación de maniquíes con IA en Python
Llama a aPI de generación de maniquíes con IA de Photta en Python con la biblioteca requests. Wrapper de treinta líneas, compatible con async mediante httpx, funciona en Django, FastAPI y Celery.
LeercURL
API de generación de maniquíes con IA con cURL
Llama a aPI de generación de maniquíes con IA de Photta directamente desde la terminal con cURL. Envía, haz polling, descarga: cada fragmento de código se combina con jq para pipelines automatizados.
Leer
Preguntas que los desarrolladores hacen antes de generar modelos
¿Qué es un maniquí con IA?
Un modelo generado cuya apariencia defines mediante parámetros en lugar de un casting. Se devuelve como un id, por lo que el mismo rostro, cabello y cuerpo pueden vestir cada prenda de un catálogo.
¿Cuánto cuesta un maniquí?
4 credits, tanto para el generador de ropa como para el de joyería. Reutilizar un maniquí existente en una sesión posterior no tiene coste adicional: pagas por el try-on, no por el modelo.
¿Qué atributos puedo configurar?
`category` es obligatorio. Todo lo demás es opcional: etnia, edad, tono de piel, forma de la cara, color y forma de los ojos, expresión, vello facial, maquillaje, estilo de peinado, color y textura, tipo de cuerpo, altura, gafas, pecas y piercings. El endpoint de opciones lista los valores aceptados.
¿Para qué sirve el generador de joyería?
POST `/api/v1/mannequins/jewelry/generate` crea un modelo optimizado para planos detalle de joyería: recibe `jewelry_type`, `shot_type`, `camera_angle`, `background` y `lighting` en lugar de los atributos de cuerpo entero, de modo que el escote, la oreja o la mano se aprecien correctamente en distancias cortas.
¿Puedo reutilizar el mismo modelo en distintas sesiones?
Sí, ese es el propósito del endpoint. El id del maniquí generado se acepta como `mannequin_id` en el try-on de ropa, el try-on de joyería y el estudio de gafas.
¿Cómo hago polling para obtener el resultado?
GET `/api/v1/mannequins/generate/:id` cada 3 segundos hasta que `data.status` sea `completed` o `failed`. El generador de joyería consulta su propia ruta de estado.
Funcionalidades relacionadas
Capacidades
API de virtual try-on para ropa
API REST que viste maniquíes de IA con prendas. Generación asíncrona de 1.5–4 minutos, 5 créditos en 2K, 6 en 4K. Ejemplos en cURL, Node.js y Python.
Ver el endpointCapacidades
API de try-on de joyas para collares, anillos, pulseras y pendientes
Coloca collares, anillos, pulseras y pendientes en modelos de IA mediante REST. 5 credits en 2K, maniquíes en primer plano integrados y renderizado optimizado para reflejos según la documentación de Photta.
Ver el endpointConstruir
Crea una función de virtual try-on para tu aplicación
Receta de extremo a extremo para implementar una función de virtual try-on con la Photta API: subida, envío, polling desde un worker y renderizado del resultado. TypeScript + patrones exclusivos de servidor.
Ver el endpointComparar
Photta vs Fitroom — elige la opción adecuada para APIs de moda
Comparativa entre Photta y Fitroom en endpoints, coste en credits por llamada, modelo de precios y superficie de integración. Extraído de cada sitio el 2026-04-19. Sin cifras inventadas.
Ver el endpointGuía rápida
Tu primera imagen de Photta en menos de cinco minutos.
Regístrate, genera una API key, ejecuta tu primera llamada cURL, haz polling hasta que se complete y guarda el resultado. Cinco pasos, documentados de principio a fin.
Ver el endpointReferencia
Errores de Photta API
La lista completa de tipos de error de Photta API con sus status codes, la estructura del cuerpo de error y qué fallos merece la pena reintentar.
Ver el endpointReferencia
Rate limits de la API de Photta
El rate limit de la API de Photta, su ventana, la cabecera Retry-After, el intervalo de polling y los límites de concurrencia por plan, todo extraído directamente de la documentación de la API.
Ver el endpoint
Cada cifra de esta página proviene de la documentación de la API de Photta · verificado
Prueba la API en cinco minutos
Genera una API key de Photta, pega el snippet de cURL de arriba y tendrás tu primera imagen con modelo antes de que termine de prepararse el café.
- 30-60s
- 4 credits
- asíncrono, polling
- 600 requests/min
- Bearer key