Förmåga · Glasögonstudio

API för virtuell try-on av glasögon för glasögon och solglasögon

I en mening

Phottas API för glasögonstudio förvandlar ett foto av glasögon eller solglasögon till en färdig bild. Välj enbart produkt eller på modell, gör POST, polla var 3:e sekund, ladda ner när statusen är completed. 5 credits vid 2K.

  • Typisk tid: 20–60 sec
  • Credits: 5 credits vid 2K · 6 credits vid 4K
  • Bearbetning: asynkron, polling
  • Gränser: 600 requests/min
  • Autentisering: Bearer-nyckel

Varje siffra på den här sidan kommer från Photter API-dokumentationen · kontrollerad

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
Exempelutdata

I korthet

I korthet

Endpoint
POST /api/v1/eyewear-studio
Autentisering
Bearer API-nyckel
Bearbetning
Asynkron — polla status-endpointen
Typisk tid
20–60 sec
Credits
5 credits vid 2K · 6 credits vid 4K
Bildförhållanden
3:4 · 1:1 · 4:3 · 9:16 · 16:9
Indatagränser
Upp till 10 MB per bild; JPEG, PNG, WebP
Idempotent
Nej

Request och response

Request

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 / Completed

{
  "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"
}

Request-parametrar

eyewear_image

Typ: stringObligatorisk

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

mode

Typ: 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

Värden: product-onlyon-model
sub_tool

Typ: 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

Värden: studio-shotflat-laylifestylefloating
mannequin_id

Typ: 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

Typ: string

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

= front

Värden: frontthree-quarterside-profile
expression

Typ: string

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

= neutral

Värden: neutralsoft-smileseriousconfident
lighting_style

Typ: string

On-model only: how the portrait is lit.

= soft-diffused

Värden: soft-diffusedstudionaturaldramatic
frame_fit_style

Typ: string

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

= casual

Värden: casualprofessionalfashion-editorialsporty
backdrop

Typ: string

Studio-shot only: the backdrop behind the eyewear.

= white

Värden: whitegrayblackgradient
lighting

Typ: string

Studio-shot only: the lighting setup.

= soft

Värden: softharddramaticnatural
surface

Typ: string

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

= marble

Värden: marblewoodfabricconcretemetal
arrangement_style

Typ: string

Flat-lay only: how the composition is arranged.

= minimal

Värden: minimalsymmetricscatteredlayered
props

Typ: string

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

= none

Värden: noneplantsaccessoriestech
scene

Typ: string

Lifestyle only: the real-world setting.

= coffee-shop

Värden: coffee-shopbeachurban-streetofficepark
mood

Typ: string

Lifestyle only: the color mood of the scene.

= warm

Värden: warmcoolvibrantmoody
angle

Typ: string

Floating only: the camera angle on the suspended frames.

= front

Värden: frontthree-quartersidetop-down
shadow_style

Typ: string

Floating only: the shadow cast beneath the frames.

= soft-drop

Värden: soft-dropnonehard-dropreflection
background_color

Typ: string

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

= white

Värden: whitegrayblackbeige
background_prompt

Typ: string

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

aspect_ratio

Typ: string

Output aspect ratio.

= 3:4

Värden: 3:41:14:39:1616:9
resolution

Typ: string

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

= 2K

Värden: 2K4K

Fel

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.

Gränser

  • 600 anrop per minut per API-nyckel (Fast fönster; gränsen är densamma på alla planer)
  • En 429 innehåller Retry-After: 30 sekunder
  • Upp till 10 MB per bild
  • Format: JPEG, PNG, WebP
  • Samtidiga batcher per plan: Free 1 · Hobby 2 · Seller 3 · Brand 4 · Studio 6
  • Endast polling — API:et skickar inga webhooks.

Ett bågfoto in, en stylad glasögonbild ut

Välj ett läge, välj den styling som läget exponerar, skicka in, polla, ladda ner.

  1. Steg 1

    Generera en API-nyckel

    Glasögonstudion använder samma inloggningsuppgifter och samma credits-saldo som alla andra Photta-funktioner.

  2. Steg 2

    Välj ett läge och dess styling

    `mode` är `product-only` eller `on-model`. Product-only tar ett `sub_tool` — `studio-shot`, `flat-lay`, `lifestyle` eller `floating` — och vart och ett öppnar sina egna kontroller. On-model tar ett `mannequin_id` plus `face_angle`, `expression`, `lighting_style` och `frame_fit_style`.

  3. Steg 3

    Gör POST för glasögonjobbet

    Gör POST till `/api/v1/eyewear-studio` med `eyewear_image` och dina stylingfält. `background_prompt` accepterar upp till 400 tecken och åsidosätter `background_color`. Polling är den enda signalen för slutförande — API:et skickar inga webhooks.

  4. Steg 4

    Polla tills jobbet slutförs

    Gör GET mot `/api/v1/eyewear-studio/:id` var 3:e sekund tills `data.status` är `completed` eller `failed`; typisk slutförandetid är 20 till 60 sekunder.

  5. Steg 5

    Ladda ner och spara

    Den slutförda svarstexten innehåller `output_url` och en miniatyrbild. Lagra filen själv — betrakta URL:en som leveransen av ett jobb, inte som permanent hosting.

Frågor utvecklare ställer innan de driftsätter glasögonbilder

Vad gör glasögonstudio-API:et?

Det tar ett produktfoto av glasögon eller solglasögon och returnerar ett stylat fotografi av dem — antingen enbart bågarna i en studio-, flat-lay-, livsstils- eller svävande miljö, eller burna på ansiktet av en AI-modell du väljer.

Vad kostar en glasögonbild?

5 credits vid 2K och 6 credits vid 4K, samma som try-on för kläder och smycken. Misslyckade jobb återbetalas automatiskt.

Vad är skillnaden mellan product-only och on-model?

`product-only` fotograferar bågarna för sig själva och styrs av `sub_tool`. `on-model` placerar dem på en AI-modells ansikte och styrs av `mannequin_id`, `face_angle`, `expression`, `lighting_style` och `frame_fit_style`. Fält som tillhör det andra läget ignoreras.

Vilka stylingalternativ exponerar varje sub-tool?

`studio-shot` tar `backdrop` och `lighting`. `flat-lay` tar `surface`, `arrangement_style` och `props`. `lifestyle` tar `scene` och `mood`. `floating` tar `angle` och `shadow_style`. Vart och ett av dessa fält är en enum, så ett oväntat värde avvisas snarare än gissas.

Kan jag använda min egen AI-modell?

Ja. `mannequin_id` accepterar valfritt mannequin-ID från GET `/api/v1/eyewear-studio/mannequins`, och provdockor du bygger med API:et för generering av provdockor kan användas på samma sätt.

Hur gör jag polling efter resultatet?

Anropa GET `/api/v1/eyewear-studio/:id` var 3:e sekund tills `data.status` är `completed` eller `failed`. Det finns inga webhooks; polling är den dokumenterade signalen för slutförande.

Relaterade förmågor

Varje siffra på den här sidan kommer från Photter API-dokumentationen · kontrollerad

Testa API:et på fem minuter

Generera en Photta API-nyckel, klistra in cURL-kodfragmentet ovan, och du har din första bild på en modell innan kaffet har bryggts klart.

  • 20–60 sec
  • 5 credits vid 2K · 6 credits vid 4K
  • asynkron, polling
  • 600 requests/min
  • Bearer-nyckel