nano-banana-2.1 ; remplacez le modèle dans l’URL ou le SDK pour les deux autres.
Connexion
Créer une BetterToken API Key · catalogue de modèles · Présentation des modèles Nano Banana
Générer une première image
DéfinissezBETTERTOKEN_API_KEY dans le terminal, puis exécutez la requête. Elle attend la génération et enregistre le JSON complet dans response.json.
- macOS / Linux
- Windows PowerShell
imageSize à 2K ou 4K pour une résolution supérieure. Commencez par 1K, 1:1 et une image. N’activez pas les relances automatiques avec --retry.
Paramètres courants
Pour une photo de produit, décrivez l’objet, la matière, l’éclairage et le fond. Pour une affiche, précisez le texte exact et la disposition. Pour une retouche, indiquez quoi modifier et quoi conserver. HTTP natif utilise ces champs ; le SDK Python utilise snake_case. Placez les réglages dansgenerationConfig.imageConfig.
Proportions prises en charge par Google
Nano Banana 2 et 2.1 acceptent 14 proportions ; Pro en accepte 10. Commencez par1:1 pour la première requête.
Référence Google des proportions et tailles d’image
Ce plafond ne garantit pas le nombre d’images. Le modèle peut en renvoyer une malgré une demande multiple. Pour un nombre fixe, envoyez des requêtes séparées.
Lire et enregistrer les images
Les images se trouvent danscandidates[].content.parts[].inlineData. La structure ci-dessous utilise le marqueur BASE64_IMAGE_DATA. Parcourez toutes les parties finales et ignorez thought: true.
mimeType : une image peut être JPEG, pas toujours .png.
Exemple complet du SDK Python
Utilisez Python 3.10 ou ultérieur etgoogle-genai==2.30.1. Installez dans l’environnement virtuel du projet ; les anciennes versions peuvent omettre image_size.
/v1 ni /v1beta. timeout est en millisecondes et attempts=1 désactive les relances. save_images enregistre toutes les images finales.
Envoyer une référence
Exécutez après l’exemple Python pour envoyer une nouvelle retouche. Remplacezreference.jpg par votre fichier. Pour PNG, utilisez mime_type="image/png". Ajoutez d’autres références dans parts du même message utilisateur.
inlineData: {"mimeType": "image/jpeg", "data": "BASE64_IMAGE_DATA"}. Encodez les octets originaux sans préfixe data:image/...;base64,. N’utilisez ni multipart, ni Files, ni fileData.
Poursuivre les retouches
Exécutez après une génération ou retouche réussie. Conservez lecontent complet, l’ordre des parties et thoughtSignature. Ne reconstruisez pas l’historique à partir de la seule image ; n’inventez ni ne modifiez de signature.
history, ajoutez l’instruction puis le content reçu. N’utilisez pas previous_interaction_id d’Interactions ici.
Prise en charge de l’API
- Utilisez
generateContentsans streaming. Cette intégration ne prend pas en charge Files /fileData, Batch, Interactions ni le streaming. responseMimeType,responseSchemaet les formats de compression personnalisés ne sont pas pris en charge. DansimageConfig, utilisez seulement les deux champs indiqués ci-dessus.- Omettez
cachedContent, les appels de fonctions, l’exécution de code, la recherche de fichiers, Maps, URL context et les réglages d’entrée ou de génération audio.
Avec un client OpenAI Chat existant
Vous pouvez appelerPOST /v1/chat/completions avec Base URL https://bettertoken.ai/v1. Pour une nouvelle intégration, les références et les retouches successives, utilisez l’API native Gemini ci-dessus. Dans Chat, omettez n ou indiquez l’entier 1.
En HTTP, placez google.image_config à la racine JSON. Dans le SDK Python OpenAI, utilisez extra_body, fusionné à la racine par le SDK. Pas de generationConfig ici.
openai==1.66.2 dans le même environnement virtuel :
choices[0].message.content, pas le data[] d’Images API. Ne reconstruisez pas de signatures depuis ce texte ; utilisez la retouche native.
Erreurs courantes
Les images arrivent dans la réponse courante. Ce flux n’offre ni récupération en arrière-plan ni interrogation de tâche. Enregistrez les résultats, prévoyez assez de temps côté SDK et proxy et désactivez les relances automatiques.

