Funkcjonalność · Generowanie manekinów
API do generowania manekinów AI dla Twoich własnych modeli
W jednym zdaniu
API generowania manekinów od Photta buduje fotorealistyczny model AI z wybranych atrybutów, zwraca identyfikator manekina wielokrotnego użytku i kosztuje 4 credits. Dwa kreatory: jeden do odzieży, drugi zoptymalizowany pod zbliżenia biżuterii.
- Typowy czas: 30-60s
- Credits: 4 credits
- Przetwarzanie: asynchroniczne, polling
- Limity: 600 requests/min
- Uwierzytelnianie: Klucz Bearer
Każda liczba na tej stronie pochodzi z dokumentacji API Photta · sprawdzono
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"]W skrócie
W skrócie
- Endpoint
- POST /api/v1/mannequins/generate
- Uwierzytelnianie
- Klucz API Bearer
- Przetwarzanie
- Asynchroniczne — odpytuj endpoint statusu
- Typowy czas
- 30-60s
- Credits
- 4 credits
- Limity wejściowe
- Do 10 MB na obraz; JPEG, PNG, WebP
- Idempotentne
- Nie
Żądanie i odpowiedź
Żądanie
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 / Completed
{
"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"
}Parametry żądania
categoryTyp: stringWymagane
Mannequin category.
Wartości:FemaleMaleGirlChildBoyChildethnicityTyp: string
Ethnic appearance.
Wartości:east_asian_koreaneast_asian_chinesesoutheast_asiansouth_asiannordicwestern_europeaneastern_europeanmediterraneanafricanafrican_americanmiddle_easternlatin_americanbrazilianmixed_asian_europeanpolynesianageTyp: string
Age range.
Wartości:early_20slate_20searly_30slate_30s40s50sbaby_1toddler_2_4young_5_7child_8_10preteen_11_13skin_toneTyp: string
Skin tone.
Wartości:lightlight_mediummediummedium_darkdarkface_shapeTyp: string
Face shape.
Wartości:ovalsquareroundheartoblongdiamondeye_colorTyp: string
Eye color.
Wartości:browndark_brownblackbluegreenhazelgrayambereye_shapeTyp: string
Eye shape.
Wartości:almondroundmonolidhoodedupturneddownturnedexpressionTyp: string
Facial expression.
Wartości:neutralsoft_smilewarm_smileseriousconfidentfriendlyfacial_hairTyp: string
Facial hair style (Male only).
Wartości:nonelight_stubblemedium_stubbleshort_beardfull_beardgoateemustachemakeupTyp: string
Makeup style (Female only).
Wartości:naturalminimalsoft_glamprofessionaleditorialhair_styleTyp: string
Hair style. Available options depend on category — use /options endpoint.
hair_colorTyp: string
Hair color.
Wartości:blackdark_brownmedium_brownlight_brownauburnredblondeplatinum_blondegraywhitehair_textureTyp: string
Hair texture.
Wartości:straightwavycurlycoilybody_typeTyp: string
Body type. Options depend on category — use /options endpoint.
heightTyp: string
Height.
Wartości:shortaveragetallglassesTyp: string
Glasses.
Wartości:noneeyeglassessunglassesfrecklesTyp: string
Freckles.
Wartości:nonelightprominentpiercingsTyp: string
Piercings.
Wartości:noneearnosemultiple
Błędy
- 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.
Limity
- 600 żądań na minutę na klucz API (Stałe okno czasowe; limit jest taki sam w każdym planie)
- Odpowiedź 429 zawiera nagłówek Retry-After: 30 s
- Do 10 MB na obraz
- Formaty: JPEG, PNG, WebP
- Jednoczesne zadania wsadowe w zależności od planu: Free 1 · Hobby 2 · Seller 3 · Brand 4 · Studio 6
- Tylko polling — API nie wysyła webhooków.
Atrybuty na wejściu, model wielokrotnego użytku na wyjściu
Pobierz opcje, wybierz atrybuty, wyślij żądanie, odpytuj o wynik i używaj ponownie identyfikatora.
Krok 1
Wygeneruj klucz API
Generowanie manekinów korzysta z tych samych danych uwierzytelniających i tej samej puli credits, co każda inna funkcjonalność Photta.
Krok 2
Odczytaj katalog opcji
GET `/api/v1/mannequins/generate/options` zwraca wszystkie akceptowane wartości, w tym listy `hair_style` i `body_type`, które różnią się w zależności od kategorii. Steruj formularzem na ich podstawie, zamiast kodować enumy na sztywno.
Krok 3
Wyślij żądanie POST z danymi manekina
Wyślij POST `/api/v1/mannequins/generate` z parametrem `category` — `Female`, `Male`, `GirlChild` lub `BoyChild` — oraz dowolnymi z 17 opcjonalnych atrybutów: pochodzeniem etnicznym, wiekiem, odcieniem skóry, kształtem twarzy i oczu, wyrazem twarzy, zarostem, makijażem, włosami, typem sylwetki, wzrostem, okularami, piegami i kolczykami.
Krok 4
Odpytuj, aż zadanie zostanie ukończone
Wywołuj GET `/api/v1/mannequins/generate/:id` co 3 sekundy, dopóki `data.status` nie osiągnie wartości `completed` lub `failed`; typowy czas realizacji wynosi od 30 do 60 sekund.
Krok 5
Użyj manekina ponownie
Zwrócony po ukończeniu obiekt zawiera strukturę `mannequin` z własnym identyfikatorem. Przekaż ten identyfikator jako `mannequin_id` w późniejszych zadaniach try-on lub generowania okularów, a każde ujęcie zachowa tę samą twarz.
Ten sam endpoint w Node.js, Python i cURL
Node.js
API do generowania manekinów AI w Node.js
Wywołaj aPI do generowania manekinów AI od Photta z backendu Node.js za pomocą natywnego fetch. SDK nie jest wymagane: zapisz klucz, wyślij zadanie, odpytuj o wynik.
CzytajPython
API do generowania manekinów AI w Pythonie
Wywołuj Photta aPI do generowania manekinów AI w Pythonie za pomocą biblioteki requests. Trzydziestowierszowy wrapper, przyjazny dla async dzięki httpx, działa w Django, FastAPI i Celery.
CzytajcURL
API do generowania manekinów AI z cURL
Wywołuj aPI do generowania manekinów AI Photta bezpośrednio z powłoki za pomocą cURL. Wysyłaj, odpytuj, pobieraj — każdy fragment kodu współpracuje z jq w zautomatyzowanych potokach.
Czytaj
Pytania, które programiści zadają przed generowaniem modeli
Czym jest manekin AI?
Wygenerowanym modelem, którego wygląd określasz za pomocą parametrów zamiast tradycyjnego castingu. Jest zwracany jako identyfikator, dzięki czemu ta sama twarz, fryzura i sylwetka mogą prezentować każde ubranie z katalogu.
Ile kosztuje manekin?
4 credits, zarówno w przypadku kreatora odzieży, jak i biżuterii. Ponowne użycie istniejącego manekina w kolejnej sesji nic nie kosztuje — płacisz za try-on, a nie za modela.
Jakie atrybuty mogę ustawić?
`category` jest wymagana. Wszystko inne jest opcjonalne: pochodzenie etniczne, wiek, odcień skóry, kształt twarzy, kolor i kształt oczu, wyraz twarzy, zarost, makijaż, fryzura, kolor i tekstura włosów, typ sylwetki, wzrost, okulary, piegi oraz kolczyki. Endpoint opcji zawiera pełną listę akceptowanych wartości.
Do czego służy kreator biżuterii?
POST `/api/v1/mannequins/jewelry/generate` tworzy model zoptymalizowany pod kątem zbliżeń biżuterii: zamiast atrybutów całej sylwetki przyjmuje `jewelry_type`, `shot_type`, `camera_angle`, `background` oraz `lighting`, dzięki czemu dekolt, ucho czy dłoń wyglądają naturalnie i poprawnie z bliska.
Czy mogę używać tego samego modela w różnych sesjach?
Tak — to główny cel tego endpointu. Wygenerowany identyfikator manekina jest akceptowany jako `mannequin_id` przez try-on odzieży, try-on biżuterii oraz studio okularów.
Jak odpytywać o wynik?
Wykonuj GET `/api/v1/mannequins/generate/:id` co 3 sekundy, dopóki `data.status` nie przyjmie wartości `completed` lub `failed`. Generator biżuterii odpytuje własną ścieżkę statusu.
Powiązane funkcjonalności
Możliwości
API wirtualnego try-on dla odzieży
REST API, które nakłada odzież na manekiny AI. Asynchroniczne, generowanie w 1.5–4 minuty, 5 credits przy 2K, 6 przy 4K. Przykłady dla cURL, Node.js i Python.
Zobacz endpointMożliwości
API try-on biżuterii dla naszyjników, pierścionków, bransoletek i kolczyków
Nakładaj naszyjniki, pierścionki, bransoletki i kolczyki na modele AI przez REST. 5 credits w 2K, wbudowane manekiny w zbliżeniu, renderowanie uwzględniające refleksy światła prosto z dokumentacji Photta.
Zobacz endpointTwórz
Zbuduj funkcję virtual try-on dla swojej aplikacji
Kompletny przewodnik po wdrożeniu funkcji virtual try-on z wykorzystaniem Photta API: przesyłanie, zlecanie, polling z poziomu workera, renderowanie wyniku. Wzorce oparte na TypeScript + wyłącznie po stronie serwera.
Zobacz endpointPorównaj
Photta vs Fitroom — wybierz odpowiednie API fashion
Porównanie Photta i Fitroom pod kątem endpointów, kosztu credits za wywołanie, modelu rozliczeń i powierzchni integracji. Dane pobrane z obu stron 2026-04-19. Żadnych zmyślonych liczb.
Zobacz endpointSzybki start
Pierwszy obraz z Photta w mniej niż pięć minut.
Zarejestruj się, wygeneruj klucz API, wykonaj pierwsze wywołanie cURL, odpytuj aż do ukończenia, zapisz wynik. Pięć kroków opisanych od początku do końca.
Zobacz endpointDokumentacja
Błędy Photta API
Pełna lista typów błędów Photta API wraz z ich kodami statusu, strukturą treści błędu oraz informacją, które niepowodzenia warto ponowić.
Zobacz endpointDokumentacja
Rate limity Photta API
Rate limit Photta API, jego okno, nagłówek Retry-After, interwał dla pollingu oraz limity współbieżności według planu — wszystko prosto z dokumentacji API.
Zobacz endpoint
Każda liczba na tej stronie pochodzi z dokumentacji API Photta · sprawdzono
Wypróbuj API w 5 minut
Wygeneruj klucz Photta API, wklej powyższy snippet cURL, a otrzymasz swoje pierwsze zdjęcie na modelu, zanim zaparzy się kawa.
- 30-60s
- 4 credits
- asynchroniczne, polling
- 600 requests/min
- Klucz Bearer