Nano Banana 2.1 Image Edit
google/nano-banana-2.1/edit
Google image editing with up to 14 references, 1K–4K output and token-based billing.
Examples
Parameters
| Name | Type | Default | Constraints | Description |
|---|---|---|---|---|
| images *Input Images | image_upload | — | image/png,image/jpeg,image/webp · 1–14 items | Upload 1 to 14 images to edit or use as reference (official limit: 14). png / jpeg / webp, public URL or base64 data URL. |
| prompt *Prompt | textarea | — | ≤ 5000 chars | Describe how you want to edit the images: what to change, what to keep, and the style. With several images you can refer to them as "the first image", "the second image". Put any in-image text in quotes. |
| aspect_ratioAspect Ratio | select | — | 1:1 | 3:2 | 2:3 | 4:3 | 3:4 | 5:4 | 4:5 | 16:9 | … | Choose the aspect ratio for the output image. If not specified, it follows the input image. |
| resolutionResolution | select | 1k | 1k | 2k | 4k | Select the long-edge resolution of the output image. Higher resolutions give more detail but cost more and take longer. |
| thinking_levelThinking Level | select | medium | minimal | medium | high | Controls how much the model reasons before generating. Higher levels improve composition and detail at the cost of latency. |
| enable_web_searchWeb Search | boolean | false | — | Allow the model to search when useful for the prompt. Enabling this option does not add a fixed fee; this endpoint settles reported token usage. |
| enable_image_searchImage Search | boolean | false | — | Allow the model to search when useful for the prompt. Enabling this option does not add a fixed fee; this endpoint settles reported token usage. |
Output fields
| Field | Type | Description |
|---|---|---|
| text | string | Optional text accompanying the images. |
| images | array<string> | Generated image URLs. |
API
Call this model through one unified REST API. Get a key on the API Keys page.
cURL
# 1) Submit — returns { "task_uuid": "..." }
curl -X POST "https://www.namifusion.com/api/v1/marketplace/run/google/nano-banana-2.1/edit" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": {
"images": "https://example.com/input.jpg",
"prompt": "A cinematic portrait, dramatic rim light, shallow depth of field",
"resolution": "1k",
"thinking_level": "medium",
"enable_web_search": false,
"enable_image_search": false
}
}'
# 2) Poll until status is "completed", then read the output URLs
curl "https://www.namifusion.com/api/v1/marketplace/run/tasks/TASK_UUID" \
-H "Authorization: Bearer YOUR_API_KEY"Python
import time, requests
API_KEY = "YOUR_API_KEY"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
# 1) Submit
resp = requests.post(
"https://www.namifusion.com/api/v1/marketplace/run/google/nano-banana-2.1/edit",
headers=HEADERS,
json={
"input": {
"images": "https://example.com/input.jpg",
"prompt": "A cinematic portrait, dramatic rim light, shallow depth of field",
"resolution": "1k",
"thinking_level": "medium",
"enable_web_search": False,
"enable_image_search": False
}
},
)
resp.raise_for_status() # 401/402/429/5xx stop here instead of polling a bad task
task = resp.json()
# 2) Poll until a terminal state (completed / failed / cancelled).
# This model is allowed up to 300s server-side.
deadline = time.time() + 360
while task.get("status") not in ("completed", "failed", "cancelled"):
if time.time() > deadline:
raise TimeoutError(f"still {task.get('status')} — keep the task_uuid and poll later")
time.sleep(3)
poll = requests.get(f"https://www.namifusion.com/api/v1/marketplace/run/tasks/{task['task_uuid']}", headers=HEADERS)
poll.raise_for_status()
task = poll.json()
print(task["status"], task.get("output"))JavaScript
const API_KEY = "YOUR_API_KEY";
const HEADERS = { Authorization: `Bearer ${API_KEY}` };
// 1) Submit
const resp = await fetch("https://www.namifusion.com/api/v1/marketplace/run/google/nano-banana-2.1/edit", {
method: "POST",
headers: { ...HEADERS, "Content-Type": "application/json" },
body: JSON.stringify({
"input": {
"images": "https://example.com/input.jpg",
"prompt": "A cinematic portrait, dramatic rim light, shallow depth of field",
"resolution": "1k",
"thinking_level": "medium",
"enable_web_search": false,
"enable_image_search": false
}
}),
});
if (!resp.ok) throw new Error(`submit failed: ${resp.status} ${await resp.text()}`);
let task = await resp.json();
// 2) Poll until a terminal state (completed / failed / cancelled).
// This model is allowed up to 300s server-side.
const deadline = Date.now() + 360 * 1000;
while (!["completed", "failed", "cancelled"].includes(task.status)) {
if (Date.now() > deadline) throw new Error(`still ${task.status} — keep the task_uuid and poll later`);
await new Promise((r) => setTimeout(r, 3000));
const poll = await fetch(`https://www.namifusion.com/api/v1/marketplace/run/tasks/${task.task_uuid}`, { headers: HEADERS });
if (!poll.ok) throw new Error(`poll failed: ${poll.status}`);
task = await poll.json();
}
console.log(task.status, task.output);Documentation
Nano Banana 2.1 Image Edit
Edit images using text instructions and 1–14 reference images.
Inputs
| Parameter | Required | Type, limits and default |
|---|---|---|
images | Yes | array; 1–14 public image URLs or base64 data URLs; PNG/JPEG/WebP. |
prompt | Yes | string; up to 5,000 characters. |
aspect_ratio | No | string; omitting it follows the input image. 1:1, 3:2, 2:3, 4:3, 3:4, 5:4, 4:5, 16:9, 9:16, 21:9 |
resolution | No | string; 1k / 2k / 4k; default: 1k. |
thinking_level | No | string; minimal / medium / high; default: medium. |
enable_web_search | No | boolean; default: false. Allows on-demand search; the model decides whether to use it. |
enable_image_search | No | boolean; default: false. Allows on-demand search; the model decides whether to use it. |
Token pricing
| Meter | USD / 1M tokens | Credits / 1M tokens |
|---|---|---|
| Input (text and reference images) | $1.50 | 150 |
| Text output and thinking | $7.50 | 750 |
| Image output | $30.00 | 3000 |
Google Standard token rates; 1 USD = 100 credits. Reference images are charged as input tokens, with no flat per-reference fee. This endpoint settles token usage only; search switches do not add a fixed fee.
Submission precharges only the image portion: 3.36 / 5.04 / 11.34 credits for 1K / 2K / 4K. Completion adjusts the charge to the token total, refunding or collecting the difference. Final charges round up to 0.01 credit; account discounts apply separately.
API example
Replace the example image URL with your own uploaded image.
POST https://www.namifusion.com/api/v1/marketplace/run/google/nano-banana-2.1/edit
Authorization: Bearer YOUR_NAMIFUSION_API_KEY
Content-Type: application/json
{
"input": {
"prompt": "Change the background to a quiet bookstore. Preserve the subject.",
"resolution": "1k",
"thinking_level": "medium",
"images": [
"https://example.com/input.png"
]
}
}
GET https://www.namifusion.com/api/v1/marketplace/run/tasks/{task_uuid}
Authorization: Bearer YOUR_NAMIFUSION_API_KEY
Submit once, then poll the returned task_uuid. Completed output.images contains image URLs; output.text may contain accompanying text.
Related models
xAI Grok Imagine Image v2.0 Edit
xAI Grok Imagine Image V2.0 Edit transforms input images with text prompts, with configurable resolution and quality for precise image editing, visual refinements, creative variations, social content, marketing assets, and production workflows. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
qwen-image-edit-spicy
Precisely edit images with text instructions. Add, remove, or modify visual elements, transfer styles, and replace backgrounds for photo retouching and visual design.
Qwen Image 3.0 Pro Edit | Fast Image Editing
Qwen Image 3.0 Pro Edit is a professional-grade image editing model with superior quality and advanced instruction understanding. Up to 2k. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
OpenAI GPT Image 2.5 Sunburst Edit
High-fidelity image editing for precise transformations using up to 16 reference images.
OpenAI GPT Image 2.5 Flare Edit
Fast, balanced image editing from natural-language instructions and up to 16 reference images.
Head Swap (Image)
Swap the head in a photo with the head from a reference image. Upload the target photo first, then the head reference.
Nano Banana Image Edit
Fast & Affordable Editing. Intuitive object replacement and style transfer without manual masking.
Nano Banana Pro Image Edit
4K Semantic Editing.Modifies existing images via natural language with context awareness and multilingual text editing.