Comment créer avec Gemini 2.5 Flash Image (nano banana)
Si vous avez entendu parler de la nouvelle Gemini 2.5 Flash Image (souvent présentée sous le nom de code original « nano banana »), vous vous demandez probablement comment créer réellement avec elle, et rapidement. Ce guide vous explique la configuration, les invites et les modèles de production afin que vous puissiez proposer des fonctionnalités image+texte rapidement et de manière fiable.
Ce que vous obtiendrez : un flux de travail pratique et complet pour utiliser le modèle Gemini 2.5 Flash Image, comprenant des exemples d'invites, des conseils d'évaluation et un renforcement de la production.
Qu'est-ce que Gemini 2.5 Flash Image ?
Gemini 2.5 Flash Image est un modèle multimodal léger et rapide, conçu pour les tâches de compréhension et de génération d'images avec une faible latence. En pratique, il est idéal pour :
- Compréhension d'image : classification, légende, OCR simplifié, extraction de la mise en page
- Q&R visuelles : répondre à des questions basées sur une image
- Génération ou édition d'images légères : variations simples, annotations, superpositions
- Expériences adaptées à la périphérie : aperçus rapides, inférence à faible coût, UX interactive
Le terme « Flash » implique généralement une vitesse et un coût optimisés. Le surnom « nano banana » fait généralement référence à une balise interne ou à une variante de point de contrôle utilisée dans les exemples ou les notes de version.
Prérequis
- Un compte Google AI Studio ou Vertex AI avec accès à Gemini 2.5 Flash Image
- Clé API ou informations d'identification du compte de service
- Runtime : Node.js, Python ou plateforme serverless (Cloud Functions/Run)
- Pour la production : journalisation, limitation du débit, gestion des versions des invites et outil d'évaluation
Démarrage rapide : Compréhension d'image
Vous trouverez ci-dessous un exemple Python minimal pour les questions-réponses et la légende d'images. Remplacez les espaces réservés par vos informations d'identification.
import base64
import requests
API_KEY = "{YOUR_API_KEY}"
MODEL = "gemini-2.5-flash-image" # ou le nom exact du modèle du fournisseur
ENDPOINT = "(MODEL)
# Charger une image en base64
with open("./sample.jpg", "rb") as f:
image_b64 = base64.b64encode(f.read).decode("utf-8")
payload = {
"contents": [{
"role": "user",
"parts": [
{"text": "Décrivez cette image en une phrase, puis énumérez trois détails clés."},
{
"inline_data": {
"mime_type": "image/jpeg",
"data": image_b64
}
}
]
}],
"generationConfig": {
"temperature": 0.4,
"maxOutputTokens": 300
}
}
resp = requests.post(f"{ENDPOINT}?key={API_KEY}", json=payload)
resp.raise_for_status
print(resp.json["candidates"][0]["content"]["parts"][0]["text"])
Exemple d'invite pour des réponses robustes
- Intention du système : « Vous êtes un analyste visuel précis. En cas de doute, dites que vous n'êtes pas sûr. »
- Invite utilisateur : « Répondez de manière concise. Citez les indices visibles. Si du texte est présent dans l'image, transcrivez-le exactement. »
- Demandez une structure : « Renvoie du JSON avec
caption, objects[], text_blocks[]. »
{
"caption": "<résumé en une phrase>",
"objects": [
{"label": "banana", "count": 2},
{"label": "bowl", "count": 1}
],
"text_blocks": [
{"text": "NANO BANANA", "bbox": [x,y,w,h]}
]
}
Démarrage rapide : Génération/édition légère
Pour les superpositions ou les variations simples, de nombreux fournisseurs exposent un point de terminaison image-à-image. Pseudocode :
payload = {
"contents": [{
"role": "user",
"parts": [
{"text": "Ajouter une étiquette subtile 'Sample' dans le coin supérieur droit."},
{"inline_data": {"mime_type": "image/png", "data": image_b64}}
]
}],
"generationConfig": {"temperature": 0.3, "maxOutputTokens": 0},
"tools": [{"imageEdit": {"strength": 0.25}}]
}
- Gardez la
strength faible pour des modifications minimales.
- Spécifiez toujours l'emplacement et le style : « en haut à droite, 12 px, blanc semi-transparent. »
- Pour la conformité, ne demandez jamais à recréer des images filigranées ou protégées par des droits d'auteur.
Création d'un pipeline fiable
1) Définir les tâches et les critères d'acceptation
- Légende d'image : WER sur le texte visible < 10 %, légende <= 20 mots
- Q&R visuelles : correspondance exacte sur les faits clés ; autoriser le repli « pas sûr »
- Extraction de la mise en page : précision/rappel sur les entités telles que le prix, la date, la référence
2) Structurer les invites
- Instruction d'abord, puis image
- Format de sortie : Schéma JSON avec types de champs
- Garde-fous : « Si le texte n'est pas visible, renvoyer
null »
3) Traitement par lots et mise en cache
- Traiter les demandes d'images par lots lorsque cela est possible
- Mettre en cache les résultats stables (par exemple, les photos de produits qui ne changent pas)
- Utiliser des ETags ou des hachages de contenu pour dédupliquer
4) Évaluer systématiquement
- Créer un petit ensemble de référence : 100 à 500 images avec des étiquettes de vérité terrain
- Suivre les métriques : précision, taux d'hallucination, latence de réponse
- Créer une suite de régression par version d'invite
5) Contrôles de production
- Définir
maxOutputTokens de manière stricte pour des sorties déterministes
- Utiliser une
temperature inférieure (0,1–0,4) pour les tâches factuelles
- Limiter le débit par utilisateur et organisation ; ajouter une interruption exponentielle
- Enregistrer les entrées/sorties (hacher l'image, pas les données brutes pour la confidentialité)
Cas d'utilisation et modèles courants
Recherche visuelle de produits
- Ingérer les images du catalogue, extraire
objects, dominant_color, style
- Au moment de la requête, comparer les incorporations ou les attributs
- Exemple d'invite : « Renvoyer les 5 principaux attributs qui aideraient un acheteur à se décider. »
OCR simplifié de documents
- Demander au modèle de transcrire des blocs de texte courts et clairs
- Ajouter des contraintes : « Renvoyer la casse et la ponctuation exactes ; si illisible, définir
confidence: low. »
Copilote UX pour les captures d'écran
- Entrée : capture d'écran de l'application
- Sortie : étapes sous forme de puces : « Comment centrer le texte ? » → le modèle renvoie le chemin du menu
Conseils sur les coûts et la latence
- Préférer « Flash » pour les aperçus et l'UX itérative ; passer à des variantes Gemini plus importantes pour les vérifications finales
- Réduire l'échelle à un bord maximal (par exemple, 1024 px) pour réduire la bande passante sans perdre les détails clés
- Réutiliser les incorporations ou les résumés intermédiaires lors de l'enchaînement des tâches
Sécurité, confidentialité et sûreté
- Masquer les informations personnelles avant de vous connecter ; utiliser le hachage de contenu pour les ID d'image
- Appliquer des listes d'autorisation de taille/type : jpeg, png ; rejeter svg/exe
- Ajouter des protections d'invite : « Refuser si on vous demande d'identifier des personnes privées »
Exemple : Microservice de légende de bout en bout
from fastapi import FastAPI, UploadFile, File
import base64, requests, os
app = FastAPI
API_KEY = os.getenv("API_KEY")
MODEL = "gemini-2.5-flash-image"
ENDPOINT = f"("/caption")
async def caption(file: UploadFile = File:
b = await file.read
b64 = base64.b64encode(b).decode("utf-8")
payload = {
"contents": [{
"role": "user",
"parts": [
{"text": "Return concise JSON with fields: caption, objects[]."},
{"inline_data": {"mime_type": file.content_type, "data": b64}}
]
}],
"generationConfig": {"temperature": 0.2, "maxOutputTokens": 200}
}
r = requests.post(f"{ENDPOINT}?key={API_KEY}", json=payload, timeout=30)
r.raise_for_status
return r.json
Dépannage
- Sorties floues ou texte manquant : Réduire moins l'échelle ; demander une entrée de résolution supérieure ; demander explicitement l'OCR
- JSON incohérent : Ajouter un post-processeur
strict_json ou demander des blocs JSON délimités ```json
- Détails hallucinés : Baisser la température ; indiquer « En cas de doute, répondre
unsure »
- Délai d'attente : Diffuser les réponses si disponibles ; réduire la taille de l'image ; définir des invites plus courtes
Au fait : Accélérez le prototypage avec Sider.AI
Si vous créez de nombreuses variantes d'invites ou si vous avez besoin de tests A/B rapides pour Gemini 2.5 Flash Image, Sider.AI peut vous aider à itérer plus rapidement. Vous pouvez organiser les versions d'invites, exécuter des évaluations côte à côte sur votre ensemble d'images et capturer les métriques de latence et de précision sans câbler un backend complet, ce qui est pratique lorsque vous réglez les invites pour la légende, l'OCR ou les questions-réponses visuelles.
Principaux points à retenir
- Gemini 2.5 Flash Image est idéal pour les tâches multimodales rapides et à faible coût
- Utiliser des invites précises, des schémas JSON et des températures basses pour la fiabilité
- Créer un ensemble d'évaluation reproductible et contrôler les modifications avec des tests de régression
- Optimiser la latence avec la réduction d'échelle, la mise en cache et le traitement par lots
- Envisager Sider.AI pour une itération et une expérimentation rapides des invites
FAQ
Q1 : Qu'est-ce que Gemini 2.5 Flash Image (nano banana) ?
Il s'agit d'un modèle multimodal rapide et léger, optimisé pour la compréhension d'images et les modifications d'images simples. Le surnom « nano banana » fait souvent référence à une balise interne ou à une variante d'exemple.
Q2 : Comment utiliser Gemini 2.5 Flash Image pour la légende d'images ?
Envoyer une instruction textuelle plus l'image en base64 au point de terminaison generateContent du modèle. Demander un JSON structuré (légende, objets, text_blocks) et maintenir une température basse pour la cohérence.
Q3 : Gemini 2.5 Flash Image peut-il gérer l'OCR ou le texte dans les images ?
Oui, pour les textes courts et clairs. Spécifier les exigences de transcription exactes et inclure un champ de confiance. Pour l'OCR intensif, envisager un outil d'OCR dédié en plus du modèle.
Q4 : Comment minimiser la latence et les coûts avec Gemini 2.5 Flash Image ?
Réduire l'échelle des images à un bord maximal raisonnable, traiter les demandes par lots et mettre en cache les résultats stables. Utiliser des températures plus basses et limiter maxOutputTokens pour contrôler la taille de la sortie.
Q5 : Comment Sider.AI peut-il aider lors de la création avec Gemini 2.5 Flash Image ?
Sider.AI rationalise la gestion des versions et l'évaluation des invites afin que vous puissiez effectuer des tests A/B des invites sur votre ensemble de données d'images, suivre les métriques et promouvoir plus rapidement les configurations fiables en production.