GET

/v1/schemas/fal/image/fal-ai/nano-banana-2/edit

kind inputactivity imagehash 0c071689…extracted Nov 10, 2026version currentsource upstream spec ↗
fieldrecorded source
schemaSource linked above.

upstream-spec

Source trace
be07769b1fb1174422689255c4ba7ed491a0a1991f6b3de4e39e59b09e1272a4
{
  "fetchedAt": 1794286801,
  "extractorVersion": "2",
  "verifiedAt": null
}

Request body

24 properties · 1 required · 7 $defs
propertytypedescriptionconstraints
prompt*stringThe prompt for image editing.length ≥ 3 · length ≤ 50000
safety_toleranceenumThe safety tolerance level for content moderation. 1 is the most strict (blocks most content), 6 is the least strict.1 | 2 | 3 | 4 | 5 | 6 · default: "4"
enable_image_searchbooleanGround image generation with Google Image Search. Can be combined with enable_web_search; source attribution is returned in grounding_metadata. Uses direct Google or Vertex APIs.default: false
num_imagesintegerThe number of images to generate.1 ≤ n ≤ 4 · default: 1
system_promptstringOptional 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).length ≤ 50000 · default: ""
audio_urlstringOptional audio file to use as input context. Accepts an http(s)/data URL (downloaded and sent inline, max 15MB).nullable
thinking_levelenumControls thinking effort ('minimal' or 'high') and requests thought summaries. Omit to use the provider default ('minimal'); thinking cannot be disabled.minimal | high · nullable
top_pnumberNucleus sampling probability. Omit to use the provider default of 0.95. Explicit values use a direct Google or Vertex API.0 ≤ n ≤ 1 · nullable
sync_modebooleanIf `True`, the media will be returned as a data URI and the output data won't be available in the request history.default: false
seedintegerThe seed for the random number generator.nullable
include_thoughtsbooleanWhether to include thought summaries. Omit to preserve the existing behavior: an explicit thinking_level requests summaries. Set limit_generations=false to return summary text in description. This does not disable thinking or return intermediate thought images.nullable
video_urlstringOptional 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).nullable
contextGeminiTextPart | GeminiImagePart | GeminiDocumentPart[]Ordered text, image, PDF, UTF-8 text-file or video parts appended to the current prompt. Original media bytes are preserved; images count toward the total 14-reference limit.
max_output_tokensintegerMaximum output tokens for the generation. Omit to retain the provider default. Explicit values use a direct Google or Vertex API.1 ≤ n ≤ 32768 · nullable
historyGeminiVideoMessage[]Previous native Gemini turns, including original parts and thought signatures from conversations. The current prompt starts a new user turn.
limit_generationsbooleanExperimental 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…default: true
output_formatenumThe format of the generated image.jpeg | png | webp · default: "png"
enable_web_searchbooleanEnable web search for the image generation task. This will allow the model to use the latest information from the web to generate the image.default: false
temperaturenumberSampling temperature. Omit to use the provider default of 1. Explicit values use a direct Google or Vertex API.0 ≤ n ≤ 2 · nullable
aspect_ratioenumThe aspect ratio of the generated image. Supports extreme ratios: 4:1, 1:4, 8:1, 1:8.auto | 21:9 | 16:9 | 3:2 | 4:3 | 5:4 · +9 more · nullable
pdf_urlstringOptional PDF document to use as input context. Accepts an http(s)/data URL (downloaded and sent inline, max 15MB).nullable
return_historybooleanReturn reusable native conversations with original image parts and provider thought signatures. Uses a native provider. Each generated conversation is independent; send its messages as history for the next turn.default: false
resolutionenumThe resolution of the image to generate.0.5K | 1K | 2K | 4K · default: "1K"
image_urlsstring[]The URLs of the images to use for image-to-image generation or image editing. Optional when at least one of `video_url`, `audio_url`, or `pdf_url` is provided.

Types

7 $defs

GeminiAudioPartobject

thoughtbooleanProvider thought marker, preserved when replaying a returned conversation.nullable
type*constThe audio part discriminator."audio"
audio_url*stringOriginal audio URL or data URI from a previous Flash Image request (up to 15 MB).
thought_signaturestringOpaque provider-issued thought signature. Replay it unchanged on its original part.length ≥ 1 · nullable

GeminiDocumentPartobject

thought_signaturestringOpaque provider-issued thought signature. Replay it unchanged on its original part.length ≥ 1 · nullable
thoughtbooleanProvider thought marker, preserved when replaying a returned conversation.nullable
file_url*stringPDF or UTF-8 plain-text document URL or data URI (up to 15 MB).
type*constThe document part discriminator."document"
mime_type*enumThe document's media type.application/pdf | text/plain

GeminiImagePartobject

image_url*stringOriginal image URL or data URI. Replayed without resizing or re-encoding.
thoughtbooleanProvider thought marker, preserved when replaying a returned conversation.nullable
type*constThe image part discriminator."image"
thought_signaturestringOpaque provider-issued thought signature. Replay it unchanged on its original part.length ≥ 1 · nullable

GeminiSignaturePartobject

thoughtbooleanProvider thought marker, preserved when replaying a returned conversation.nullable
type*constThe signature part discriminator."signature"
thought_signature*stringProvider-issued signature-only part, replayed unchanged.length ≥ 1

GeminiTextPartobject

thoughtbooleanProvider thought marker, preserved when replaying a returned conversation.nullable
type*constThe text part discriminator."text"
text*stringText at this position in the conversation.
thought_signaturestringOpaque provider-issued thought signature. Replay it unchanged on its original part.length ≥ 1 · nullable

GeminiVideoMessageobject

role*enumNative Gemini conversation role.user | model
parts*GeminiTextPart | GeminiImagePart | GeminiDocumentPart[]Ordered text, image, document, video, audio, and signature parts.items ≥ 1

GeminiVideoPartobject

thoughtbooleanProvider thought marker, preserved when replaying a returned conversation.nullable
type*constThe video part discriminator."video"
video_url*stringVideo URL or data URI (up to 15 MB and 120 seconds), or a YouTube URL. Supported by Flash Image only.
thought_signaturestringOpaque provider-issued thought signature. Replay it unchanged on its original part.length ≥ 1 · nullable

Validate a payload

before you spend tokens
shell
$ curl -X POST https://modelschemas.com/v1/validate \
    -d '{"provider":"fal","endpointId":"fal-ai/nano-banana-2/edit","payload":{…}}'
→ {"valid": false, "errors": [{"path": "#", "keyword": "required", …}]}