Guide d'utilisation
Générer des images produits e-commerce avec Nano-Banana-2-Lite via l'API hiapi
Lorsque vous générez des images produits pour un catalogue e-commerce, l'économie unitaire compte plus que n'importe quelle image individuelle. Une image principale à 0,17 $ ne pose aucun problème quand vous n'en avez besoin que de dix ; mais lorsque vous devez générer trois images pour chacun de 1000 SKU, la donne change complètement. C'est précisément le vide que comble Nano-Banana-2-Lite sur hiapi : 0,033 $ par image, une résolution 1K, la même API de tâches asynchrones que les modèles Nano-Banana plus grands, et la prise en charge de jusqu'à 10 images de référence — de quoi réaliser au prix du volume le trio e-commerce classique : image principale sur fond blanc, scène lifestyle et variante premium sur fond sombre.
Ce guide est le compagnon entrée de gamme budgétaire de notre précédent workflow e-commerce Nano-Banana. Tout ce qui suit — requêtes, sorties, durées, coûts — provient de nos exécutions réelles de l'API en direct au moment de la rédaction.

Positionnement de Lite dans la gamme Nano-Banana
Les informations suivantes ont été vérifiées au moment de la rédaction sur la page de tarifs de hiapi :
| Modèle | Prix par image | Résolution | Images de référence |
|---|---|---|---|
| Nano-Banana-2-Lite | 0,033 $ | 1K | Jusqu'à 10 via image_urls |
| nano-banana | 0,05 $ | Standard | Pris en charge |
| nano-banana-2 | 0,085 $ (1K) / 0,076 $ (2K) / 0,114 $ (4K) | Jusqu'à 4K | Via image_input |
| nano-banana-pro | 0,17 $ (1K/2K) / 0,2992 $ (4K) | Jusqu'à 4K | Via image_input |
La règle de décision pour les catalogues produits est simple :
- Fiches marketplaces, SKU longue traîne, variantes A/B → Lite. En 1K (côté court d'environ 1024 px), la sortie atteint ou dépasse le standard de la plupart des marketplaces après compression des images téléversées.
- Bannières de page d'accueil, visuels de campagne, supports imprimés → passez à nano-banana-pro pour des sorties 2K/4K et un rendu de texte plus performant. Lite pour le volume, Pro pour les images phares — ils sont complémentaires plutôt que concurrents.
Une requête qui fonctionne
Nano-Banana-2-Lite tourne sur l'API de tâches asynchrones unifiée de hiapi : soumettez la tâche, interrogez jusqu'à achèvement, téléchargez le résultat. Trois précautions avant le code :
- L'ID de modèle est sensible à la casse. Envoyez exactement
Nano-Banana-2-Lite— les variantes en minuscules renvoient400 MODEL_UNAVAILABLE. aspect_ratioest une valeur d'énumération, pas un format libre. Valeurs autorisées :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. Il n'y a pas de champresolution— Lite est fixé en 1K, et envoyerresolutionentraîne le rejet de la requête.- Les URL de sortie sont des liens signés qui expirent. Téléchargez les octets immédiatement après le succès de la tâche ; stockez les fichiers, pas les 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 réponse contient un taskId. Interrogez GET /v1/tasks/{taskId} jusqu'à ce que status soit success, puis téléchargez data.output[0].url. Lors de notre exécution, une tâche unique s'est achevée de bout en bout en environ 55 à 65 secondes, interrogation comprise.
Voici la sortie de ce prompt exact — une image Lite générée sans retouche :

Rédiger des prompts pour des images principales de niveau catalogue
Pour les fiches produits sur fond blanc, le schéma de prompt qui a toujours fonctionné pour nous :
*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*
Deux autres produits avec le même modèle, en modifiant uniquement la description du produit et le rapport d'aspect (4:5 adapté aux catégories mode/beauté, 4:3 adapté aux chaussures et à l'électronique) :


Conseils pratiques pour la génération en lot :
- Terminez toujours par "no text, no logo". Comme la plupart des modèles d'image, sinon Lite invente du texte d'étiquette et des logos de marque — ce qui constitue un problème de conformité sur de vraies fiches produits. Si votre produit a de vraies étiquettes, composez-les après coup, ou utilisez le parcours avec image de référence ci-dessous.
- Demandez explicitement une ombre ("subtle natural shadow"). Sans cette demande, vous obtenez souvent un effet de détourage flottant qui paraît faux sur les marketplaces.
- Un seul produit par image. Lite gère de manière fiable les compositions à sujet unique ; avec plusieurs produits en flat lay, vous commencez à avoir besoin d'un modèle plus grand.
Même produit, nouveau décor : le workflow image_urls
La vraie astuce e-commerce, c'est la cohérence : une image produit de référence, redéployée dans des scènes lifestyle et premium, sans que le produit ne se déforme d'une image à l'autre. Lite accepte jusqu'à 10 images de référence via le champ image_urls (attention : les modèles Nano-Banana-2 plus grands nomment ce champ image_input — ce renommage est le principal piège de portage, voir notre tutoriel sur l'API Lite).
Nous utilisons l'image principale ci-dessus comme référence et demandons deux redéploiements :
{
"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"]
}
}


Les deux variantes sont revenues avec les proportions du boîtier, la jointure du couvercle et la LED témoin intacts. La phrase "keep the product design, colors and proportions unchanged" joue ici un rôle considérable — incluez-la dans chaque prompt avec image de référence. Les URL de référence doivent être accessibles publiquement (un lien privé signé qui expire en cours de tâche fait échouer la tâche).
Pipeline Python par lots
Les tâches sont indépendantes, donc le débit par lots vient du fait de soumettre toutes les tâches d'un coup et de les interroger en groupe — lors de notre exécution, cinq tâches concurrentes ont nécessité à peu près le même temps réel qu'une seule tâche. Un pipeline minimal :
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")
Pour une échelle de production, deux améliorations méritent d'être mises en place : utiliser des callbacks webhook au lieu du polling (transmettez callback.url et when: "final" à la création de la tâche), et persister chaque taskId avec votre enregistrement SKU afin qu'un worker planté puisse reprendre plutôt que de payer deux fois. Les deux sont décrits dans le tutoriel sur l'API de tâches et la documentation hiapi.
Le coût réel d'un catalogue produits
À 0,033 $ par image, avec le traitement standard en trois images (image principale + scène lifestyle + variante sombre/détail) :
| Taille du catalogue | Nombre d'images (×3) | Nano-Banana-2-Lite | Même travail avec 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 raisonnable : faire passer tout le catalogue par Lite, puis ne reshooter que les 20 SKU les plus rentables sur nano-banana-pro en 2K/4K, pour la page d'accueil et les supports de campagne. Pour l'exemple à 100 SKU, cela représente 9,90 $ + environ 10 $ d'images Pro — toujours une fraction du coût d'une journée de studio.
Prévoyez une marge de nouvelle tentative de 5 à 10 % pour les prompts nécessitant un second essai (souvent du texte superflu sur les étiquettes), et gardez à l'esprit que les tâches échouées sont rapportées avec fail et un objet d'erreur — seules les générations réussies méritent d'entrer dans votre contrôle qualité.
En résumé
Nano-Banana-2-Lite ne remplace pas votre pipeline d'images phares — c'est le rôle du niveau Pro. Mais pour la longue traîne du catalogue, où chaque SKU a besoin d'images présentables et cohérentes alors que le budget se mesure par millier d'images, un tarif de 0,033 $ en 1K avec prise en charge des images de référence est difficile à contester.
Procurez-vous une clé API, puis commencez depuis la page du modèle Nano-Banana-2-Lite — la requête ci-dessus fonctionne directement après avoir remplacé votre token, et le script par lots peut la faire passer d'un seul SKU à un millier.
Articles similaires
Voir tous les articles →-
Guide d'utilisation
Guide de démarrage pour seedream-5.0-pro/image-to-image : capacités, tarification et points d'intégration
Limites de capacité, mode de facturation et pratiques d'intégration technique du modèle d'édition d'image de ByteDance
-
Guide d'utilisation
Guide de prise en main de la génération d'images par texte avec seedream-5.0-pro : limites de capacités, intégration API et maîtrise des coûts
Point de vue pratique pour les développeurs : des points clés des paramètres à l'estimation du coût de 0,05 $ par image
-
Guide d'utilisation
Guide de prise en main de Hailuo 2.3 Fast image-to-video : limites de capacités, tarification et intégration pratique
Points clés pour les développeurs : choisir et intégrer le modèle image-to-video de MiniMax