Cursus
Beeldgeneratiemodellen zijn de laatste tijd enorm krachtig geworden, maar ze liepen altijd achter op één vlak: beeldbewerking. Precieze tekstaanpassingen, kleuren vervangen, stijl transformeren, andere camerahoeken gebruiken, of consistente personages over generaties heen — dit waren allemaal gewenste toepassingen waar geen enkel model universeel goed in was. Totdat Google het Gemini 2.5 Flash Image-model uitbracht en de spelregels veranderde met conversatiegestuurde bewerking.
In deze tutorial leer je hoe je Gemini 2.5 Flash Image via Python instelt en gebruikt, specifieke prompt-engineeringtechnieken beheerst voor verschillende visuele stijlen en werkt met geavanceerde functies zoals multi-imagecompositie en personageconsistentie. Aan het einde heb je praktische tools voor professionele beeldgeneratieworkflows.
Update: Intussen heeft Google een bijgewerkte versie van het model uitgebracht. Bekijk zeker onze Nano Banana 2-gids om te zien wat er nieuw is!
Als je ook andere Google AI-tools voor beeldgeneratie wilt verkennen, bekijk dan onze uitgebreide gids voor Imagen 3, die Google’s alternatieve API voor beeldgeneratie behandelt met andere sterktes en prijsmodellen. Zie ook onze gids voor Gemini 2.5 Computer Use om te zien hoe het model je scherm kan zien en er autonoom binnen kan handelen, en bekijk het laatste over Gemini 3 Pro.
Tot slot kun je ook onze gids voor ChatGPT Images bekijken, een nieuwe concurrent van Nano Banana Pro.
Wat is Gemini 2.5 Flash Image?
De meeste beeldgeneratiemodellen maken sterke visuals vanuit tekstprompts. Maar ze hebben moeite met bewerken. Als je de belichting van een foto wilt veranderen, moet je meestal opnieuw beginnen. Wil je hetzelfde personage in verschillende scènes, dan lukt het de meeste modellen niet om die er consistent uit te laten zien. Dat maakt deze tools lastiger voor echte projecten die finetuning en revisies nodig hebben.
Gemini 2.5 Flash Image lost deze bewerkingsproblemen op. Google bouwde dit model met functies die specifiek inspelen op taken waar andere modellen mee worstelen:
- Conversatiegestuurde bewerking: Vertel in gewone taal wat er moet veranderen, zonder opnieuw te beginnen.
- Multi-imagecompositie: Combineer tot drie verschillende beelden tot iets nieuws.
- Personageconsistentie: Houd personages hetzelfde over meerdere beelden heen.
- Tekstrendering met hoge nauwkeurigheid: Voeg duidelijke, leesbare tekst direct in afbeeldingen toe.
- Redeneren over de echte wereld: Maak slimme edits met begrip van hoe objecten en scènes echt werken.
Deze functies werken samen om een flexibeler systeem voor beeldgeneratie te vormen. Zo werkt de personageconsistentiefunctie in de praktijk:

Personageconsistentie in actie: dezelfde stripfiguren verschijnen consistent in verschillende scènes, behouden hun visuele identiteit en passen zich aan nieuwe omgevingen en contexten aan.
Google testte dit model op LMArena-benchmarks, waar het team het intern “nano banana” noemde. De resultaten tonen betere prestaties dan andere toonaangevende modellen, vooral bij afbeeldingsbewerkingen. Het model genereert ook sneller beelden dan de meeste concurrenten. De snelheid kan variëren op basis van de complexiteit van je beeld en de gewenste bewerkingen.

Prestatiebenchmarks: Gemini 2.5 Flash Image laat superieure prestaties zien bij bewerkingsopdrachten ten opzichte van andere toonaangevende AI-beeldgeneratiemodellen.
De prijsstructuur werkt anders dan bij andere beeldmodellen. In plaats van per afbeelding te betalen, betaal je voor tokens. Elke afbeelding gebruikt ongeveer 1.290 tokens, wat neerkomt op zo’n $0,039. Het volledige tarief is $30 per miljoen tokens. Zowel nieuwe generaties als bewerkingen gebruiken hetzelfde aantal tokens, waardoor de kosten voorspelbaar blijven, of je nu vanaf nul creëert of aanpassingen maakt.

Conversatiegestuurde bewerkingsworkflow: voorbeelden van precieze beeldaanpassingen via natuurlijke taal, die laten zien dat het model gerichte wijzigingen kan maken zonder volledige regeneratie.
Nu je weet wat Gemini 2.5 Flash Image onderscheidt, gaan we aan de slag met de technologie. De volgende stap is je ontwikkelomgeving inrichten zodat je meteen kunt beginnen.
Nano Banana gratis gebruiken
Hoewel deze gids zich vooral richt op toegang tot Gemini 2.5 Flash Image via de API, kun je ook beelden genereren met alleen je Google-account.
Na inloggen kun je het Nano Banana-model benaderen via Gemini of via de Google AI Studio. Gebruik je Gemini, dan komt er wel een watermerk op je afbeeldingen.

Aan de slag met Gemini 2.5 Flash Image: omgeving instellen
Voordat je beelden kunt genereren met Gemini 2.5 Flash Image, moet je je ontwikkelomgeving instellen. Het proces is simpel, maar correcte authenticatie is belangrijk voor de veiligheid.
Vereisten
Dit heb je nodig voordat we beginnen:
- Python 3.9 of nieuwer: Controleer je versie met
python --version - UV-pakketmanager: Beheert Python-afhankelijkheden
- Google-account: Voor toegang tot Google AI Studio
Je API-sleutel ophalen
Om Gemini 2.5 Flash Image te gebruiken, heb je een API-sleutel van Google nodig. Deze sleutel werkt als je wachtwoord voor de service. Zo krijg je er een:
- Ga naar Google AI Studio
- Log in met je Google-account
- Klik op “Get API Key” in het linkerpaneel
Op dit punt vraagt Google AI Studio je een project te kiezen. Projecten helpen je API-gebruik te organiseren en quota’s te volgen. Je hebt twee opties:
- “Create API key in new project” (aanrader voor beginners)
- “Create API key in existing project” (als je al Google Cloud-projecten hebt)
De meeste mensen kiezen het maken van een nieuw project. Klik daarop, en Google maakt automatisch zowel een project als je API-sleutel.
4. Kopieer de gegenereerde sleutel meteen — je ziet de volledige sleutel later niet meer
5. Sla hem veilig op — je hebt hem in de volgende stappen nodig
Veiligheidstip: Behandel je API-sleutel als een wachtwoord. Deel hem niet openbaar en zet hem niet in code die anderen kunnen zien.
Je ontwikkelomgeving inrichten
Nu je een API-sleutel hebt, richten we je Python-omgeving in. Maak een nieuwe map voor deze tutorial en installeer de benodigde pakketten:
# Create project directory
mkdir gemini-image-tutorial
cd gemini-image-tutorial
# Initialize UV project
uv init
# Add required packages
uv add google-genai python-dotenv pillow
Dit doet elk pakket:
google-genai: Officiële cliënt voor communicatie met Geminipython-dotenv: Houdt je API-sleutel veiligpillow: Verwerkt afbeeldingsbestanden
Je API-sleutel beveiligen
Je moet je API-sleutel zo opslaan dat hij veilig is maar wel toegankelijk voor je code. De beste manier is via omgevingsvariabelen met een .env-bestand.
Maak een .env-bestand in je projectmap:
# Create .env file
touch .env
Open het .env-bestand in een teksteditor en voeg je API-sleutel toe:
GEMINI_API_KEY=your_api_key_here
Vervang your_api_key_here door de sleutel die je uit Google AI Studio kopieerde.
Maak vervolgens een .gitignore zodat je API-sleutel niet per ongeluk gedeeld wordt als je Git gebruikt:
# Create .gitignore
echo ".env" >> .gitignore
echo "__pycache__/" >> .gitignore
echo "*.pyc" >> .gitignore
Je setup testen
Laten we testen of alles werkt met een eenvoudige proef. Maak een bestand test_setup.py aan:
import os
from dotenv import load_dotenv
from google import genai
# Load environment variables
load_dotenv()
# Initialize the client
client = genai.Client(apikey=os.getenv("GEMINIAPI_KEY"))
# Test with a simple text generation
try:
response = client.models.generate_content(
model="gemini-2.5-flash",
contents="Say hello in exactly 3 words"
)
print("✅ Setup successful!")
print(f"Response: {response.text}")
except Exception as e:
print("❌ Setup failed:")
print(f"Error: {e}")
Voer nu je testscript uit om te controleren of alles werkt:
uv run python test_setup.py
Als alles correct is ingesteld, zie je een succesbericht en een korte reactie van het model. De uitvoer ziet er ongeveer zo uit:
✅ Setup successful!
Response: Hello there everyone.
Krijg je een foutmelding, dan zijn dit de meest voorkomende oplossingen:
- “API key not found”: Controleer of je
.envhet volgende bevat:GEMINI_API_KEY=your_actual_key - “Invalid API key”: Kopieer de sleutel opnieuw uit Google AI Studio — zorg dat je de volledige sleutel hebt
- “Quota exceeded”: Je daglimiet is bereikt. Wacht even of controleer je gebruik in Google AI Studio
Je gebruikslimieten begrijpen
Je gratis API-sleutel heeft deze limieten:
- 2 verzoeken per minuut voor de meeste modellen
- 32.000 tokens per minuut (tokens zijn als woorden — dit is ruim voldoende voor de meeste toepassingen)
- 50 verzoeken per dag (ruim voldoende om te leren en voor kleine projecten)
Deze limieten zijn perfect voor deze tutorial en kleine projecten. Je kunt je gebruik altijd bekijken via het dashboard in Google AI Studio.
Met je omgeving ingericht en getest ben je klaar om beelden te genereren. In de volgende sectie maak je je eerste afbeelding met Gemini 2.5 Flash Image.
Je eerste Nano Banana-beeldgeneratie
Nu je omgeving klaar is, maken we je eerste afbeelding met Gemini 2..5 Flash Image. We beginnen simpel en bouwen je begrip stap voor stap op.
De basiscode opzetten
Eerst laden we de bibliotheken die we nodig hebben en richten we de verbinding met Gemini in:
import os
from dotenv import load_dotenv
from google import genai
from PIL import Image
from io import BytesIO
# Load your API key from the .env file
load_dotenv()
# Create a client to talk to Gemini
client = genai.Client(apikey=os.getenv("GEMINIAPI_KEY"))
Dit doet elke import:
os: Helpt met omgevingsvariabelenload_dotenv(): Leest je API-sleutel uit het .env-bestandgenai: De hoofdbibliotheek voor communicatie met GeminiPIL ImageenBytesIO: Helpen bij het opslaan van de teruggestuurde afbeeldingsbestanden
Het client-object is hoe we verzoeken naar Gemini sturen. Zie het als je verbinding met Google’s servers.
Je eerste afbeelding genereren
Laten we nu een eenvoudige afbeelding maken met een duidelijke, beschrijvende prompt:
# Write a prompt describing what you want
prompt = "A cozy coffee shop with wooden furniture and warm lighting"
# Ask Gemini to create the image
response = client.models.generate_content(
model="gemini-2.5-flash-image-preview",
contents=[prompt]
)
De functie generate_content() is de hoofdmanier om met Gemini te praten. Dit betekent elk onderdeel:
model="gemini-2.5-flash-image-preview": Hiermee geef je aan welk model voor beeldgeneratie wordt gebruiktcontents=[prompt]: Hier plaats je je tekstbeschrijving
De afbeelding uit de respons halen
Wanneer Gemini een antwoord terugstuurt, komt de afbeelding als ruwe data die we moeten omzetten naar een echt afbeeldingsbestand. Zo haal en bewaar je die:
# Look through the response to find the image
for part in response.candidates[0].content.parts:
if part.inline_data is not None:
# Convert the raw data into an image
image = Image.open(BytesIO(part.inline_data.data))
# Save it as a PNG file
image.save("myfirstimage.png")
print("Image saved!")
Deze code doet een paar belangrijke dingen:
response.candidates[0]: Haalt het eerste (en meestal enige) antwoord van Gemini opcontent.parts: Gemini kan meerdere onderdelen terugsturen — tekst, beelden, enz.part.inline_data: Hier staat de daadwerkelijke beelddataBytesIO(): Zet de ruwe bytes om naar iets wat PIL kan lezenimage.save(): Slaat de uiteindelijke afbeelding op je computer op
Laten we alles samenvoegen en de complete code draaien. Als je deze commando’s achter elkaar uitvoert, zie je ongeveer deze output:
✅ Image saved as https://cdn-images-1.medium.com/proxy/1*Hhy7vMKOurXDOPVQ6Ps0gQ.png
📏 Image size: (1024, 1024)
🎨 Image mode: RGB
Dit is de afbeelding die is gegenereerd op basis van onze koffiezaakprompt:

Een knusse koffiebar met houten balken, warme verlichting, comfortabele zitjes en een gastvrije sfeer, precies zoals in de prompt beschreven.
Begrijpen wat je terugkrijgt
Elke keer dat je een afbeelding genereert, geeft Gemini je:
- Een PNG-bestand (1024x1024 pixels)
- Resultaten van hoge kwaliteit die professioneel ogen
- Een onzichtbaar watermerk (je ziet het niet, maar het is er wel)
De respons kan ook tekst bevatten als Gemini iets wil toelichten over de gemaakte afbeelding.
Andere prompts proberen
Nu je de basisworkflow kent, proberen we enkele andere prompts om te zien hoe het model reageert op verschillende beschrijvingen:
# Simple object descriptions work great
"A red bicycle in a sunny park"
# You can add details about style and mood
"A modern kitchen with clean white cabinets and natural light"
# Describe the setting and atmosphere
"A peaceful lake surrounded by mountains at sunset"
Laten we bekijken wat deze prompts genereren als je ze draait:
Rode fiets in een zonnig park:

Een rode fiets perfect gepositioneerd in een prachtig park met gouden zonlicht, weelderig groen en een rustige bank. Let op de schaduwen — zoals bij een echte foto vervormen de schaduwen wanneer het oppervlak verandert van pad naar gras.
Moderne keuken met strakke witte kasten:

Een strak, eigentijds keukenontwerp met smetteloze witte kasten, moderne armaturen en natuurlijk licht door grote ramen. Let op de weerspiegelingen van het raam op het gladde tafelblad in het midden.
Rustig meer omringd door bergen:

Een rustig bergmeer bij zonsondergang met perfecte reflecties, omringd door dramatische pieken en met een charmante houten boot op de voorgrond. Opnieuw uitzonderlijke details in de reflecties op het wateroppervlak.
Begin met duidelijke, eenvoudige beschrijvingen. Je kunt ze altijd uitbreiden zodra je vertrouwd raakt met hoe het model werkt.
Wat als er iets misgaat
Deze voorbeelden laten de typische workflow zien, maar je kunt onderweg issues tegenkomen. Zo pak je de meest voorkomende problemen aan:
- Er verschijnt geen afbeelding: Controleer of je prompt duidelijk is en iets visueels beschrijft.
- Foutmeldingen: Check of je API-sleutel werkt en of je je daglimiet niet hebt bereikt.
- Onverwachte resultaten: Formuleer je prompt specifieker.
In de volgende sectie leer je betere prompts schrijven om meer controle over je resultaten te krijgen.
Prompt engineering voor Gemini 2.5 Flash Image onder de knie krijgen
Nu je basisafbeeldingen kunt genereren, leer je prompts schrijven die je meer controle over je resultaten geven. De sleutel is specifiek zijn over wat je wilt, en begrijpen hoe verschillende technieken het eindbeeld beïnvloeden.
Voor een verdiepende blik op de fundamenten van prompt engineering over alle AI-modellen heen, behandelt onze uitgebreide gids voor prompt engineering voor 2025 de nieuwste technieken en strategieën die gelden voor zowel tekst- als visuele AI.
Een herbruikbare functie maken
Het handmatige proces uit de vorige sectie is prima om te leren, maar alle code herhalen voor elke afbeelding wordt al snel saai. Voor we de technieken induiken, maken we een helperfunctie die het proces stroomlijnt:
def generateandsave_image(prompt, filename):
"""
Generate an image and save it to the images folder
Args:
prompt (str): Description of what you want to create
filename (str): Name for the saved image file
Returns:
bool: True if successful, False otherwise
"""
try:
response = client.models.generate_content(
model="gemini-2.5-flash-image-preview",
contents=[prompt]
)
# Find and save the image
for part in response.candidates[0].content.parts:
if part.inline_data is not None:
image = Image.open(BytesIO(part.inline_data.data))
image.save(f"images/{filename}")
print(f"✅ Image saved as images/{filename}")
return True
except Exception as e:
print(f"❌ Error: {e}")
return False
return False
Deze functie handelt de generatie en het opslaan van de afbeelding voor ons af. Zo kunnen we ons focussen op betere prompts in plaats van herhalende code.
Zo gebruik je haar:
# Simple function call
generateandsave_image("A cozy reading nook", "readingnook.png")
Veel cleaner dan elke keer de volledige code schrijven!
Specifiek zijn vs. generiek zijn
De grootste verbetering voor je prompts is het toevoegen van specifieke details. Laten we het verschil zien tussen generieke en gedetailleerde prompts.
Dit is een generieke prompt:
generateandsave_image("A kitchen", "generickitchen.png")

Resultaat van generieke prompt: een basic keuken die overal kan zijn, met standaardkenmerken maar zonder eigen karakter.
Nu proberen we hetzelfde concept met specifieke details:
generateandsave_image(
"Modern minimalist kitchen, white quartz countertops, stainless steel appliances, pendant lights, natural oak floors",
"specific_kitchen.png"
)

Resultaat van specifieke prompt: een nauwkeurig ontworpen keuken met precies de gevraagde elementen, wat een samenhangende moderne esthetiek oplevert.
Het verschil is groot. De specifieke prompt geeft je een professionele keuken die precies aansluit op je beschrijving. De generieke is prima, maar veel onvoorspelbaarder.
Werk je ook met andere beeldgeneratiemodellen, dan behandelt onze gids voor Stable Diffusion-technieken aanvullende promptstrategieën die je resultaten op verschillende AI-platforms kunnen verbeteren.
De camera aansturen
Je kunt de kadrering van het beeld sturen met fotografietermen. Zo krijg je precieze controle over compositie en perspectief.
Groothoekopnamen vangen meer van de scène:
generateandsave_image(
"Wide angle shot of modern living room, leather sofa, glass coffee table, floor to ceiling windows",
"wideangleroom.png"
)

Een groothoekperspectief toont de ruime kamer en het indrukwekkende stadszicht, waardoor de ruimte groter en dramatischer aanvoelt.
Macro-opnamen focussen op kleine details:
generateandsave_image(
"Macro shot of vintage pocket watch on mahogany desk, brass details, Roman numerals, soft lighting",
"macro_watch.png"
)

Macrofotografie onthult de fijne details van het horlogeglas, de ketting en de omliggende vintage boeken, wat een intieme, gedetailleerde compositie oplevert.
Andere nuttige cameratermen:
"Low angle shot"- Van onderen naar het onderwerp kijken"Bird's eye view"- Van bovenaf naar beneden kijken"85mm portrait lens"- Zorgt voor een kleine scherptediepte"Dutch angle"- Gekanteld perspectief voor drama
Belichting en sfeer sturen
Belichtingsbeschrijvingen kunnen de hele sfeer van je beelden veranderen. Zo gebruik je licht om specifieke stemmingen te creëren.
Goudenuurlicht creëert warmte:
generateandsave_image(
"Empty park bench at golden hour, warm sunlight, long shadows, autumn leaves scattered, peaceful atmosphere",
"goldenhourbench.png"
)

Goudenuurlicht tovert een eenvoudige parkbank om tot een warme, uitnodigende scène die perfect is om te mijmeren.
Dramatische belichting voegt intensiteit toe:
generateandsave_image(
"Dark stormy sky over empty lighthouse, dramatic lighting, waves crashing on rocks, moody atmosphere",
"dramatic_lighthouse.png"
)

Dramatische belichting en stormachtig weer creëren een krachtige, sombere scène die kracht en eenzaamheid oproept.
Handige belichtingstermen:
"Soft natural light"- Zacht, egaal licht"Harsh shadows"- Sterk contrast en drama"Backlit"- Licht van achter het onderwerp"Studio lighting"- Schone, professionele opstelling
Stijl en esthetiek sturen
Je kunt de artistieke stijl sturen door specifieke esthetische beschrijvingen in je prompts op te nemen.
Minimalistische stijl:
generateandsave_image(
"Minimalist bedroom design, white walls, simple wooden bed frame, single potted plant, clean lines, natural light",
"minimalist_bedroom.png"
)

Minimalistische ontwerpprincipes creëren een kalme, opgeruimde ruimte die modern én tijdloos aanvoelt.
Vintage stijl:
generateandsave_image(
"Vintage coffee shop interior, exposed brick walls, antique furniture, Edison bulb lighting, weathered wood tables, nostalgic atmosphere",
"vintagecoffeeshop.png"
)

Vintage stijlelementen vormen samen een nostalgische koffiebar die geleefd en authentiek aanvoelt.
Populaire stijlrichtingen:
"Industrial design"- Ruwe materialen, zichtbare elementen"Scandinavian style"- Lichte houtsoorten, strakke lijnen, knusse texturen"Art deco"- Geometrische patronen, metalen accenten"Rustic charm"- Natuurlijke materialen, doorleefde texturen
Tekst toevoegen aan afbeeldingen
Gemini 2.5 Flash Image blinkt uit in het direct toevoegen van leesbare tekst aan afbeeldingen. Houd tekst kort (onder 25 tekens werkt het best) voor schone resultaten.
generateandsave_image(
"Restaurant menu board with 'DAILY SPECIALS' text, chalk lettering on black board, wooden frame, warm lighting",
"menuboardtext.png"
)

Perfecte tekstintegratie met decoratieve elementen en prijzen, wat laat zien hoe het model zowel typografie als menulayout natuurlijk afhandelt.
Het model voegde automatisch menu-items en prijzen toe om de scène realistischer te maken. Dit laat zien hoe Gemini context begrijpt en logische, volledige composities maakt.
Technieken combineren
De krachtigste prompts combineren meerdere technieken. Zo layer je verschillende elementen:
# Combining camera control + lighting + style + specific details
generateandsave_image(
"Low angle shot of modern office lobby, dramatic uplighting, marble floors, geometric ceiling, professional atmosphere",
"professional_lobby.png"
)
Dit is de resulterende afbeelding waarin alle technieken samenkomen:

Deze prompt combineert:
- Camerasturing: “Low angle shot”
- Belichting: “Dramatic uplighting”
- Stijl: “Modern”, “professional atmosphere”
- Specifieke details: “Marble floors”, “geometric ceiling”
Onthoud dat je je beelden altijd kunt verfijnen door gewenste wijzigingen te beschrijven. Gemini blinkt uit in iteratieve verbeteringen, wat ons bij de geavanceerde functies brengt die dit model bijzonder maken.
Voor lezers die willen begrijpen hoe Gemini 2.5 Flash Image zich verhoudt tot andere Google AI-tools, verkent onze Gemini 2.0 Flash-tutorial de bredere mogelijkheden van Google’s nieuwste multimodale AI-systeem.
Gemini 2.5 Flash Image: geavanceerde functies en mogelijkheden
De prompt engineering-technieken die je zojuist hebt geleerd, vormen de basis voor geavanceerdere operaties. Nu passen we deze skills toe op Gemini’s krachtigste functies die het onderscheiden van andere modellen:
Multi-imagecompositie
Een van de krachtigste functies is meerdere beelden combineren tot iets nieuws. Dit werkt anders dan simpel mengen — Gemini begrijpt de objecten en contexten in elk beeld en kan ze intelligent samenvoegen.
Voor dit voorbeeld gaan we ervan uit dat je de basiscomponenten al hebt gegenereerd met de technieken uit de vorige secties. Zo combineer je ze:
# Load the base images for composition
gemstone_img = Image.open("https://cdn-images-1.medium.com/proxy/1*zy36GlKisNwsmJ0PwwHODw.png")
setting_img = Image.open("https://cdn-images-1.medium.com/proxy/1*fpNU31VkSznr1NTHbUx-mA.png")
# Compose them with specific instructions
response = client.models.generate_content(
model="gemini-2.5-flash-image-preview",
contents=[
"Mount the rare tanzanite gemstone perfectly into the platinum Art Nouveau setting, creating an exquisite luxury engagement ring, professional jewelry photography with dramatic lighting",
gemstone_img,
setting_img
]
)
Basisbeelden voor de compositie:

Basisonderdeel 1: zeldzame tanzaniaanse tanzaniet met uitzonderlijke helderheid en prismatische interne structuren.

Basisonderdeel 2: platina Art Nouveau-zetting met meesterlijk filigrein.
Het samengestelde resultaat:

Eindcompositie: de edelsteen en zetting zijn naadloos gecombineerd tot een luxe stuk met perfecte belichting die beide elementen benadrukt.
Het geheim van een professionele compositie is specifiek zijn over:
- Integratiekwaliteit: “Mount perfectly”, “seamlessly combine”.
- Belichtingsconsistentie: “Professional jewelry photography with dramatic lighting”.
- Eindpresentatie: “Luxury engagement ring”, “exquisite”.
Deze techniek werkt goed voor:
- High-end productfotografie: Productelementen combineren met premium achtergronden.
- Luxemerkenmarketing: Brand-assets samenbrengen met verfijnde contexten.
- Architecturale visualisatie: Bouwelementen combineren met omgevingssettings.
Iteratieve beeldverfijning
In tegenstelling tot de meeste beeldmodellen waarbij je opnieuw moet beginnen voor wijzigingen, laat Gemini 2.5 Flash Image je stapsgewijs verbeteren via een gesprek. Dat is ideaal voor professionele designworkflows waarin je concepten moet uitwerken.
Laten we werken aan high-end audioapparatuur:
# Step 1: Start with concept design
concept_img = Image.open("https://cdn-images-1.medium.com/proxy/1*2qw1o9vPjUMHCwYnvHiYbA.png")
# Step 2: First refinement - luxury materials
response1 = client.models.generate_content(
model="gemini-2.5-flash-image-preview",
contents=[
"Refine this speaker with premium ebony wood veneer finish, hand-polished surfaces, subtle gold accent lines, maintaining same proportions",
concept_img
]
)
# Step 3: Second refinement - high-tech features
luxuryimg = Image.open("https://cdn-images-1.medium.com/proxy/1*kytHi4QRCmbor1e35Nyyw.png")
response2 = client.models.generate_content(
model="gemini-2.5-flash-image-preview",
contents=[
"Add sophisticated LED indicators, premium fabric grille, wireless connectivity features, maintaining all luxury finishes",
luxury_img
]
)
Stap 1: Conceptontwerp

Startconcept: strak geometrisch ontwerp dat geavanceerde engineering en premium materiaalbasis toont.
Stap 2: Verfijning met luxe materialen

Eerste iteratie: luxe ebbenhouten fineer en handgepolijste goudaccenten toegevoegd, met behoud van de oorspronkelijke verhoudingen.
Stap 3: Hightech-integratie

Laatste iteratie: verfijnde LED-indicatoren en premium stoffen grille geïntegreerd, met behoud van alle luxe afwerkingen.
Best practices voor professionele iteratieve verfijning:
- Behoud structurele elementen: “Maintaining same proportions”
- Bouw voort op eerdere wijzigingen: “Maintaining all luxury finishes”
- Maak gerichte verbeteringen: focus per iteratie op één aspect
- Gebruik professionele terminologie: “premium”, “sophisticated”, “hand-polished”
Personageconsistentie
Consistente personages over meerdere contexten zijn belangrijk voor luxemerken en verfijnde marketingcampagnes. Gemini pakt dit aan door de visuele DNA van personages te begrijpen en deze te behouden in verschillende professionele toepassingen.
Zo ontwikkel je een verfijnde merkmascotte:
# After creating your base character
basemascot = Image.open("https://cdn-images-1.medium.com/proxy/1*Szx9SZ9UPl7zsa5NKUDVg.png")
# Generate consistent applications
response1 = client.models.generate_content(
model="gemini-2.5-flash-image-preview",
contents=[
"Show this exact crystal mascot in an upscale jewelry boutique, maintaining identical facets and rose-gold glow",
base_mascot
]
)
response2 = client.models.generate_content(
model="gemini-2.5-flash-image-preview",
contents=[
"Show this exact crystal mascot on luxury packaging design, maintaining identical geometric form and internal glow",
base_mascot
]
)
Stap 1: Stel het merkkarakter vast

Basis voor het merkkarakter: verfijnd kristallen wezen met onderscheidende geometrische facetten en een roségouden interne gloed.
Stap 2: Toepassing in winkelomgeving

Boetiektoepassing: het personage behoudt exact dezelfde geometrische facetten en gloed, en past zich aan de luxueuze retailcontext aan.
Stap 3: Integratie in verpakkingsontwerp

Verpakkingsintegratie: identiek personage, aangepast aan een premium verpakking met consistente visuele identiteit.
Stap 4: Digitale interfacepresence

Digitale toepassing: personageconsistentie behouden over digitale platforms met identieke geometrische eigenschappen.
De sleutelzin voor professionele consistentie is “this exact [character]” gecombineerd met specifieke kenmerken: “maintaining identical facets”, “same geometric form”, “identical rose-gold glow”.
Professionele personageconsistentie werkt het best wanneer je:
- In je basiskarakter onderscheidende, memorabele visuele elementen creëert.
- Specifieke technische beschrijvingen gebruikt: “geometric facets”, “internal luminescence”.
- Precieze visuele eigenschappen benoemt: “rose-gold glow”, “prismatic surfaces”.
- Overal een bij het merk passende verfijning aanhoudt.
Deze functie is waardevol voor:
- Ontwikkeling van luxemerken: Consistente mascottes over premium touchpoints.
- High-end marketingcampagnes: Personages die hun verfijning behouden over media heen.
- Huisstijlsystemen: Professionele brandelementen die consistent opschalen.
Stijltransfer en transformatie
Naast inhoud bewerken kun je de volledige esthetische stijl van objecten veranderen met behoud van hun kernstructuur. Dat is krachtig om snel verschillende ontwerprichtingen te testen.
Basisobject voor stijltesten:

Startpunt: een verfijnd sculpturaal stoelontwerp dat we in totaal andere stijlen zullen omzetten.
Cyberpunk-transformatie:

Cyberpunkversie: futuristische hightechesthetiek met neonaccenten en metalen afwerking, met behoud van de basisvorm van de stoel.
Victoriaans-barokke transformatie:

Barokstijl: rijke, weelderige klassieke vormgeving met luxueuze materialen en verfijnde details, met behoud van dezelfde onderliggende structuur.
Het patroon voor stijltransfer:
# Load your base object
base_object = Image.open("https://cdn-images-1.medium.com/proxy/1*TWO2meqMNnS1-6XSO6yv7Q.png")
# Apply style transformations
response = client.models.generate_content(
model="gemini-2.5-flash-image-preview",
contents=[
"Change this chair into cyberpunk style with neon LED strips, chrome frame, futuristic aesthetic",
base_object
]
)
Toepassingen van stijltransfer:
- Productontwerp: Esthetische richtingen testen voor klantpresentaties.
- Interieurontwerp: Meubelstijlen testen in verschillende themakamers.
- Merkontwikkeling: Visuele elementen aanpassen aan verschillende marktsegmenten.
Deze geavanceerde functies — multi-imagecompositie, iteratieve verfijning, personageconsistentie en stijltransfer — vormen de kernvoordelen die Gemini 2.5 Flash Image bijzonder krachtig maken voor professionele workflows.
Conclusie
Gemini 2.5 Flash Image kiest een andere aanpak voor beeldgeneratie. Je kunt beelden bewerken via een gesprek in plaats van telkens opnieuw te beginnen. De personageconsistentiefunctie houdt visuele elementen hetzelfde over verschillende scènes, en multi-imagecompositie laat je elementen combineren op een manier die natuurlijk aanvoelt in plaats van geforceerd.
De tokengebaseerde prijsstructuur geeft voorspelbare kosten voor projectplanning. Als je klaar bent om verder te gaan dan de basis, behandelt de officiële documentatie extra functies en blijft die up-to-date met nieuwe releases. De technieken in deze tutorial geven je een solide basis om conversatiegestuurde beeldgeneratie in je workflow op te nemen.
Wil je je AI-toolkit verder uitbreiden dan Gemini, bekijk dan onze praktische gids voor beeldbewerking met Gemini, en onze DALL-E 3-tutorial behandelt OpenAI’s alternatieve aanpak van AI-beeldgeneratie.
Gemini 2.5 Flash Image FAQ's
Hoe verhoudt Gemini 2.5 Flash Image zich tot andere AI-beeldgeneratoren?
Gemini 2.5 Flash Image valt op door conversatiegestuurde bewerking, multi-imagecompositie en personageconsistentie. In tegenstelling tot andere modellen waarbij je opnieuw moet beginnen voor wijzigingen, kun je hier iteratief verbeteren met natuurlijke taalcommando’s.
Wat kost het gebruik van Gemini 2.5 Flash Image?
Elke beeldgeneratie gebruikt ongeveer 1.290 tokens, wat neerkomt op circa $0,039 per afbeelding. De prijs is tokengebaseerd ($30 per miljoen tokens), en zowel nieuwe generaties als edits gebruiken dezelfde hoeveelheid. Dit zorgt voor voorspelbare projectkosten.
Kan ik Gemini 2.5 Flash Image voor commerciële projecten gebruiken?
Ja, Gemini 2.5 Flash Image kan commercieel worden gebruikt, waaronder voor productfotografie, merkmarketing en professionele designworkflows. Het model levert hoogwaardige, professionele resultaten die geschikt zijn voor zakelijk gebruik.
Welke Python-pakketten heb ik nodig om met Gemini 2.5 Flash Image te starten?
Je hebt drie hoofdpakketten nodig:
- google-genai (officiële Gemini-client)
- python-dotenv (voor veilige API-sleutel-beheer)
- pillow (voor beeldverwerking).
Installeer ze met uv: uv add google-genai python-dotenv pillow.
Hoe houd ik personages consistent over meerdere afbeeldingen?
Gebruik de frase "this exact [character]" gecombineerd met specifieke kenmerkbeschrijvingen zoals "maintaining identical facets" of "same geometric form". Gemini begrijpt visueel DNA en behoudt personageconsistentie over verschillende contexten en scènes.
Ik ben een contentmaker op het gebied van data science met meer dan 2 jaar ervaring en een van de grootste achterbannen op Medium. Ik schrijf graag uitgebreide artikelen over AI en ML met een vleugje sarcastische stijl, want je moet toch íets doen om ze wat minder saai te maken. Ik heb meer dan 130 artikelen en een DataCamp-cursus gemaakt, en er is nog een nieuwe in de maak. Mijn content is door meer dan 5 miljoen paar ogen gezien, van wie 20k volgers werden op zowel Medium als LinkedIn.

