Guida · Migrazione
Migrazione da FASHN a Photta cosa cambia, cosa resta invariato
In sintesi
Spostare un'integrazione di try-on su Photta richiede una nuova chiave bearer, un nuovo request body e un nuovo percorso di stato. La struttura dell'integrazione — invio, polling, download, archiviazione — non cambia.
- Tempo tipico: 1.5–4 min
- Credits: 5 credits a 2K · 6 credits a 4K
- Elaborazione: asincrono, polling
Ogni dato in questa pagina proviene da la documentazione dell'API di Photta · verificato
In breve
I team cambiano API di try-on per motivi standard: l'output si adatta meglio al loro catalogo, il prezzo per immagine risulta più vantaggioso per i loro volumi, oppure necessitano di una funzionalità che il fornitore attuale non offre — ghost mannequin in batch, primi piani sui dettagli, modelli generati riutilizzabili per un'intera stagione.
Tre elementi: le credenziali, il request body e il percorso di stato. Photta richiede l'autenticazione con chiave bearer su ogni chiamata, utilizza nomi di campo proprietari e restituisce lo stato del job su un endpoint di stato dedicato per funzionalità. Ogni valore inviato dal codice è documentato come enum o id interrogabile preventivamente.
L'architettura. Entrambe sono API asincrone basate su invio e polling, quindi la coda, i worker, le policy di retry e lo storage continuano a funzionare senza modifiche. In pratica, la migrazione consiste in un nuovo modulo client e in un nuovo set di nomi di campo, non in una nuova pipeline.
L'endpoint verso cui stai migrando
Estratto direttamente dalla documentazione dell'API di Photta, non scritto manualmente.
Panoramica
- Endpoint
- POST /api/v1/tryon/apparel
- Autenticazione
- API key Bearer
- Elaborazione
- Asincrona — effettua il polling dell'endpoint di stato
- Tempo tipico
- 1.5–4 min
- Credits
- 5 credits a 2K · 6 credits a 4K
- Rapporti d'aspetto
- 3:4 · 1:1 · 4:3 · 9:16 · 16:9
- Limiti di input
- Fino a 10 MB per immagine; JPEG, PNG, WebP
- Idempotente
- No
I quattro aspetti che cambiano davvero
Autenticazione
Una sola chiave bearer su ogni endpoint, creata nella tua dashboard Photta. Nessuno scope per singolo endpoint e nessun passaggio di token exchange.
Il corpo della richiesta
Photta accetta campi in snake_case con enum documentati, oltre agli id per modello, posa e sfondo recuperabili tramite gli endpoint delle risorse e memorizzabili in cache.
Polling
Esegui il polling dell'endpoint di stato della capability ogni 3 secondi finché non restituisce completed o failed. Non ci sono webhook, quindi non serve esporre nulla pubblicamente.
Come vengono calcolati i costi
Credits per chiamata — 5 a 2K e 6 a 4K per l'apparel try-on — scalati all'avvio del job e rimborsati automaticamente in caso di fallimento.
La nuova richiesta
La stessa chiamata in cURL, Node.js e 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"]Domande sulla migrazione
Quanto tempo richiede la migrazione?
Si tratta di un solo modulo client: una nuova chiave, nuovi nomi di campo, un nuovo percorso di stato. Se il tuo worker invia già richieste ed esegue il polling, il codice circostante non cambia.
Devo modificare la mia coda?
No. Entrambe le API sono asincrone, quindi qualsiasi strumento tu stia usando oggi — Celery, BullMQ, Inngest o una tabella cron — mantiene la sua struttura. Cambiano solo le chiamate all'interno del task.
Cosa succede alle immagini già generate?
Sono file salvati nel tuo storage e non subiranno alcuna modifica. La migrazione influisce solo sui rendering successivi, non su ciò che hai già pubblicato.
Come si posizionano i prezzi a confronto?
La pagina di confronto confronta il costo in credits per chiamata di Photta con i dati pubblicati da FASHN sulla propria pagina dei prezzi, indicando la data di rilevazione di ogni dato. Sarà il tuo volume di utilizzo a determinare quale sia la scelta più conveniente.
Posso utilizzarle entrambe contemporaneamente?
Sì, ed è il modo più sicuro per effettuare il passaggio. Invia una parte del tuo catalogo al nuovo endpoint, confronta l'output su prodotti reali e poi migra il resto.
Continua a leggere
Funzionalità
API di Virtual try-on per abbigliamento
REST API per applicare capi di abbigliamento su manichini AI. Generazione asincrona in 1.5–4 minuti, 5 crediti a 2K, 6 a 4K. Esempi per cURL, Node.js e Python.
LeggiConfronta
Photta vs FASHN — API AI per la moda a confronto
Photta e FASHN a confronto: endpoint, costi in crediti, piani, limiti di concorrenza. Dati ricavati dalle rispettive pagine prezzi il 2026-04-19. Nessun numero inventato.
LeggiRiferimento
Prezzi dell'API Photta
Il costo in crediti di ogni endpoint delle API di Photta a 2K e 4K, il funzionamento di addebiti e rimborsi, e quali endpoint sono gratuiti. Nessun prezzo monetario per immagine.
LeggiRiferimento
Rate limit delle API Photta
Il rate limit delle API Photta, la relativa finestra, l'header Retry-After, l'intervallo di polling e i limiti di concorrenza per piano, tutti desunti dalla documentazione delle API.
LeggiGuida rapida
La prima immagine con Photta in meno di cinque minuti.
Registrati, genera una chiave API, esegui la tua prima chiamata cURL, fai polling fino al completamento, salva il risultato. Cinque passaggi, interamente documentati.
Leggi
Ogni dato in questa pagina proviene da la documentazione dell'API di Photta · verificato
Esegui entrambi, poi effettua il passaggio
Invia una copia della tua coda al nuovo endpoint e confronta direttamente l'output.
- 1.5–4 min
- 5 credits a 2K · 6 credits a 4K
- asincrono, polling