Kapabilitas · Pembuatan manekin
API pembuatan manekin AI untuk model Anda sendiri
Ringkasan singkat
API pembuatan manekin Photta membangun model AI fotorealistis dari atribut yang Anda pilih, mengembalikan id manekin yang dapat digunakan kembali, dan berbiaya 4 credits. Dua pembangun: satu untuk pakaian, satu disesuaikan untuk close-up perhiasan.
- Waktu umum: 30-60s
- Credits: 4 credits
- Pemrosesan: async, polling
- Batasan: 600 requests/min
- Autentikasi: Bearer key
Setiap angka di halaman ini bersumber dari dokumentasi API Photta · diperiksa
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"]Sekilas
Sekilas
- Endpoint
- POST /api/v1/mannequins/generate
- Autentikasi
- API key Bearer
- Pemrosesan
- Asinkron — lakukan polling ke endpoint status
- Waktu umum
- 30-60s
- Credits
- 4 credits
- Batas input
- Hingga 10 MB per gambar; JPEG, PNG, WebP
- Idempoten
- Tidak
Request dan response
Request
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"
}Parameter request
categoryTipe: stringWajib
Mannequin category.
Nilai:FemaleMaleGirlChildBoyChildethnicityTipe: string
Ethnic appearance.
Nilai:east_asian_koreaneast_asian_chinesesoutheast_asiansouth_asiannordicwestern_europeaneastern_europeanmediterraneanafricanafrican_americanmiddle_easternlatin_americanbrazilianmixed_asian_europeanpolynesianageTipe: string
Age range.
Nilai:early_20slate_20searly_30slate_30s40s50sbaby_1toddler_2_4young_5_7child_8_10preteen_11_13skin_toneTipe: string
Skin tone.
Nilai:lightlight_mediummediummedium_darkdarkface_shapeTipe: string
Face shape.
Nilai:ovalsquareroundheartoblongdiamondeye_colorTipe: string
Eye color.
Nilai:browndark_brownblackbluegreenhazelgrayambereye_shapeTipe: string
Eye shape.
Nilai:almondroundmonolidhoodedupturneddownturnedexpressionTipe: string
Facial expression.
Nilai:neutralsoft_smilewarm_smileseriousconfidentfriendlyfacial_hairTipe: string
Facial hair style (Male only).
Nilai:nonelight_stubblemedium_stubbleshort_beardfull_beardgoateemustachemakeupTipe: string
Makeup style (Female only).
Nilai:naturalminimalsoft_glamprofessionaleditorialhair_styleTipe: string
Hair style. Available options depend on category — use /options endpoint.
hair_colorTipe: string
Hair color.
Nilai:blackdark_brownmedium_brownlight_brownauburnredblondeplatinum_blondegraywhitehair_textureTipe: string
Hair texture.
Nilai:straightwavycurlycoilybody_typeTipe: string
Body type. Options depend on category — use /options endpoint.
heightTipe: string
Height.
Nilai:shortaveragetallglassesTipe: string
Glasses.
Nilai:noneeyeglassessunglassesfrecklesTipe: string
Freckles.
Nilai:nonelightprominentpiercingsTipe: string
Piercings.
Nilai:noneearnosemultiple
Error
- 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.
Batasan
- 600 request per menit per API key (Fixed window; batasannya sama di setiap paket)
- Respons 429 menyertakan Retry-After: 30 detik
- Hingga 10 MB per gambar
- Format: JPEG, PNG, WebP
- Batch konkuren per paket: Free 1 · Hobby 2 · Seller 3 · Brand 4 · Studio 6
- Hanya polling — API tidak mengirim webhook.
Atribut masuk, model yang dapat digunakan kembali keluar
Baca opsi, pilih atribut, kirim, lakukan polling, lalu gunakan kembali id-nya.
Langkah 1
Hasilkan API key
Pembuatan manekin menggunakan kredensial yang sama dan saldo credit yang sama dengan setiap kapabilitas Photta lainnya.
Langkah 2
Baca katalog opsi
GET `/api/v1/mannequins/generate/options` mengembalikan setiap nilai yang diterima, termasuk daftar `hair_style` dan `body_type` yang berbeda berdasarkan kategori. Gunakan ini untuk mengisi formulir Anda daripada melakukan hardcode pada enum.
Langkah 3
POST manekin
POST `/api/v1/mannequins/generate` dengan `category` — `Female`, `Male`, `GirlChild`, atau `BoyChild` — ditambah salah satu dari 17 atribut opsional: etnis, usia, warna kulit, bentuk wajah dan mata, ekspresi, rambut wajah, riasan, rambut, tipe tubuh, tinggi badan, kacamata, bintik-bintik wajah, dan tindik.
Langkah 4
Lakukan polling hingga pekerjaan selesai
GET `/api/v1/mannequins/generate/:id` setiap 3 detik hingga `data.status` bernilai `completed` atau `failed`; penyelesaian umumnya memakan waktu 30 hingga 60 detik.
Langkah 5
Gunakan kembali manekin
Body yang telah selesai memuat objek `mannequin` dengan id-nya sendiri. Teruskan id tersebut sebagai `mannequin_id` pada pekerjaan try-on atau kacamata berikutnya dan setiap bidikan akan mempertahankan wajah yang sama.
Endpoint yang sama di Node.js, Python, dan cURL
Node.js
API pembuatan manekin AI di Node.js
Panggil aPI pembuatan manekin AI Photta dari backend Node.js dengan fetch native. Tidak memerlukan SDK: simpan kunci Anda, kirim job, lakukan polling untuk hasilnya.
BacaPython
API pembuatan manekin AI di Python
Panggil aPI pembuatan manekin AI Photta di Python dengan library requests. Wrapper tiga puluh baris, ramah asinkron via httpx, bekerja di Django, FastAPI, dan Celery.
BacacURL
API pembuatan manekin AI dengan cURL
Panggil aPI pembuatan manekin AI Photta langsung dari shell menggunakan cURL. Kirim, lakukan polling, unduh — setiap cuplikan kode dapat dipadukan dengan jq untuk pipeline berbasis skrip.
Baca
Pertanyaan yang diajukan developer sebelum menghasilkan model
Apa itu manekin AI?
Model hasil pembuatan yang penampilannya Anda tentukan sendiri alih-alih melalui casting. Model ini dikembalikan sebagai sebuah id, sehingga wajah, rambut, dan tubuh yang sama dapat mengenakan setiap pakaian di dalam katalog.
Berapa biaya satu manekin?
4 credits, baik untuk pembangun pakaian maupun pembangun perhiasan. Menggunakan kembali manekin yang sudah ada pada pemotretan berikutnya tidak dikenakan biaya tambahan — Anda membayar untuk try-on, bukan untuk modelnya.
Atribut apa saja yang dapat saya atur?
`category` wajib diisi. Atribut lainnya bersifat opsional: etnis, usia, warna kulit, bentuk wajah, warna dan bentuk mata, ekspresi, rambut wajah, riasan, gaya rambut, warna dan tekstur rambut, tipe tubuh, tinggi badan, kacamata, bintik-bintik wajah, dan tindik. Endpoint opsi mencantumkan nilai-nilai yang diterima.
Untuk apa pembangun perhiasan digunakan?
POST `/api/v1/mannequins/jewelry/generate` membangun model yang disesuaikan untuk foto close-up perhiasan: endpoint ini menerima `jewelry_type`, `shot_type`, `camera_angle`, `background`, dan `lighting` alih-alih atribut seluruh tubuh, sehingga garis leher, telinga, atau tangan terlihat tepat pada jarak dekat.
Dapatkah saya menggunakan kembali model yang sama di berbagai pemotretan?
Ya — itulah tujuan utama endpoint ini. Id manekin yang dihasilkan diterima sebagai `mannequin_id` oleh try-on pakaian, try-on perhiasan, dan studio kacamata.
Bagaimana cara melakukan polling untuk hasilnya?
GET `/api/v1/mannequins/generate/:id` setiap 3 detik hingga `data.status` bernilai `completed` atau `failed`. Builder perhiasan melakukan polling ke path statusnya sendiri.
Kapabilitas terkait
Kapabilitas
Virtual try-on API untuk pakaian
REST API yang memakaikan pakaian pada manekin AI. Asinkron, waktu generasi 1.5–4 menit, 5 credits pada 2K, 6 pada 4K. Contoh cURL, Node.js, dan Python.
Lihat endpointKapabilitas
API try-on perhiasan untuk kalung, cincin, gelang, dan anting
Posisikan kalung, cincin, gelang, dan anting pada model AI via REST. 5 credits pada 2K, manekin close-up bawaan, rendering dengan penanganan refleksi dari dokumentasi Photta.
Lihat endpointBangun
Bangun fitur virtual try-on untuk aplikasi Anda
Resep end-to-end untuk merilis fitur virtual try-on dengan Photta API: unggah, submit, lakukan polling dari worker, render hasilnya. Pola TypeScript + server-only.
Lihat endpointBandingkan
Photta vs Fitroom — pilih yang tepat untuk API fashion
Perbandingan Photta dan Fitroom berdasarkan endpoint, biaya credit per panggilan, model penetapan harga, dan bidang integrasi. Diambil dari masing-masing situs pada 2026-04-19. Tanpa angka rekayasa.
Lihat endpointQuickstart
Gambar Photta pertama dalam waktu kurang dari lima menit.
Daftar, buat API key, jalankan pemanggilan cURL pertama Anda, lakukan polling hingga selesai, simpan hasilnya. Lima langkah, terdokumentasi end-to-end.
Lihat endpointReferensi
Error Photta API
Daftar lengkap tipe error Photta API beserta kode statusnya, format body error, dan kegagalan mana saja yang layak dicoba ulang.
Lihat endpointReferensi
Rate limit Photta API
Rate limit Photta API, window-nya, header Retry-After, interval polling, serta batas konkurensi per paket, seluruhnya dirujuk dari dokumentasi API.
Lihat endpoint
Setiap angka di halaman ini bersumber dari dokumentasi API Photta · diperiksa
Coba API dalam lima menit
Buat Photta API key, tempel cuplikan cURL di atas, dan Anda akan mendapatkan gambar on-model pertama sebelum kopi selesai diseduh.
- 30-60s
- 4 credits
- async, polling
- 600 requests/min
- Bearer key