Samengesteld door Sjakie op 2026-06-12 uit 18 officiële docs-pagina's op ai.google.dev.
Focus: (a) virtual-makeover web-app (Nano Banana edits + Veo-video via Netlify Functions), (b) AI Studio Build-modus workflow.
pip install -U google-genai (Python 3.9+), JS npm install @google/genai (Node 18+)x-goog-api-key: $GEMINI_API_KEYhttps://generativelanguage.googleapis.com/v1beta/models/<model>:generateContent (streaming: :streamGenerateContent)client.models.generate_content() / generate_content_stream() / client.chats.create() + chat.send_message(). JS: ai.models.generateContent() / generateContentStream() / ai.chats.create() + chat.sendMessage().generateContent.functionDeclarations.Tekst/algemeen:
| Model-ID | Status | Positionering |
|---|---|---|
| gemini-3.5-flash | Stabiel (GA) | Slimste model voor agentic/coding |
| gemini-3.1-flash-lite | Stabiel | Goedkoop frontier-class |
| gemini-3.1-pro-preview | Preview | Complexe problemen |
| gemini-3-flash-preview | Preview | (o.a. nog Computer Use) |
| gemini-2.5-pro / gemini-2.5-flash / gemini-2.5-flash-lite | Stabiel | Oudere generatie, goedkoper |
Beeld (Nano Banana familie):
- gemini-3.1-flash-image — Nano Banana 2 (snel, high-volume) — stabiel
- gemini-3-pro-image — Nano Banana Pro (professioneel, 4K) — stabiel
- gemini-2.5-flash-image — Nano Banana (origineel, snel/goedkoop) — stabiel
- Imagen 4 (imagen-4.0-*) — pure text-to-image tot 2K
Video: veo-3.1-generate-preview, veo-3.1-fast-generate-preview, veo-3.1-lite-generate-preview, veo-3.0-generate-001, veo-3.0-fast-generate-001, veo-2.0-generate-001 (stabiel).
Overig: TTS (gemini-3.1-flash-tts-preview, gemini-2.5-*-tts), Live audio (gemini-3.1-flash-live-preview), live translate (gemini-3.5-live-translate-preview, 70+ talen), muziek (lyria-3-*), embeddings (gemini-embedding-2 multimodaal, gemini-embedding-001), computer use (gemini-2.5-computer-use-preview-10-2025), deep research (deep-research-preview-04-2026), agent (antigravity-preview-05-2026).
gemini-flash-latest bestaat; preview-modellen hebben datum-suffixen.gemini-3.5-flash is GA/stabiel. 1M input-context, 65k max output, kennis-cutoff jan 2025.thinking_level vervangt thinking_budget: minimal | low | medium (nieuwe default) | high. Default ging van high → medium.temperature, top_p, top_k zijn DEPRECATED — verwijderen uit requests.FunctionResponse moet nu matchende id én name bevatten.media_resolution per content-item: low / medium / high / ultra_high.gemini-3-flash-preview). Image segmentation niet in 3.x.gemini-3-flash-preview: modelnaam wijzigen, sampling-params weg, thinking_budget → thinking_level, prompts hertesten (minder verbose output).Tekstmodellen:
| Model | Input | Output | Batch (in/out) |
|---|---|---|---|
| gemini-3.5-flash | $1.50 | $9.00 | $0.75 / $4.50 |
| gemini-3.1-flash-lite | $0.25 (audio $0.50) | $1.50 | $0.125 / $0.75 |
| gemini-3.1-pro-preview | $2.00 (≤200k) / $4.00 | $12.00 / $18.00 | 50% |
| gemini-3-flash-preview | $0.50 (audio $1.00) | $3.00 | $0.25 / $1.50 |
| gemini-2.5-pro | $1.25 (≤200k) / $2.50 | $10.00 / $15.00 | 50% |
| gemini-2.5-flash | $0.30 (audio $1.00) | $2.50 | $0.15 / $1.25 |
| gemini-2.5-flash-lite | $0.10 (audio $0.30) | $0.40 | $0.05 / $0.20 |
Beeldmodellen (belangrijkst voor makeover-app):
| Model | Input | Output per afbeelding |
|---|---|---|
| gemini-2.5-flash-image (Nano Banana) | $0.30 | $0.039/img (batch $0.0195, priority $0.0702) |
| gemini-3.1-flash-image (NB 2) | $0.50 | $0.022 (0.5K) / $0.034 (1K) / $0.050 (2K) / $0.076 (4K) |
| gemini-3-pro-image (NB Pro) | $2.00 | $0.134 (1K/2K) / $0.24 (4K) |
| Imagen 4 | — | $0.02 (Fast) / $0.04 (Standard) / $0.06 (Ultra) |
Video (per seconde):
| Model | Prijs/sec |
|---|---|
| Veo 3.1 standaard | $0.40 (720p/1080p), $0.60 (4K) |
| Veo 3.1 Fast | $0.10 (720p) / $0.12 (1080p) / $0.30 (4K) |
| Veo 3.1 Lite | $0.05 (720p) / $0.08 (1080p) |
| Veo 3 | $0.40; Fast $0.10–0.30 |
| Veo 2 | $0.35 |
→ Een 8-sec draaivideo: Veo 3.1 Lite 720p = $0.40; Veo 3.1 standaard = $3.20.
Overig: TTS 3.1 $1.00 in / $20.00 audio-out; embeddings gemini-embedding-2 $0.20 tekst; Lyria $0.04 per 30s-clip. Context caching 3.5-flash: $0.15 read + $1.00 storage per 1M/uur. Google Search/Maps grounding: 5.000 prompts/maand gratis (Gemini 3), daarna $14 per 1.000. File Search $0.15 per 1M embedding-tokens.
Gemini 2.0-serie: shutdown 1 juni 2026 — niet meer gebruiken.
Free tier: beperkte modellen, gratis tokens, maar data wordt gebruikt om Google-producten te verbeteren. Paid tier: niet.
generate_content met [prompt, image] in contents. Beeld als base64 inline of via Files API.config.response_modalities=['TEXT','IMAGE']; output in part.inline_data (base64).response_format={"image": {"aspect_ratio":"3:4","image_size":"2K"}}.thinking_config.thinking_level ("High"/"Minimal"). Thinking-tokens worden altijd gefactureerd.thought_signature automatisch af — bij raw REST zelf terugsturen in history.image-parameter = startframe (perfect voor makeover-resultaatfoto → draaivideo).image + lastFrame (alleen Veo 3.1) — before/after-overgang mogelijk.reference_images, reference_type:"asset", alleen 3.1) — subject-behoud.aspectRatio "16:9"/"9:16"; durationSeconds "4"/"6"/"8" (1080p/4K en extensie/referenties vereisen "8"); resolution 720p/1080p/4K; personGeneration — bij image-to-video alleen "allow_adult"; EU/UK/CH/MENA: uitsluitend allow_adult.generate_videos() geeft operation terug → elke 10 sec pollen via client.operations.get(operation) tot operation.done → client.files.download(file=video.video). REST: POST :predictLongRunning, dan GET /v1beta/{operation_name}.imagen-4.0-generate-001, imagen-4.0-ultra-generate-001, imagen-4.0-fast-generate-001. Imagen 3 is uitgezet.client.models.generate_images(...) met GenerateImagesConfig.numberOfImages 1–4 (default 4!), aspectRatio 1:1/3:4/4:3/9:16/16:9, imageSize 1K/2K (niet bij Fast), personGeneration (default allow_adult; allow_all verboden in EU/UK/CH/MENA).response_mime_type: "application/json" + schema (nieuwere docs: response_format / response_json_schema).BaseModel (via model_json_schema()); JS: Zod + zodToJsonSchema().enum, format (date-time), min/max, minItems/maxItems, required, anyOf (unions), recursie via $ref:"#", prefixItems.propertyOrdering.client.files.upload(file="...") / JS ai.files.upload({file, config:{mimeType}}); REST = resumable upload (X-Goog-Upload-Protocol: resumable).contents meegeven; REST via file_data (mime_type + file_uri).files.get/list/delete beschikbaar; je kunt metadata lezen maar bestanden niet terugdownloaden (uitzondering: Veo-output via files.download).batch.succeeded/batch.failed.failedRequestCount in batchStats; per-regel-fouten in outputfile.client.caches.create() met system instruction + content → cache-naam meegeven in generateContent. TTL default 1 uur, aanpasbaar (bv. "300s"); alleen TTL/expire_time updatebaar.count_tokens vooraf; achteraf usage_metadata: prompt_token_count, candidates_token_count, total_token_count, cached_content_token_count, thoughts_token_count.thoughts_token_count monitoren voor kostenbeheersing.media_resolution (Gemini 3) bepaalt max tokens per beeld/videoframe — hoger = beter kleine tekst lezen, duurder en trager.models.get (input_token_limit / output_token_limit).GEMINI_API_KEY env var zetten.git pull van remote changes; gedeelde apps tellen mee in jouw usage; max prompts/dag staat niet in de docs (limieten via je normale API-tier).metadata.json → requestFramePermissions.GEMINI_API_KEY — zelfde patroon als wij met Netlify Functions doen.OFF / BLOCK_NONE / BLOCK_ONLY_HIGH / BLOCK_MEDIUM_AND_ABOVE / BLOCK_LOW_AND_ABOVE.OFF — extra filters dus zelf aanzetten indien gewenst.safety_settings=[SafetySetting(category=..., threshold=...)] in GenerateContentConfig.promptFeedback.blockReason (prompt) of candidate.finishReason == "SAFETY" (response) + safetyRatings (probability HIGH/MEDIUM/LOW/NEGLIGIBLE).Nano Banana 2 (gemini-3.1-flash-image) is nu de sweet spot voor makeover-edits: $0.034 per 1K-beeld (goedkoper dan NB classic's $0.039), stabiel/GA, en ondersteunt tot 4 character-referentiebeelden — direct bruikbaar voor onze heilige gezichtsconsistentie-regel. Nano Banana Pro ($0.134) alleen voor hero-shots/4K.
Veo 3.1 Lite maakt draaivideo's bijna gratis: $0.05/sec 720p = $0.40 per 8-sec makeover-video. Image-to-video met de makeover-foto als startframe; first+last-frame (alleen 3.1, niet Lite) kan zelfs een before→after-overgang animeren.
Veo past NIET synchroon in een Netlify Function: latency 11 sec–6 min, alleen polling (geen webhooks). Architectuur: function 1 start de job (geeft operation-name terug), function 2 is een poll-endpoint die de client elke ~10 sec aanroept. Video's na 2 dagen weg — direct downloaden naar eigen storage.
Image-editing is gewoon generate_content met [prompt, foto] + response_modalities:['TEXT','IMAGE'] + response_format.image voor aspect ratio (bv. 3:4 portret) en size (1K/2K). Multi-turn chat = iteratief bijsturen zonder opnieuw uploaden.
personGeneration-valkuil voor NL/EU: bij image-to-video in de EU alleen allow_adult — onze brand-modellen zijn volwassen, dus OK, maar nooit kinderen in video-pipelines. Alle output krijgt onzichtbaar SynthID-watermerk.
Thinking-tokens bij Gemini 3-beeldmodellen staan altijd aan en worden gefactureerd — zet thinking_level: "Minimal" voor snelle bulk-edits, "High" alleen waar kwaliteit het vereist. Bij 3.5-flash tekst: temperature/top_p/top_k zijn deprecated, thinking_budget → thinking_level.
Batch API = 50% korting en werkt óók voor Nano Banana ($0.0195/beeld bij 2.5-flash-image): ideaal voor nachtelijke brand-content-batches; 24h-target, webhooks beschikbaar. Niet voor de interactieve makeover (die moet realtime).
Free tier traint op je data; paid tier niet. Voor klantfoto's (privacy!) dus altijd een betaald project gebruiken. Prepay-credits: min $10, verlopen na 12 maanden; Google Cloud $300-welkomstcredits gelden NIET voor Gemini API. Rate limits per project (niet per key); Tier 2 al na $100 + 3 dagen.
AI Studio Build-modus is een snelle prototyper, geen eindstation: Antigravity Agent bouwt React+Node fullstack app, API key automatisch als server-side secret, gratis publiceren tot 2 apps op Cloud Run (Starter Tier, geen billing nodig). Code als ZIP of naar GitHub exporteren → daarna in onze eigen Netlify-stack gieten. Let op: geen weg terug (import) na lokaal doorontwikkelen.
Kosten-/limiet-randvoorwaarden voor de web-app: inline foto-upload base64 kan tot ~100 MB request bij Gemini, maar Netlify kapt al af op 6 MB — client-side verkleinen blijft verplicht (kost ook minder tokens: ≤384px = 258 tokens, anders 258 per 768×768-tegel). Gemini 2.0-modellen gaan 1 juni 2026 uit — nergens meer gebruiken. RPD reset middernacht Pacific; safety-defaults staan op OFF (zelf aanscherpen voor consumenten-app).
Bronnen: ai.google.dev/gemini-api/docs/{quickstart, models, whats-new-gemini-3.5, pricing, image-generation, video, imagen, structured-output, files, rate-limits, billing, batch-api, caching, tokens, aistudio-build-mode, aistudio-fullstack, aistudio-deploying, safety-settings} — opgehaald 2026-06-12.