Skip to main content
Core.Today
|
GoogleMediumUltra

Nano Banana 2 (Edit)

Edit endpoint for Nano Banana 2, built on Gemini 3.1 Flash Image. Adds resolution control (1K/2K/4K), Google Search grounding, and thinking mode while preserving conversational editing and multi-image fusion.

190 credits
per image (1K); 280 for 2K, 370 for 4K
Resolution control: 1K, 2K, 4K
Optional web search grounding
Thinking mode (minimal/high)
Multi-image fusion and conversational editing
Character consistency across edits

Run it right now

Test this model instantly in the Console Playground โ€” no code required

Sign in to try

Use with AI Assistant

Copy usage instructions for Claude, ChatGPT, or other AI

Quick Start

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "model": "fal-ai/nano-banana-2/edit",
  "input": {
    "prompt": "make a photo of the man driving the car down the california coastline",
    "image_urls": [
      "https://storage.googleapis.com/falserverless/example_inputs/nano-banana-edit-input.png",
      "https://storage.googleapis.com/falserverless/example_inputs/nano-banana-edit-input-2.png"
    ],
    "aspect_ratio": "auto",
    "resolution": "1K",
    "output_format": "png",
    "num_images": 1
  }
}'

Parameters

ParameterTypeRequiredDefaultDescription
promptstringYes-How you want to edit the image
num_imagesintegerNo1Number of images to generate
seedintegerNo-The seed for the random number generator.
aspect_ratiostringNoautoOutput aspect ratio (auto lets the model decide)
auto21:916:93:24:35:41:14:53:42:39:164:11:48:11:8
output_formatstringNopngOutput image format
jpegpngwebp
safety_tolerancestringNo4The safety tolerance level for content moderation. 1 is the most strict (blocks most content), 6 is the least strict.
123456
sync_modebooleanNofalseIf `True`, the media will be returned as a data URI and the output data won't be available in the request history.
image_urlsarrayNo-Input image URLs to edit
system_promptstringNo-Optional system instruction that steers the model's persona and output style across the request. Leave blank to omit; when provided, it is sent as the system instruction to Gemini (or as a system message on OpenAI-compatible providers).
resolutionstringNo1KOutput resolution โ€” pricing scales with resolution
0.5K1K2K4K
video_urlstringNo-Optional video to use as input context. Accepts an http(s)/data URL to a video file (downloaded and sent inline, max 15MB) or a YouTube URL (passed through to the model without downloading).
audio_urlstringNo-Optional audio file to use as input context. Accepts an http(s)/data URL (downloaded and sent inline, max 15MB).
pdf_urlstringNo-Optional PDF document to use as input context. Accepts an http(s)/data URL (downloaded and sent inline, max 15MB).
limit_generationsbooleanNotrueExperimental parameter to limit the number of generations from each round of prompting to 1. Set to `True` to to disregard any instructions in the prompt regarding the number of images to generate and ignore any intermediate images generated by the model. This may affect generation quality.
enable_web_searchbooleanNofalseEnable web search grounding for real-time information
thinking_levelstringNo-Enable model thinking (omit to disable)
minimalhigh

How to Provide File Input

There are 3 ways to provide files for the image_urls parameter:

Recommended

Direct Upload (Multipart)

Attach files directly to POST /v1/predictions/upload. No separate upload step needed.

curl -X POST "https://api.core.today/v1/predictions/upload" \
  -H "X-API-Key: cdt_your_api_key" \
  -F "model=fal-ai/nano-banana-2/edit" \
  -F 'input={"prompt":"your prompt here"}' \
  -F "file:image_urls=@your_file.png"

Image URL

Pass a publicly accessible URL directly. You can also use file_url from the Storage API.

{
  "model": "fal-ai/nano-banana-2/edit",
  "input": {
    "prompt": "your prompt here",
    "image_urls": ["https://example.com/image.jpg"]
  }
}
See the File Upload docs for more upload methods including Presigned URLs.

Common Parameters

Common parameters used when calling POST /v1/predictions.

ParameterTypeRequiredDefaultDescription
modelstringYes-Model identifier
inputobjectYes-Object containing the model-specific parameters from the table above
output_folderstringNo-Folder path for output files (max 256 chars, '..' not allowed)
webhook_urlstringNo-Webhook URL to call on completion
is_publicbooleanNofalseIf true, output files are also available via permanent public URLs

Examples

Multi-image Composition

Compose a scene from multiple input photos

curl -X POST "https://api.core.today/v1/predictions" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: cdt_your_api_key" \
  -d '{
  "model": "fal-ai/nano-banana-2/edit",
  "input": {
    "prompt": "make a photo of the man driving the car down the california coastline",
    "image_urls": [
      "https://storage.googleapis.com/falserverless/example_inputs/nano-banana-edit-input.png",
      "https://storage.googleapis.com/falserverless/example_inputs/nano-banana-edit-input-2.png"
    ],
    "aspect_ratio": "auto",
    "resolution": "1K",
    "output_format": "png",
    "num_images": 1
  }
}'

Tips & Best Practices

1Resolution maps directly to credit cost โ€” start at 1K for iteration
2Pass multiple image_urls to compose subjects from different sources
3Enable thinking_level=high for hard editing instructions
4Use enable_web_search when you need up-to-date facts in the image

Use Cases

Higher-resolution edited renders
Information-grounded illustration (web search)
Multi-reference scene composition
Multilingual typography edits