GET

/v1/schemas/fal/image/fal-ai/gemini-3.1-flash-image-preview

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

upstream-spec

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

Request body

20 properties · 1 required · 7 $defs
propertytypedescriptionconstraints
prompt*stringThe text prompt to generate an image from.length ≥ 3 · length ≤ 50000
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
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
seedintegerThe seed for the random number generator.nullable
output_formatenumThe format of the generated image.jpeg | png | webp · default: "png"
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
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
temperaturenumberSampling temperature. Omit to use the provider default of 1. Explicit values use a direct Google or Vertex API.0 ≤ n ≤ 2 · nullable
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
resolutionenumThe resolution of the image to generate.0.5K | 1K | 2K | 4K · default: "1K"
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
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
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: ""
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"
aspect_ratioenumThe aspect ratio of the generated image. Supports extreme ratios: 4:1, 1:4, 8:1, 1:8. Use "auto" to let the model decide based on the prompt.auto | 21:9 | 16:9 | 3:2 | 4:3 | 5:4 · +9 more · nullable
num_imagesintegerThe number of images to generate.1 ≤ n ≤ 4 · default: 1
historyGeminiVideoMessage[]Previous native Gemini turns, including original parts and thought signatures from conversations. The current prompt starts a new user turn.
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.
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
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

Types

7 $defs

GeminiAudioPartobject

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
audio_url*stringOriginal audio URL or data URI from a previous Flash Image request (up to 15 MB).
type*constThe audio part discriminator."audio"

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
type*constThe image part discriminator."image"
thoughtbooleanProvider thought marker, preserved when replaying a returned conversation.nullable
image_url*stringOriginal image URL or data URI. Replayed without resizing or re-encoding.

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

text*stringText at this position in the conversation.
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
type*constThe text part discriminator."text"

GeminiVideoMessageobject

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

GeminiVideoPartobject

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
video_url*stringVideo URL or data URI (up to 15 MB and 120 seconds), or a YouTube URL. Supported by Flash Image only.
type*constThe video part discriminator."video"

Validate a payload

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