Tutorial
Google Virtual Try-On API-Integration: Personenbild und Kleidungsbild
Trennen Sie die Bildfelder für Person und Kleidung, reichen Sie Tasks über HiAPI ein und fragen Sie Ergebnisse ab – ganz ohne Prompt.
Wenn die beiden Bilder jeweils im richtigen Feld stehen, ist die Integration klar aufgesetzt. Das Personenbild gehört in person_image_url, das Kleidungsbild in product_image_url; füllt man das Personenbild in das Kleidungsfeld, ändert sich die Bedeutung der Eingabe.
TL;DR
Google Virtual Try-On kostet $0.1075 pro Bild; Preise und Budget ansehen. Verwenden Sie die HiAPI-/v1/tasks-Schnittstelle: Task einreichen, taskId erhalten, dann Ergebnis abfragen. Kein Prompt erforderlich.
Eingabevorbereitung und Felder
Wählen Sie ein frontales Einzelporträt, bei dem die Körperkontur möglichst klar erkennbar ist; für die Kleidung verwenden Sie ein Flachlege- oder Hängebild mit sauberem Hintergrund und vollständigen Rändern. Die beiden permanenten Bild-URLs im folgenden Beispiel stehen für Person A und ein rot-weiß gestreiftes T-Shirt und können durch eigene öffentliche Bild-URLs ersetzt werden.
| Feld | Ausfüllen |
|---|---|
person_image_url |
Pflichtfeld; öffentliche HTTP(S)-URL des Personenfotos |
product_image_url |
Pflichtfeld; öffentliche HTTP(S)-URL des Kleidungsproduktbilds |
num_images |
Ganzzahl; explizit 1 eintragen, aktuell wird nur ein Bild unterstützt |
Geschäftsanforderungen auf die Anfrage abbilden
Wenn dieselbe Person verschiedene Kleidungsstücke anprobieren soll, bleibt person_image_url fest, und product_image_url wird Stück für Stück ersetzt; wenn dasselbe Kleidungsstück an verschiedenen Personen gezeigt werden soll, bleibt das Produktbild fest und das Personenbild wird ersetzt. Wenn Sie für dieselbe Bildgruppe mehrere Kandidaten benötigen, behalten Sie beide Eingaben bei und reichen Sie jeweils separat ein, wobei jedes Mal weiterhin num_images: 1 angegeben wird. Es empfiehlt sich, in den eigenen Task-Aufzeichnungen Produktnummer und Version des Personenbilds zu speichern und die Zuordnung nicht nur anhand des Dateinamens des Ergebnisses zu erraten.
Für Person und Kleidung müssen jeweils öffentlich lesbare HTTP(S)-Bild-URLs angegeben werden; lokale Datenträgerpfade oder Data-URIs werden nicht als Bild-URL akzeptiert. Dass ein Bild im Browser bei angemeldeter Sitzung sichtbar ist, bedeutet nicht, dass andere Dienste es lesen können; prüfen Sie den Link vor dem Einreichen unter Bedingungen, die keine Anmeldesitzung voraussetzen. Bestätigen Sie möglichst, dass das Bild selbst zurückgegeben wird und nicht eine Galerieseite oder eine Berechtigungshinweisseite, und stellen Sie sicher, dass das Bild während der Task-Ausführung erreichbar bleibt.
Wenn das Personenbild den Saum verdeckt oder Hände großflächig mit der Kleidung überlappen, ziehen Sie zunächst ein Foto mit klareren Grenzen in Betracht. Für das Kleidungsbild bevorzugen Sie ein einzelnes Flachlege- oder Hängefoto mit vollständigen Rändern und vermeiden es, ein Ergebnis eines Anprobeversuchs erneut fälschlich als eigenständiges Produktbild zu verwenden. Die öffentlichen Felder bieten keine Einstellungen für lokalen Schutz, Manschettenanpassung oder Schuhfixierung; solche Anforderungen lassen sich nicht durch Hinzufügen benutzerdefinierter Felder ausdrücken.
Die Wahl klarer Bilder ist eine Arbeitsmethode; ob die Schnittstelle Bilder akzeptiert, und ob das Produkt korrekt dargestellt wird, sind getrennt zu prüfen. Dieser Artikel gibt für Try-On keine unbelegten Zusagen zu Dateigröße, Pixelobergrenzen oder Ausgabemaßen ab; Einschränkungen anderer Bildmodelle lassen sich nicht einfach übertragen.
Task einreichen: cURL
Das folgende Beispiel verwendet Bash/cURL. Konfigurieren Sie zunächst HIAPI_API_KEY in der Laufzeitumgebung; die Bild-URLs in der Anfrage können ersetzt werden, der Schlüssel bleibt in der Serverumgebung.
curl -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "google-virtual-try-on",
"input": {
"person_image_url": "https://static.hiapi.ai/gallery/2026/10/9f656c8b6ecf94d5.webp",
"product_image_url": "https://static.hiapi.ai/model-covers/2026/10/22/1792660602486-b5b70d2cfdd8dc95-1792152569828-b5b70d2cfdd8dc95-t-g1-0.webp",
"num_images": 1
}
}'
Eine erfolgreiche Einreichung gibt data.taskId zurück. Speichern Sie diesen Wert für spätere Abfragen.
Task abfragen und Ergebnis speichern
Setzen Sie die Task-Nummer in TASK_ID und fragen Sie ab:
curl "https://api.hiapi.ai/v1/tasks/$TASK_ID" \
-H "Authorization: Bearer $HIAPI_API_KEY"
Wenn der Task data.status=success hat, rufen Sie das Bild über data.output[0].url ab und speichern es. Für dauerhaft laufende Anwendungen können Sie auf oberster Ebene der Einreichungsanfrage callback.url und callback.when: "final" setzen, um Abschlussbenachrichtigungen zu erhalten, und nach taskId deduplizieren; sowohl Erfolg als auch Fehler können Benachrichtigungen auslösen. Die Abfrage per GET eignet sich für Debugging und Nachprüfungen.
Polling, Callbacks und Timeout-Behandlung
Einreichen und Abfragen sind zwei verschiedene Vorgänge. Nachdem Sie data.taskId erhalten haben, zeichnen Sie diese zusammen mit der Eingabe auf und fragen Sie dann GET /v1/tasks/:id ab. Solange kein Endzustand erreicht ist, warten Sie weiter und ersetzen Sie die Abfrage nicht durch ein erneutes POST. Polling-Intervall und maximale Wartezeit der Anwendung legen Sie in Ihrer Anwendung fest; dieser Artikel gibt keine durchschnittliche Dauer oder feste Abschlussfrist an, die als Zusage dienen könnte; auch die Netzwerk-Timeouts in den Beispielen sind keine Zusage zur Dienstlaufzeit.
Ein Timeout der Abfrageanfrage bedeutet nur, dass dieses Lesen nicht rechtzeitig abgeschlossen wurde. Bewahren Sie die Task-Nummer auf und prüfen Sie denselben Task später erneut. Wenn die Einreichungsanfrage selbst ein Timeout erleidet und Sie keine Nummer erhalten haben, ist unklar, ob der Server den Task bereits angenommen hat: Bewahren Sie Einreichungszeitpunkt und Anfrageinhalt auf, prüfen Sie zunächst die Task-Aufzeichnungen und entscheiden Sie dann, ob Sie erneut einreichen. Interpretieren Sie Client-Ausnahmen nicht direkt als Task-Fehler und versprechen Sie nicht, dass wiederholte Anfragen automatisch zusammengeführt werden.
Die Callback-Konfiguration gehört auf die oberste Ebene des Anfrage-Bodys, gleichrangig mit model und input, und darf nicht in die Modelleingabe gesteckt werden. Verwenden Sie bei callback.url zugleich callback.when: "final". Abschlussbenachrichtigungen können sowohl Erfolg als auch Fehler bedeuten; prüfen Sie daher nach Erhalt der Benachrichtigung weiterhin den Status. Abfrage und Callback können denselben Task betreffen; die Anwendung sollte nach taskId deduplizieren, um doppelte Downloads oder doppelt ausgelöste Folgearbeiten zu vermeiden. Hier wird die Vorgehensweise in der Anwendung beschrieben; es wird nicht angenommen, dass ein Callback zwangsläufig innerhalb einer bestimmten Frist eintrifft.
Nach data.status=success prüfen Sie, ob data.output tatsächlich eine lesbare Ergebnis-URL enthält, und laden Sie dann das Bild herunter. Bei fail speichern Sie die Fehlermeldung und korrigieren die Anfrage entsprechend dem Inhalt; raten Sie nicht allein anhand eines Status, ob das Bild zu groß war, ein Netzwerkfehler vorlag oder eine andere konkrete Ursache. Bei unerwarteten Status oder fehlender Ausgabe bewahren Sie die Antwort auf und prüfen Sie erneut; behandeln Sie ein leeres Ergebnis nicht als erfolgreiche Auslieferung.
Download-Fehler und Generierungsfehler sind ebenfalls zu trennen. Wenn der Task erfolgreich war, die Datei aber nicht gespeichert wurde, lesen Sie zunächst das vorhandene Ergebnis erneut oder laden Sie es erneut herunter, statt das Bild direkt neu zu erzeugen. Beim Archivieren bewahren Sie Task-Nummer, Eingabezuordnung und endgültigen Dateispeicherort auf, damit später genau nachvollziehbar ist, aus welcher Anfrage ein Bild stammt. Ein dem Benutzer angezeigtes „Wartezeit überschritten“ sollte bedeuten, dass die aktuelle Oberfläche das Warten beendet, und nicht eigenmächtig verkünden, der serverseitige Task sei abgebrochen.
Python-Einreichungsbeispiel
In der Umgebung muss requests installiert sein. Das timeout=60 hier ist die maximale Wartezeit der Client-Netzwerkanfrage, nicht die Dauer der Bilderzeugung.
import os
import requests
payload = {'model': 'google-virtual-try-on', 'input': {'person_image_url': 'https://static.hiapi.ai/gallery/2026/10/9f656c8b6ecf94d5.webp', 'product_image_url': 'https://static.hiapi.ai/model-covers/2026/10/22/1792660602486-b5b70d2cfdd8dc95-1792152569828-b5b70d2cfdd8dc95-t-g1-0.webp', 'num_images': 1}}
response = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"},
json=payload,
timeout=60,
)
response.raise_for_status()
result = response.json()
task_id = result["data"]["taskId"]
print(task_id)
Prüfung vor dem Einreichen und der Ergebnisse
Die Schnittstelle benötigt keinen prompt. Setzen Sie num_images nicht auf 2 oder 4; wenn Sie Kandidatenbilder benötigen, starten Sie separate Anfragen. Prüfen Sie zuerst, dass beide Bilder öffentlich lesbar sind und die Felder nicht vertauscht wurden, und reichen Sie dann ein. Lesen Sie bei einem Fehlerstatus die zurückgegebene Meldung und korrigieren Sie die Eingabe; reichen Sie nicht unverändert wiederholt ein.
Rückgegebene Bilder nach Verwendungszweck abnehmen
Vergleichen Sie zunächst das Ergebnis nebeneinander mit dem Personenbild und prüfen Sie Gesicht, Frisur, Haltung, Hintergrund sowie Hose und Schuhe, die unverändert bleiben sollen. Prüfen Sie dann anhand des Kleidungsbilds Farbe, Kragenform, Ärmellänge, Muster und Saum. Bei einem gestreiften T-Shirt ist zu prüfen, wie die Querstreifen an Brust und Ärmeln anschließen; bei einem Kleid sind Träger, fallender Ausschnitt und Falten in Handnähe zu prüfen; bei einem Hemd, ob die Manschetten hochgekrempelt und der Saum in den Hosenbund gesteckt ist. Diese Prüfungen stammen aus den in den Beispielen sichtbaren Veränderungen; es wird nicht garantiert, dass bei anderen Eingaben nur diese Veränderungen auftreten.
„Datei heruntergeladen“ und „Bild für Produktseiten verwendbar“ sind getrennt zu erfassen. Auch nach Erfolg können Veränderungen außerhalb der Kleidung auftreten; der Schnittstellenstatus darf die manuelle Abnahme nicht automatisch ersetzen. Stammt ein Mangel von einer Verdeckung in der Eingabe, tauschen Sie zuerst die Eingabe und versuchen es erneut; muss ein Produkt eine bestimmte Ärmellänge oder ein festes Accessoire zeigen, prüfen Sie zuerst, ob das aktuelle Ergebnis diese Vorgabe erfüllt, und ignorieren Sie Produktdetails nicht, nur weil das Gesamtoutfit natürlich wirkt.
Wenn Sie für dieselbe Eingabegruppe Kandidaten nachreichen, bewahren Sie frühere Ergebnisse zum Vergleich auf und überschreiben Sie keine alten Dateien mit neuen. Notieren Sie bei der Auswahl die Gründe für Annahme oder Ablehnung, damit ähnliche Produkte später leichter behandelt werden können. Bilder dienen nur der Beobachtung des Aussehens; tatsächliche Größen und Tragegefühl erfordern zusätzlich Angaben zu Kleidungsmaßen und Informationen aus realen Anproben.
Häufige Fragen
Können Personenbild und Kleidungsbild dasselbe Feld verwenden?
Nein. Das Personenbild gehört in person_image_url, das Kleidungsbild in product_image_url.
Muss ein prompt-Parameter hinzugefügt werden?
Nein. Die Schnittstelle hat kein Prompt-Feld; die Anprobe wird von den beiden Eingabebildern bestimmt.
Warum explizit num_images: 1 angeben?
Aktuell wird nur ein Ergebnis unterstützt; die explizite Angabe stellt die Anzahl der Anfragebilder direkt dem Budget von $0.1075 pro Bild gegenüber.
Kann man das Bild direkt nach Erhalt der taskId abrufen?
Zusätzlich muss der Task abgefragt oder eine Benachrichtigung empfangen werden; nach data.status=success rufen Sie das Bild über data.output[0].url ab.
Weiterlesen
Preise und Budget · API-Integration · Beispiele und Bildauswahl · Google Virtual Try-On
Wenn Sie zwischen Anprobe und allgemeiner Bildbearbeitung wählen müssen, sehen Sie sich den Vergleich von Google Virtual Try-On mit Seedream 5.0 Lite an und prüfen Sie Kleidung, Schuhe und Personenaussehen Punkt für Punkt.
Ähnliche Artikel
Alle Artikel ansehen →-
Tutorial
Recraft Creative Upscale Praxisbeispiele: Landschaften und Aquarell hochskalieren
Betrachten Sie die Texturveränderungen bei Holzhütte, See und Aquarellstadt, unterscheiden Sie vollständige Ergebnisse von Vorschauen und prüfen Sie neu gezeichnete Details.
-
Tutorial
Ungültiger OpenAI API key: Fehlerbehebung bei 401, Umgebungsvariablen und Projektkonfiguration
OpenAI 401, 403 und 429 unterscheiden, Umgebungsvariablen sowie Organisations- und Projekteinstellungen prüfen und Zugangsdaten mit einer schreibgeschützten Anfrage verifizieren.
-
Tutorial
Kling 4.0 Prompt-Sammlung: 6 Szenen zum direkten Kopieren für deine Videos
E-Commerce-Produkt, Food, Reise-Landschaft, Alltagsszene, leere Szene mit Ton und Bild-zu-Video – jede Szene mit echtem Ergebnisvideo, vollständigem Prompt und Ein-Klick-Vorausfüll-Link.