Com construir amb Gemini 2.5 Flash Image (nano banana)
Si has sentit parlar de la nova Gemini 2.5 Flash Image (que sovint apareix amb el nom en clau peculiar de “nano banana”), probablement et preguntes com construir-hi realment, i de manera ràpida. Aquesta guia et mostra la configuració, les indicacions i els patrons de producció perquè puguis enviar funcions d'imatge + text de manera ràpida i fiable.
Què obtindràs: un flux de treball pràctic i complet per utilitzar el model Gemini 2.5 Flash Image, que inclou receptes d'indicacions, consells d'avaluació i enduriment de la producció.
Què és Gemini 2.5 Flash Image?
Gemini 2.5 Flash Image és un model multimodal lleuger i ràpid ajustat per a tasques de comprensió i generació d'imatges amb baixa latència. A la pràctica, és ideal per a:
- Comprensió d'imatges: classificar, subtitular, OCR-lite, extracció de disseny
- Q&A visual: respondre preguntes basades en una imatge
- Generació o edició d'imatges lleugera: variacions senzilles, anotacions, superposicions
- Experiències adaptades a la vora: previsualitzacions ràpides, inferència de baix cost, UX interactiva
El sobrenom “Flash” generalment implica velocitat i cost optimitzats. El sobrenom “nano banana” normalment fa referència a una etiqueta interna o variant de punt de control utilitzada en exemples o notes de la versió.
Prerequisits
- Un compte de Google AI Studio o Vertex AI amb accés a Gemini 2.5 Flash Image
- Clau API o credencials de compte de servei
- Temps d'execució: Node.js, Python o plataforma sense servidor (Cloud Functions/Run)
- Per a la producció: registre, limitació de velocitat, control de versions d'indicacions i arnés d'avaluació
Inici ràpid: comprensió d'imatges
A continuació, es mostra un exemple mínim de Python per a Q&A i subtitulació d'imatges. Reemplaça els marcadors de posició amb les teves credencials.
import base64
import requests
API_KEY = "{YOUR_API_KEY}"
MODEL = "gemini-2.5-flash-image" # o el nom exacte del model del proveïdor
ENDPOINT = "{MODEL}
# Carrega una imatge a base64
with open("./sample.jpg", "rb") as f:
image_b64 = base64.b64encode(f.read).decode("utf-8")
payload = {
"contents": [{
"role": "user",
"parts": [
{"text": "Descriu aquesta imatge en una frase i, a continuació, enumera tres detalls clau."},
{
"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"])
Recepta d'indicacions per a respostes robustes
- Intenció del sistema: “Ets un analista visual precís. Si no estàs segur, digues que no n'estàs.”
- Indicació de l'usuari: “Respon de manera concisa. Cita indicis visibles. Si hi ha text a la imatge, transcriu-lo exactament.”
- Demana estructura: “Torna JSON amb
caption, objects[], text_blocks[].”
{
"caption": "<resum d'una frase>",
"objects": [
{"label": "banana", "count": 2},
{"label": "bowl", "count": 1}
],
"text_blocks": [
{"text": "NANO BANANA", "bbox": [x,y,w,h]}
]
}
Inici ràpid: generació/edició lleugera
Per a superposicions o variacions senzilles, molts proveïdors exposen un punt final d'imatge a imatge. Pseudocodi:
payload = {
"contents": [{
"role": "user",
"parts": [
{"text": "Afegeix una etiqueta subtil 'Sample' a la cantonada superior dreta."},
{"inline_data": {"mime_type": "image/png", "data": image_b64}}
]
}],
"generationConfig": {"temperature": 0.3, "maxOutputTokens": 0},
"tools": [{"imageEdit": {"strength": 0.25}}]
}
- Mantén
strength baix per a edicions mínimes.
- Especifica sempre la ubicació i l'estil: “superior dreta, 12px, blanc semitransparent.”
- Per al compliment, mai demanis que es recreïn imatges amb filigrana o amb drets d'autor.
Construcció d'un pipeline fiable
1) Defineix les tasques i els criteris d'acceptació
- Subtitulació d'imatges: WER al text visible < 10%, subtítol <= 20 paraules
- Q&A visual: coincidència exacta en fets clau; permet la alternativa “no estic segur”
- Extracció de disseny: precisió/recuperació en entitats com ara preu, data, SKU
2) Estructura les indicacions
- Instrucció primer, després imatge
- Format de sortida: esquema JSON amb tipus de camp
- Proteccions: “Si el text no és visible, torna
null”
3) Processament per lots i memòria cau
- Processa les sol·licituds d'imatges per lots quan sigui possible
- Emmagatzema en memòria cau els resultats estables (p. ex., fotos de productes que no canvien)
- Utilitza ETags o hashs de contingut per eliminar duplicitats
4) Avalua sistemàticament
- Crea un petit conjunt d'or: 100–500 imatges amb etiquetes de veritat fonamental
- Fes un seguiment de les mètriques: precisió, taxa d'al·lucinacions, latència de resposta
- Crea un conjunt de regressió per versió d'indicació
5) Controls de producció
- Estableix
maxOutputTokens estrictament per a sortides deterministes
- Utilitza una
temperature inferior (0,1–0,4) per a tasques factuals
- Limita la velocitat per usuari i organització; afegeix un retrocés exponencial
- Registra les entrades/sortides (hash d'imatge, no brut per a la privadesa)
Casos d'ús i patrons comuns
Cerca visual de productes
- Ingereix imatges de catàleg, extreu
objects, dominant_color, style
- En el moment de la consulta, compara les incrustacions o els atributs
- Patró d'indicació: “Torna els 5 atributs principals que ajudarien a un comprador a decidir.”
OCR Lite de documents
- Demana al model que transcrigui blocs de text curts i clars
- Afegeix restriccions: “Torna el cas i la puntuació exactes; si és il·legible, estableix
confidence: low.”
Copilot UX per a captures de pantalla
- Entrada: captura de pantalla de l'aplicació
- Sortida: passos com a vinyetes: “Com centro el text?” → el model torna el camí del menú
Consells de cost i latència
- Prefereix “Flash” per a previsualitzacions i UX iterativa; augmenta a variants Gemini més grans per a les comprovacions finals
- Redueix l'escala a una vora màxima (p. ex., 1024px) per reduir l'amplada de banda sense perdre detalls clau
- Reutilitza les incrustacions o els resums intermedis quan encadenis tasques
Seguretat, privadesa i protecció
- Redacta PII abans de registrar; utilitza el hash de contingut per als ID d'imatge
- Aplica llistes de permesos de mida/tipus: jpeg, png; rebutja svg/exe
- Afegeix proteccions d'indicació: “Declina si se't demana que identifiquis persones privades”
Exemple: microservei de subtitulació d'extrem a extrem
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": "Torna JSON concís amb camps: 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
Resolució de problemes
- Sortides borroses o text perdut: redueix l'escala menys; sol·licita una entrada de resolució més alta; demana OCR explícitament
- JSON inconsistent: afegeix un postprocessador
strict_json o demana blocs JSON tancats ```json
- Detalls al·lucinats: redueix la temperatura; indica “Si no estàs segur, respon
unsure”
- Temps d'espera: transmet respostes si estan disponibles; redueix la mida de la imatge; estableix indicacions més curtes
Per cert: accelera la creació de prototips amb Sider.AI
Si estàs creant moltes variants d'indicacions o necessites proves A/B ràpides per a Gemini 2.5 Flash Image, Sider.AI pot ajudar-te a iterar més ràpidament. Pots organitzar les versions d'indicacions, executar avaluacions paral·leles al teu conjunt d'imatges i capturar mètriques de latència i precisió sense connectar un backend complet, cosa útil quan estàs ajustant les indicacions per a la subtitulació, l'OCR o les preguntes i respostes visuals.
Conclusions clau
- Gemini 2.5 Flash Image és ideal per a tasques multimodals ràpides i de baix cost
- Utilitza indicacions precises, esquemes JSON i temperatures baixes per a la fiabilitat
- Crea un conjunt d'avaluació repetible i canvis de porta amb proves de regressió
- Optimitza la latència amb la reducció d'escala, l'emmagatzematge en memòria cau i el processament per lots
- Considera Sider.AI per a la iteració i l'experimentació ràpida d'indicacions
Preguntes freqüents
P1: Què és Gemini 2.5 Flash Image (nano banana)?
És un model multimodal ràpid i lleuger optimitzat per a la comprensió d'imatges i edicions d'imatges senzilles. El sobrenom “nano banana” sovint fa referència a una etiqueta interna o variant d'exemple.
P2: Com utilitzo Gemini 2.5 Flash Image per a la subtitulació d'imatges?
Envia una instrucció de text més la imatge com a base64 al punt final generateContent del model. Demana JSON estructurat (caption, objects, text_blocks) i mantén la temperatura baixa per a la consistència.
P3: Pot Gemini 2.5 Flash Image gestionar OCR o text a les imatges?
Sí, per a text curt i clar. Especifica els requisits de transcripció exactes i inclou un camp de confiança. Per a OCR de gran abast, considera una eina OCR dedicada juntament amb el model.
P4: Com minimitzo la latència i el cost amb Gemini 2.5 Flash Image?
Redueix l'escala de les imatges a una vora màxima raonable, processa les sol·licituds per lots i emmagatzema en memòria cau els resultats estables. Utilitza temperatures més baixes i limita maxOutputTokens per controlar la mida de la sortida.
P5: Com pot ajudar Sider.AI a l'hora de construir amb Gemini 2.5 Flash Image?
Sider.AI agilitza el control de versions i l'avaluació d'indicacions perquè puguis fer proves A/B d'indicacions al teu conjunt de dades d'imatges, fer un seguiment de les mètriques i promoure configuracions fiables a la producció més ràpidament.