HiAPI
Blog

Tutoriel

Comment utiliser l'API Nano Banana 2 ? Réalisez votre première image en 5 minutes

4 étapes pour l'essai en ligne, 4 étapes pour l'intégration API, avec des exemples curl et Python directement exécutables, l'édition par image de référence et un aide-mémoire des erreurs courantes.

Oct 12, 2026
Comment utiliser l'API Nano Banana 2 ? Réalisez votre première image en 5 minutes

TL;DR

  • De quoi s'agit-il : Nano Banana 2, développé par Google, utilise un seul ID de modèle nano-banana-2 pour la génération d'images à partir de texte et l'édition par image de référence, avec jusqu'à 14 images de référence par requête. Déjà disponible sur HiAPI, ouvrez la page du modèle et saisissez un prompt pour générer ; les nouveaux utilisateurs reçoivent 200 crédits à l'inscription.
  • Combien ça coûte : facturation à l'image, 1K $0.036, 2K $0.057, 4K $0.086, sans supplément pour les images de référence, remboursement automatique en cas d'échec.
  • Comment appeler l'API : POST https://api.hiapi.ai/v1/tasks, mettez nano-banana-2 dans model, récupérez le taskId puis interrogez ou attendez le callback, téléchargez data.output[0].url.

Que peut faire Nano Banana 2 ?

  • Un modèle, deux usages. Avec seulement un prompt, c'est de la génération à partir de texte ; ajoutez image_input et cela devient de l'édition par image de référence, sans changer d'endpoint ni de mode.
  • Jusqu'à 14 images de référence par requête. Envoyez ensemble des photos produit sous plusieurs angles, des photos de mannequin et des photos de décor, idéal pour recréer un même article dans un autre décor, changer de tenue ou réaliser des séries visuelles de marque.
  • 14 formats fixes plus auto. Outre les classiques 1:1, 4:5, 16:9, 21:9, il y a aussi 1:4, 4:1, 1:8, 8:1 ; en cas de doute, utilisez la valeur par défaut auto.
  • Trois niveaux : 1K, 2K, 4K. Le 1K sert à tester les prompts, le 2K et le 4K pour les rendus finaux ; sortie PNG par défaut.

Voici une image d'exemple de la page du modèle Nano Banana 2, générée en 4:3 et 1K :

A mystical tropical rainforest at night with hundreds of glowing fireflies, warm golden lights floating among dark green ferns and moss, soft mist, dreamy bokeh, cinematic fantasy photography, 4:3

Générer avec ce prompt →

Deux parcours de prise en main : essai en ligne ou API ?

Pour voir d'abord le résultat, choisissez l'essai en ligne ; pour intégrer dans un produit, choisissez l'API. Les deux parcours utilisent le même modèle et la même grille tarifaire.

Essai en ligne (environ 1 minute)

  1. Ouvrez la page du modèle Nano Banana 2, ou cliquez directement sur le lien sous l'image ci-dessus, le prompt sera prérempli.
  2. Inscrivez-vous ou connectez-vous, un nouveau compte dispose de 200 crédits.
  3. Choisissez le format et la résolution ; au tarif normal, une image 1K coûte 72 crédits.
  4. Cliquez sur générer, téléchargez si le résultat vous convient.

Intégration API (environ 5 minutes)

  1. Créez une clé API dans la console HiAPI (sk-...).
  2. POST /v1/tasks pour créer une tâche, récupérez data.taskId dans la réponse.
  3. Interrogez avec GET /v1/tasks/{id}, ou ajoutez callback.url dans le corps de la requête pour attendre la notification.
  4. Une fois data.status passé à success, téléchargez l'image depuis data.output[0].url.

À $0.036 l'image 1K, $10 permettent d'en produire environ 277, de quoi ajuster sereinement vos prompts. Pour tous les paramètres, voir la documentation en chinois.

Première image : version curl

Créer une tâche :

curl --fail-with-body -sS -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer sk-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nano-banana-2",
    "input": {
      "prompt": "A mystical tropical rainforest at night with hundreds of glowing fireflies, warm golden lights floating among dark green ferns and moss, soft mist, dreamy bokeh, cinematic fantasy photography",
      "aspect_ratio": "4:3",
      "resolution": "1K",
      "output_format": "png"
    }
  }'

L'ID de tâche retourné se trouve dans data.taskId :

{"code":200,"data":{"taskId":"tk-hiapi-..."},"message":"success"}

Interroger le résultat :

curl --fail-with-body -sS https://api.hiapi.ai/v1/tasks/YOUR_TASK_ID \
  -H "Authorization: Bearer sk-YOUR_KEY"

Seul prompt est obligatoire. aspect_ratio vaut auto par défaut, resolution vaut 1K par défaut, output_format vaut png par défaut (option jpg).

Première image : version Python

Installez d'abord requests (python3 -m pip install requests), et définissez HIAPI_API_KEY dans le terminal (export HIAPI_API_KEY="sk-YOUR_KEY"). L'exemple ci-dessous crée une tâche, effectue un polling pendant 10 minutes maximum, puis télécharge l'image ; en cas de timeout, conservez le taskId pour continuer à interroger :

import os
import time
import uuid
import requests

API = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"}
HEADERS["Idempotency-Key"] = str(uuid.uuid4())  # Save with this business task before submitting.

payload = {
    "model": "nano-banana-2",
    "input": {
        "prompt": "A mystical tropical rainforest at night with hundreds of glowing fireflies, warm golden lights floating among dark green ferns and moss, soft mist, dreamy bokeh, cinematic fantasy photography",
        "aspect_ratio": "4:3",
        "resolution": "1K",
        "output_format": "png",
    },
}


def task_data(response):
    response.raise_for_status()
    body = response.json()
    if body.get("code") != 200:
        raise RuntimeError(f"HiAPI request failed: {body}")
    return body["data"]


task_id = task_data(requests.post(API, headers=HEADERS, json=payload, timeout=30))["taskId"]
print(f"taskId: {task_id}", flush=True)  # Save this ID for later queries.

deadline = time.monotonic() + 600
while time.monotonic() < deadline:
    task = task_data(requests.get(f"{API}/{task_id}", headers=HEADERS, timeout=30))
    if task["status"] == "success":
        image_url = task["output"][0]["url"]
        image = requests.get(image_url, timeout=60)
        image.raise_for_status()
        with open("nano-banana-2.png", "wb") as f:
            f.write(image.content)
        break
    if task["status"] == "fail":
        raise RuntimeError(f"task {task_id} failed: {task}")
    time.sleep(3)
else:
    raise TimeoutError(f"task {task_id} is still pending; query this ID instead of submitting again")

Édition par image de référence : ajoutez simplement image_input

Ajoutez image_input dans input, et la même requête devient une édition. L'exemple ci-dessous place une photo produit d'un flacon de sérum sur fond blanc sur un comptoir de salle de bain :

curl --fail-with-body -sS -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer sk-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nano-banana-2",
    "input": {
      "prompt": "Place this exact serum bottle, unchanged, on a white marble bathroom counter next to a folded beige linen towel, soft warm morning window light",
      "image_input": ["https://static.hiapi.ai/blog/nano-banana-ecommerce-product-images-hiapi/shot-1-listing.jpg"],
      "aspect_ratio": "4:3",
      "resolution": "1K"
    }
  }'

image_input est un tableau d'URL, jusqu'à 14, il doit s'agir de liens d'images directement accessibles publiquement, SVG non pris en charge. Indiquez clairement dans le prompt « ce qu'il faut conserver » (this exact serum bottle, unchanged), l'étiquette produit et la forme du flacon seront plus stables. Les prompts complets et les images finales de cette série de recréations dans un autre décor sont dans le guide complet des prompts Nano Banana 2.

3 points à vérifier avant la mise en production

  1. Utilisez les callbacks côté serveur. Ajoutez au niveau supérieur du corps de la requête "callback": {"url": "https://yourapp.com/webhook", "when": "final"}, la notification est automatique à la fin de la tâche ; succès et échec déclenchent tous deux un callback, dédupliquez par taskId.
  2. Joignez une clé d'idempotence aux nouvelles tentatives. Chaque POST /v1/tasks crée par défaut une nouvelle tâche et facture séparément. Ajoutez l'en-tête Idempotency-Key, générez et conservez une clé pour la même tâche métier ; après un timeout réseau, réessayez avec le même compte, la même clé et un corps de requête strictement identique, une seule tâche sera créée.
  3. Téléchargez dès que vous obtenez le résultat. Les liens de sortie ont une durée de validité, enregistrez d'abord l'image dans votre propre stockage avant tout traitement ultérieur.

Erreurs courantes, une par ligne

  • 400 additional properties ... not allowed → nom de champ mal orthographié, ou champ d'un autre modèle (par exemple image_urls de Nano Banana 2 Lite, ou size) → remplacez par image_input, resolution.
  • 400, valeur de aspect_ratio incorrecte → format hors liste → choisissez l'une des 15 valeurs valides.
  • 401 permission_denied → clé absente, mal écrite ou révoquée → vérifiez l'en-tête Authorization: Bearer sk-..., recréez-la dans la console si nécessaire.
  • 402 → solde insuffisant, la tâche n'est pas créée et aucun frais n'est prélevé → rechargez puis réessayez.
  • Tâche avec status à fail → corrigez la requête selon le champ error retourné, ne réessayez pas à l'identique ; le montant prélevé est automatiquement remboursé en totalité.

Questions fréquentes

Comment écrire l'ID de modèle ? Écrivez nano-banana-2. Les noms de paramètres sont strictement identiques à Nano Banana 2.1 ; remplacez par gemini-nano-banana-2.1 pour passer à la 2.1.

Les images de référence sont-elles facturées en supplément ? Non. Le prix dépend uniquement de la résolution de sortie, que vous envoyiez 1 ou 14 images de référence.

Combien d'images peut-on obtenir par requête ? Une tâche produit une image. Pour en obtenir plusieurs, créez plusieurs tâches en parallèle, facturées à l'image.

Comment bénéficier du tarif promotionnel à durée limitée ? Aucune modification de code nécessaire. -50 % pour la fête des programmeurs jusqu'au 2026-11-09 00:00 (heure de Pékin), l'API et l'essai en ligne appliquent automatiquement la réduction de 50 %, soit $0.018 l'image 1K.

Série d'articles sur Nano Banana 2

Essayez maintenant : cliquez sur Générer avec ce prompt → sous l'image de la forêt tropicale ci-dessus, le prompt est déjà rempli, choisissez le format 4:3 et la résolution 1K, lancez puis téléchargez le résultat, au tarif normal de $0.036 par image.

Articles similaires

Voir tous les articles →

Commencez avec des artefacts IA persistants

Obtenez votre clé API et appelez des modèles d'image, de vidéo et d'audio via une API unique basée sur les tasks.

Lire la documentation de l'API