Funktion · Ghost-Mannequin
Ghost-Mannequin-API für Hollow-Man-Produktfotos
In aller Kürze
Die Ghost-Mannequin-API von Photta nimmt ein Foto eines Kleidungsstücks auf einer Puppe entgegen und liefert ein Bild mit unsichtbarer Puppe zurück, bei dem das Innere des Kleidungsstücks rekonstruiert ist. Wählen Sie den Stil 3d oder flat_lay, senden Sie den POST-Request, pollen Sie alle 3 Sekunden und laden Sie das Ergebnis herunter, sobald es completed ist.
- Typische Dauer: 1.5–4 min
- Credits: 4 Credits bei 2K · 5 Credits bei 4K
- Verarbeitung: asynchron, Polling
- Limits: 600 Anfragen/Min.
- Authentifizierung: Bearer-Key
Jeder Zahlenwert auf dieser Seite stammt aus der Photta-API-Dokumentation · geprüft
RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/ghost-mannequin \
-H "Authorization: Bearer $PHOTTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"product_image": "https://cdn.yourstore.com/products/jacket-front.jpg",
"back_image": "https://cdn.yourstore.com/products/jacket-back.jpg",
"image_side": "front",
"angle": "side",
"style": "3d",
"background_color": "white",
"resolution": "2K",
"aspect_ratio": "3:4",
"user_instruction": "closed front, cream interior lining",
"brand_label_id": "7cc9f988-068b-44cd-8004-22f486b10e67"
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')const res = await fetch("https://api.photta.app/api/v1/ghost-mannequin", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PHOTTA_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
"product_image": "https://cdn.yourstore.com/products/jacket-front.jpg",
"back_image": "https://cdn.yourstore.com/products/jacket-back.jpg",
"image_side": "front",
"angle": "side",
"style": "3d",
"background_color": "white",
"resolution": "2K",
"aspect_ratio": "3:4",
"user_instruction": "closed front, cream interior lining",
"brand_label_id": "7cc9f988-068b-44cd-8004-22f486b10e67"
}),
});
const { data } = await res.json(); // data.id, data.statusimport os, requests
res = requests.post(
"https://api.photta.app/api/v1/ghost-mannequin",
headers={"Authorization": f"Bearer {os.environ['PHOTTA_API_KEY']}"},
json={
"product_image": "https://cdn.yourstore.com/products/jacket-front.jpg",
"back_image": "https://cdn.yourstore.com/products/jacket-back.jpg",
"image_side": "front",
"angle": "side",
"style": "3d",
"background_color": "white",
"resolution": "2K",
"aspect_ratio": "3:4",
"user_instruction": "closed front, cream interior lining",
"brand_label_id": "7cc9f988-068b-44cd-8004-22f486b10e67"
},
)
data = res.json()["data"] # data["id"], data["status"]
Auf einen Blick
Auf einen Blick
- Endpoint
- POST /api/v1/ghost-mannequin
- Authentifizierung
- Bearer-API-Schlüssel
- Verarbeitung
- Asynchron — Polling über den Status-Endpoint
- Typische Dauer
- 1.5–4 min
- Credits
- 4 Credits bei 2K · 5 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
Request und Response
Request
RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/ghost-mannequin \
-H "Authorization: Bearer $PHOTTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"product_image": "https://cdn.yourstore.com/products/jacket-front.jpg",
"back_image": "https://cdn.yourstore.com/products/jacket-back.jpg",
"image_side": "front",
"angle": "side",
"style": "3d",
"background_color": "white",
"resolution": "2K",
"aspect_ratio": "3:4",
"user_instruction": "closed front, cream interior lining",
"brand_label_id": "7cc9f988-068b-44cd-8004-22f486b10e67"
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')const res = await fetch("https://api.photta.app/api/v1/ghost-mannequin", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PHOTTA_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
"product_image": "https://cdn.yourstore.com/products/jacket-front.jpg",
"back_image": "https://cdn.yourstore.com/products/jacket-back.jpg",
"image_side": "front",
"angle": "side",
"style": "3d",
"background_color": "white",
"resolution": "2K",
"aspect_ratio": "3:4",
"user_instruction": "closed front, cream interior lining",
"brand_label_id": "7cc9f988-068b-44cd-8004-22f486b10e67"
}),
});
const { data } = await res.json(); // data.id, data.statusimport os, requests
res = requests.post(
"https://api.photta.app/api/v1/ghost-mannequin",
headers={"Authorization": f"Bearer {os.environ['PHOTTA_API_KEY']}"},
json={
"product_image": "https://cdn.yourstore.com/products/jacket-front.jpg",
"back_image": "https://cdn.yourstore.com/products/jacket-back.jpg",
"image_side": "front",
"angle": "side",
"style": "3d",
"background_color": "white",
"resolution": "2K",
"aspect_ratio": "3:4",
"user_instruction": "closed front, cream interior lining",
"brand_label_id": "7cc9f988-068b-44cd-8004-22f486b10e67"
},
)
data = res.json()["data"] # data["id"], data["status"]202 Accepted / Abgeschlossen
{
"data": {
"id": "gm_d4e5f6",
"status": "processing",
"style": "3d",
"angle": "side",
"background_color": "white",
"resolution": "2K",
"aspect_ratio": "3:4",
"credits_used": 4,
"created_at": "2026-04-10T16:00:00Z"
},
"request_id": "req_gm001"
}{
"data": {
"id": "gm_d4e5f6",
"status": "completed",
"style": "3d",
"angle": "side",
"background_color": "white",
"resolution": "2K",
"aspect_ratio": "3:4",
"output_url": "https://cdn.photta.app/generated/gm_d4e5f6.jpg",
"thumbnail_url": "https://cdn.photta.app/generated/gm_d4e5f6-thumb.jpg",
"credits_used": 4,
"created_at": "2026-04-10T16:00:00Z",
"completed_at": "2026-04-10T16:00:48Z",
"duration_ms": 48000
},
"request_id": "req_gm002"
}Request-Parameter
product_imageTyp: stringErforderlich
URL or base64 data URI of the garment photo (front or back, on a mannequin or flat).
back_imageTyp: string
URL or base64 data URI of the opposite side — helps the AI reconstruct the interior of the garment for a more realistic 3D effect.
image_sideTyp: string
Which side product_image represents.
= front
Werte:frontbackangleTyp: string
Camera angle for the output. "side" is worth calling out: the side view is reconstructed from the front photo (plus the back photo when provided), giving you a third catalog view without a third photoshoot — and it works well even on textured garments (crochet, lace, embroidery).
= straight
Werte:straightbacksidestyleTyp: string
Output style: "3d" (ghost mannequin with 3D body shape) or "flat_lay" (garment laid flat, mannequin removed).
= 3d
Werte:3dflat_laybackground_colorTyp: string
Background color.
= white
Werte:whitegraybeigeblackresolutionTyp: string
Output resolution. "2K" costs 4 credits per image; "4K" costs 5 credits per image. 4K is produced natively in a single generation — pick it upfront; the resolution cannot be changed after creation. Note: 4K cannot be combined with aspect_ratio 1:1 — that combination returns 400.
= 2K
Werte:2K4Kaspect_ratioTyp: string
Output aspect ratio. Note: 1:1 is not available at 4K resolution — 1:1 combined with 4K returns 400.
= 3:4
Werte:3:41:14:39:1616:9user_instructionTyp: string
Optional free-form note, max 400 characters (anything longer is silently truncated). A guarded steer for ambiguous rendering choices — e.g. "closed front", "cream interior lining", "buttoned up" — it never overrides the source garment, brand label, or structural reconstruction, and it is explicitly NOT a determinism/seed control.
brand_label_idTyp: string
Brand label UUID returned by the Brand Labels API. Applied to the generated garment when present. API v1 request fields use snake_case; use brand_label_id.
Fehler
- 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.
Limits
- 600 Anfragen pro Minute pro API-Schlüssel (Festes Zeitfenster; das Limit ist in jedem Tarif identisch)
- Ein 429 enthält Retry-After: 30 Sekunden
- Bis zu 10 MB pro Bild
- Formate: JPEG, PNG, WebP
- Gleichzeitige Batches pro Tarif: Free 1 · Hobby 2 · Seller 3 · Brand 4 · Studio 6
- Nur Polling — die API sendet keine Webhooks.
Ein Foto rein, ein Invisible-Mannequin-Foto raus
Quelle hochladen, Stil wählen, absenden, pollen, herunterladen.
Schritt 1
Einen API-Key generieren
Ghost Mannequin nutzt dieselben Credentials wie jede andere Photta-Funktion — ein Key, ein Credit-Guthaben.
Schritt 2
Das Quellfoto hochladen
Eine öffentliche URL oder eine Base64-Data-URI in `product_image` übergeben; `back_image` hinzufügen, wenn eine Rückansicht vorliegt. JPEG, PNG und WebP bis zu 10 MB pro Bild.
Schritt 3
Den Ghost-Mannequin-Job per POST absenden
POST an `/api/v1/ghost-mannequin` mit `product_image`, `style` (`3d` oder `flat_lay`) sowie optional `angle`, `background_color`, `resolution`. Polling ist das einzige Fertigstellungssignal — die API sendet keine Webhooks.
Schritt 4
Pollen, bis der Job abgeschlossen ist
GET `/api/v1/ghost-mannequin/:id` alle 3 Sekunden aufrufen, bis `data.status` auf `completed` oder `failed` steht; typische Dauer beträgt 1.5 bis 4 Minuten.
Schritt 5
Herunterladen und persistieren
Die Ausgabe ist ein PNG mit entfernter Schaufensterpuppe und rekonstruiertem Innenleben des Kleidungsstücks. Ideal für PDP-Ghost-Shots, Produktgalerien mit 3D-Look und Legeware-Inserts.
Derselbe Endpoint in Node.js, Python und cURL
Node.js
Ghost-Mannequin-API in Node.js
Rufen Sie Phottas ghost-Mannequin-API von einem Node.js-Backend mit nativem fetch auf. Kein SDK erforderlich: Key speichern, Job absenden, Ergebnis pollen.
LesenPython
Ghost-Mannequin-API in Python
Rufen Sie Phottas ghost-Mannequin-API in Python mit der requests-Bibliothek auf. Dreißigzeiliger Wrapper, async-kompatibel über httpx, funktioniert in Django, FastAPI und Celery.
LesencURL
Ghost-Mannequin-API mit cURL
Rufen Sie Phottas ghost-Mannequin-API direkt über die Shell mit cURL auf. Übermitteln, pollen, herunterladen — jedes Snippet lässt sich für skriptbasierte Pipelines mit jq kombinieren.
Lesen
Fragen, die Entwickler vor dem Produktiveinsatz von Ghost Mannequin stellen
Was ist Ghost-Mannequin-Fotografie?
Eine PDP-Darstellung, bei der das Kleidungsstück auf einem unsichtbaren Körper zu schweben scheint und Form sowie Innenkonstruktion gleichzeitig zeigt. Historisch wird dies aus mehreren Studioaufnahmen zusammengesetzt; Phottas API erzeugt dies in einem einzigen Aufruf aus einem Foto mit Puppe.
Wie viel kostet Ghost Mannequin?
4 Credits bei 2K, 5 Credits bei 4K — auf jeder Stufe einen Credit günstiger als Try-on. Fehlgeschlagene Jobs werden automatisch erstattet.
Was ist der Unterschied zwischen 3D- und Flat-lay-Stil?
Der `3d`-Stil behält die dreidimensionale Körperform der Schaufensterpuppe bei — das Kleidungsstück behält sein Volumen, Schultern und Ärmel wirken natürlich und das Innere wird rekonstruiert. `flat_lay` reduziert das Kleidungsstück auf ein sauberes 2D-Layout, ideal für Kapselkollektionen oder Marktplatz-Listings, die eine konsistente Frontalansicht verlangen.
Kann ich mehrere Fotos im Batch verarbeiten?
Ja. Sende einen POST an `/api/v1/ghost-mannequin/batch` mit einem Array von Quellbildern. Die Antwort enthält eine Batch-ID sowie Generierungs-IDs pro Element. Pollen Sie `/api/v1/ghost-mannequin/batch/:id` für einen Gesamtstatus oder jedes Element einzeln.
Bleiben Innennähte und Etiketten erhalten?
Ja — das Modell rekonstruiert die Innenseite des Kleidungsstücks (Krageninnenseite, Ärmelbündchen innen, Bundfutter), anstatt eine generische Oberfläche zu halluzinieren. Auf dem Originalfoto sichtbare Etiketten und Drucklabels bleiben nach Möglichkeit erhalten.
Wie polle ich das Ergebnis?
GET `/api/v1/ghost-mannequin/:id` alle 3 Sekunden ausführen. Batch-Jobs pollen einen übergeordneten Endpoint, der einen aggregierten Status sowie eine Aufschlüsselung pro Element zurückgibt.
Verwandte Funktionen
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.
Zum EndpointFunktionen
Jewelry-Try-on-API für Halsketten, Ringe, Armbänder und Ohrringe
Halsketten, Ringe, Armbänder und Ohrringe via REST auf KI-Modellen platzieren. 5 credits bei 2K, integrierte Nahaufnahme-Mannequins, reflexionsbewusstes Rendering aus der Photta-Dokumentation.
Zum EndpointBuild
Automatisieren Sie die Ghost-Mannequin-Freistellung für Ihren Katalog
Rezept für die nächtliche Katalog-Automatisierung: Ziehen Sie die Produkt-Updates von gestern, senden Sie sie als Batch an Phottas Ghost-Mannequin-API, pollen Sie den übergeordneten Batch und speichern Sie die Daten in Ihrer Datenbank.
Zum EndpointVergleich
Photta vs. Pixazo — First-Party-Pipeline oder Modell-Aggregator
Photta vs. Pixazo im Vergleich: First-Party-Fashion-Pipeline vs. Multi-Modell-Aggregator. Endpoints, Latenz, Free Tier und Trade-offs. Stand: 2026-04-19.
Zum EndpointSchnellstart
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.
Zum EndpointReferenz
Photta API-Fehler
Die vollständige Liste der Photta API-Fehlertypen samt Statuscodes, das Format des Error-Bodys und welche Fehler sich für einen Retry eignen.
Zum EndpointReferenz
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.
Zum Endpoint
Jeder Zahlenwert auf dieser Seite stammt aus der Photta-API-Dokumentation · geprüft
Testen Sie die API in fünf Minuten
Generieren Sie einen Photta-API-Schlüssel, fügen Sie das obige cURL-Snippet ein, und Sie erhalten Ihr erstes Bild am Model, noch bevor der Kaffee fertig gebrüht ist.
- 1.5–4 min
- 4 Credits bei 2K · 5 Credits bei 4K
- asynchron, Polling
- 600 Anfragen/Min.
- Bearer-Key