Leitfaden · Migration
Migration von FASHN zu Photta was sich ändert, was gleich bleibt
In aller Kürze
Der Wechsel einer Try-on-Integration zu Photta erfordert einen neuen Bearer-Key, einen neuen Request-Body und einen neuen Status-Pfad. Der grundlegende Ablauf der Integration — absenden, pollen, herunterladen, speichern — bleibt unverändert.
- Typische Dauer: 1.5–4 min
- Credits: 5 Credits bei 2K · 6 Credits bei 4K
- Verarbeitung: asynchron, Polling
Jeder Zahlenwert auf dieser Seite stammt aus der Photta-API-Dokumentation · geprüft
Die Kurzfassung
Teams wechseln zwischen Try-on-APIs aus den üblichen Gründen: Das Resultat passt besser zu ihrem Katalog, der Preis pro Bild rechnet sich bei ihrem Volumen anders, oder sie benötigen eine Funktion, die der bisherige Anbieter nicht bereitstellt — Ghost-Mannequin im Batch, Detail-Nahaufnahmen, generierte Models, die über eine ganze Saison wiederverwendet werden.
Drei Dinge: die Zugangsdaten, der Request-Body und der Status-Pfad. Photta authentifiziert bei jedem Aufruf mit einem Bearer-Key, nutzt eigene Feldnamen und meldet den Job-Status über einen Status-Endpoint pro Feature. Jeder Wert, den Ihr Code sendet, ist als Enum oder als ID dokumentiert, die Sie vorab abfragen können.
Die Architektur. Beide sind asynchrone APIs, an die Sie Requests senden und die Sie pollen. Ihre Queue, Ihr Worker, Ihre Retry-Policy und Ihr Speicher funktionieren also weiterhin. In der Praxis besteht die Migration aus einem neuen Client-Modul und neuen Feldnamen, nicht aus einer neuen Pipeline.
Der Endpoint, zu dem Sie migrieren
Direkt aus der Photta-API-Dokumentation ausgelesen, nicht manuell verfasst.
Auf einen Blick
- Endpoint
- POST /api/v1/tryon/apparel
- Authentifizierung
- Bearer-API-Schlüssel
- Verarbeitung
- Asynchron — Polling über den Status-Endpoint
- Typische Dauer
- 1.5–4 min
- Credits
- 5 Credits bei 2K · 6 Credits bei 4K
- Seitenverhältnisse
- 3:4 · 1:1 · 4:3 · 9:16 · 16:9
- Eingabelimits
- Bis zu 10 MB pro Bild; JPEG, PNG, WebP
- Idempotent
- Nein
Die vier Dinge, die sich tatsächlich ändern
Authentifizierung
Ein einziger Bearer-Key für jeden Endpoint, erstellt in Ihrem Photta-Dashboard. Keine Scopes pro Endpoint und kein Token-Exchange-Schritt.
Der Request-Body
Photta erwartet snake_case-Felder mit dokumentierten Enums sowie IDs für Model, Pose und Hintergrund, die Sie über die Ressourcen-Endpoints abrufen und cachen.
Polling
Pollen Sie den Status-Endpoint der Capability alle 3 Sekunden, bis er completed oder failed meldet. Es gibt keine Webhooks, daher muss nichts neu öffentlich exponiert werden.
Abrechnung
Credits pro Aufruf — 5 bei 2K und 6 bei 4K für Apparel-Try-on — werden bei Jobstart abgezogen und bei Fehlschlag automatisch erstattet.
Der neue Request
Derselbe Aufruf in cURL, Node.js und 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"]Fragen zur Migration
Wie lange dauert eine Migration?
Es ist ein einzelnes Client-Modul: ein neuer Key, neue Feldnamen, ein neuer Status-Pfad. Wenn Ihr Worker bereits Jobs übergibt und pollt, bleibt der umgebende Code unverändert.
Muss ich meine Queue anpassen?
Nein. Beide APIs sind asynchron. Was auch immer Sie heute nutzen — Celery, BullMQ, Inngest, eine Crontab — behält seine Struktur. Nur die Aufrufe innerhalb des Tasks ändern sich.
Was passiert mit bereits generierten Bildern?
Das sind Dateien in Ihrem eigenen Storage, an denen sich nichts ändert. Die Migration betrifft nur das, was Sie als Nächstes rendern, nicht das, was Sie bereits veröffentlicht haben.
Wie schneiden die Preise im Vergleich ab?
Die Vergleichsseite stellt Phottas Credit-Kosten pro Aufruf den Angaben gegenüber, die FASHN auf der eigenen Preisseite veröffentlicht, inklusive des Datums, an dem jede Zahl erfasst wurde. Ihr eigenes Volumen entscheidet, was günstiger ist.
Kann ich beide parallel betreiben?
Ja, und das ist der sicherste Weg für den Wechsel. Senden Sie einen Teil Ihres Katalogs über den neuen Endpoint, vergleichen Sie den Output an echten Produkten und migrieren Sie anschließend den Rest.
Als Nächstes lesen
Funktionen
Virtuelle Try-on-API für Apparel
REST-API zur Platzierung von Bekleidung auf KI-Mannequins. Asynchron, 1.5–4 Minuten Generierungsdauer, 5 credits bei 2K, 6 bei 4K. Beispiele für cURL, Node.js und Python.
LesenVergleich
Photta vs FASHN — Fashion-KI-APIs im direkten Vergleich
Photta und FASHN im Vergleich: Endpoints, Credit-Preise, Tarifstufen, Concurrency-Limits. Direkt bezogen von den Preisseiten beider Unternehmen am 2026-04-19. Keine erfundenen Zahlen.
LesenReferenz
Photta-API-Preise
Was jeder Photta API-Endpoint in Credits bei 2K und 4K kostet, wie Abrechnung und Erstattungen funktionieren und welche Endpoints kostenlos sind. Kein Geldpreis pro Bild.
LesenReferenz
Photta API Rate Limits
Das Photta API Rate Limit, sein Zeitfenster, der Retry-After-Header, das Polling-Intervall und die tarifbasierten Concurrency-Limits, alles direkt aus der API-Dokumentation.
LesenSchnellstart
Erstes Photta-Bild in unter 5 Minuten.
Registrieren, API-Key generieren, ersten cURL-Aufruf ausführen, pollen bis zum Abschluss, Ergebnis persistieren. 5 Schritte, durchgängig dokumentiert.
Lesen
Jeder Zahlenwert auf dieser Seite stammt aus der Photta-API-Dokumentation · geprüft
Beide parallel betreiben, dann umschalten
Leiten Sie eine Kopie Ihrer Queue an den neuen Endpoint weiter und vergleichen Sie das Ergebnis selbst.
- 1.5–4 min
- 5 Credits bei 2K · 6 Credits bei 4K
- asynchron, Polling