Kako graditi s Gemini 2.5 Flash Image (nano banana)
Ako ste čuli za novi Gemini 2.5 Flash Image (koji se često pojavljuje pod neobičnim kodnim imenom “nano banana”), vjerojatno se pitate kako zapravo graditi s njim—brzo. Ovaj vodič vodi vas kroz postavljanje, upute i obrasce proizvodnje kako biste brzo i pouzdano isporučili značajke slike+teksta.
Što ćete dobiti: praktičan, cjelovit tijek rada za korištenje modela Gemini 2.5 Flash Image, uključujući recepte za upute, savjete za evaluaciju i jačanje proizvodnje.
Što je Gemini 2.5 Flash Image?
Gemini 2.5 Flash Image je lagan, brz multimodalni model prilagođen za razumijevanje slike i zadatke generiranja s niskom latencijom. U praksi je idealan za:
- Razumijevanje slike: klasificiranje, opisivanje, OCR-lite, izdvajanje izgleda
- Vizualna pitanja i odgovori: odgovaranje na pitanja temeljena na slici
- Lagano generiranje ili uređivanje slike: jednostavne varijacije, bilješke, preklapanja
- Iskustva prilagođena rubnim uređajima: brzi pregledi, jeftino zaključivanje, interaktivno korisničko sučelje
Naziv “Flash” općenito podrazumijeva optimiziranu brzinu i cijenu. Nadimak “nano banana” obično se odnosi na internu oznaku ili varijantu kontrolne točke koja se koristi u primjerima ili bilješkama o izdanju.
Preduvjeti
- Google AI Studio ili Vertex AI račun s pristupom Gemini 2.5 Flash Image
- API ključ ili vjerodajnice servisnog računa
- Runtime: Node.js, Python ili serverless platforma (Cloud Functions/Run)
- Za proizvodnju: bilježenje, ograničavanje brzine, verzije uputa i sustav za evaluaciju
Brzi početak: Razumijevanje slike
U nastavku je minimalni Python primjer za vizualna pitanja i odgovore i opisivanje slika. Zamijenite rezervirana mjesta svojim vjerodajnicama.
import base64
import requests
API_KEY = "{YOUR_API_KEY}"
MODEL = "gemini-2.5-flash-image" # ili točan naziv modela davatelja usluga
ENDPOINT = "{MODEL}
# Učitavanje slike u base64
with open("./sample.jpg", "rb") as f:
image_b64 = base64.b64encode(f.read).decode("utf-8")
payload = {
"contents": [{
"role": "user",
"parts": [
{"text": "Opišite ovu sliku u jednoj rečenici, a zatim navedite tri ključna detalja."},
{
"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"])
Recept za upute za pouzdane odgovore
- Namjera sustava: “Vi ste precizan vizualni analitičar. Ako niste sigurni, recite da niste sigurni.”
- Uputa korisnika: “Odgovorite sažeto. Navedite vidljive znakove. Ako je tekst na slici, prepišite točno.”
- Zatražite strukturu: “Vratite JSON s
caption, objects[], text_blocks[].”
{
"caption": "<sažetak u jednoj rečenici>",
"objects": [
{"label": "banana", "count": 2},
{"label": "zdjela", "count": 1}
],
"text_blocks": [
{"text": "NANO BANANA", "bbox": [x,y,w,h]}
]
}
Brzi početak: Lagano generiranje/uređivanje
Za jednostavna preklapanja ili varijacije, mnogi davatelji usluga izlažu krajnju točku slika-u-sliku. Pseudokod:
payload = {
"contents": [{
"role": "user",
"parts": [
{"text": "Dodajte suptilnu oznaku 'Sample' u gornji desni kut."},
{"inline_data": {"mime_type": "image/png", "data": image_b64}}
]
}],
"generationConfig": {"temperature": 0.3, "maxOutputTokens": 0},
"tools": [{"imageEdit": {"strength": 0.25}}]
}
- Držite
strength nisko za minimalne izmjene.
- Uvijek navedite položaj i stil: “gore desno, 12px, polutransparentna bijela.”
- Radi usklađenosti, nikada ne tražite ponovno stvaranje slika s vodenim žigom ili zaštićenih autorskim pravima.
Izgradnja pouzdanog kanala
1) Definirajte zadatke i kriterije prihvaćanja
- Opisivanje slike: WER na vidljivom tekstu < 10%, opis <= 20 riječi
- Vizualna pitanja i odgovori: točno podudaranje ključnih činjenica; dopustite povrat na “nisam siguran”
- Izdvajanje izgleda: preciznost/odziv na entitete kao što su cijena, datum, SKU
2) Strukturirajte upute
- Format izlaza: JSON shema s vrstama polja
- Zaštitne ograde: “Ako tekst nije vidljiv, vratite
null”
3) Grupirajte i predmemorirajte
- Grupirajte zahtjeve za slikama kada je to moguće
- Predmemorirajte stabilne rezultate (npr. fotografije proizvoda koje se ne mijenjaju)
- Koristite ETags ili hashove sadržaja za deduplikaciju
4) Sustavno vrednujte
- Izgradite mali zlatni skup: 100–500 slika s oznakama temeljne istine
- Pratite metrike: točnost, stopa halucinacija, latencija odgovora
- Napravite regresijski paket po verziji uputa
5) Kontrole proizvodnje
- Postavite
maxOutputTokens čvrsto za determinističke izlaze
- Koristite nižu
temperature (0,1–0,4) za činjenične zadatke
- Ograničite brzinu po korisniku i organizaciji; dodajte eksponencijalno povlačenje
- Zabilježite ulaze/izlaze (hashirajte sliku, a ne sirovu za privatnost)
Uobičajeni slučajevi upotrebe i obrasci
Vizualno pretraživanje proizvoda
- Unesite slike kataloga, izdvojite
objects, dominant_color, style
- U vrijeme upita, usporedite ugradnje ili atribute
- Obrazac upita: “Vratite top 5 atributa koji bi pomogli kupcu da se odluči.”
Document Lite OCR
- Zatražite od modela da prepiše kratke, jasne blokove teksta
- Dodajte ograničenja: “Vratite točan slučaj i interpunkciju; ako je nečitko, postavite
confidence: low.”
UX Copilot za snimke zaslona
- Ulaz: snimka zaslona aplikacije
- Izlaz: koraci kao točke: “Kako centrirati tekst?” → model vraća put izbornika
Savjeti za troškove i latenciju
- Preferirajte “Flash” za preglede i iterativno korisničko sučelje; eskalirajte na veće Gemini varijante za konačne provjere
- Smanjite na maksimalni rub (npr. 1024px) kako biste smanjili propusnost bez gubitka ključnih detalja
- Ponovno upotrijebite ugradnje ili srednje sažetke prilikom povezivanja zadataka
Sigurnost, privatnost i zaštita
- Redigirajte PII prije bilježenja; koristite hashiranje sadržaja za ID-ove slika
- Provedite dopuštene popise veličina/vrsta: jpeg, png; odbijte svg/exe
- Dodajte zaštitne mjere za upute: “Odbijte ako se traži identifikacija privatnih osoba”
Primjer: Cjeloviti mikrousluga za opisivanje
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": "Vratite sažeti JSON s poljima: 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
Rješavanje problema
- Mutni izlazi ili propušteni tekst: Smanjite manje; zatražite ulaz veće razlučivosti; zatražite OCR eksplicitno
- Nedosljedan JSON: Dodajte
strict_json post-procesor ili zatražite ograđene JSON ```json blokove
- Halucinirani detalji: Smanjite temperaturu; uputite “Ako niste sigurni, odgovorite
nisam siguran”
- Istek vremena: Strujite odgovore ako su dostupni; smanjite veličinu slike; postavite kraće upute
Usput: Ubrzajte izradu prototipa uz Sider.AI
Ako gradite puno varijanti uputa ili trebate brze A/B testove za Gemini 2.5 Flash Image, Sider.AI vam može pomoći da brže iterirate. Možete organizirati verzije uputa, pokrenuti usporedne evaluacije na svom skupu slika i zabilježiti metrike latencije i točnosti bez ožičenja pune pozadine—što je korisno kada ugađate upute za opisivanje, OCR ili vizualna pitanja i odgovore.
Ključni zaključci
- Gemini 2.5 Flash Image izvrstan je za brze, jeftine multimodalne zadatke
- Koristite precizne upute, JSON sheme i niske temperature za pouzdanost
- Izgradite ponovljivi skup za evaluaciju i promjene vrata s regresijskim testovima
- Optimizirajte latenciju smanjivanjem, predmemoriranjem i grupiranjem
- Razmislite o Sider.AI za brzu iteraciju i eksperimentiranje s uputama
Često postavljana pitanja
P1: Što je Gemini 2.5 Flash Image (nano banana)?
To je brz, lagan multimodalni model optimiziran za razumijevanje slike i jednostavne izmjene slike. Nadimak “nano banana” često se odnosi na internu oznaku ili varijantu primjera.
P2: Kako koristiti Gemini 2.5 Flash Image za opisivanje slike?
Pošaljite tekstualnu uputu plus sliku kao base64 na krajnju točku generateContent modela. Zatražite strukturirani JSON (caption, objects, text_blocks) i držite temperaturu niskom radi dosljednosti.
P3: Može li Gemini 2.5 Flash Image obraditi OCR ili tekst na slikama?
Da, za kratak i jasan tekst. Navedite točne zahtjeve za prijepis i uključite polje pouzdanosti. Za OCR za teške uvjete rada razmislite o namjenskom OCR alatu uz model.
P4: Kako minimizirati latenciju i troškove s Gemini 2.5 Flash Image?
Smanjite slike na razumnu maksimalnu veličinu ruba, grupirajte zahtjeve i predmemorirajte stabilne rezultate. Koristite niže temperature i ograničite maxOutputTokens za kontrolu veličine izlaza.
P5: Kako Sider.AI može pomoći pri izgradnji s Gemini 2.5 Flash Image?
Sider.AI pojednostavljuje verziranje i evaluaciju uputa tako da možete A/B testirati upute na svom skupu podataka slika, pratiti metrike i brže promovirati pouzdane konfiguracije u proizvodnju.