Guida all'uso
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:
- L'ID del modello distingue tra maiuscole e minuscole. Invia esattamente
Nano-Banana-2-Lite— le varianti in minuscolo restituiscono400 MODEL_UNAVAILABLE. 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 camporesolution— Lite è fisso a 1K, e inviareresolutioncausa il rifiuto della richiesta.- 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.
Articoli correlati
Vedi tutti gli articoli →-
Guida all'uso
Guida introduttiva a seedream-5.0-pro/image-to-image: capacità, prezzi e punti chiave di integrazione
Limiti di capacità, modalità di fatturazione e pratiche di integrazione ingegneristica del modello di editing immagini di ByteDance
-
Guida all'uso
Guida pratica al text-to-image con seedream-5.0-pro: limiti di capacità, integrazione API e controllo dei costi
Prospettiva operativa per sviluppatori: dai punti chiave sui parametri alla stima di costo di $0,05 per immagine
-
Guida all'uso
Guida introduttiva a Hailuo 2.3 Fast image-to-video: limiti delle capacità, prezzi e pratiche di integrazione
Selezione e integrazione del modello MiniMax image-to-video per sviluppatori