Seedance 2.5 公開中 | 動画ジェネレーターで試す →

google/

Google Nano Banana 2 Edit (Gemini 3.1 Flash Image) enables advanced image editing with 4K-capable output, fast iteration, and precise instruction following. Supports text translation, localization within images, and maintains subject consistency during edits. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

image-to-image
入力

待機中

Keep the dancer exactly as-is. Replace background with a neon-lit Tokyo street at night — wet pavement reflecting pink and blue light, blurred pedestrians, Japanese signage. Same camera angle and perspective.

Maintain dancer pose and clothing. Change environment to an empty rooftop at golden hour, city skyline behind him, warm orange backlight creating a rim light effect around his silhouette.

$0.071回あたり·~14 / $1

次:

サンプルすべて表示

Keep the dancer exactly as-is. Replace background with a neon-lit Tokyo street at night — wet pavement reflecting pink and blue light, blurred pedestrians, Japanese signage. Same camera angle and perspective.

Maintain dancer pose and clothing. Change environment to an empty rooftop at golden hour, city skyline behind him, warm orange backlight creating a rim light effect around his silhouette.

Keep the dancer exactly as-is. Replace background with a neon-lit Tokyo street at night — wet pavement reflecting pink and blue light, blurred pedestrians, Japanese signage. Same camera angle and perspective. Maintain dancer pose and clothing. Change environment to an empty rooftop at golden hour, city skyline behind him, warm orange backlight creating a rim light effect around his silhouette.

関連モデル

README

Google Nano Banana 2 Edit

Nano Banana 2 Edit (Gemini 3.1 Flash Image) is Google’s advanced AI-powered image editing and generation model, designed to make visual transformation as intuitive as describing it in words. Built on Google’s cutting-edge computer vision and generative research, it combines precision, flexibility, and semantic awareness for professional-grade editing.

Why Choose This?

  • Natural language editing Modify images using simple text instructions — the model understands context and relationships.

  • Multi-image reference Upload up to 14 reference images for complex edits and compositions.

  • Multi-resolution support Output in 1K, 2K, or 4K resolution based on your needs.

  • Flexible aspect ratios Multiple options including 1:1, 3:2, 2:3, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9, 1:4, 4:1, 1:8, and 8:1.

  • Prompt Enhancer Built-in tool to automatically improve your edit descriptions.

  • Format choice Export in PNG or JPEG format.

Parameters

ParameterRequiredDescription
imagesYesReference images to edit (max: 14, click "+ Add Item" to add more)
promptYesText description of the desired edit
aspect_ratioNoAspect ratio: 1:1, 3:2, 2:3, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9, 1:4, 4:1, 1:8, 8:1
resolutionNoOutput resolution: 0.5k, 1k (default), 2k, 4k
enable_web_searchNoEnable web search to enhance generation with real-time info (default: false)
enable_image_searchNoEnable image search to enhance generation with real-time info (default: false)
output_formatNoOutput format: png (default), jpeg

How to Use

  1. Upload reference images — add the images you want to edit (up to 14 images).
  2. Write your prompt — describe the edit clearly (e.g., "Change the man to a woman").
  3. Choose aspect ratio (optional) — select a preset or leave empty for default.
  4. Select resolution — choose 1K, 2K, or 4K based on your needs.
  5. Choose output format — PNG for transparency support, JPEG for smaller file size.
  6. Use Prompt Enhancer (optional) — click to automatically refine your description.
  7. Run — submit and download your edited image.

Pricing

ResolutionCost
0.5k$0.045
1k$0.07
2k$0.105
4k$0.14
Web search+$0.014
Image search+$0.014

Best Use Cases

  • Character Modification — Change attributes like gender, age, clothing, or appearance.
  • Object Replacement — Swap elements within images while preserving context.
  • Style Transfer — Apply different visual styles to existing images.
  • Text Editing — Modify on-image text while maintaining design consistency.
  • Scene Adjustment — Change backgrounds, lighting, or environmental elements.

Pro Tips

  • Use clear, specific edit instructions for best results (e.g., "Change the man to a woman" rather than "modify the person").
  • Start with fewer reference images (1–3) for simpler edits.
  • More reference images can help with complex compositions but may affect stability.
  • 2K outputs are charged at 1.5× the standard rate; 4K at 2× the standard rate.
  • Try the Prompt Enhancer to automatically improve your descriptions.

Notes

  • Both images and prompt are required fields.
  • Maximum reference images: 14 (recommended: fewer images for better stability).
  • If aspect_ratio is not selected, the model uses a default ratio.
  • 2K resolution costs 1.5× and 4K resolution costs 2× the standard rate.
  • Ensure your prompts comply with Google's Safety Guidelines.

Related Models

注記:本サイトは第三者が提供するAIモデルを使用しています。ドキュメントの価格は参考情報であり、最新でない場合があります。Generateボタンは見積額を表示し、最終的にはタスクの実際の請求額が適用されます。

Nano Banana 2 Edit API — Quick start

Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/google/nano-banana-2/edit with your input as JSON. The endpoint returns a prediction id. Start polling the result endpoint around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. On completed, read output values from data.outputs. Examples for Nano Banana 2 Edit below.

HTTP example
set -euo pipefail

: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"

REQUEST_BODY=$(cat <<'JSON'
{
    "prompt": "A cinematic shot of a city at sunset, soft golden light",
    "images": [
        "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg"
    ],
    "aspect_ratio": "1:1",
    "resolution": "1k",
    "enable_web_search": false,
    "enable_image_search": false,
    "output_format": "png"
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/google/nano-banana-2/edit" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $WAVESPEED_API_KEY" \
  -d "$REQUEST_BODY")

TASK=$(printf '%s' "$SUBMIT_RESPONSE" | jq 'if has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "$TASK" | jq -r '.id')
if [ -z "$PREDICTION_ID" ] || [ "$PREDICTION_ID" = "null" ]; then
  printf 'Submission response did not contain a prediction id
' >&2
  exit 1
fi
RESULT_URL=$(printf '%s' "$TASK" | jq -r '.urls.get // empty')
if [ -z "$RESULT_URL" ]; then
  RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/$PREDICTION_ID/result"
fi

# 2. Poll until the prediction finishes.
while true; do
  RESPONSE=$(curl --silent --show-error --fail-with-body "$RESULT_URL" \
    -H "Authorization: Bearer $WAVESPEED_API_KEY")
  RESULT=$(printf '%s' "$RESPONSE" | jq 'if has("data") then .data else . end')
  STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
  case "$STATUS" in
    completed) printf '%s\n' "$RESULT" | jq '.outputs'; break ;;
    failed|cancelled|timeout) printf '%s\n' "$RESULT" | jq . >&2; exit 1 ;;
    created|processing) sleep 2 ;;
    *) printf 'Unexpected status: %s
' "$STATUS" >&2; exit 1 ;;
  esac
done
Node.js example
const submitUrl = "https://api.wavespeed.ai/api/v3/google/nano-banana-2/edit";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');

async function requestJson(url, options = {}) {
  const response = await fetch(url, options);
  if (!response.ok) throw new Error(await response.text());
  return response.json();
}

// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "prompt": "A cinematic shot of a city at sunset, soft golden light",
        "images": [
                "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg"
        ],
        "aspect_ratio": "1:1",
        "resolution": "1k",
        "enable_web_search": false,
        "enable_image_search": false,
        "output_format": "png"
}),
});
const task = body.data ?? body;
if (!task.id) throw new Error("Submission response did not contain a prediction id");
const resultUrl = task.urls?.get ||
  `https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;

// 2. Poll until the prediction finishes.
while (true) {
  const resultBody = await requestJson(resultUrl, {
    headers: { "Authorization": `Bearer ${apiKey}` },
  });
  const result = resultBody.data ?? resultBody;
  if (result.status === "completed") {
    console.log(result.outputs);
    break;
  }
  if (["failed", "cancelled", "timeout"].includes(result.status)) throw new Error(JSON.stringify(result));
  if (!["created", "processing"].includes(result.status)) throw new Error("Unexpected status: " + result.status);
  await new Promise(resolve => setTimeout(resolve, 2000));
}
Python example
import json
import os
import time
from urllib.request import Request, urlopen

api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
    "prompt": "A cinematic shot of a city at sunset, soft golden light",
    "images": [
        "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg"
    ],
    "aspect_ratio": "1:1",
    "resolution": "1k",
    "enable_web_search": False,
    "enable_image_search": False,
    "output_format": "png"
}

def request_json(url, data=None):
    request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
    with urlopen(request) as response:
        return json.load(response)

# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/google/nano-banana-2/edit", json.dumps(payload).encode())
task = body.get("data", body)
if not task.get("id"):
    raise RuntimeError("Submission response did not contain a prediction id")
result_url = task.get("urls", {}).get("get") or f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"

# 2. Poll until the prediction finishes.
while True:
    result_body = request_json(result_url)
    result = result_body.get("data", result_body)
    status = result.get("status")
    if status == "completed":
        print(result.get("outputs", []))
        break
    if status in {"failed", "cancelled", "timeout"}:
        raise RuntimeError(result)
    if status not in {"created", "processing"}:
        raise RuntimeError(f"Unexpected status: {status}")
    time.sleep(2)

Nano Banana 2 Edit API — Frequently asked questions

What is the Nano Banana 2 Edit API?

Nano Banana 2 Edit is a Google model for image editing, exposed as a REST API on WaveSpeedAI. Google Nano Banana 2 Edit (Gemini 3.1 Flash Image) enables advanced image editing with 4K-capable output, fast iteration, and precise instruction following. Supports text translation, localization within images, and maintains subject consistency during edits. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing. You can call it programmatically or try it from the playground above.

How do I call the Nano Banana 2 Edit API?

POST your input parameters to the model's REST endpoint (shown in the API tab of this playground) with your WaveSpeedAI API key in the Authorization header. Submission returns a prediction ID. Poll the result endpoint starting around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. The playground generates production-oriented Python, JavaScript, and cURL examples with timeouts, transient-error handling, and safe GET retries. Full request/response shape is documented at https://wavespeed.ai/docs/docs-api/google/google-nano-banana-2-edit.

How much does Nano Banana 2 Edit cost per run?

Nano Banana 2 Edit starts at $0.070 per run. That figure is the base price — the final charge scales with the parameters you set in the form (output size, length, count, references, or whatever knobs this model exposes), so a higher-quality or larger output costs more than a minimal one. The exact cost for your current input is shown live next to the Generate button before you submit, and the actual per-call charge is recorded on the prediction afterwards.

What inputs does Nano Banana 2 Edit accept?

Key inputs: `prompt`, `images`, `aspect_ratio`, `resolution`, `enable_base64_output`, `enable_image_search`. The full JSON schema (types, defaults, allowed values) is rendered above the Generate button and mirrored in the API reference at https://wavespeed.ai/docs/docs-api/google/google-nano-banana-2-edit.

How long does Nano Banana 2 Edit take to generate?

Median end-to-end generation time on WaveSpeedAI is around 36 seconds per request, based on recent successful runs. Queue time varies with global demand; live status is visible in the prediction record.

Can I use Nano Banana 2 Edit outputs commercially?

Commercial usage rights depend on the model's license, set by its provider (Google). The license summary appears on the model card above; see WaveSpeedAI's Terms of Service for platform-level conditions.

Nano Banana 2 Edit | Fast Image Editing API on WaveSpeedAI