HiAPI
Blog

Guida all'uso

Genera immagini di prodotti e-commerce con Nano-Banana-2-Lite tramite l'API hiapi

Jul 7, 2026
Genera immagini di prodotti e-commerce con Nano-Banana-2-Lite tramite l'API hiapi

Quando generi immagini di prodotti per un catalogo e-commerce, l'economia unitaria conta più di qualsiasi singola immagine. Un'immagine principale a $0.17 va bene quando te ne servono solo dieci; ma quando devi generare tre immagini per ciascuno di 1000 SKU, la situazione cambia completamente. È proprio questo il vuoto che Nano-Banana-2-Lite colma su hiapi: $0.033 per immagine, risoluzione 1K, la stessa API asincrona a task dei modelli Nano-Banana più grandi, e supporto fino a 10 immagini di riferimento — abbastanza per realizzare a prezzi di massa il classico trittico e-commerce: immagine principale su sfondo bianco, scena lifestyle e variante premium su sfondo scuro.

Questa guida è l'articolo complementare di livello budget del nostro precedente workflow e-commerce con Nano-Banana. Tutto ciò che segue — richieste, output, tempi, costi — proviene dalle nostre esecuzioni reali sull'API dal vivo al momento della stesura.

La posizione di Lite nella linea di prodotti Nano-Banana

Le informazioni seguenti sono state verificate al momento della stesura sulla pagina dei prezzi di hiapi:

Modello Prezzo per immagine Risoluzione Immagini di riferimento
Nano-Banana-2-Lite $0.033 1K Fino a 10 tramite image_urls
nano-banana $0.05 Standard Supportate
nano-banana-2 $0.085 (1K) / $0.076 (2K) / $0.114 (4K) Fino a 4K Tramite image_input
nano-banana-pro $0.17 (1K/2K) / $0.2992 (4K) Fino a 4K Tramite image_input

La regola decisionale per i cataloghi di prodotti è semplice:

  • Listati di marketplace, SKU di coda lunga, varianti A/B → Lite. A 1K (circa 1024px sul lato corto), l'output raggiunge o supera lo standard della maggior parte dei marketplace per le immagini caricate dopo la compressione.
  • Banner della homepage, key visual di campagne, materiali stampati → passa a nano-banana-pro per output 2K/4K e una resa del testo più solida. Lite per i grandi volumi, Pro per le immagini di punta — sono complementari, non concorrenti.

Una richiesta funzionante

Nano-Banana-2-Lite gira sull'API unificata a task asincroni di hiapi: invii il task, esegui il polling fino al completamento, scarichi il risultato. Prima del codice ci sono tre avvertenze:

  1. L'ID del modello distingue tra maiuscole e minuscole. Invia esattamente Nano-Banana-2-Lite — le varianti in minuscolo restituiscono 400 MODEL_UNAVAILABLE.
  2. aspect_ratio è un valore enumerato, non un formato libero. Valori ammessi: 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. Non esiste il campo resolution — Lite è fisso a 1K, e inviare resolution causa il rifiuto della richiesta.
  3. Gli URL di output sono link firmati e scadono. Scarica i byte immediatamente dopo il successo del task; salva i file, non gli 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"
    }
  }'

La risposta contiene un taskId. Esegui il polling di GET /v1/tasks/{taskId} finché status non diventa success, poi scarica data.output[0].url. Nelle nostre esecuzioni, un singolo task si completa end-to-end in circa 55–65 secondi, incluso il tempo di polling.

Ecco l'output di quel prompt esatto — un'immagine generata da Lite non ritoccata:

Scrivere prompt per immagini principali a livello di catalogo

Per i listati con sfondo bianco, il pattern di prompt che ha sempre funzionato per noi:

*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*

Altri due prodotti con lo stesso template, cambiando solo la descrizione del prodotto e l'aspect ratio (4:5 adatto alle categorie verticali moda/bellezza, 4:3 a calzature ed elettronica):

Note pratiche per la generazione in batch:

  • Termina sempre con "no text, no logo". Come la maggior parte dei modelli di immagini, altrimenti Lite inventa liberamente testo sulle etichette e marchi — un problema di conformità su listati di prodotti reali. Se il tuo prodotto ha etichette reali, sovrapponile a posteriori oppure usa il percorso con immagini di riferimento descritto sotto.
  • Richiedi esplicitamente l'ombra ("subtle natural shadow"). Senza questa richiesta, otterrai spesso un effetto ritaglio sospeso che sui marketplace sembra finto.
  • Un solo prodotto per immagine. Lite gestisce in modo affidabile composizioni con un singolo soggetto; con più prodotti disposti in flat lay inizi ad aver bisogno di modelli più grandi.

Stesso prodotto, nuova scena: il workflow con image_urls

Il vero trucco dell'e-commerce sta nella coerenza: un'immagine standard del prodotto, ricollocata in scene lifestyle e premium, senza che il prodotto si deformi tra un'immagine e l'altra. Lite accetta fino a 10 immagini di riferimento tramite il campo image_urls (attenzione: i modelli più grandi Nano-Banana-2 chiamano questo campo image_input — la rinomina è la principale trappola nel porting, vedi il nostro tutorial sull'API Lite).

Usiamo l'immagine principale qui sopra come riferimento e richiediamo due ricollocazioni:

{
  "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"]
  }
}

In entrambe le varianti restituite, le proporzioni della custodia, la cerniera del coperchio e il LED indicatore sono rimasti intatti. La frase "keep the product design, colors and proportions unchanged" qui fa molto — includila in ogni prompt con immagine di riferimento. Gli URL di riferimento devono essere pubblicamente accessibili (un link privato firmato che scade a metà task fa fallire il task).

Pipeline Python per il batch

I task sono indipendenti, quindi la throughput in batch deriva dall'inviare tutti i task in una volta e dal fare polling come gruppo — nelle nostre esecuzioni, cinque task concorrenti hanno richiesto all'incirca lo stesso tempo reale di uno solo. Una pipeline minima:

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")

Per volumi di produzione, valgono due upgrade: usare i callback webhook invece del polling (passando callback.url e when: "final" alla creazione del task), e rendere persistente ogni taskId insieme ai record dei tuoi SKU, così un worker andato in crash può riprendere invece di spendere di nuovo. Entrambi sono trattati nel tutorial sull'API dei task e nella documentazione di hiapi.

Il costo reale di un catalogo

A $0.033 per immagine, con il trattamento standard a tre immagini (principale + lifestyle + variante scura/dettaglio):

Dimensione catalogo Numero immagini (×3) Nano-Banana-2-Lite Stesso lavoro con nano-banana-pro
100 SKU 300 $9.90 $51.00
500 SKU 1,500 $49.50 $255.00
1,000 SKU 3,000 $99.00 $510.00

Un mix ragionevole: far passare l'intero catalogo da Lite, poi rifotografare solo i 20 SKU con il fatturato più alto su nano-banana-pro a 2K/4K, per homepage e campagne. Per l'esempio da 100 SKU, sono $9.90 + circa $10 di immagini Pro — comunque una frazione del costo di un giorno in studio fotografico.

Riserva un margine di retry del 5–10% per i prompt che richiedono un secondo tentativo (di solito testo indesiderato sulle etichette), e ricorda che i task falliti vengono riportati con fail e un oggetto di errore — solo le generazioni riuscite meritano di entrare nel tuo quality gate.

In sintesi

Nano-Banana-2-Lite non sostituisce la tua pipeline di key visual di punta — per quello serve il livello Pro. Ma per la coda lunga del catalogo, dove ogni SKU richiede immagini presentabili e coerenti e il budget si misura per migliaia di immagini, $0.033 a 1K con supporto alle immagini di riferimento è difficile da contestare.

Ottieni una chiave API, poi parti dalla pagina del modello Nano-Banana-2-Lite — la richiesta qui sopra funziona subito una volta sostituito il tuo token, e lo script batch può portarla da un SKU a mille.

Inizia a creare con artefatti IA persistenti

Ottieni la tua chiave API e chiama modelli di immagini, video e audio tramite un'unica API basata sui task.

Leggi la documentazione API