Nano Banana 2.1 inpainting: Google's prompt template, no mask on Sume
Google edits one region of an image by prompt on Nano Banana 2.1. Sume has no mask_url for it, which is GPT Image 2.5 only. The template, and when to switch.

Nano Banana 2.1 does not take a mask image. Google's guide calls its method "inpainting (semantic masking)" and does it with a sentence: name the one element to change and tell the model to keep everything else the same. On Sume that is the only way for this model, because mask_url works on the GPT Image 2.5 rows alone.
What is Google's template?
The guide gives this template, which you fill in with the element and its replacement:
- Using the provided image, change only the [specific element] to [new element/description].
- Keep everything else in the image exactly the same, preserving the original style, lighting, and composition.
What does the Sume call look like?
Send the image as an input_references item and the template as the prompt. Use aspect_ratio: "auto" so the result matches the reference's shape; if you omit it, the result is not the same as auto. Reference URLs must be public HTTPS.
{
"model": "google/nano-banana-2.1",
"prompt": "Using the provided image of a living room, change only the blue sofa to a vintage brown leather chesterfield. Keep everything else unchanged.",
"input_references": [
{
"type": "image_url",
"image_url": {
"url": "https://example.com/living-room.jpg"
}
}
],
"aspect_ratio": "auto",
"resolution": "2K"
}When should I use a mask instead?
Use mask_url when the region is hard to name or you need it to be exact. The GPT Image 2.5 rows (Flare and Sunburst) accept mask_url and up to 16 references. OpenAI's guide notes that masking with GPT Image is entirely prompt-based, so the shape may not be followed with complete precision (read 2026-10-09). The mask is guidance, not a hard clip, on either route.
Sending mask_url to Nano Banana 2.1 returns 400 unsupported_parameter. See mask_url on GPT Image 2.5 for that route.
| Model | Region edit by | Max references |
|---|---|---|
| google/nano-banana-2.1 | Prompt only | 10 |
| openai/gpt-image-2.5 (Flare) | Prompt or mask_url | 16 |
| openai/gpt-image-2.5-sunburst | Prompt or mask_url | 16 |
What does each route cost?
Nano Banana 2.1 is $0.10, $0.15 or $0.20 billed per image by tier. GPT Image 2.5 depends on quality and size; read the endpoint line in the image models docs before you batch.
Whatever route you choose, compare the result to the source image at 100 percent. Prompt-only edits can drift lighting or texture outside the named region, and a mask is guidance for GPT Image, not a hard clip. A quick difference blend in your editor shows exactly which pixels changed, and it takes less time than another paid call.
Sources
Related posts
More in Developers
- Alert when a pricing_skus rate moves: a nightly diff of the model list
Save GET /v1/videos/models rates each night and diff them. A one-cent-per-second move costs $0.30 on a 30 s clip and $300 over 1,000 of them. Python, 25 lines.
- Nightly GitHub Actions smoke test for the Sume API: $0.125 a run
A scheduled workflow submits a 2 s Wan 3.0 480p clip, polls and downloads it. $0.125 a night is $3.75 a month. Full YAML with curl and jq.
- 9 paid Sume MCP tools and what each charges, from RMBG to music
Sume's hosted MCP lists nine paid tools that need an idempotency_key. Flat prices run from $0.0225 for a cutout to $0.20 for an image upscale; model tools vary.
- Node: stream a Sume video to disk with pipeline and a short-file check
Download a finished Sume video from /v1/videos/{id}/content in Node without loading it into memory, and fail if the file is shorter than content-length.
Written by Sume