Skip to main content
Le même endpoint natif Gemini sert à générer depuis du texte, retoucher une référence et poursuivre les retouches. Les exemples utilisent nano-banana-2.1 ; remplacez le modèle dans l’URL ou le SDK pour les deux autres.
BetterToken API ne prend pas en charge la génération avec recherche, y compris Google Web Search et Image Search grounding. N’ajoutez pas d’outils de recherche.

Connexion

Créer une BetterToken API Key · catalogue de modèles · Présentation des modèles Nano Banana
Ces trois modèles n’acceptent pas POST /v1/images/generations ni POST /v1/images/edits : réponse 400 unsupported_endpoint. Ne réutilisez pas les exemples GPT Image avec multipart, image[] ou data[].b64_json.

Générer une première image

Définissez BETTERTOKEN_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.
Passez 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 dans generationConfig.imageConfig.

Proportions prises en charge par Google

Nano Banana 2 et 2.1 acceptent 14 proportions ; Pro en accepte 10. Commencez par 1: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 dans candidates[].content.parts[].inlineData. La structure ci-dessous utilise le marqueur BASE64_IMAGE_DATA. Parcourez toutes les parties finales et ignorez thought: true.
Ce code Python enregistre le résultat curl. Choisissez l’extension selon mimeType : une image peut être JPEG, pas toujours .png.

Exemple complet du SDK Python

Utilisez Python 3.10 ou ultérieur et google-genai==2.30.1. Installez dans l’environnement virtuel du projet ; les anciennes versions peuvent omettre image_size.
Le Base URL du SDK est la racine du domaine sans /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. Remplacez reference.jpg par votre fichier. Pour PNG, utilisez mime_type="image/png". Ajoutez d’autres références dans parts du même message utilisateur.
En JSON natif, utilisez 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 le content complet, l’ordre des parties et thoughtSignature. Ne reconstruisez pas l’historique à partir de la seule image ; n’inventez ni ne modifiez de signature.
Chaque tour est une nouvelle génération. Gardez tout le 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 generateContent sans streaming. Cette intégration ne prend pas en charge Files / fileData, Batch, Interactions ni le streaming.
  • responseMimeType, responseSchema et les formats de compression personnalisés ne sont pas pris en charge. Dans imageConfig, 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 appeler POST /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.
Pour l’exemple SDK Python OpenAI, installez openai==1.66.2 dans le même environnement virtuel :
Chat renvoie des Markdown Data URL dans 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.

Sources officielles