Nano Banana 2.1
google/gemini-nano-banana-2.1
Google's image generation and editing model on the Flash tier, succeeding Nano Banana 2 and Nano Banana Pro, with improved product recontextualization.
RoleThe fast image editor
$1.5
In / M
$7.5
Out / M
66K
Context
- AA intelligence index
- Not on listing
- Inputs
- image, text
- Outputs
- image, text
- Tools
- Listed
- Structured output
- Listed
- Reasoning
- Listed
- Weights
- Not verified
- Listed
- Oct 6, 2026
01 · What it's good at
Use it for this.
Three jobs this model is built for, and the ones to give to something else.
01
Putting a product into a new scene
02
Quick edits from a text instruction
03
Image generation alongside text output
Skip it for
- Long documents or agent work. It is an image model first
02 · Example tasks
What you'd actually send it.
Real inputs, not a benchmark. Paste one into the snippet below to try it.
You send
Take this sneaker photo and place it on a wet city street at night. Keep the logo sharp.
Why this model
Product recontextualization is the listed improvement.
03 · Your stack
Where it sits: Draw, speak, listen.
The image step in a product or marketing pipeline. Call it through OpenRouter's Image API like any other image model.
Layer 01
Retrieve
Layer 02
Plan & reason
Layer 03
Do the volume
Layer 04
Gate & route
Layer 05 · this model
Draw, speak, listen
04 · Wire it up
One request. Paste and run.
Uses OpenRouter, so one key works for every model on this site. Set OPENROUTER_API_KEY and swap the prompt for one of the tasks above.
import { writeFile } from "node:fs/promises";
const res = await fetch("https://openrouter.ai/api/v1/images", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.OPENROUTER_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"model": "google/gemini-nano-banana-2.1",
"prompt": "A white sneaker on a wet city street at night, neon reflections, logo sharp",
"aspect_ratio": "4:5"
}),
});
const result = await res.json();
// Images come back base64-encoded.
await writeFile("out.png", Buffer.from(result.data[0].b64_json, "base64"));
05 · Watch out for
Gotchas.
Billed per output image plus tokens on the listing. Check the price breakdown before batch runs.
Sources
Lessons are written from each model's listing and the linked docs. We don't publish our own benchmark numbers; the index above is Artificial Analysis, as shown on OpenRouter.
Keep learning