Ce dont vous avez besoin avant d'obtenir l'API Nano Banana Pro
Vous avez besoin d'un compte GPT Proto, d'un solde de compte suffisant pour au moins une génération et d'une clé API GPT Proto. Pour une intégration manuelle, vous avez également besoin d'un terminal et de Python 3. Si vous n'êtes pas à l'aise avec le code, utilisez un agent de codage qui peut inspecter et modifier votre projet réel plutôt qu'une conversation vide dans le navigateur.
| Élément |
Valeur utilisée dans ce guide |
| Produit |
Nano Banana Pro |
| Famille de modèles officielle |
Gemini 3 Pro Image |
| ID du modèle GPT Proto |
gemini-3-pro-image-preview |
| Tâche |
Texte-vers-image |
| Entrée |
Prompt textuel |
| Sortie |
Image PNG ou JPEG |
| Tailles disponibles |
1K, 2K et 4K |
Google liste actuellement Nano Banana Pro et Nano Banana 2 comme des modèles distincts dans sa documentation sur la génération d'images Gemini. Si l'ID du modèle dans votre code indique gemini-3.1-flash-image, vous appelez Nano Banana 2 — pas le modèle Pro couvert ici.
Étape 1 : Ouvrir et tester la page du modèle Nano Banana Pro
Ouvrez la page API Nano Banana Pro et connectez-vous. Avant de toucher au code, utilisez le Playground pour exécuter un petit test :
Laissez la tâche définie sur Texte vers image.
Saisissez un prompt court.
Choisissez 1K, un ratio d'aspect 1:1 et une sortie PNG.
Cliquez sur Générer et confirmez qu'une image est renvoyée.
Cela sépare les problèmes de modèle des problèmes d'intégration. Si la requête Playground échoue, vérifiez d'abord le compte, le solde et le prompt. Si elle réussit mais que votre application échoue, le problème probable est la clé API, l'en-tête de requête, le corps JSON ou l'environnement du projet.

Étape 2 : Créer votre clé API Nano Banana Pro
Cliquez sur Essayer ce modèle dans le coin supérieur droit de la page du modèle. Le panneau Démarrage rapide vous permet de créer une nouvelle clé API ou d'en sélectionner une existante.
Cliquez sur Créer une clé API.
Copiez la nouvelle clé et conservez-la dans un endroit privé.
Ajoutez-la à une variable d'environnement nommée GPTPROTO_API_KEY.
Ne la collez pas directement dans le code source.
Sur macOS ou Linux, définissez la variable pour la session de terminal actuelle avec :
export GPTPROTO_API_KEY="your-api-key"
Dans Windows PowerShell, utilisez :
$env:GPTPROTO_API_KEY="your-api-key"
Il doit s'agir d'une clé API GPT Proto. Une clé Google AI Studio est un identifiant différent et n'authentifiera pas une requête envoyée au point de terminaison GPT Proto.
Traitez la clé comme un mot de passe. Gardez-la hors de Git, des captures d'écran, du JavaScript côté navigateur et des conversations IA publiques. Les recommandations générales de Google en matière de sécurité des clés API recommandent également les variables d'environnement et mettent en garde contre l'exposition des clés dans les applications côté client.

Étape 3 : Choisir une intégration manuelle ou assistée par IA
Après avoir créé la clé, choisissez la méthode qui correspond à votre expérience.
| Méthode |
Idéal pour |
Ce qui se passe ensuite |
| Intégration manuelle |
Vous savez lire Python, JavaScript ou cURL |
Copiez la requête, exécutez-la et ajoutez le flux de résultat à votre application |
| Intégration assistée par IA |
Vous ne savez pas où le code de l'API doit aller |
Donnez le Markdown de la page du modèle à un agent de codage et laissez-le modifier le projet |
Si vous connaissez déjà Python, la méthode manuelle est plus rapide. Si votre vraie question est « Dans quel fichier ce code doit-il aller ? », utilisez la méthode assistée par IA.
Méthode A : Appeler l'API Nano Banana Pro avec Python
Soumettre une première requête avec cURL
Cette requête démarre une tâche de génération asynchrone. Elle renvoie normalement un ID de tâche plutôt que l'image finie.
curl --request POST "https://gptproto.com/api/v3/google/gemini-3-pro-image-preview/text-to-image" \
--header "Authorization: Bearer $GPTPROTO_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"prompt": "A tiny origami fox sailing a teacup across a moonlit puddle",
"size": "1K",
"aspect_ratio": "1:1",
"output_format": "png",
"enable_sync_mode": false,
"enable_base64_output": false
}'
Une soumission réussie inclut data.id, data.status et data.urls.get. La liste de sortie peut encore être vide tant que le statut est created ou running. C'est normal.
Installer la dépendance Python
python -m pip install requests
Exécuter un script complet de soumission et d'interrogation
Enregistrez le script suivant sous nano_banana_pro.py. Il soumet le prompt, vérifie la tâche toutes les deux secondes, s'arrête en cas d'échec et affiche l'URL finale de l'image.
import os
import time
import requests
API_KEY = os.environ.get("GPTPROTO_API_KEY")
SUBMIT_URL = (
"https://gptproto.com/api/v3/google/"
"gemini-3-pro-image-preview/text-to-image"
)
if not API_KEY:
raise RuntimeError("Set GPTPROTO_API_KEY before running this script.")
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
}
payload = {
"prompt": "A tiny origami fox sailing a teacup across a moonlit puddle",
"size": "1K",
"aspect_ratio": "1:1",
"output_format": "png",
"enable_sync_mode": False,
"enable_base64_output": False,
}
def read_data(response):
response.raise_for_status()
body = response.json()
if body.get("code") != 200:
raise RuntimeError(body.get("message", "GPT Proto returned an error."))
return body["data"]
submission = requests.post(
SUBMIT_URL,
headers=headers,
json=payload,
timeout=60,
)
task = read_data(submission)
result_id = task["id"]
poll_url = task.get("urls", {}).get("get")
if not poll_url:
poll_url = f"https://gptproto.com/api/v3/predictions/{result_id}/result"
print(f"Created task: {result_id}")
deadline = time.monotonic() + 300
while True:
status = task.get("status")
if status == "completed":
outputs = task.get("outputs", [])
if not outputs:
raise RuntimeError("The task completed without an output URL.")
print(f"Image URL: {outputs[0]}")
break
if status == "failed":
raise RuntimeError(task.get("error") or "Image generation failed.")
if time.monotonic() >= deadline:
raise TimeoutError("Generation did not finish within five minutes.")
time.sleep(2)
result = requests.get(
poll_url,
headers={"Authorization": f"Bearer {API_KEY}"},
timeout=30,
)
task = read_data(result)
Exécutez-le depuis le même terminal où vous avez défini la variable d'environnement :
python nano_banana_pro.py
Ne considérez pas le premier POST réussi comme une génération terminée. La requête n'a réussi de bout en bout que lorsque le statut devient completed et que data.outputs contient une URL de fichier.
Méthode B : Laissez un agent de codage intégrer l'API
Vous n'avez pas besoin de retaper la documentation de l'API pour un assistant IA. La page du modèle Nano Banana Pro peut lui envoyer le point de terminaison actuel, le schéma, la méthode d'authentification, les champs de réponse et des exemples de code.
Ouvrez Essayer ce modèle et choisissez Copier le Markdown pour l'IA. Vous pouvez aussi ouvrir le menu LLMs et choisir l'une des options suivantes :
Copier le contenu Markdown
Ouvrir le fichier Markdown
Copier le prompt avec l'URL
Ouvrir dans ChatGPT
Ouvrir dans Claude
Ouvrir dans Gemini
Ouvrir dans Grok
La version lisible par machine est également disponible dans le guide Markdown Nano Banana Pro de la page du modèle.

Donnez votre projet à l'agent, pas seulement une conversation vide
Un chatbot de navigateur peut expliquer le code, mais il peut ne pas connaître vos dossiers, votre framework, votre point d'entrée serveur ou votre configuration de déploiement. Un agent de codage tel que Codex, Claude Code ou Cursor peut inspecter ces fichiers et placer l'intégration au bon endroit dans le projet.
L'agent a encore besoin de :
accès au dossier du projet ;
l'autorisation de modifier les fichiers concernés ;
un environnement d'exécution Python, Node.js ou autre fonctionnel ;
les instructions Markdown de la page du modèle ; et
une clé API fournie via une variable d'environnement ou un gestionnaire de secrets.
Il s'agit de codage assisté par IA, pas d'une API sans code. L'agent écrit et connecte le code, tandis que vous approuvez les modifications et fournissez l'environnement d'exécution et les identifiants.
Demander à l'agent de codage
Collez le Markdown copié dans l'agent, puis ajoutez cette instruction :
Intégrez l'API texte-vers-image GPT Proto Nano Banana Pro dans ce projet en utilisant la documentation Markdown ci-jointe. Inspectez d'abord la pile existante et identifiez le bon fichier côté serveur. Stockez la clé API dans une variable d'environnement nommée GPTPROTO_API_KEY ; ne la codez jamais en dur et ne l'exposez pas dans le code côté navigateur. Implémentez la soumission de requête, l'interrogation asynchrone du statut, la gestion des tâches échouées et l'affichage de l'URL de l'image renvoyée. Ajoutez uniquement les fichiers nécessaires à cette intégration. Exécutez un test minimal, puis indiquez quels fichiers vous avez modifiés, comment démarrer le projet et toute étape que je dois encore effectuer manuellement.
Ne collez pas la vraie clé dans l'instruction. Définissez-la dans votre terminal, dans un fichier .env local exclu de Git, ou dans les paramètres secrets de votre plateforme de déploiement.
Vérifiez le travail de l'agent avant de l'accepter
Vous n'avez pas besoin de comprendre chaque ligne pour effectuer une revue utile. Vérifiez ces huit points :
La clé est lue depuis GPTPROTO_API_KEY.
La clé n'est pas présente dans le code navigateur ou dans un fichier commité.
L'ID du modèle est gemini-3-pro-image-preview.
Le code appelle le point de terminaison texte-vers-image indiqué dans ce guide.
Il lit data.id ou data.urls.get après la soumission.
Il attend completed et gère failed.
Il lit l'URL finale depuis data.outputs.
L'agent a exécuté un vrai test minimal au lieu de simplement dire que le code semble correct.
Essayez-le avant de connecter l'application complète : Ouvrez le Playground Nano Banana Pro, validez le prompt en 1K, puis donnez les mêmes paramètres à votre agent de codage.
Paramètres et tarification de l'API Nano Banana Pro
La requête texte-vers-image de base ne nécessite qu'un prompt. Les autres champs contrôlent le format de sortie et de réponse.
| Paramètre |
Obligatoire |
Par défaut |
Valeurs acceptées ou objectif |
prompt |
Oui |
— |
Description de l'image à générer |
size |
Non |
1K |
1K, 2K, ou 4K |
aspect_ratio |
Non |
1:1 |
1:1, 3:2, 2:3, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, ou 21:9 |
output_format |
Non |
png |
png ou jpeg |
enable_sync_mode |
Non |
false |
Attendre le résultat téléchargé avant de renvoyer |
enable_base64_output |
Non |
false |
Renvoyer des données Base64 au lieu d'une URL |
La page du modèle GPT Proto en direct listait les tarifs suivants lors de la vérification de ce guide en septembre 2026 :
| Résolution |
Prix par génération |
| 1K |
$0.0804 |
| 2K |
$0.0804 |
| 4K |
$0.144 |
Créer une clé ne rend pas les appels d'image gratuits. Chaque génération réussie consomme le solde du compte. Vérifiez la page du modèle en direct avant de lancer un grand lot, car la disponibilité et les tarifs peuvent changer.
Pour le travail initial sur le prompt, commencez en 1K. Passez en 4K seulement après que la composition, le libellé et le ratio d'aspect sont corrects. Le compromis est simple : la 4K produit un asset plus grand mais coûte plus cher par tentative.
Erreurs courantes de l'API Nano Banana Pro
| Problème |
Cause probable |
Que faire |
400 Bad Request |
JSON invalide, nom de champ, valeur ou entrée bloquée |
Comparez la requête avec le schéma actuel de la page du modèle |
401 Unauthorized |
Clé manquante ou invalide |
Confirmez GPTPROTO_API_KEY et l'en-tête Authorization. |
403 Forbidden |
Solde insuffisant ou permission manquante |
Vérifiez le solde du compte et l'état de la clé |
413 Request Entity Too Large |
Le corps de la requête est trop volumineux |
Réduisez le contenu téléchargé ou Base64 |
429 Too Many Requests |
Les appels arrivent trop rapidement |
Réessayez avec des délais croissants et limitez le nombre de tentatives |
500, 502, ou 504 |
Défaillance temporaire de la plateforme ou en amont |
Réessayez un nombre limité de fois ; ne créez pas de boucle infinie |
| La réponse ne contient pas d'image |
La tâche est encore created ou running |
Interrogez data.urls.get jusqu'à ce qu'elle se termine |
Le statut devient failed |
La génération ne s'est pas terminée |
Lisez data.error avant de réessayer |
| L'agent dit que c'est terminé, mais rien ne s'exécute |
Il a écrit du code sans l'exécuter |
Demandez la commande de test exacte et le statut renvoyé |
Pour les échecs temporaires, utilisez un backoff exponentiel plutôt que d'envoyer la même requête de façon répétée sans délai. Consignez également l'ID de résultat : il vous donne une tâche précise à inspecter au lieu d'un rapport vague « échec de génération ».
Commencez par une génération vérifiée
Si vous écrivez du code, commencez par la requête cURL, puis utilisez le script Python complet pour soumettre et interroger la tâche. Si vous n'écrivez pas de code, copiez le Markdown de la page du modèle dans un agent de codage et demandez-lui d'intégrer le même flux dans votre projet.
Dans les deux cas, vérifiez une image en 1K avant de construire un workflow plus vaste. Ouvrez la page API Nano Banana Pro, testez le prompt et utilisez Essayer ce modèle pour créer votre clé ou transmettre les instructions d'intégration actuelles à votre agent de codage.