Tutorial
Mit der hiapi API Produktbilder für den E-Commerce mit qwen-image-2.0 generieren
Ein direkt ausführbarer curl + Python-Leitfaden für Katalog-Studioaufnahmen, Szenenbilder, Varianten und zweisprachige Banner – je Bild 0,025 $ – einschließlich der Sonderregeln für das size-Parameterformat, die kein anderes hiapi-Bildmodell hat.
qwen-image-2.0 ist das Text-zu-Bild-Modell der zweiten Generation von Alibaba, das über die /v1/tasks-Schnittstelle von hiapi bereitgestellt wird, zum Preis von 0,025 $ pro Bild mit einer Standardausgabe von 2K. Für den E-Commerce ist es aus zwei Gründen besonders interessant: In dieser Preisklasse ist sein chinesisches Textrendering das sauberste aller aktuellen Text-zu-Bild-Modelle; und seine Prompt-Treue gegenüber langen, detaillierten Produkt-Briefings ist sehr stabil – genau das, was grenzüberschreitende Listings wirklich brauchen.
Dieser Leitfaden ist die ausführbare Version dieses Workflows. Jeder API-Aufruf ist etwas, das Sie direkt in Ihr Terminal einfügen können, die Prompt-Vorlagen wurden auf dem Live-Endpunkt getestet und gerendert, und der Preis pro Bild ist eine Live-Zahl aus der HiAPI-Preisgestaltung. Hier gibt es keinerlei Theorie: Die Kostenzahlen gehen von den size-Werten aus, die qwen-image-2.0 tatsächlich akzeptiert, nicht von Marketingzahlen.
Warum qwen-image-2.0 für grenzüberschreitende Produktbilder wählen
Wenn Sie 200 SKUs auf einmal in Marktplatz-Listings bringen, zählen drei Dinge.
- Chinesisches Textrendering. Die meisten E-Commerce-Listings für Festlandchina, Hongkong, Taiwan oder Südostasien benötigen lesbares Chinesisch auf der Verpackung, dem Banner oder dem Etikett. qwen-image-2.0 ist auf hiapi das einzige Modell, bei dem Sie einen Prompt wie „das Flaschenetikett zeigt in fetter chinesischer Serifenschrift 玫瑰精华水“ schreiben können und das Modell genau diese Glyphen an der von Ihnen beschriebenen Stelle rendert.
- Prompt-Treue bei langen Produkt-Briefings. E-Commerce-Briefings sind lang: Material, Farb-Hex-Werte, Oberflächenbehandlung, Lichtrichtung, Schattenform, Hintergrundfarbe, Kamerawinkel. Bei längeren Briefings bleibt qwen-image-2.0 insgesamt konsistent – der typische Fehlermodus ist eher ein fehlendes Requisit als ein erfundenes Produkt.
- Eine Kostenklasse, die Variantenexplosionen aushält. Eine typische SKU-Seite möchte 4–6 Bilder (Studioaufnahme, Szenenbild, Draufsicht, Größenvergleich, zwei Varianten). Bei 0,025 $ pro Bild sind das 0,10–0,15 $ pro SKU. Ein Launch mit 200 SKUs kostet 20–30 $. Genau diese Kostenklasse macht „alles von Grund auf generieren“ günstiger als die teilweise Beauftragung eines Shootings und das Auffüllen mit Stockmaterial.
Für promptweise Tuning-Experimente und sechs Rezepte, die auf Stil statt auf E-Commerce ausgerichtet sind, lesen Sie den Begleitartikel qwen-image-2.0 Prompt-Rezepte. Dieser Artikel konzentriert sich auf Kataloganwendungsfälle.
Das Eingabe-Schema von qwen-image-2.0 auf hiapi
qwen-image-2.0 läuft unter der einheitlichen /v1/tasks-Schnittstelle, die derzeit auch der einzige von hiapi angebotene Bild-Endpunkt ist. Bevor Sie Code schreiben, lohnt es sich, eine Sonderregel richtig hinzubekommen:
- Der Größenparameter heißt
size– nichtaspect_ratio, nichtresolution, nichtimage_size. Andere Modelle auf hiapi (nano-banana, die flux-Serie) akzeptierenaspect_ratio; qwen-image-2.0 nicht. - Das Trennzeichen innerhalb von
sizeist*, nichtx."size": "2688x1536"liefert 400;"size": "2688*1536"funktioniert. - Es werden nur fünf
size-Werte akzeptiert. Sie sind alle 2K:
| Seitenverhältnis | size-Wert | Zweck |
|---|---|---|
| 16:9 (ca. 1,75:1) | 2688*1536 |
Hauptbild, Banner, Listing-Cover |
| 4:3 (ca. 1,37:1) | 2368*1728 |
Magazin-Doppelseiten, zweispaltige Werbeflächen |
| 1:1 | 2048*2048 |
Quadratische Studioaufnahmen, Marktplatz-Vorschaubilder |
| 3:4 (ca. 0,73:1) | 1728*2368 |
Mobile-first Produktseiten |
| 9:16 (ca. 0,57:1) | 1536*2688 |
Hochformat-Videocover, TikTok/Reels-Standbilder |
Wenn Sie einen anderen Wert übermitteln, gibt die API die wörtliche Liste der erlaubten Werte im Fehler zurück:
{"code": 400, "message": "invalid input: size: value must be one of '2688*1536', '2368*1728', '2048*2048', '1728*2368', '1536*2688'"}
Behandeln Sie diese Fehlermeldung als maßgebliche Quelle – wenn Sie künftig dort neue Werte sehen, hat die Plattform das Schema erweitert.
Eine ausführbare Anfrage
Die gesamte Aufrufoberfläche besteht aus nur zwei Endpunkten: POST /v1/tasks zum Einreihen und GET /v1/tasks/{taskId} zum Abfragen. Das folgende ist die minimale Anfrage, die die Studioaufnahme unten erzeugt.
curl -s -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-image-2.0",
"input": {
"prompt": "A clear glass cosmetic dropper bottle on a clean off-white seamless paper background, soft daylight from camera left, gentle elliptical shadow, the label reads 玫瑰精华水 in bold serif Chinese with a small line of English Rose Essence Water below, the liquid inside has a faint pink tint, studio product photography, sharp focus on the label, no other props, square 1:1 composition",
"size": "2048*2048"
}
}'
Antwort:
{"code": 200, "data": {"taskId": "tk-hiapi-01KW8R..."}, "message": "success"}
Zum Abfragen:
curl -s https://api.hiapi.ai/v1/tasks/tk-hiapi-01KW8R... \
-H "Authorization: Bearer $HIAPI_TOKEN"
Das Feld status durchläuft handling → archiving → success. In unseren Testläufen betrug die gesamte reale Bearbeitungszeit pro Bild bei 2K 25–45 Sekunden. Wenn status success ist, enthält output[0].url das Bild – aber es zeigt auf temp.hiapi.ai und trägt einen expireAt-Unix-Zeitstempel, also laden Sie es sofort herunter. Betten Sie es nicht in Seiten ein und heften Sie es nicht in Ihrer Datenbank fest; es wird innerhalb von Stunden 404 liefern.
Dieser Studio-Prompt erzeugt auf dem Live-Endpunkt eine Glas-Pipettenflasche, bei der die chinesischen Zeichen 玫瑰精华水 sauber auf dem Etikett gerendert werden, mit dem englischen Rose Essence Water in kleinerem Schriftgewicht direkt darunter. Das Modell platziert beide Textzeilen in einem stimmigen Etikettbereich, ohne dass im Prompt überhaupt Layout-Hinweise nötig sind – die Formulierung „the label reads X“ reicht aus.
Eine Python-Schleife, die eine SKU-Tabelle in hochgeladene Studioaufnahmen verwandelt
Dies ist die Schleife, die wir beim Generieren der Bilder auf dieser Seite ausgeführt haben. Sie nimmt eine Liste von (slug, prompt, size)-Tupeln entgegen, übermittelt sie mit einer niedrigen Parallelitätsobergrenze gleichzeitig, fragt jeden Task bis zur Fertigstellung ab, lädt das Ergebnis herunter und lädt es als webp in Ihren eigenen Speicher hoch. Das Muster ist absichtlich langweilig gehalten – requests plus concurrent.futures –, denn der interessante Teil ist das Modell.
import os, time, io, requests, concurrent.futures as cf
from PIL import Image
TOKEN = os.environ["HIAPI_TOKEN"]
BASE = "https://api.hiapi.ai/v1/tasks"
H = {"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json"}
def submit(prompt, size):
r = requests.post(BASE, headers=H, json={
"model": "qwen-image-2.0",
"input": {"prompt": prompt, "size": size},
}, timeout=60)
r.raise_for_status()
return r.json()["data"]["taskId"]
def wait(task_id, deadline_s=240):
deadline = time.time() + deadline_s
while time.time() < deadline:
r = requests.get(f"{BASE}/{task_id}", headers=H, timeout=30)
d = r.json()["data"]
if d["status"] == "success":
return d["output"][0]["url"]
if d["status"] == "fail":
raise RuntimeError(f"task {task_id} failed: {d.get('error')}")
time.sleep(4)
raise TimeoutError(f"task {task_id} not done in {deadline_s}s")
def render_one(item):
slug, prompt, size = item
task_id = submit(prompt, size)
url = wait(task_id)
png = requests.get(url, timeout=60).content
buf = io.BytesIO()
Image.open(io.BytesIO(png)).convert("RGB").save(buf, "WEBP", quality=88, method=6)
return slug, buf.getvalue()
JOBS = [
("packshot-rose-water", "A clear dropper bottle, label 玫瑰精华水…", "2048*2048"),
("packshot-tea-canister","A pale grey ceramic tea canister, label 龙井…", "2048*2048"),
# … 200 more rows from your sheet …
]
with cf.ThreadPoolExecutor(max_workers=6) as pool:
for slug, webp in pool.map(render_one, JOBS):
with open(f"out/{slug}.webp", "wb") as f:
f.write(webp)
print(f"saved {slug}.webp ({len(webp)} bytes)")
Zu diesem Code gibt es ein paar kleine Anmerkungen, die aus dem Code selbst nicht hervorgehen.
max_workers=6ist der von uns beobachtete Sweet Spot. Bei 8–10 beginnt sich die Warteschlangentiefe als zusätzliche Latenz statt als Durchsatz bemerkbar zu machen. Auf der Modellseite scheint die Parallelität pro Konto fair verteilt zu werden.- Vor dem Speichern konvertieren wir mit Qualität 88 in webp. Die von diesem Endpunkt erzeugten 2K-PNGs sind etwa 3–4 MB groß; webp landet bei 200–400 KB und ist bei Produktseitengröße visuell völlig identisch. Günstiger zu übertragen, und das Modell hat bereits viel Textur kodiert, mit der JPEG schlecht umgeht.
- Die temporäre URL kann nur einmal heruntergeladen werden. Wenn Ihr Upload-Schritt fehlschlägt (S3-Ausfall, Netzwerk-Aussetzer), müssen Sie neu rendern – es gibt keine zweite Chance, die Ausgabe desselben Tasks zu bekommen.
Sechs Prompt-Muster, die für den E-Commerce funktionieren
Dies sind die Prompt-Formen, die unsere internen A/B-Tests gegen ausführlichere Alternativen überlebt haben. Sie sind für englischsprachige Nutzer geschrieben, die chinesische Produktlabels verwenden – das häufigste grenzüberschreitende Szenario.
Muster 1 – Studioaufnahme eines einzelnen Produkts mit chinesischem Etikett
Das Standard-Produktbild. Geben Sie die Hintergrundfarbe in schlichtem Englisch an, den Etiketttext in wörtlichem Chinesisch mit der Schriftfamilie auf Englisch und eine Lichtquelle.
A pale grey ceramic tea canister on a clean off-white seamless paper background. The label reads 龙井 in bold black serif Chinese with the small English subtitle Longjing Green Tea below. Soft daylight from camera right, gentle elliptical shadow, no other props. Sharp focus on the label, studio product photography, square 1:1 composition.
Zwei Dinge wirken hier: „reads X in bold serif Chinese“ (qwen-image-2.0 platziert es dort, wo ein Etikett erwartet wird) und „sharp focus on the label“ (es lässt das Modell den Text als Fokus behandeln, nicht als Dekoration).
Muster 2 – Szenenbild um einen leeren Teller herum aufbauen
Bei Szenenaufnahmen beschreiben Sie zuerst die Szene und setzen das Produkt zuletzt hinein, nicht umgekehrt. Das Modell driftet eher bei der Szene ab als beim Produkt, also verankern Sie zuerst die Szene.
A wooden Japanese-style table near a wide window in late-morning daylight. The window casts a soft rectangle of light onto the table. In the center of the table is the pale grey ceramic tea canister from the previous shot, with a small wisp of steam rising from a cup beside it. Loose tea leaves are scattered to the right. Wabi-sabi aesthetic, soft shadows, shallow depth of field with focus on the canister. 16:9 widescreen composition.
In unseren Test-Renderings trägt die Dose die Zeichen 龙井 mit dem englischen Longjing Green Tea direkt darunter – dieselbe Etikett-Disziplin wie bei der Studioaufnahme – und Dampf, verstreute Teeblätter und Fensterlicht erscheinen wie beschrieben.
Muster 3 – Farbvarianten-Raster in einem einzigen Rendering
Wenn Varianten dieselbe Produktgeometrie teilen, können Sie das gesamte Raster in einem Aufruf rendern statt in drei. Günstiger, und die Beleuchtung der einzelnen Zellen ist konstruktionsbedingt konsistent.
Three pairs of low-top canvas sneakers shot from a slight top-down angle, arranged in one horizontal row on a clean light-grey seamless background. From left to right: dusty rose, sage green, ivory cream. Identical sneaker silhouette, identical lighting, identical shadow. Each pair faces the camera with toes pointing forward. Studio product photography, 1:1 composition, evenly spaced.
Dieses Muster erspart es Ihnen, jede Variante separat zu rendern und dann in der Nachbearbeitung zu versuchen, die Beleuchtung anzugleichen. Die Einschränkung „identical sneaker silhouette, identical lighting, identical shadow“ ist der Schlüssel, um die Reihe einheitlich zu halten.
Muster 4 – Zweisprachiges Werbebanner
Für Co-Branding-Kampagnen auf Shopee, Lazada und Taobao brauchen Sie oft chinesische Überschrift und englische Unterzeile im selben Bild. qwen-image-2.0 ist auf hiapi das einzige Modell, das beide in einem Rendering richtig hinbekommt.
A horizontal ecommerce promotional banner on a soft pink gradient background. The main headline reads 双十一大促 in large bold black sans-serif Chinese in the center-left. Below the Chinese headline in smaller dark grey English serif: Double 11 Sale — Up to 50% Off. To the right is a clear glass dropper bottle of pink serum with a small white label. Subtle confetti texture in the background, clean and modern, 16:9 widescreen.
Der Trick, damit dies zuverlässig funktioniert, besteht darin, das Chinesische an den Anfang des Prompts zu setzen und ihm den Zusatz „large bold“ zu geben, dem Englischen dann den Zusatz „smaller“. Wenn Sie die Reihenfolge umkehren, macht das Modell das Englische oft ebenfalls in Überschriftengröße. Das Produktetikett im Banner ist der Bereich, in dem man locker lassen kann – in unseren Test-Renderings wählte qwen für die Flasche das generische Etikett „Vitamin C Serum“, weil wir die Zeichen nicht ausgeschrieben hatten; für Markenkampagnen nehmen Sie entweder den wörtlichen Etiketttext in den Prompt auf oder setzen das echte Etikett später per Compositing ein.
Muster 5 – Listing-Karte für grenzüberschreitende Marktplätze
Für ein zusammengesetztes Asset, das wie eine Amazon- oder Tmall-Listing-Kachel aussieht – Produkt, Titel, Preis, Badge – muss der Prompt wie ein Layout-Briefing gelesen werden, nicht wie ein Foto-Briefing.
A square ecommerce listing card on a white background. In the top two-thirds, a clear glass dropper bottle of pink rose-essence water labeled 玫瑰精华水 / Rose Essence Water. In the bottom third, on the left, the price 99 元 in large bold black Chinese characters with a small English subtitle Rose Essence 30ml below. On the right, a small green badge that reads 新品 in white. Clean modern layout, soft drop shadow under the product, 4:3 composition.
Für Listings rendern Sie in 4:3 (2368*1728), nicht 1:1 – die Hauptbild-Slots der meisten Marktplatz-Listing-Komponenten sind 4:3, und quadratisch führt zu unschönen Zuschnitten.
Muster 6 – On-Demand-Generierung für Personalisierung
Das letzte Muster verändert die Unit Economics. Sobald jedes Rendering unter drei Cent liegt, können Sie aufhören, Banner für Kampagnen vorab zu rendern, und sie stattdessen pro Kunde zum Zeitpunkt der Anfrage rendern – „Frau Wang, Ihre monatliche Zusammenstellung ist fertig“ – und den echten Kundennamen ins Banner einbacken. Mit Cache nach Namens-Hash und einem TTL erhalten Sie personalisierte Bannerbilder zu einer sehr kleinen CDN-Rechnung.
Die Einschränkung ist die Latenz. 25–45 Sekunden pro Rendering sind für einen synchronen Anfragefluss zu langsam, für E-Mail-Versand oder Push-Benachrichtigungen aber völlig in Ordnung – beim Einreihen generieren, beim Versand der Nachricht einbetten.
Worin qwen-image-2.0 nicht gut ist
Fairerweise: Die folgenden vier Arbeiten überlassen wir weiterhin anderen Modellen auf demselben /v1/tasks-Endpunkt.
- Handaufnahmen mit Bewegungsunschärfe. Studioaufnahmen sind die Stärke. Wenn Sie etwas brauchen, das ungestellt aussieht – UGC-Stil, leichte Bewegung, unperfekte Komposition – probieren Sie
nano-banana-pro, das „lässige“ Kompositionen besser versteht. - Pixelgenaue Produktvarianten. qwen-image-2.0 rendert ähnliche Varianten zwischen Aufrufen, aber wenn Sie dieselbe Pipettenflasche über fünf verschiedene Lichtsetups hinweg exakt identisch brauchen, benötigen Sie ein Modell mit Referenzbild-Konditionierung. Kein reines Text-zu-Bild-Modell auf hiapi garantiert Pixelkonsistenz über Aufrufe hinweg.
- Fotorealistische Ganzkörper-Gesichter. Nahaufnahmen von Gesichtern sind in Ordnung; Ganzkörper- oder Gruppenaufnahmen weichen die Gesichtsdetails oft auf. Für personenzentrierten E-Commerce – Kleideranprobe, Beauty-Demos – kombinieren Sie qwen-image-2.0 mit einem referenzkonditionierten Videomodell für Actionshots.
- Sub-Sekunden-Durchlaufzeiten. Wenn Sie Bilder in der inneren Schleife einer synchronen Anfrage generieren müssen (der Nutzer wartet vor dem Bildschirm), sind 25–45 Sekunden zu lang.
flux-schnellantwortet in etwa 5 Sekunden für 0,005 $ pro Bild, rendert aber keinen chinesischen Text. Wählen Sie zuerst nach dem Latenzbudget.
Die tatsächlichen Kosten eines Launches mit 200 SKUs
Rechnen wir den End-to-End-Workflow anhand eines repräsentativen Falls durch.
| Schritt | Menge | Stückpreis | Summe |
|---|---|---|---|
| Hauptbild/Studioaufnahme pro SKU | 200 × 1 | 0,025 $ | 5,00 $ |
| Szenenbild pro SKU | 200 × 1 | 0,025 $ | 5,00 $ |
| Varianten-Raster pro SKU (ein Rendering mit ca. 3 Varianten) | 200 × 1 | 0,025 $ | 5,00 $ |
| Zweisprachige Banner pro Kategorie (10 Kategorien) | 10 × 1 | 0,025 $ | 0,25 $ |
| Listing-Karte pro SKU | 200 × 1 | 0,025 $ | 5,00 $ |
| Gesamtkosten der Bildgenerierung | 810 Renderings | — | 20,25 $ |
Nach aktueller hiapi-Preisgestaltung liegt das gesamte Bildbudget für einen grenzüberschreitenden Launch mit 200 SKUs bei etwa 20 $. Dieselbe Arbeit mit Premium-Modellen (ab 0,04 $ pro Bild) landet bei 30–140 $ und dauert pro Bild länger. Genau diese Lücke soll qwen-image-2.0 füllen: chinesisch-kompetente E-Commerce-Arbeit in einer Kostenklasse, in der Sie die Renderings nicht mehr zählen.
Wie es weitergeht
- Lesen Sie qwen-image-2.0 Prompt-Rezepte für sechs stilorientierte Rezepte, die nicht speziell auf E-Commerce ausgerichtet sind.
- Betrachten Sie die hiapi-Preisseite als maßgebliche Quelle für jede Kostenzahl – qwen-image-2.0 kostet derzeit 0,025 $ pro Bild, aber diese Seite ist maßgeblich.
- Für latenzempfindliche Abläufe ohne chinesischen Text wechseln Sie zu
flux-schnellund behalten dieselbe/v1/tasks-Form bei – den Vergleich finden Sie unter E-Commerce-Produktbilder mit FLUX.1 schnell generieren.
Der ganze Sinn des einheitlichen /v1/tasks-Endpunkts ist, dass ein Modellwechsel das Ändern eines Strings bedeutet. Sobald Sie Ihre Schleife für qwen-image-2.0 eingerichtet haben, kann dasselbe Python-Skript jedes Bildmodell auf hiapi rendern, indem Sie das Feld "model" bearbeiten und das size-Schema des jeweiligen Modells anpassen.
Ähnliche Artikel
Alle Artikel ansehen →-
Tutorial
So rufen Sie hailuo-2.3-fast/image-to-video über die HiAPI API auf: curl und Python in der Praxis
Die erste lauffähige Anfrage für die schnelle, kostengünstige Bild-zu-Video-Stufe – von der Modell-ID bis zum heruntergeladenen MP4
-
Tutorial
So rufen Sie hailuo-2.3/text-to-video über die HiAPI API auf: curl, Python und lauffähige Anfragebeispiele
-
Tutorial
Kandinsky 6.0 Pro Text-zu-Video auf HiAPI: curl- und Python-Tutorial
Eine anfrageorientierte praktische Demonstration: Aufbau des Aufrufs vom Prompt zum Videoclip, Absenden der Anfrage, Abfragen des Fertigstellungsstatus und Herunterladen des Ergebnisses