Funksjon · Brillestudio

API for virtuell try-on av briller for briller og solbriller

I én setning

Phottas brillestudio-API forvandler ett bilde av briller eller solbriller til et ferdig foto. Velg rent produkt eller på modell, POST, poll hvert 3. sekund, last ned når statusen er completed. 5 credits ved 2K.

  • Typisk tidsbruk: 20–60 sec
  • Credits: 5 credits ved 2K · 6 credits ved 4K
  • Prosessering: asynkron, polling
  • Grenser: 600 forespørsler/min
  • Autentisering: Bearer-nøkkel

Hvert tall på denne siden er hentet fra dokumentasjonen for Photta-API-et · verifisert

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
Eksempel på respons

Kort oppsummert

Kort oppsummert

Endepunkt
POST /api/v1/eyewear-studio
Autentisering
Bearer API-nøkkel
Prosessering
Asynkron – poll status-endepunktet
Typisk tidsbruk
20–60 sec
Credits
5 credits ved 2K · 6 credits ved 4K
Bildeformater
3:4 · 1:1 · 4:3 · 9:16 · 16:9
Inndatagrenser
Opptil 10 MB per bilde; JPEG, PNG, WebP
Idempotent
Nei

Forespørsel og respons

Forespørsel

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

Forespørselsparametere

eyewear_image

Type: stringPåkrevd

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

mode

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

Verdier: product-onlyon-model
sub_tool

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

Verdier: studio-shotflat-laylifestylefloating
mannequin_id

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

Type: string

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

= front

Verdier: frontthree-quarterside-profile
expression

Type: string

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

= neutral

Verdier: neutralsoft-smileseriousconfident
lighting_style

Type: string

On-model only: how the portrait is lit.

= soft-diffused

Verdier: soft-diffusedstudionaturaldramatic
frame_fit_style

Type: string

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

= casual

Verdier: casualprofessionalfashion-editorialsporty
backdrop

Type: string

Studio-shot only: the backdrop behind the eyewear.

= white

Verdier: whitegrayblackgradient
lighting

Type: string

Studio-shot only: the lighting setup.

= soft

Verdier: softharddramaticnatural
surface

Type: string

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

= marble

Verdier: marblewoodfabricconcretemetal
arrangement_style

Type: string

Flat-lay only: how the composition is arranged.

= minimal

Verdier: minimalsymmetricscatteredlayered
props

Type: string

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

= none

Verdier: noneplantsaccessoriestech
scene

Type: string

Lifestyle only: the real-world setting.

= coffee-shop

Verdier: coffee-shopbeachurban-streetofficepark
mood

Type: string

Lifestyle only: the color mood of the scene.

= warm

Verdier: warmcoolvibrantmoody
angle

Type: string

Floating only: the camera angle on the suspended frames.

= front

Verdier: frontthree-quartersidetop-down
shadow_style

Type: string

Floating only: the shadow cast beneath the frames.

= soft-drop

Verdier: soft-dropnonehard-dropreflection
background_color

Type: string

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

= white

Verdier: whitegrayblackbeige
background_prompt

Type: string

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

aspect_ratio

Type: string

Output aspect ratio.

= 3:4

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

Type: string

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

= 2K

Verdier: 2K4K

Feil

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.

Grenser

  • 600 forespørsler per minutt per API-nøkkel (Fast tidsvindu; grensen er lik for alle abonnementer)
  • En 429 inneholder Retry-After: 30 sekunder
  • Opptil 10 MB per bilde
  • Formater: JPEG, PNG, WebP
  • Samtidige batcher per abonnement: Free 1 · Hobby 2 · Seller 3 · Brand 4 · Studio 6
  • Kun polling – API-et sender ikke webhooks.

Ett bilde av innfatningen inn, ett stylet brillebilde ut

Velg en modus, velg stylingen den modusen eksponerer, send inn, poll, last ned.

  1. Trinn 1

    Generer en API-nøkkel

    Brillestudioet bruker samme autentiseringsinformasjon og samme credit-saldo som alle andre Photta-funksjoner.

  2. Trinn 2

    Velg modus og tilhørende styling

    `mode` er `product-only` eller `on-model`. Product-only tar en `sub_tool` — `studio-shot`, `flat-lay`, `lifestyle` eller `floating` — og hver av dem åpner egne kontroller. On-model tar en `mannequin_id` pluss `face_angle`, `expression`, `lighting_style` og `frame_fit_style`.

  3. Trinn 3

    POST brillejobben

    POST til `/api/v1/eyewear-studio` med `eyewear_image` og stylingfeltene dine. `background_prompt` godtar opptil 400 tegn og overstyrer `background_color`. Polling er det eneste signalet på fullføring — API-et sender ingen webhooks.

  4. Trinn 4

    Poll til jobben er fullført

    GET `/api/v1/eyewear-studio/:id` hvert 3. sekund til `data.status` er `completed` eller `failed`; fullføring tar vanligvis 20 til 60 sekunder.

  5. Trinn 5

    Last ned og lagre

    Den fullførte responsen inneholder `output_url` og et miniatyrbilde. Lagre filen selv — se på URL-en som levering av én jobb, ikke som permanent hosting.

Spørsmål utviklere stiller før de ruller ut brillebilder

Hva gjør brillestudio-API-et?

Det tar ett produktbilde av briller eller solbriller og returnerer et ferdig stylet foto av dem — enten innfatningen alene i et studio-, flat-lay-, livsstils- eller svevende oppsett, eller plassert på ansiktet til en AI-modell du velger.

Hvor mye koster et brillebilde?

5 credits ved 2K og 6 credits ved 4K, det samme som try-on for klær og smykker. Feilede jobber refunderes automatisk.

Hva er forskjellen mellom product-only og on-model?

`product-only` fotograferer innfatningene alene og styres av `sub_tool`. `on-model` plasserer dem på ansiktet til en AI-modell og styres av `mannequin_id`, `face_angle`, `expression`, `lighting_style` og `frame_fit_style`. Felt som tilhører den andre modusen ignoreres.

Hvilke stylingvalg eksponerer hvert underverktøy?

`studio-shot` tar `backdrop` og `lighting`. `flat-lay` tar `surface`, `arrangement_style` og `props`. `lifestyle` tar `scene` og `mood`. `floating` tar `angle` og `shadow_style`. Alle disse feltene er enums, så en uventet verdi avvises fremfor å bli gjettet på.

Kan jeg bruke min egen AI-modell?

Ja. `mannequin_id` godtar enhver mannequin id fra GET `/api/v1/eyewear-studio/mannequins`, og utstillingsdukker du bygger med API-et for mannequin-generering kan brukes på samme måte.

Hvordan poller jeg etter resultatet?

Kjør GET `/api/v1/eyewear-studio/:id` hvert 3. sekund til `data.status` er `completed` eller `failed`. Det finnes ingen webhooks; polling er det dokumenterte fullføringssignalet.

Relaterte funksjoner

Hvert tall på denne siden er hentet fra dokumentasjonen for Photta-API-et · verifisert

Prøv API-et på fem minutter

Generer en Photta API-nøkkel, lim inn cURL-kodesnutten ovenfor, og du har ditt første bilde på modell før kaffen er ferdig traktet.

  • 20–60 sec
  • 5 credits ved 2K · 6 credits ved 4K
  • asynkron, polling
  • 600 forespørsler/min
  • Bearer-nøkkel