Panduan · Migrasi
Migrasi dari FASHN ke Photta apa yang berubah, apa yang tidak
Ringkasan singkat
Memindahkan integrasi try-on ke Photta berarti bearer key baru, request body baru, dan status path baru. Bentuk alur integrasi — submit, poll, download, store — tidak berubah.
- Waktu umum: 1.5–4 min
- Credits: 5 credits pada 2K · 6 credits pada 4K
- Pemrosesan: async, polling
Setiap angka di halaman ini bersumber dari dokumentasi API Photta · diperiksa
Jawaban singkatnya
Tim berpindah antar API try-on karena alasan umum: output-nya lebih cocok untuk katalog mereka, harga per gambar lebih ekonomis pada volume mereka, atau mereka membutuhkan kapabilitas yang tidak disediakan vendor saat ini — batch ghost mannequin, detail close-up, model hasil generasi yang digunakan kembali sepanjang musim.
Tiga hal: kredensial, request body, dan status path. Photta mengautentikasi dengan bearer key pada setiap panggilan, menggunakan nama field-nya sendiri, dan melaporkan status tugas pada endpoint status per kapabilitas. Setiap nilai yang dikirimkan kode Anda didokumentasikan sebagai enum atau id yang dapat Anda daftarkan terlebih dahulu.
Arsitekturnya. Keduanya adalah API asinkron tempat Anda melakukan submit dan poll, sehingga antrean, worker, kebijakan retry, dan penyimpanan Anda semuanya tetap berfungsi. Dalam praktiknya, migrasi ini hanyalah modul klien baru dan serangkaian nama field baru, bukan pipeline yang baru.
Endpoint tujuan migrasi Anda
Dibaca dari dokumentasi Photta API, tidak ditulis secara manual.
Sekilas
- Endpoint
- POST /api/v1/tryon/apparel
- Autentikasi
- API key Bearer
- Pemrosesan
- Asinkron — lakukan polling ke endpoint status
- Waktu umum
- 1.5–4 min
- Credits
- 5 credits pada 2K · 6 credits pada 4K
- Rasio aspek
- 3:4 · 1:1 · 4:3 · 9:16 · 16:9
- Batas input
- Hingga 10 MB per gambar; JPEG, PNG, WebP
- Idempoten
- Tidak
Empat hal yang sebenarnya berubah
Autentikasi
Satu bearer key di setiap endpoint, dibuat di dashboard Photta Anda. Tanpa scope per endpoint dan tanpa langkah pertukaran token.
Request body
Photta menerima field snake_case dengan enum terdokumentasi, serta id untuk model, pose, dan background yang Anda ambil dari resource endpoint lalu di-cache.
Polling
Lakukan polling ke status endpoint milik kapabilitas terkait setiap 3 detik hingga statusnya completed atau failed. Tidak ada webhook, jadi tidak ada hal baru yang perlu diekspos secara publik.
Cara penghitungan biaya
Credits per panggilan — 5 pada 2K dan 6 pada 4K untuk apparel try-on — dipotong saat job dimulai dan dikembalikan secara otomatis jika gagal.
Request baru
Panggilan yang sama di cURL, Node.js, dan Python.
RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/tryon/apparel \
-H "Authorization: Bearer $PHOTTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"product_type": "top",
"product_images": [
"https://cdn.yourstore.com/products/shirt-front.jpg"
],
"product_back_image": "https://cdn.yourstore.com/products/shirt-back.jpg",
"product_category": "t_shirt",
"mannequin_id": "mnk_f3a9b1",
"pose_id": "pose_c2d4e5",
"background": "https://cdn.yourstore.com/backgrounds/studio-loft.jpg",
"lock_background": true,
"resolution": "2K",
"aspect_ratio": "3:4",
"body_size": "M",
"expression": "neutral",
"user_instruction": "Keep the collar pattern crisp and centered."
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')const res = await fetch("https://api.photta.app/api/v1/tryon/apparel", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PHOTTA_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
"product_type": "top",
"product_images": [
"https://cdn.yourstore.com/products/shirt-front.jpg"
],
"product_back_image": "https://cdn.yourstore.com/products/shirt-back.jpg",
"product_category": "t_shirt",
"mannequin_id": "mnk_f3a9b1",
"pose_id": "pose_c2d4e5",
"background": "https://cdn.yourstore.com/backgrounds/studio-loft.jpg",
"lock_background": true,
"resolution": "2K",
"aspect_ratio": "3:4",
"body_size": "M",
"expression": "neutral",
"user_instruction": "Keep the collar pattern crisp and centered."
}),
});
const { data } = await res.json(); // data.id, data.statusimport os, requests
res = requests.post(
"https://api.photta.app/api/v1/tryon/apparel",
headers={"Authorization": f"Bearer {os.environ['PHOTTA_API_KEY']}"},
json={
"product_type": "top",
"product_images": [
"https://cdn.yourstore.com/products/shirt-front.jpg"
],
"product_back_image": "https://cdn.yourstore.com/products/shirt-back.jpg",
"product_category": "t_shirt",
"mannequin_id": "mnk_f3a9b1",
"pose_id": "pose_c2d4e5",
"background": "https://cdn.yourstore.com/backgrounds/studio-loft.jpg",
"lock_background": True,
"resolution": "2K",
"aspect_ratio": "3:4",
"body_size": "M",
"expression": "neutral",
"user_instruction": "Keep the collar pattern crisp and centered."
},
)
data = res.json()["data"] # data["id"], data["status"]Pertanyaan seputar migrasi
Berapa lama waktu migrasi yang dibutuhkan?
Hanya satu modul client: key baru, nama field baru, path status baru. Jika worker Anda sudah bertugas mengirim dan melakukan polling, kode di sekitarnya tidak perlu diubah.
Apakah saya harus mengubah antrean saya?
Tidak. Kedua API bersifat asinkron, jadi apa pun yang Anda gunakan saat ini — Celery, BullMQ, Inngest, cron table — bentuknya tetap sama. Hanya panggilan di dalam task yang berubah.
Apa yang terjadi pada gambar yang sudah saya hasilkan?
Gambar tersebut adalah file di storage Anda sendiri dan tidak ada yang berubah darinya. Migrasi hanya memengaruhi apa yang Anda render berikutnya, bukan apa yang sudah Anda publikasikan.
Bagaimana perbandingan harganya?
Halaman perbandingan membandingkan biaya credit Photta per panggilan dengan apa yang dipublikasikan FASHN di halaman harganya sendiri, beserta tanggal setiap figure tersebut dibaca. Volume penggunaan Anda sendiri yang menentukan mana yang lebih menguntungkan.
Bisakah saya menjalankan keduanya secara bersamaan?
Ya, dan ini adalah cara paling aman untuk beralih. Kirim sebagian dari katalog Anda melalui endpoint baru, bandingkan hasilnya pada produk nyata, lalu alihkan sisanya.
Baca berikutnya
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.
BacaBandingkan
Photta vs FASHN — API AI fashion, berdampingan
Perbandingan Photta dan FASHN: endpoint, harga credits, tingkatan paket, batas konkurensi. Bersumber dari halaman harga masing-masing perusahaan pada 2026-04-19. Tanpa angka rekayasa.
BacaReferensi
Harga Photta API
Biaya setiap endpoint Photta API dalam credits pada 2K dan 4K, cara kerja pemotongan dan pengembalian dana, serta endpoint mana saja yang gratis. Tidak ada harga uang per gambar.
BacaReferensi
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.
BacaQuickstart
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.
Baca
Setiap angka di halaman ini bersumber dari dokumentasi API Photta · diperiksa
Jalankan keduanya, lalu beralih
Arahkan salinan antrean Anda ke endpoint baru dan bandingkan sendiri output-nya.
- 1.5–4 min
- 5 credits pada 2K · 6 credits pada 4K
- async, polling