Yetenek · Gözlük stüdyosu
Gözlük sanal try-on API'si numaralı gözlükler ve güneş gözlükleri için
Tek cümlede
Photta'nın gözlük stüdyosu API'si, numaralı gözlük veya güneş gözlüğünün tek bir fotoğrafını işlenmiş bir çekime dönüştürür. Yalnızca ürün veya model üzerinde seçeneklerinden birini belirleyin, POST edin, her 3 saniyede bir polling yapın, durum completed olduğunda indirin. 2K çözünürlükte 5 credits.
- Tipik süre: 20–60 sec
- Credits: 2K'da 5 credits · 4K'da 6 credits
- İşleme: asenkron, polling
- Sınırlar: 600 istek/dk
- Kimlik doğrulama: Bearer anahtarı
Bu sayfadaki her veri şuradan alınmıştır: Photta API dokümantasyonu · kontrol edildi
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')const res = await fetch("https://api.photta.app/api/v1/eyewear-studio", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PHOTTA_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
"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"
}),
});
const { data } = await res.json(); // data.id, data.statusimport os, requests
res = requests.post(
"https://api.photta.app/api/v1/eyewear-studio",
headers={"Authorization": f"Bearer {os.environ['PHOTTA_API_KEY']}"},
json={
"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"
},
)
data = res.json()["data"] # data["id"], data["status"]
Genel bakış
Genel bakış
- Endpoint
- POST /api/v1/eyewear-studio
- Kimlik doğrulama
- Bearer API anahtarı
- İşleme
- Asenkron — durum endpoint'ini sorgulayın (poll)
- Tipik süre
- 20–60 sec
- Credits
- 2K'da 5 credits · 4K'da 6 credits
- En-boy oranları
- 3:4 · 1:1 · 4:3 · 9:16 · 16:9
- Girdi sınırları
- Görsel başına en fazla 10 MB; JPEG, PNG, WebP
- Idempotent
- Hayır
İstek ve yanıt
İstek
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')const res = await fetch("https://api.photta.app/api/v1/eyewear-studio", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PHOTTA_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
"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"
}),
});
const { data } = await res.json(); // data.id, data.statusimport os, requests
res = requests.post(
"https://api.photta.app/api/v1/eyewear-studio",
headers={"Authorization": f"Bearer {os.environ['PHOTTA_API_KEY']}"},
json={
"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"
},
)
data = res.json()["data"] # data["id"], data["status"]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"
}{
"data": {
"id": "eyw_7a1c9e42f05b3d688c2e4f01a9d6b357",
"status": "completed",
"mode": "product-only",
"sub_tool": "studio-shot",
"output_url": "https://cdn.photta.app/generated/eyw_7a1c9e42f05b3d688c2e4f01a9d6b357.jpg",
"thumbnail_url": "https://cdn.photta.app/generated/eyw_7a1c9e42f05b3d688c2e4f01a9d6b357-thumb.jpg",
"resolution": "2K",
"aspect_ratio": "3:4",
"credits_used": 5,
"created_at": "2026-08-01T09:15:00Z",
"completed_at": "2026-08-01T09:15:38Z"
},
"request_id": "req_eyw002"
}İstek parametreleri
eyewear_imageTür: stringZorunlu
The eyewear product image — glasses or sunglasses. https URL or base64 data URI. JPEG, PNG, WebP; max 10 MB.
modeTür: 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
Değerler:product-onlyon-modelsub_toolTür: 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
Değerler:studio-shotflat-laylifestylefloatingmannequin_idTür: 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_angleTür: string
On-model only: the angle of the model's face.
= front
Değerler:frontthree-quarterside-profileexpressionTür: string
On-model only: the model's facial expression.
= neutral
Değerler:neutralsoft-smileseriousconfidentlighting_styleTür: string
On-model only: how the portrait is lit.
= soft-diffused
Değerler:soft-diffusedstudionaturaldramaticframe_fit_styleTür: string
On-model only: the overall styling of how the frames are worn.
= casual
Değerler:casualprofessionalfashion-editorialsportybackdropTür: string
Studio-shot only: the backdrop behind the eyewear.
= white
Değerler:whitegrayblackgradientlightingTür: string
Studio-shot only: the lighting setup.
= soft
Değerler:softharddramaticnaturalsurfaceTür: string
Flat-lay only: the surface the eyewear lies on.
= marble
Değerler:marblewoodfabricconcretemetalarrangement_styleTür: string
Flat-lay only: how the composition is arranged.
= minimal
Değerler:minimalsymmetricscatteredlayeredpropsTür: string
Flat-lay only: complementary props placed around the eyewear.
= none
Değerler:noneplantsaccessoriestechsceneTür: string
Lifestyle only: the real-world setting.
= coffee-shop
Değerler:coffee-shopbeachurban-streetofficeparkmoodTür: string
Lifestyle only: the color mood of the scene.
= warm
Değerler:warmcoolvibrantmoodyangleTür: string
Floating only: the camera angle on the suspended frames.
= front
Değerler:frontthree-quartersidetop-downshadow_styleTür: string
Floating only: the shadow cast beneath the frames.
= soft-drop
Değerler:soft-dropnonehard-dropreflectionbackground_colorTür: string
Solid background color. Applies in both modes. Overridden by background_prompt when both are sent.
= white
Değerler:whitegrayblackbeigebackground_promptTür: string
Free-text background description. Max 400 characters — excess is silently truncated. Overrides background_color.
aspect_ratioTür: string
Output aspect ratio.
= 3:4
Değerler:3:41:14:39:1616:9resolutionTür: string
Output resolution. 4K cannot be combined with the 1:1 aspect ratio — that request returns 400.
= 2K
Değerler:2K4K
Hatalar
- 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.
Sınırlar
- API anahtarı başına dakikada 600 istek (Sabit pencere; limit her planda aynıdır)
- 429 yanıtı Retry-After: 30 saniye içerir
- Görsel başına en fazla 10 MB
- Formatlar: JPEG, PNG, WebP
- Plan başına eşzamanlı toplu işlem: Free 1 · Hobby 2 · Seller 3 · Brand 4 · Studio 6
- Yalnızca polling — API webhook göndermez.
Tek bir çerçeve fotoğrafı girer, tek bir stillendirilmiş gözlük çekimi çıkar
Bir mod seçin, o modun sunduğu stili belirleyin, gönderin, polling yapın, indirin.
Adım 1
Bir API anahtarı oluşturun
Gözlük stüdyosu, diğer tüm Photta yetenekleriyle aynı kimlik bilgilerini ve aynı kredi bakiyesini kullanır.
Adım 2
Bir mod ve stilini seçin
`mode` değeri `product-only` veya `on-model` şeklindedir. Product-only modu bir `sub_tool` (`studio-shot`, `flat-lay`, `lifestyle` veya `floating`) alır ve bunların her biri kendi kontrollerini sunar. On-model modu ise `mannequin_id` ile birlikte `face_angle`, `expression`, `lighting_style` ve `frame_fit_style` parametrelerini alır.
Adım 3
Gözlük işini POST edin
`eyewear_image` ve stil alanlarınızla `/api/v1/eyewear-studio` adresine POST isteği atın. `background_prompt` en fazla 400 karakter kabul eder ve `background_color` değerini geçersiz kılar. Tamamlanma durumunu öğrenmenin tek yolu polling'dir; API webhook göndermez.
Adım 4
İş tamamlanana kadar polling yapın
`data.status` değeri `completed` veya `failed` olana kadar her 3 saniyede bir GET `/api/v1/eyewear-studio/:id` isteği atın; tipik tamamlanma süresi 20 ila 60 saniyedir.
Adım 5
İndirin ve kalıcı olarak saklayın
Tamamlanan yanıt gövdesi `output_url` ve bir küçük resim içerir. Dosyayı kendiniz saklayın; URL'yi kalıcı bir barındırma olarak değil, tek bir işin teslimatı olarak değerlendirin.
Node.js, Python ve cURL'de aynı endpoint
Node.js
Node.js'te Gözlük sanal try-on API'si
Yerel fetch ile bir Node.js backend'inden Photta'nın gözlük sanal try-on API'si özelliğini çağırın. SDK gerekmez: anahtarınızı saklayın, işi gönderin, sonuç için poll edin.
OkuPython
Python'da Gözlük sanal try-on API'si
Photta'nın gözlük sanal try-on API'si özelliğini requests kütüphanesiyle Python'da çağırın. Otuz satırlık sarmalayıcı, httpx ile asenkron uyumlu, Django, FastAPI ve Celery içinde çalışır.
OkucURL
cURL ile Gözlük sanal try-on API'si
Photta'nın gözlük sanal try-on API'si özelliğini cURL ile doğrudan kabuktan çağırın. Gönderin, yoklayın, indirin — her kod parçacığı betik tabanlı işlem hatları için jq ile uyumludur.
Oku
Gözlük çekimlerini canlıya almadan önce geliştiricilerin sorduğu sorular
Gözlük stüdyosu API'si ne işe yarar?
Numaralı gözlük veya güneş gözlüğünün tek bir ürün fotoğrafını alır ve bunların stillendirilmiş bir fotoğrafını döndürür — çerçeveler ister stüdyo, flat-lay, lifestyle veya havada asılı konseptinde tek başına, ister seçtiğiniz bir yapay zeka modelinin yüzünde sunulur.
Bir gözlük çekiminin maliyeti nedir?
2K çözünürlükte 5 credits ve 4K çözünürlükte 6 credits; giyim ve takı try-on işlemleriyle aynıdır. Başarısız işlerin ücreti otomatik olarak iade edilir.
product-only ile on-model arasındaki fark nedir?
`product-only` çerçeveleri tek başlarına fotoğraflar ve `sub_tool` ile yönetilir. `on-model` ise çerçeveleri bir yapay zeka modelinin yüzüne yerleştirir; `mannequin_id`, `face_angle`, `expression`, `lighting_style` ve `frame_fit_style` ile kontrol edilir. Diğer moda ait alanlar yok sayılır.
Her bir alt araç hangi stil seçeneklerini sunar?
`studio-shot`, `backdrop` ve `lighting` parametrelerini alır. `flat-lay`, `surface`, `arrangement_style` ve `props` parametrelerini alır. `lifestyle`, `scene` ve `mood` parametrelerini alır. `floating`, `angle` ve `shadow_style` parametrelerini alır. Bu alanların her biri bir enum'dır, bu nedenle beklenmeyen bir değer tahmin edilmek yerine reddedilir.
Kendi AI modelimi kullanabilir miyim?
Evet. `mannequin_id`, GET `/api/v1/eyewear-studio/mannequins` endpoint'inden dönen herhangi bir manken kimliğini kabul eder; manken oluşturma API'si ile ürettiğiniz mankenler de aynı şekilde kullanılabilir.
Sonucu almak için nasıl polling yaparım?
`data.status` değeri `completed` veya `failed` olana kadar her 3 saniyede bir GET `/api/v1/eyewear-studio/:id` isteği atın. Webhook desteği yoktur; dokümante edilen tamamlanma sinyali polling'dir.
İlgili yetenekler
Yetenekler
Sanal try-on API'si giyim için
Giysileri yapay zeka mankenlerine yerleştiren REST API. Asenkron, 1.5–4 dakika oluşturma süresi, 2K için 5 credits, 4K için 6 credits. cURL, Node.js ve Python örnekleri.
Endpoint'i görüntüleyinYetenekler
Takı try-on API'si kolyeler, yüzükler, bilezikler ve küpeler için
REST aracılığıyla kolyeleri, yüzükleri, bilezikleri ve küpeleri yapay zeka modellerine yerleştirin. 2K'da 5 credits, dahili yakın çekim mankenler, Photta dokümantasyonundan yansıma duyarlı render.
Endpoint'i görüntüleyinGeliştir
Bir yapay zeka ürün fotoğrafçılığı servisi geliştirin
Photta'nın sanal try-on API'sini white-label bir SaaS olarak satmaya yönelik bir kurucu rehberi: kiracı anahtarları, toplu dağıtım, credit başına faturalandırma, SLA gerçekleri.
Endpoint'i görüntüleyinKarşılaştır
Photta vs FASHN — AI moda API'si, yan yana
Photta ve FASHN karşılaştırması: endpoint'ler, kredi fiyatlandırması, plan katmanları, eşzamanlılık limitleri. Her iki şirketin de 2026-04-19 tarihindeki kendi fiyatlandırma sayfalarından derlenmiştir. Uydurma rakamlar yoktur.
Endpoint'i görüntüleyinHızlı başlangıç
Beş dakikadan kısa sürede ilk Photta görseli.
Kayıt olun, bir API anahtarı oluşturun, ilk cURL çağrınızı çalıştırın, tamamlanana kadar yoklayın, sonucu kalıcı hale getirin. Beş adım, uçtan uca belgelenmiş.
Endpoint'i görüntüleyinReferans
Photta API hataları
Durum kodlarıyla birlikte Photta API hata tiplerinin tam listesi, bir hata gövdesinin yapısı ve hangi hataların yeniden denenmeye değer olduğu.
Endpoint'i görüntüleyinReferans
Photta API rate limit'leri
Tümü API dokümantasyonundan alınan Photta API rate limit'i, penceresi, Retry-After başlığı, polling aralığı ve plan başına eşzamanlılık sınırları.
Endpoint'i görüntüleyin
Bu sayfadaki her veri şuradan alınmıştır: Photta API dokümantasyonu · kontrol edildi
API'yi beş dakikada deneyin
Bir Photta API key oluşturun, yukarıdaki cURL kod parçacığını yapıştırın; kahveniz demlenmeden önce model üzerindeki ilk görselinizi alın.
- 20–60 sec
- 2K'da 5 credits · 4K'da 6 credits
- asenkron, polling
- 600 istek/dk
- Bearer anahtarı