imageunverifiedHand-written lesson

Google

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
Live from the OpenRouter listing ↗

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.

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

Same board, other models.