HiAPI
Blog

Benutzerhandbuch

Imagen 4 Produktbilder für den E-Commerce: Prompts, Batch-Code und Qualitätskontrolle

Nov 4, 2026
Imagen 4 Produktbilder für den E-Commerce: Prompts, Batch-Code und Qualitätskontrolle
Modell
imagen-4

Überblick

  • Das Standard-Imagen 4 läuft auf HiAPI unter imagen-4.0 zum Preis von $0.06 pro Bild, erzeugt ein Bild pro Anfrage und unterstützt ausschließlich Text-zu-Bild.Öffnen Sie die Imagen 4 Modellseite, um zunächst einen Prompt auszuprobieren.
  • Für Produktkataloge eignet es sich gut für Produktbilder auf weißem Hintergrund und Lifestyle-Aufnahmen, die sonst für jede Farbvariante einzeln fotografiert werden müssten. Es kann jedoch nicht Ihre tatsächliche SKU wiedergeben, da es keine Referenzbildeingabe gibt.
  • aspect_ratio ist ein Pflichtfeld (kein Standardwert), und seed muss ein Ziffernstring sein. In unserem Lauf bestand "seed": "sku-dripper-01" die Validierung, aber etwa eine Sekunde später scheiterte jede Aufgabe mit TASK_FAILED.
  • Planen Sie einen Qualitätskontrollschritt ein. In einem Batch mit 4 Bildern erhielten wir eine nicht angeforderte Glaskanne, eine glänzende Glasur, wo eine matte gefordert war, und falschen Beschriftungstext auf Requisiten – trotz negative_prompt: "text, logo".

Was dieser Leitfaden abdeckt

Dies ist ein praxisnaher Workflow für Onlineshops, um ein Bildset für eine Produktlinie zu erzeugen: ein Katalogbild auf weißem Hintergrund pro SKU, ein Lifestyle-Bild für die Produktseite und ein vertikaler Ausschnitt für mobile Stories. Alles im Folgenden wurde am 2026-11-04 gegen die Live-API ausgeführt, mit einem fiktiven Produkt: einem graugrünen keramischen Pour-over-Filter und einer passenden Tasse.

Wenn Sie nur den ersten Request zum Laufen bringen möchten, beginnen Sie mit So verwenden Sie die Imagen 4 API. Allgemeine Prompt-Vorlagen finden Sie unter Imagen 4 Prompts. Dieser Leitfaden behandelt, wie Sie Shop-Bildsets im Batch erzeugen und vor der Veröffentlichung prüfen.

Wählen Sie die Stufe, bevor Sie Prompts schreiben

Die drei Imagen 4-Stufen auf HiAPI sind alle Text-zu-Bild mit identischer Request-Struktur: Um die Stufe zu wechseln, ändern Sie einfach die model-ID. Die Preise stammen aus der HiAPI-Preisliste vom Testtag.

Stufe Modell-ID Preis pro Bild Modellseite
Fast imagen-4.0-fast $0.03 Imagen 4 Fast
Standard imagen-4.0 $0.06 Imagen 4
Ultra imagen-4.0-ultra $0.09 Imagen 4 Ultra

Für einen Produktkatalog ist die Rechnung einfach. 200 SKUs × (1 Produktbild + 1 Lifestyle-Bild) = 400 Bilder, das sind $24 in der Standard-Stufe, $12 in Fast und $36 in Ultra – ohne jegliche Wiederholungsversuche. In diesem Artikel wurde nur die Standard-Stufe getestet, daher treffen wir keine Aussage zur Qualität von Fast oder Ultra. Eine vollständige Preisübersicht finden Sie unter Imagen 4 API-Preise.

Der Request: vier Felder, zwei davon fehleranfällig

Das Eingabeschema von imagen-4.0 ist geschlossen. Hier sind die Grenzfälle, auf die wir beim Aufbau der Batch-Verarbeitung gestoßen sind, mit den exakten Fehlermeldungen:

Feld Regel Was wir beobachtet haben
prompt Pflicht-String —
aspect_ratio Pflicht, einer von 1:1, 16:9, 9:16, 3:4, 4:3, auto Weggelassen: aspect_ratio: missing required field "aspect_ratio". "2:1": value must be one of '1:1', '16:9', '9:16', '3:4', '4:3', 'auto'
negative_prompt Optionaler String Akzeptiert. Reduziert Text auf Requisiten, beseitigt ihn aber nicht (siehe Qualitätskontrolle)
seed Optionaler String Zahl (12): seed: got number, want string. Nicht-numerischer String ("sku-dripper-01"): mit HTTP 200 akzeptiert, danach endet die Aufgabe mit TASK_FAILED. Ziffernstring ("1042"): funktioniert normal
Alles andere Wird abgelehnt additional properties 'foo' not allowed

Das seed-Problem kostete uns eine zusätzliche Runde. Es ist verlockend, den SKU-Code als seed zu verwenden, um bei erneuten Läufen nachvollziehbar zu bleiben, und der Validator ließ es durch. Alle vier Aufgaben in unserem ersten Batch lieferten Folgendes zurück:

{"code":200,"data":{"error":{"code":"TASK_FAILED","message":"task failed"},"model":"imagen-4.0","status":"fail"}}

Dann entfernten wir die Felder einzeln. Derselbe Prompt nur mit negative_prompt war erfolgreich, nur mit "seed": "sku-dripper-01" scheiterte, und mit "seed": "1042" war er erfolgreich. Halten Sie seed numerisch und speichern Sie die SKU-Zuordnung in Ihrer eigenen Auftragstabelle.

Die Ausgabegröße hängt vom Seitenverhältnis ab. In unserem Lauf lieferte 1:1 1024×1024, 4:3 1152×864 und 9:16 720×1280, jeweils als WebP. Wenn Ihr Shop hochskalierte Bilder mit 2000 px benötigt, planen Sie einen Upscaling-Schritt ein. Die Ausgabe selbst ist nicht so groß.

Prompts für Katalog-Bildsets

Schreiben Sie Prompt-Vorlagen nach Aufnahmeart statt nach Produkt und füllen Sie dann die Produktbeschreibung ein. Halten Sie Beleuchtung, Kamerawinkel und Hintergrund über die SKUs hinweg konsistent, damit die Kacheln wie ein einheitlicher Katalog wirken.

Produktbild (1:1). Geben Sie Hintergrund, Komposition, eine einzige Lichtrichtung und den gewünschten Schatten an:

Studio packshot of a matte sage-green ceramic coffee mug with a thin loop handle
on a seamless pure white background, centered, handle pointing right, eye-level view,
soft diffused key light from the left, gentle contact shadow, e-commerce catalog photography

Die Tasse kam sauber zurück: Der Griff zeigt wie gefordert nach rechts, der Schatten ist weich, der Hintergrund gleichmäßig. Keine Bearbeitung nötig.

Lifestyle-Bild (4:3). Geben Sie das Hauptobjekt, die Oberfläche, die Lichtrichtung und an, welche Requisiten unscharf sein sollen. Betonen Sie dann erneut, dass das Produkt das scharfe Motiv ist:

Lifestyle product photo: a matte sage-green ceramic pour-over dripper sitting on a glass carafe
on a light oak kitchen counter, morning window light from the right, a bag of coffee beans and a
gooseneck kettle softly out of focus in the background, warm natural tones, shallow depth of field,
the dripper is the sharp hero of the frame

Dieser Prompt erzeugte das Bild oben in diesem Artikel.

Vertikales Story-Bild (9:16). Wenn oben Platz für eine Überschrift sein soll, fordern Sie ausdrücklich Negativraum an:

Vertical lifestyle product photo for a mobile story: overhead flat lay of a matte sage-green ceramic
pour-over dripper on a linen napkin, scattered roasted coffee beans, a small ceramic cup of black coffee,
on a pale stone surface, soft even daylight, generous empty space in the top third for a headline

Das obere Drittel ist wie gefordert leer. Aber beachten Sie die ganzen Kaffeebohnen im Filter: Niemand brüht Kaffee auf diese Weise, und Kaffeekäufer werden es bemerken. Mehr dazu weiter unten.

Asynchroner Batch-Code

Die Bildgenerierung bei HiAPI ist asynchron: POST /v1/tasks gibt eine taskId zurück, dann fragen Sie GET /v1/tasks/{taskId} ab, bis status success oder fail ist (siehe Asynchrone API-Dokumentation). Für einen Produktkatalog reichen Sie alle Aufgaben auf einmal ein und fragen Sie parallel ab. Dies ist das Skript, das wir ausgeführt haben, mit gekürzten Prompts. Die beiden Szenenbilder stammen direkt aus diesem Skript. Die beiden Produktbilder wurden einzeln mit denselben Prompts erzeugt, während wir den oben beschriebenen seed-Fehler untersuchten (das Filter-Produktbild ohne seed).

import os, time, json, concurrent.futures as cf
import requests

API = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}",
           "Content-Type": "application/json"}

NEG = "text, logo, watermark, hands, people, clutter, reflections of camera"

JOBS = [
    {"sku": "dripper-white", "aspect_ratio": "1:1", "seed": "1041", "prompt": "Studio packshot of ..."},
    {"sku": "mug-white",     "aspect_ratio": "1:1", "seed": "1042", "prompt": "Studio packshot of ..."},
    {"sku": "dripper-scene", "aspect_ratio": "4:3", "seed": "2041", "prompt": "Lifestyle product photo: ..."},
    {"sku": "dripper-story", "aspect_ratio": "9:16", "seed": "3041", "prompt": "Vertical lifestyle product photo ..."},
]

def submit(job):
    body = {"model": "imagen-4.0",
            "input": {"prompt": job["prompt"], "aspect_ratio": job["aspect_ratio"],
                      "negative_prompt": NEG, "seed": job["seed"]}}  # seed: digits only
    r = requests.post(API, headers=HEADERS, json=body, timeout=30)
    r.raise_for_status()
    return r.json()["data"]["taskId"]

def wait(task_id, timeout_s=300):
    deadline = time.time() + timeout_s
    while time.time() < deadline:
        r = requests.get(f"{API}/{task_id}", headers=HEADERS, timeout=30)
        data = r.json()["data"]
        if data["status"] in ("success", "fail"):
            return data
        time.sleep(4)
    raise TimeoutError(task_id)

def run(job):
    t0 = time.time()
    task_id = submit(job)
    data = wait(task_id)
    if data["status"] != "success":
        return {"sku": job["sku"], "status": "fail", "error": data.get("error")}
    url = data["output"][0]["url"]
    img = requests.get(url, timeout=60).content
    path = f"{job['sku']}.webp"
    open(path, "wb").write(img)          # download now: output URLs expire
    return {"sku": job["sku"], "status": "success", "task_id": task_id,
            "seconds": round(time.time() - t0, 1), "bytes": len(img), "file": path}

with cf.ThreadPoolExecutor(max_workers=4) as pool:
    for result in pool.map(run, JOBS):
        print(json.dumps(result))

Drei Details sind im Produktivbetrieb wichtig:

  1. Fehlgeschlagene Aufgaben liefern weiterhin HTTP 200. Prüfen Sie data.status == "fail" und data.error.code. Verlassen Sie sich nicht nur auf raise_for_status().
  2. Sofort herunterladen. output[0].url ist ein temporärer Link mit einem expireAt-Zeitstempel (in unseren Antworten etwa 7 Tage). Kopieren Sie die Bytes in Ihren eigenen Speicher oder CDN. Hotlinken Sie die URL nicht aus Ihrem Shop.
  3. Protokollieren Sie die Task-ID neben der SKU. Wenn ein Prüfer ein Bild ablehnt, müssen Sie wissen, welcher Prompt, welcher seed und welche Task-ID es erzeugt haben.

In unserem Lauf war eine einzelne Aufgabe serverseitig in 7–8 Sekunden abgeschlossen (created → completed). Die beiden parallelen Szenenaufgaben dauerten 31 bzw. 42 Sekunden in echter Zeit, einschließlich des 4-Sekunden-Abfrageintervalls und des Downloads. Mit max_workers=4 dominieren bei kleinen Batches die Abfrage-Overheads gegenüber der Generierungszeit.

Qualitätskontrolle: Was vor der Veröffentlichung von Bildern zu prüfen ist

Text-zu-Bild erzeugt plausible Produkte, nicht Fotos des Artikels in Ihrem Lager. Jedes Bild muss manuell oder automatisiert gegen die echte SKU geprüft werden. Hier sind die Probleme, die wir in einem Batch mit 4 Bildern gefunden haben:

Prüfpunkt Situation in unserem Batch Behebung
Nur die aufgeführten Produkte im Bild Das Filter-Produktbild enthielt zusätzlich eine passende grüne Glaskanne mit Griff, die im Prompt nie gefordert war (siehe Bild oben). Fügen Sie „single object, nothing else in frame“ hinzu und versuchen Sie es erneut. Veröffentlichen Sie niemals ein Set, das Sie nicht verkaufen.
Oberflächenwirkung und Material Wir forderten eine „matte“ Glasur. Beide Filterbilder kamen glänzend zurück. Die Tasse war eher seidig-matt. Behandeln Sie Materialwörter als Hinweis. Vergleichen Sie mit dem echten Produkt und lehnen Sie bei Abweichung ab.
Text auf Requisiten Der Kaffeebeutel im Lifestyle-Bild hatte eine logoähnliche Markierung und unleserlichen Beschriftungstext, trotz negative_prompt: "text, logo". Lassen Sie Requisiten mit Beschriftung nicht im Prompt auftauchen oder verwischen bzw. beschneiden Sie sie. Lassen Sie niemals falschen Text in Produktlistings gelangen.
Produktlogik Die Draufsicht platzierte ganze Kaffeebohnen im Filter. Lassen Sie Szenenbilder von jemandem prüfen, der die Produktkategorie kennt.
Konsistenz zwischen den Bildern Rippenmuster und Bodenform des Filters unterschieden sich zwischen Produktbild, Szenenbild und Draufsicht. Mischen Sie generierte Bilder derselben „gleichen“ SKU nicht auf einer Produktseite, es sei denn, sie stimmen mit dem echten Artikel überein.
Größe und Seitenverhältnis Alle Ausgaben entsprachen den geforderten Seitenverhältnissen (1024², 1152×864, 720×1280). Prüfen Sie die Pixelabmessungen nach dem Download automatisch.

Der letzte Punkt ist die entscheidende Entscheidung für den Shop.Verwenden Sie Imagen 4 für Kategorie-Banner, Lifestyle-Stimmungsbilder, Werbecreatives und Platzhalter für Produkte, die nur als Spezifikation existieren. Für Listing-Fotos, die Ihr exaktes Produkt zeigen müssen, beginnen Sie mit echten Produktfotos und wechseln Sie zu einem Bild-zu-Bild-Modell. Unser Seedream 4.5 Bild-zu-Bild E-Commerce-Leitfaden behandelt diesen Workflow ausführlich.

Häufige Fragen

Kann imagen-4.0 mein echtes Produkt in eine neue Szene setzen? Nein. Auf HiAPI akzeptiert es nur prompt, aspect_ratio, negative_prompt und seed. Es gibt kein Bild-Eingabefeld, daher kann Ihr Produktfoto nicht als Referenz dienen.

Entfernt negative_prompt allen Text? In unseren Tests nicht. Es lohnt sich, es zu senden, aber auf Hintergrundrequisiten in Lifestyle-Szenen erschien weiterhin falscher Beschriftungstext. Die zuverlässige Lösung ist, Requisiten mit Beschriftung zu vermeiden.

Warum scheitert meine Aufgabe sofort mit TASK_FAILED? Prüfen Sie zuerst Ihren seed. Ein nicht-numerischer String wie "sku-dripper-01" besteht die Validierung, aber in unserem Lauf scheiterte jede Aufgabe. Verwenden Sie Ziffern als String, z. B. "1042".

Ist Google-Imagen4 ein anderes Modell? In unseren Tests waren Anfragen mit "model": "Google-Imagen4" erfolgreich, während die Aufgabenpayload "model": "imagen-4.0" meldete. Verwenden Sie in neuem Code imagen-4.0.

Nächste Schritte

Wählen Sie ein Produkt, schreiben Sie die drei Prompt-Vorlagen oben dafür und führen Sie das Batch-Skript gegen das Imagen 4 Modell aus. Wenn Sie es in eine Katalog-Pipeline integrieren, deckt die Asynchrone API-Dokumentation Authentifizierung und Abfrage ab.

Ähnliche Artikel

Alle Artikel ansehen →

Starte mit persistenten KI-Artefakten

Hol dir deinen API-Key und rufe Bild-, Video- und Audiomodelle über eine einzige task-basierte API auf.

API-Dokumentation lesen