Google Gemini
Google's Gemini powers Brut's images (the Nano Banana family) and doubles as a text/planning model for Refine and the cinema crew. It's the cheapest place to start — a Nano Banana render is about $0.04.
Get a key
Create an API key at aistudio.google.com/apikey, then paste it into ⚙ Settings → Google Gemini.
Enable billing. The free tier has 0 image quota — a first-call
429 RESOURCE_EXHAUSTEDmeans billing isn't on, not that you're being throttled.
Image models
| Model | Name | Notes |
|---|---|---|
gemini-3.1-flash-lite-image |
Nano Banana 2 Lite | Fastest & cheapest (~$0.034, 1K) — text-to-image only |
gemini-3.1-flash-image |
Nano Banana 2 | Fast, extended resolution (512 → 4K), edits & references |
gemini-3-pro-image |
Nano Banana Pro | Studio-quality up to 4K, precise text |
gemini-2.5-flash-image |
Nano Banana (legacy) | Kept for image edits only — still the cheapest edit (~$0.04) |
Nano Banana 2 Lite replaced the legacy model on the Text→Image menu (2026-07-25): newer, faster, slightly cheaper. The legacy model can't be picked for new text-to-image runs but stays on the Image→Image / Inpaint menus, because Lite cannot edit images. Set the aspect ratio and image size on the node.
Text / planning models
Gemini also serves planning (Refine presets, Multi-Shot's planner, and any cinema agent set to Gemini): gemini-3.5-flash-lite is the default (2.5 Flash's successor — same price, measurably faster), gemini-3.7-flash the newest and strongest workhorse (introductory pricing through end of 2026 makes it cheaper than 3.6 for now), gemini-3.6-flash the previous code/agentic tier, with gemini-2.5-flash kept for continuity, plus preview tiers. These are text-only and never enter the generation queue.
Gotchas
- Silent content refusals. An image edit returning
finishReason: OTHERis a content refusal, usually caused by an input image (a real person's name in facade text, a face, a logo), not the prompt. Deterministic — Brut won't auto-retry. Remove or crop the offending image. - Thinking tokens. Gemini 2.5+ text models spend "thinking" tokens from the output budget, and truncation isn't an error — just a cut-off with
finishReason: MAX_TOKENS. Brut's planning layer checks for this and retries with more headroom, then fails loudly rather than silently.
Veo rides this key
Google Veo (video) uses the same Google key by default — you only add a separate Veo key to split billing.