Capacidad · Estudio de gafas

API de virtual try-on de gafas para gafas y gafas de sol

En una frase

La API de estudio de gafas de Photta transforma una sola foto de gafas o gafas de sol en una toma terminada. Elige solo producto o con modelo, haz un POST, haz polling cada 3 segundos y descarga cuando el status sea completed. 5 credits a 2K.

  • Tiempo típico: 20–60 sec
  • Credits: 5 credits a 2K · 6 credits a 4K
  • 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

POST/api/v1/eyewear-studio
RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/eyewear-studio \
  -H "Authorization: Bearer $PHOTTA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "eyewear_image": "https://cdn.yourstore.com/products/aviator-sunglasses.jpg",
  "mode": "product-only",
  "sub_tool": "studio-shot",
  "backdrop": "gradient",
  "lighting": "soft",
  "aspect_ratio": "3:4",
  "resolution": "2K"
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')
Sunglasses photographed by the eyewear studio API
Salida de ejemplo

De un vistazo

De un vistazo

Endpoint
POST /api/v1/eyewear-studio
Autenticación
Bearer API key
Procesamiento
Asíncrono — realiza polling al endpoint de estado
Tiempo típico
20–60 sec
Credits
5 credits a 2K · 6 credits a 4K
Relaciones de aspecto
3:4 · 1:1 · 4:3 · 9:16 · 16:9
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/eyewear-studio \
  -H "Authorization: Bearer $PHOTTA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "eyewear_image": "https://cdn.yourstore.com/products/aviator-sunglasses.jpg",
  "mode": "product-only",
  "sub_tool": "studio-shot",
  "backdrop": "gradient",
  "lighting": "soft",
  "aspect_ratio": "3:4",
  "resolution": "2K"
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')

202 Accepted / Completado

{
  "data": {
    "id": "eyw_7a1c9e42f05b3d688c2e4f01a9d6b357",
    "status": "processing",
    "mode": "product-only",
    "sub_tool": "studio-shot",
    "resolution": "2K",
    "aspect_ratio": "3:4",
    "credits_used": 5,
    "created_at": "2026-08-01T09:15:00Z"
  },
  "request_id": "req_eyw001"
}

Parámetros de la petición

eyewear_image

Tipo: stringObligatorio

The eyewear product image — glasses or sunglasses. https URL or base64 data URI. JPEG, PNG, WebP; max 10 MB.

mode

Tipo: string

Generation mode: "product-only" — the eyewear alone, styled by sub_tool; "on-model" — the eyewear worn on an AI model's face (requires mannequin_id).

= product-only

Valores: product-onlyon-model
sub_tool

Tipo: string

Product-only styling: "studio-shot" — clean studio product shot; "flat-lay" — top-down arrangement on a surface; "lifestyle" — the eyewear placed in a real-world scene; "floating" — the frames suspended mid-air. Sending sub_tool with mode "on-model" returns 400.

= studio-shot

Valores: studio-shotflat-laylifestylefloating
mannequin_id

Tipo: string

Required when mode is "on-model": the AI model whose face wears the eyewear — an id ("mnk_...") from GET /api/v1/eyewear-studio/mannequins. Sending it in product-only mode returns 400.

face_angle

Tipo: string

On-model only: the angle of the model's face.

= front

Valores: frontthree-quarterside-profile
expression

Tipo: string

On-model only: the model's facial expression.

= neutral

Valores: neutralsoft-smileseriousconfident
lighting_style

Tipo: string

On-model only: how the portrait is lit.

= soft-diffused

Valores: soft-diffusedstudionaturaldramatic
frame_fit_style

Tipo: string

On-model only: the overall styling of how the frames are worn.

= casual

Valores: casualprofessionalfashion-editorialsporty
backdrop

Tipo: string

Studio-shot only: the backdrop behind the eyewear.

= white

Valores: whitegrayblackgradient
lighting

Tipo: string

Studio-shot only: the lighting setup.

= soft

Valores: softharddramaticnatural
surface

Tipo: string

Flat-lay only: the surface the eyewear lies on.

= marble

Valores: marblewoodfabricconcretemetal
arrangement_style

Tipo: string

Flat-lay only: how the composition is arranged.

= minimal

Valores: minimalsymmetricscatteredlayered
props

Tipo: string

Flat-lay only: complementary props placed around the eyewear.

= none

Valores: noneplantsaccessoriestech
scene

Tipo: string

Lifestyle only: the real-world setting.

= coffee-shop

Valores: coffee-shopbeachurban-streetofficepark
mood

Tipo: string

Lifestyle only: the color mood of the scene.

= warm

Valores: warmcoolvibrantmoody
angle

Tipo: string

Floating only: the camera angle on the suspended frames.

= front

Valores: frontthree-quartersidetop-down
shadow_style

Tipo: string

Floating only: the shadow cast beneath the frames.

= soft-drop

Valores: soft-dropnonehard-dropreflection
background_color

Tipo: string

Solid background color. Applies in both modes. Overridden by background_prompt when both are sent.

= white

Valores: whitegrayblackbeige
background_prompt

Tipo: string

Free-text background description. Max 400 characters — excess is silently truncated. Overrides background_color.

aspect_ratio

Tipo: string

Output aspect ratio.

= 3:4

Valores: 3:41:14:39:1616:9
resolution

Tipo: string

Output resolution. 4K cannot be combined with the 1:1 aspect ratio — that request returns 400.

= 2K

Valores: 2K4K

Errores

400invalid_request_error
The request is malformed or contains invalid parameters.
401authentication_error
The API key is missing, invalid, or expired.
402insufficient_credits_error
Your account does not have enough credits.
404not_found_error
The requested resource does not exist.
409conflict_error
The request conflicts with current state — e.g. your concurrent-batch cap is reached.
429rate_limit_error
Too many requests. Slow down and retry.Retry-After: 30
500api_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.

Entra una foto de la montura, sale una toma de gafas estilizada

Elige un modo, selecciona el estilismo que expone ese modo, envía, haz polling y descarga.

  1. Paso 1

    Generar una API key

    El estudio de gafas utiliza las mismas credenciales y el mismo balance de credits que cualquier otra capacidad de Photta.

  2. Paso 2

    Elige un modo y su estilismo

    `mode` es `product-only` u `on-model`. Product-only acepta un `sub_tool` — `studio-shot`, `flat-lay`, `lifestyle` o `floating` — y cada uno habilita sus propios controles. On-model requiere un `mannequin_id` junto con `face_angle`, `expression`, `lighting_style` y `frame_fit_style`.

  3. Paso 3

    Envía el trabajo de gafas mediante POST

    Haz un POST a `/api/v1/eyewear-studio` con `eyewear_image` y tus campos de estilismo. `background_prompt` admite hasta 400 caracteres y anula `background_color`. El polling es la única señal de finalización: la API no envía webhooks.

  4. Paso 4

    Haz polling hasta que el trabajo se complete

    Haz GET a `/api/v1/eyewear-studio/:id` cada 3 segundos hasta que `data.status` sea `completed` o `failed`; el tiempo habitual de finalización es de 20 a 60 segundos.

  5. Paso 5

    Descarga y persiste

    El payload completado incluye `output_url` y una miniatura. Almacena el archivo por tu cuenta: trata la URL como la entrega de un trabajo puntual, no como un alojamiento permanente.

Preguntas que hacen los desarrolladores antes de enviar tomas de gafas a producción

¿Qué hace la API del estudio de gafas?

Toma una sola foto de producto de unas gafas o gafas de sol y devuelve una fotografía estilizada de las mismas: ya sean las monturas solas con un acabado de estudio, flat-lay, lifestyle o flotante, o puestas en el rostro del modelo de IA que elijas.

¿Cuánto cuesta una toma de gafas?

5 credits a 2K y 6 credits a 4K, igual que el try-on de ropa y joyería. Los trabajos fallidos se reembolsan automáticamente.

¿Cuál es la diferencia entre solo producto y con modelo?

`product-only` fotografía las monturas solas y se controla mediante `sub_tool`. `on-model` las coloca en el rostro de un modelo de IA y se controla mediante `mannequin_id`, `face_angle`, `expression`, `lighting_style` y `frame_fit_style`. Los campos que pertenecen al otro modo se ignoran.

¿Qué opciones de estilismo expone cada sub-herramienta?

`studio-shot` admite `backdrop` y `lighting`. `flat-lay` admite `surface`, `arrangement_style` y `props`. `lifestyle` admite `scene` y `mood`. `floating` admite `angle` y `shadow_style`. Cada uno de esos campos es un enum, por lo que cualquier valor inesperado se rechaza en lugar de intentar deducirlo.

¿Puedo usar mi propio modelo de IA?

Sí. `mannequin_id` acepta cualquier id de maniquí obtenido de GET `/api/v1/eyewear-studio/mannequins`, y los maniquíes que crees con la API de generación de maniquíes se pueden usar de la misma forma.

¿Cómo hago polling para obtener el resultado?

Haz GET a `/api/v1/eyewear-studio/:id` cada 3 segundos hasta que `data.status` sea `completed` o `failed`. No hay webhooks; el polling es la señal de finalización documentada.

Capacidades relacionadas

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é.

  • 20–60 sec
  • 5 credits a 2K · 6 credits a 4K
  • asíncrono, polling
  • 600 requests/min
  • Bearer key