HiAPI
Blog

Benutzerhandbuch

E-Commerce-Produktbilder mit Nano-Banana-2-Lite über die hiapi API generieren

Jul 7, 2026
E-Commerce-Produktbilder mit Nano-Banana-2-Lite über die hiapi API generieren

Wenn du Produktbilder für einen E-Commerce-Katalog generierst, ist die Stückkostenrechnung wichtiger als jedes einzelne Bild. Ein Hauptbild für $0,17 ist kein Problem, wenn du nur zehn brauchst; aber wenn du für 1000 SKUs jeweils drei Bilder generieren musst, sieht die Sache völlig anders aus. Genau diese Lücke füllt Nano-Banana-2-Lite auf hiapi: $0,033 pro Bild, 1K-Auflösung, dieselbe asynchrone Task-API wie die größeren Nano-Banana-Modelle und Unterstützung für bis zu 10 Referenzbilder – genug, um das klassische E-Commerce-Trio zum Mengenpreis zu erledigen: Hauptbild auf weißem Hintergrund, Lifestyle-Szene und eine hochwertige dunkle Variante.

Dieser Leitfaden ist der Budget-Begleiter zu unserem früheren Artikel Nano-Banana E-Commerce-Workflow. Alles im Folgenden – Requests, Ausgaben, Laufzeiten, Kosten – stammt aus unseren tatsächlichen Läufen gegen die Live-API zum Zeitpunkt der Erstellung dieses Artikels.

Wo Lite in der Nano-Banana-Produktlinie steht

Die folgenden Informationen wurden zum Zeitpunkt der Erstellung mit der hiapi-Preisseite abgeglichen:

Modell Preis pro Bild Auflösung Referenzbilder
Nano-Banana-2-Lite $0,033 1K bis zu 10 über image_urls
nano-banana $0,05 Standard unterstützt
nano-banana-2 $0,085 (1K) / $0,076 (2K) / $0,114 (4K) bis zu 4K über image_input
nano-banana-pro $0,17 (1K/2K) / $0,2992 (4K) bis zu 4K über image_input

Die Entscheidungsregel für Produktkataloge ist einfach:

  • Marktplatz-Listings, Long-Tail-SKUs, A/B-Varianten → Lite. Bei 1K (kurze Kante ca. 1024px) erreichen oder übertreffen die Ausgaben die Standards der meisten Marktplätze für hochgeladene Bilder nach der Komprimierung.
  • Startseiten-Banner, Kampagnen-Keyvisuals, Druckmaterialien → auf nano-banana-pro upgraden für 2K/4K-Ausgaben und stärkeres Text-Rendering. Lite für die Masse, Pro für die Schlüsselbilder – sie ergänzen sich, statt zu konkurrieren.

Ein funktionierender Request

Nano-Banana-2-Lite läuft auf der einheitlichen asynchronen Task-API von hiapi: Task einreichen, bis zum Abschluss pollen, Ergebnis herunterladen. Vor dem Code gibt es drei Hinweise:

  1. Die Modell-ID ist groß-/kleinschreibungssensitiv. Sende exakt Nano-Banana-2-Lite – die kleingeschriebene Variante gibt 400 MODEL_UNAVAILABLE zurück.
  2. aspect_ratio ist ein Enum, kein Freitext. Erlaubte Werte: auto, 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9, 1:4, 4:1, 1:8, 8:1. Es gibt kein resolution-Feld – Lite ist fest auf 1K, und das Senden von resolution führt zur Ablehnung des Requests.
  3. Ausgabe-URLs sind signierte Links und laufen ab. Lade die Bytes sofort nach erfolgreichem Task herunter; speichere die Datei, nicht die URL.
curl -s -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer $HIAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Nano-Banana-2-Lite",
    "input": {
      "prompt": "Professional e-commerce product photo of a minimalist matte-white wireless earbuds charging case, centered on a seamless pure white background, soft even studio lighting, gentle shadow beneath, crisp edges, catalog-ready hero shot, no text, no logo",
      "aspect_ratio": "1:1"
    }
  }'

Die Antwort enthält eine taskId. Polle GET /v1/tasks/{taskId}, bis status gleich success ist, und lade dann data.output[0].url herunter. In unseren Läufen war ein einzelner Task inklusive Polling-Zeit nach etwa 55–65 Sekunden von Anfang bis Ende abgeschlossen.

Hier ist die Ausgabe zu genau diesem Prompt – ein unbearbeitetes, von Lite generiertes Bild:

Prompts für Hauptbilder auf Katalogniveau schreiben

Für Produkt-Listings auf weißem Hintergrund hat dieses Prompt-Muster bei uns stets funktioniert:

*Professional e-commerce product photo of [product, materials, colors], centered on a seamless pure white background, soft even studio lighting, subtle natural shadow, crisp focus, marketplace catalog style, no text, no logo*

Zwei weitere Produkte mit derselben Vorlage, wobei nur die Produktbeschreibung und das Seitenverhältnis geändert wurden (4:5 passt für Mode/Beauty, 4:3 für Schuhe und Elektronik):

Praktische Hinweise für die Massengenerierung:

  • Immer mit "no text, no logo" enden. Wie die meisten Bildmodelle erfindet Lite sonst willkürlich Etikettentexte und Markenlogos – ein Compliance-Problem bei echten Produkt-Listings. Wenn dein Produkt echte Etiketten hat, füge sie nachträglich ein oder nutze den Referenzbild-Workflow weiter unten.
  • Schatten ausdrücklich verlangen ("subtle natural shadow"). Ohne diese Anforderung bekommst du oft einen schwebenden Freisteller-Effekt, der auf Marktplätzen unecht wirkt.
  • Nur ein Produkt pro Bild. Lite meistert Einzelmotiv-Kompositionen zuverlässig; bei flächigen Anordnungen mehrerer Produkte brauchst du allmählich größere Modelle.

Dasselbe Produkt, neue Szene: der image_urls-Workflow

Der eigentliche E-Commerce-Trick liegt in der Konsistenz: ein Standard-Produktbild, neu arrangiert in Lifestyle- und hochwertigen Szenen, wobei das Produkt zwischen den Bildern unverändert bleibt. Lite akzeptiert bis zu 10 Referenzbilder über das Feld image_urls (Achtung: die größeren Nano-Banana-2-Modelle nennen dieses Feld image_input – die Umbenennung ist die wichtigste Portierungsfalle, siehe unser Lite-API-Tutorial).

Wir verwenden das obige Hauptbild als Referenz und verlangen zwei Neuanordnungen:

{
  "model": "Nano-Banana-2-Lite",
  "input": {
    "prompt": "Place this exact product on a warm oak wooden desk next to a laptop keyboard and a small green potted plant, soft morning window light from the left, shallow depth of field, cozy home-office lifestyle e-commerce scene, keep the product design, colors and proportions unchanged",
    "aspect_ratio": "4:3",
    "image_urls": ["https://your-cdn.example.com/hero-earbuds.jpg"]
  }
}

Beide Varianten kamen zurück, wobei Proportionen des Ladeetuis, Deckelfuge und Status-LED erhalten blieben. Der Ausdruck "keep the product design, colors and proportions unchanged" leistet hier viel – füge ihn in jeden Referenzbild-Prompt ein. Referenz-URLs müssen öffentlich erreichbar sein (signierte private Links, die mitten im Task ablaufen, lassen den Task fehlschlagen).

Python-Batch-Pipeline

Tasks sind unabhängig, daher kommt der Batch-Durchsatz dadurch, dass man alle Tasks auf einmal einreicht und sie als Gruppe pollt – in unseren Läufen benötigten fünf gleichzeitige Tasks ungefähr dieselbe Wall-Clock-Zeit wie ein einzelner Task. Eine minimale Pipeline:

import json
import subprocess
import time

API = "https://api.hiapi.ai/v1/tasks"
TOKEN = "sk-..."  # your hiapi API key

def _curl(args):
    out = subprocess.run(["curl", "-s", *args], capture_output=True, text=True, timeout=90)
    return json.loads(out.stdout)

def submit(prompt, aspect_ratio="1:1", image_urls=None):
    inp = {"prompt": prompt, "aspect_ratio": aspect_ratio}
    if image_urls:
        inp["image_urls"] = image_urls
    data = _curl(["-X", "POST", API,
                  "-H", f"Authorization: Bearer {TOKEN}",
                  "-H", "Content-Type: application/json",
                  "-d", json.dumps({"model": "Nano-Banana-2-Lite", "input": inp})])
    return data["data"]["taskId"]

def wait(task_id, timeout_s=600):
    deadline = time.time() + timeout_s
    while time.time() < deadline:
        task = _curl([f"{API}/{task_id}", "-H", f"Authorization: Bearer {TOKEN}"])["data"]
        if task["status"] == "success":
            return task["output"][0]["url"]
        if task["status"] == "fail":
            raise RuntimeError(f"{task_id}: {task.get('error')}")
        time.sleep(5)
    raise TimeoutError(task_id)

HERO_TMPL = ("Professional e-commerce product photo of {product}, centered on a "
             "seamless pure white background, soft even studio lighting, subtle "
             "natural shadow, crisp focus, marketplace catalog style, no text, no logo")

skus = [
    {"id": "SKU-001", "product": "a matte-white wireless earbuds charging case"},
    {"id": "SKU-002", "product": "an amber glass serum bottle with black dropper cap"},
    {"id": "SKU-003", "product": "a white minimalist running sneaker with light gray sole"},
]

# 1) submit everything up front
tasks = {sku["id"]: submit(HERO_TMPL.format(product=sku["product"])) for sku in skus}

# 2) collect results and persist bytes immediately — output URLs expire
for sku_id, task_id in tasks.items():
    url = wait(task_id)
    subprocess.run(["curl", "-s", "-o", f"{sku_id}.jpg", url], timeout=120)
    print(f"{sku_id} done")

Für Produktionsvolumen lohnen sich zwei Verbesserungen: Webhook-Callbacks statt Polling verwenden (beim Erstellen des Tasks callback.url und when: "final" übergeben) und jede taskId zusammen mit deinen SKU-Datensätzen persistieren, damit ein abgestürzter Worker wiederaufnehmen kann, statt erneut Kosten zu verursachen. Beides wird im Task-API-Tutorial und in der hiapi-Dokumentation behandelt.

Tatsächliche Kosten für einen Produktkatalog

Bei $0,033 pro Bild und der Standard-Dreifachbearbeitung (Hauptbild + Lifestyle-Bild + dunkle/Detail-Variante):

Kataloggröße Bilderanzahl (×3) Nano-Banana-2-Lite Dieselbe Arbeit mit nano-banana-pro
100 SKUs 300 $9,90 $51,00
500 SKUs 1.500 $49,50 $255,00
1.000 SKUs 3.000 $99,00 $510,00

Ein sinnvoller Mix: Den gesamten Katalog über Lite laufen lassen und dann nur die 20 umsatzstärksten SKUs auf nano-banana-pro in 2K/4K neu aufnehmen, für Startseite und Kampagnen-Ausspielungen. Für das Beispiel mit 100 SKUs sind das $9,90 + ca. $10 an Pro-Bildkosten – immer noch ein Bruchteil der Kosten eines Studiotags.

Plane 5–10 % Retry-Puffer für Prompts ein, die einen zweiten Versuch brauchen (meist überflüssiger Text auf Etiketten), und denke daran, dass fehlgeschlagene Tasks mit fail und einem Fehlerobjekt gemeldet werden – nur erfolgreiche Generierungen gehören in dein Qualitäts-Gate.

Fazit

Nano-Banana-2-Lite ersetzt nicht deine Flaggschiff-Keyvisual-Pipeline – dafür ist die Pro-Ebene da. Aber für den Long-Tail eines Produktkatalogs, wo jeder SKU ein vorzeigbares, konsistentes Bild braucht und das Budget pro tausend Bilder gemessen wird, ist $0,033 bei 1K-Auflösung mit Referenzbild-Unterstützung kaum zu widerlegen.

Hole dir einen API-Schlüssel und starte auf der Nano-Banana-2-Lite-Modellseite – der obige Request funktioniert direkt, sobald du deinen Token einsetzt, und das Batch-Skript skaliert ihn von einem SKU auf tausend.

Ä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