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

Nano Banana 2.1 Image Edit Examples 1

Parameters

NameTypeDefaultConstraintsDescription
images *Input Imagesimage_upload—image/png,image/jpeg,image/webp · 1–14 itemsUpload 1 to 14 images to edit or use as reference (official limit: 14). png / jpeg / webp, public URL or base64 data URL.
prompt *Prompttextarea—≤ 5000 charsDescribe 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 Ratioselect—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.
resolutionResolutionselect1k1k | 2k | 4kSelect the long-edge resolution of the output image. Higher resolutions give more detail but cost more and take longer.
thinking_levelThinking Levelselectmediumminimal | medium | highControls how much the model reasons before generating. Higher levels improve composition and detail at the cost of latency.
enable_web_searchWeb Searchbooleanfalse—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 Searchbooleanfalse—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

FieldTypeDescription
textstringOptional text accompanying the images.
imagesarray<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

ParameterRequiredType, limits and default
imagesYesarray; 1–14 public image URLs or base64 data URLs; PNG/JPEG/WebP.
promptYesstring; up to 5,000 characters.
aspect_ratioNostring; 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
resolutionNostring; 1k / 2k / 4k; default: 1k.
thinking_levelNostring; minimal / medium / high; default: medium.
enable_web_searchNoboolean; default: false. Allows on-demand search; the model decides whether to use it.
enable_image_searchNoboolean; default: false. Allows on-demand search; the model decides whether to use it.

Token pricing

MeterUSD / 1M tokensCredits / 1M tokens
Input (text and reference images)$1.50150
Text output and thinking$7.50750
Image output$30.003000

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.

Google pricing

Related models

xAI Grok Imagine Image v2.0 Edit
Image to ImageX Ai

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.

from $0.090 / per run
qwen-image-edit-spicy
Image to Image

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.

from $0.034 / per run
Qwen Image 3.0 Pro Edit | Fast Image Editing
Image to ImageQwen Image 3.0 Pro

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.

from $0.0663 / per run
OpenAI GPT Image 2.5 Sunburst Edit
Image to ImageOpenAI

OpenAI GPT Image 2.5 Sunburst Edit

High-fidelity image editing for precise transformations using up to 16 reference images.

from $0.220 / per run
OpenAI GPT Image 2.5 Flare Edit
Image to ImageOpenAI

OpenAI GPT Image 2.5 Flare Edit

Fast, balanced image editing from natural-language instructions and up to 16 reference images.

from $0.220 / per run
Image to Image
Image to ImageNamiFusion

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.

from $0.220 / per run
Nano Banana Image Edit
Image to ImageGoogle

Nano Banana Image Edit

Fast & Affordable Editing. Intuitive object replacement and style transfer without manual masking.

from $0.038 / per run
Nano Banana Pro Image Edit
Image to ImageGoogle

Nano Banana Pro Image Edit

4K Semantic Editing.Modifies existing images via natural language with context awareness and multilingual text editing.

from $0.140 / per run