GET

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

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

upstream-spec

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

Request body

20 properties · 1 required · 5 $defs
propertytypedescriptionconstraints
prompt*stringThe prompt for image editing.length ≥ 3 · length ≤ 50000
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
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
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"
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
aspect_ratioenumThe aspect ratio of the generated image, including 1:4, 4:1, 1:8 and 8:1.auto | 21:9 | 16:9 | 3:2 | 4:3 | 5:4 · +9 more · nullable
temperaturenumberSampling temperature. Omit to use the provider default of 1. Explicit values use a direct Google or Vertex API.0 ≤ n ≤ 2 · nullable
historyGeminiMessage[]Previous native user/model turns. Replay a returned conversation's messages unchanged, including thought signatures; the current prompt is appended as a new user turn.
image_urlsstring[]The URLs of the images to use for image-to-image generation or image editing.
seedintegerThe seed for the random number generator.nullable
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.default: true
resolutionenumThe resolution of the image to generate.1K | 2K | 4K · default: "1K"
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: ""
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
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
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
output_formatenumThe format of the generated image.jpeg | png | webp · default: "png"
num_imagesintegerThe number of images to generate.1 ≤ n ≤ 4 · default: 1
thinking_levelconstThinking effort. Pro Image supports only high; omit to retain its provider default. An explicit level requests summaries unless include_thoughts overrides it. Thinking cannot be disabled."high" · nullable
contextGeminiTextPart | GeminiImagePart | GeminiDocumentPart[]Ordered text, original images, PDF or UTF-8 text documents appended to the current prompt. Uses a native provider. Images count toward the total 14-reference limit.

Types

5 $defs

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).
mime_type*enumThe document's media type.application/pdf | text/plain
type*constThe document part discriminator."document"

GeminiImagePartobject

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
image_url*stringOriginal image URL or data URI. Replayed without resizing or re-encoding.
type*constThe image part discriminator."image"

GeminiMessageobject

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

GeminiSignaturePartobject

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

GeminiTextPartobject

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

Validate a payload

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