{"models":[{"endpoint_id":"fal-ai/nano-banana-pro/edit","metadata":{"display_name":"Nano Banana Pro","category":"image-to-image","description":"Nano Banana Pro is Google's new state-of-the-art image generation and editing model","status":"active","tags":["realism","typography"],"updated_at":"2026-11-10T03:23:32.951Z","is_favorited":null,"thumbnail_url":"https://v3b.fal.media/files/b/0a9c2f0f/p3rXI18zMYTBz1M0qP2h4_b9a2087ce0b64cd788cb5ec067edc26e.jpg","model_url":"https://fal.run/fal-ai/nano-banana-pro/edit","license_type":"commercial","date":"2025-11-20T14:27:03.344Z","group":{"key":"Nano-Banana-Pro","label":"Image Editing"},"highlighted":false,"kind":"inference","pinned":false},"retires_at":null,"replacement":null,"openapi":{"openapi":"3.1.0","info":{"title":"Queue OpenAPI for fal-ai/nano-banana-pro/edit","version":"1.0.0","description":"The OpenAPI schema for the fal-ai/nano-banana-pro/edit queue.","x-fal-metadata":{"endpointId":"fal-ai/nano-banana-pro/edit","category":"image-to-image","thumbnailUrl":"https://v3b.fal.media/files/b/0a9c2f0f/p3rXI18zMYTBz1M0qP2h4_b9a2087ce0b64cd788cb5ec067edc26e.jpg","playgroundUrl":"https://fal.ai/models/fal-ai/nano-banana-pro/edit","documentationUrl":"https://fal.ai/models/fal-ai/nano-banana-pro/edit/api","about":"Gemini 3 Pro Image is a text-to-image model that generates images from text descriptions.\n\nDecompression-bomb inputs to ``image_urls`` are rejected upstream by\n``validate_image_async`` (called from ``GoogleAIClient._format_image``):\nthe validator now enforces a header-only ``max_image_pixels`` cap\n(default 89,478,485 ≈ PIL's ``MAX_IMAGE_PIXELS``) *before* any pixel\ndecode, so oversized inputs raise a deterministic 422\n``image_too_large`` instead of OOM-killing the runner and taking out\nevery multiplexed request on it (``max_multiplexing=20``)."}},"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"Fal Key"}},"schemas":{"QueueStatus":{"type":"object","properties":{"status":{"type":"string","enum":["IN_QUEUE","IN_PROGRESS","COMPLETED"]},"request_id":{"type":"string","description":"The request id."},"response_url":{"type":"string","description":"The response url."},"status_url":{"type":"string","description":"The status url."},"cancel_url":{"type":"string","description":"The cancel url."},"logs":{"type":"object","description":"The logs.","additionalProperties":true},"metrics":{"type":"object","description":"The metrics.","additionalProperties":true},"queue_position":{"type":"integer","description":"The queue position."}},"required":["status","request_id"]},"NanoBananaProEditInput":{"x-fal-order-properties":["prompt","image_urls","history","context","return_history","thinking_level","include_thoughts","temperature","top_p","max_output_tokens","num_images","seed","aspect_ratio","output_format","safety_tolerance","sync_mode","system_prompt","resolution","limit_generations","enable_web_search"],"required":["prompt"],"title":"NanoBananaImageToImageInput","type":"object","properties":{"context":{"type":"array","title":"Context","description":"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.","items":{"discriminator":{"mapping":{"document":"#/components/schemas/GeminiDocumentPart","text":"#/components/schemas/GeminiTextPart","image":"#/components/schemas/GeminiImagePart","signature":"#/components/schemas/GeminiSignaturePart"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/GeminiTextPart"},{"$ref":"#/components/schemas/GeminiImagePart"},{"$ref":"#/components/schemas/GeminiDocumentPart"},{"$ref":"#/components/schemas/GeminiSignaturePart"}]}},"include_thoughts":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Include Thoughts","description":"Whether 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."},"temperature":{"anyOf":[{"minimum":0,"type":"number","maximum":2},{"type":"null"}],"title":"Temperature","description":"Sampling temperature. Omit to use the provider default of 1. Explicit values use a direct Google or Vertex API."},"aspect_ratio":{"default":"auto","anyOf":[{"enum":["auto","21:9","16:9","3:2","4:3","5:4","1:1","4:5","3:4","2:3","9:16","4:1","1:4","8:1","1:8"],"type":"string"},{"type":"null"}],"title":"Aspect Ratio","description":"The aspect ratio of the generated image, including 1:4, 4:1, 1:8 and 8:1."},"return_history":{"default":false,"title":"Return History","description":"Return 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.","type":"boolean"},"image_urls":{"type":"array","examples":[["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"]],"title":"Image URLs","description":"The URLs of the images to use for image-to-image generation or image editing.","items":{"type":"string"}},"max_output_tokens":{"anyOf":[{"minimum":1,"type":"integer","maximum":32768},{"type":"null"}],"title":"Max Output Tokens","description":"Maximum output tokens for the generation. Omit to retain the provider default. Explicit values use a direct Google or Vertex API."},"resolution":{"enum":["1K","2K","4K"],"default":"1K","title":"Resolution","description":"The resolution of the image to generate.","type":"string"},"limit_generations":{"default":true,"title":"Limit Generations","description":"Experimental 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.","type":"boolean"},"top_p":{"anyOf":[{"minimum":0,"type":"number","maximum":1},{"type":"null"}],"title":"Top P","description":"Nucleus sampling probability. Omit to use the provider default of 0.95. Explicit values use a direct Google or Vertex API."},"thinking_level":{"anyOf":[{"const":"high","type":"string"},{"type":"null"}],"title":"Thinking Level","description":"Thinking 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."},"output_format":{"enum":["jpeg","png","webp"],"default":"png","title":"Output Format","description":"The format of the generated image.","type":"string"},"safety_tolerance":{"enum":["1","2","3","4","5","6"],"default":"4","title":"Safety Tolerance","description":"The safety tolerance level for content moderation. 1 is the most strict (blocks most content), 6 is the least strict.","type":"string"},"num_images":{"type":"integer","default":1,"minimum":1,"title":"Number of Images","description":"The number of images to generate.","maximum":4},"seed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seed","description":"The seed for the random number generator."},"system_prompt":{"type":"string","default":"","title":"System Prompt","description":"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).","maxLength":50000},"history":{"type":"array","title":"History","description":"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.","items":{"$ref":"#/components/schemas/GeminiMessage"}},"prompt":{"type":"string","minLength":3,"examples":["make a photo of the man driving the car down the california coastline"],"title":"Prompt","description":"The prompt for image editing.","maxLength":50000},"enable_web_search":{"default":false,"title":"Enable Web Search","description":"Enable web search for the image generation task. This will allow the model to use the latest information from the web to generate the image.","type":"boolean"},"sync_mode":{"default":false,"title":"Sync Mode","description":"If `True`, the media will be returned as a data URI and the output data won't be available in the request history.","type":"boolean"}}},"NanoBananaProEditOutput":{"x-fal-order-properties":["images","description","conversations","grounding_metadata"],"required":["images","description"],"title":"NanoBananaImageToImageOutput","type":"object","properties":{"images":{"type":"array","examples":[[{"content_type":"image/png","file_name":"nano-banana-pro-edit-output.png","url":"https://storage.googleapis.com/falserverless/example_outputs/nano-banana-pro-edit-output.png"}]],"title":"Images","description":"The edited images.","items":{"$ref":"#/components/schemas/ImageFile"}},"conversations":{"title":"Conversations","items":{"$ref":"#/components/schemas/GeminiConversation"},"description":"Reusable per-generation conversations, populated only when return_history is true. Retain every part and thought signature when continuing a conversation.","type":"array"},"description":{"title":"Description","description":"The description of the generated images.","type":"string"},"grounding_metadata":{"title":"Grounding Metadata","items":{"type":"object"},"description":"Provider grounding metadata for the generated images, including search queries, source pages and image-source attribution when available.","type":"array"}}},"GeminiTextPart":{"x-fal-order-properties":["thought","thought_signature","type","text"],"required":["type","text"],"title":"GeminiTextPart","type":"object","properties":{"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Provider thought marker, preserved when replaying a returned conversation."},"text":{"title":"Text","description":"Text at this position in the conversation.","type":"string"},"thought_signature":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}],"title":"Thought Signature","description":"Opaque provider-issued thought signature. Replay it unchanged on its original part."},"type":{"const":"text","title":"Type","description":"The text part discriminator.","type":"string"}}},"GeminiImagePart":{"x-fal-order-properties":["thought","thought_signature","type","image_url"],"required":["type","image_url"],"title":"GeminiImagePart","type":"object","properties":{"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Provider thought marker, preserved when replaying a returned conversation."},"thought_signature":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}],"title":"Thought Signature","description":"Opaque provider-issued thought signature. Replay it unchanged on its original part."},"image_url":{"title":"Image Url","description":"Original image URL or data URI. Replayed without resizing or re-encoding.","type":"string"},"type":{"const":"image","title":"Type","description":"The image part discriminator.","type":"string"}}},"GeminiDocumentPart":{"x-fal-order-properties":["thought","thought_signature","type","file_url","mime_type"],"required":["type","file_url","mime_type"],"title":"GeminiDocumentPart","type":"object","properties":{"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Provider thought marker, preserved when replaying a returned conversation."},"thought_signature":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}],"title":"Thought Signature","description":"Opaque provider-issued thought signature. Replay it unchanged on its original part."},"file_url":{"title":"File Url","description":"PDF or UTF-8 plain-text document URL or data URI (up to 15 MB).","type":"string"},"type":{"const":"document","title":"Type","description":"The document part discriminator.","type":"string"},"mime_type":{"enum":["application/pdf","text/plain"],"title":"Mime Type","description":"The document's media type.","type":"string"}}},"GeminiSignaturePart":{"x-fal-order-properties":["thought","thought_signature","type"],"required":["thought_signature","type"],"title":"GeminiSignaturePart","type":"object","properties":{"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Provider thought marker, preserved when replaying a returned conversation."},"thought_signature":{"minLength":1,"title":"Thought Signature","description":"Provider-issued signature-only part, replayed unchanged.","type":"string"},"type":{"const":"signature","title":"Type","description":"The signature part discriminator.","type":"string"}}},"GeminiMessage":{"x-fal-order-properties":["role","parts"],"required":["role","parts"],"title":"GeminiMessage","type":"object","properties":{"role":{"enum":["user","model"],"title":"Role","description":"Native Gemini conversation role.","type":"string"},"parts":{"title":"Parts","minItems":1,"items":{"discriminator":{"mapping":{"document":"#/components/schemas/GeminiDocumentPart","text":"#/components/schemas/GeminiTextPart","image":"#/components/schemas/GeminiImagePart","signature":"#/components/schemas/GeminiSignaturePart"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/GeminiTextPart"},{"$ref":"#/components/schemas/GeminiImagePart"},{"$ref":"#/components/schemas/GeminiDocumentPart"},{"$ref":"#/components/schemas/GeminiSignaturePart"}]},"description":"Ordered text, image, document, and signature parts.","type":"array"}}},"ImageFile":{"x-fal-order-properties":["url","content_type","file_name","file_size","width","height"],"required":["url"],"title":"ImageFile","type":"object","properties":{"file_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"examples":[4404019],"title":"File Size","description":"The size of the file in bytes."},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"examples":["image/png"],"title":"Content Type","description":"The mime type of the file."},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Width","description":"The width of the image"},"file_name":{"anyOf":[{"type":"string"},{"type":"null"}],"examples":["z9RV14K95DvU.png"],"title":"File Name","description":"The name of the file. It will be auto-generated if not provided."},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Height","description":"The height of the image"},"url":{"title":"Url","description":"The URL where the file can be downloaded from.","type":"string"}}},"GeminiConversation":{"x-fal-order-properties":["messages"],"required":["messages"],"title":"GeminiConversation","type":"object","properties":{"messages":{"title":"Messages","items":{"$ref":"#/components/schemas/GeminiVideoMessage"},"description":"One complete provider conversation. Pass messages as history in the next request, retaining every signature and part.","type":"array"}}},"GeminiVideoMessage":{"x-fal-order-properties":["role","parts"],"required":["role","parts"],"title":"GeminiVideoMessage","type":"object","properties":{"role":{"enum":["user","model"],"title":"Role","description":"Native Gemini conversation role.","type":"string"},"parts":{"title":"Parts","minItems":1,"items":{"discriminator":{"mapping":{"signature":"#/components/schemas/GeminiSignaturePart","text":"#/components/schemas/GeminiTextPart","image":"#/components/schemas/GeminiImagePart","document":"#/components/schemas/GeminiDocumentPart","video":"#/components/schemas/GeminiVideoPart","audio":"#/components/schemas/GeminiAudioPart"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/GeminiTextPart"},{"$ref":"#/components/schemas/GeminiImagePart"},{"$ref":"#/components/schemas/GeminiDocumentPart"},{"$ref":"#/components/schemas/GeminiVideoPart"},{"$ref":"#/components/schemas/GeminiSignaturePart"},{"$ref":"#/components/schemas/GeminiAudioPart"}]},"description":"Ordered text, image, document, video, audio, and signature parts.","type":"array"}}},"GeminiVideoPart":{"x-fal-order-properties":["thought","thought_signature","type","video_url"],"required":["type","video_url"],"title":"GeminiVideoPart","type":"object","properties":{"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Provider thought marker, preserved when replaying a returned conversation."},"thought_signature":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}],"title":"Thought Signature","description":"Opaque provider-issued thought signature. Replay it unchanged on its original part."},"video_url":{"title":"Video Url","description":"Video URL or data URI (up to 15 MB and 120 seconds), or a YouTube URL. Supported by Flash Image only.","type":"string"},"type":{"const":"video","title":"Type","description":"The video part discriminator.","type":"string"}}},"GeminiAudioPart":{"x-fal-order-properties":["thought","thought_signature","type","audio_url"],"required":["type","audio_url"],"title":"GeminiAudioPart","type":"object","properties":{"audio_url":{"title":"Audio Url","description":"Original audio URL or data URI from a previous Flash Image request (up to 15 MB).","type":"string"},"thought_signature":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}],"title":"Thought Signature","description":"Opaque provider-issued thought signature. Replay it unchanged on its original part."},"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Provider thought marker, preserved when replaying a returned conversation."},"type":{"const":"audio","title":"Type","description":"The audio part discriminator.","type":"string"}}}}},"paths":{"/fal-ai/nano-banana-pro/edit/requests/{request_id}/status":{"get":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}},{"name":"logs","in":"query","required":false,"schema":{"type":"number","description":"Whether to include logs (`1`) in the response or not (`0`)."}}],"responses":{"200":{"description":"The request status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueStatus"}}}}}}},"/fal-ai/nano-banana-pro/edit/requests/{request_id}/cancel":{"put":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}}],"responses":{"200":{"description":"The request was cancelled.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the request was cancelled successfully."}}}}}}}}},"/fal-ai/nano-banana-pro/edit":{"post":{"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NanoBananaProEditInput"}}}},"responses":{"200":{"description":"The request status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueStatus"}}}}}}},"/fal-ai/nano-banana-pro/edit/requests/{request_id}":{"get":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}}],"responses":{"200":{"description":"Result of the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NanoBananaProEditOutput"}}}}}}}},"servers":[{"url":"https://queue.fal.run"}],"security":[{"apiKeyAuth":[]}]}},{"endpoint_id":"google/nano-banana-2.1/edit","metadata":{"display_name":"Nano Banana 2.1 Edit","category":"image-to-image","description":"Nano Banana 2.1 Edit by Google transforms reference images using text instructions, with output resolutions up to 4K and optional video or PDF context.","status":"active","tags":["image editing","image to image","photorealism","typography","text rendering"],"updated_at":"2026-10-20T22:22:33.129Z","is_favorited":null,"thumbnail_url":"https://v3b.fal.media/files/b/0aaad14e/urvX9oiQqWKRcaZngAlID.jpg","model_url":"https://fal.run/google/nano-banana-2.1/edit","license_type":"commercial","date":"2026-10-06T15:48:52.103Z","group":{"key":"nano-banana-2.1","label":"Edit"},"highlighted":false,"kind":"inference","pinned":false},"retires_at":null,"replacement":null,"openapi":{"openapi":"3.1.0","info":{"title":"Queue OpenAPI for google/nano-banana-2.1/edit","version":"1.0.0","description":"The OpenAPI schema for the google/nano-banana-2.1/edit queue.","x-fal-metadata":{"endpointId":"google/nano-banana-2.1/edit","category":"image-to-image","thumbnailUrl":"https://v3b.fal.media/files/b/0aaad14e/urvX9oiQqWKRcaZngAlID.jpg","playgroundUrl":"https://fal.ai/models/google/nano-banana-2.1/edit","documentationUrl":"https://fal.ai/models/google/nano-banana-2.1/edit/api","about":"Nano Banana 2.1 is an image editing model that edits images from text descriptions."}},"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"Fal Key"}},"schemas":{"QueueStatus":{"type":"object","properties":{"status":{"type":"string","enum":["IN_QUEUE","IN_PROGRESS","COMPLETED"]},"request_id":{"type":"string","description":"The request id."},"response_url":{"type":"string","description":"The response url."},"status_url":{"type":"string","description":"The status url."},"cancel_url":{"type":"string","description":"The cancel url."},"logs":{"type":"object","description":"The logs.","additionalProperties":true},"metrics":{"type":"object","description":"The metrics.","additionalProperties":true},"queue_position":{"type":"integer","description":"The queue position."}},"required":["status","request_id"]},"NanoBanana21EditInput":{"properties":{"system_prompt":{"type":"string","description":"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).","title":"System Prompt","default":"","maxLength":50000},"aspect_ratio":{"anyOf":[{"enum":["auto","21:9","16:9","3:2","4:3","5:4","1:1","4:5","3:4","2:3","9:16","4:1","1:4","8:1","1:8"],"type":"string"},{"type":"null"}],"title":"Aspect Ratio","default":"auto","description":"The aspect ratio of the generated image. Supports extreme ratios: 4:1, 1:4, 8:1, 1:8."},"num_images":{"maximum":4,"type":"integer","description":"The number of images to generate.","title":"Number of Images","default":1,"minimum":1},"sync_mode":{"type":"boolean","description":"If `True`, the media will be returned as a data URI and the output data won't be available in the request history.","title":"Sync Mode","default":false},"limit_generations":{"type":"boolean","description":"Experimental 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.","title":"Limit Generations","default":true},"seed":{"description":"The seed for the random number generator.","title":"Seed","anyOf":[{"type":"integer"},{"type":"null"}]},"image_urls":{"description":"The URLs of the images to use for image-to-image generation or image editing. Optional when `video_url` or `pdf_url` is provided.","title":"Image URLs","items":{"type":"string"},"examples":[["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"]],"type":"array"},"resolution":{"enum":["1K","2K","4K"],"default":"1K","title":"Resolution","type":"string","description":"The resolution of the image to generate."},"thinking_level":{"anyOf":[{"enum":["minimal","medium","high"],"type":"string"},{"type":"null"}],"title":"Thinking Level","default":"medium","description":"How much the model reasons before generating. Higher levels can improve complex compositions and use more thinking tokens."},"output_format":{"enum":["jpeg","png","webp"],"type":"string","description":"The format of the generated image.","title":"Output Format","default":"png"},"safety_tolerance":{"enum":["1","2","3","4","5","6"],"default":"4","title":"Safety Tolerance","type":"string","description":"The safety tolerance level for content moderation. 1 is the most strict (blocks most content), 6 is the least strict."},"prompt":{"type":"string","description":"The prompt for image editing.","title":"Prompt","minLength":3,"examples":["make a photo of the man driving the car down the california coastline"],"maxLength":50000},"pdf_url":{"description":"Optional PDF document to use as input context. Accepts an http(s)/data URL (downloaded and sent inline, max 15MB).","title":"PDF URL","anyOf":[{"type":"string"},{"type":"null"}]},"enable_web_search":{"type":"boolean","description":"Enable web search for the image generation task. This will allow the model to use the latest information from the web to generate the image.","title":"Enable Web Search","default":false},"video_url":{"description":"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).","title":"Video URL","anyOf":[{"type":"string"},{"type":"null"}]}},"type":"object","title":"NanoBanana21ImageToImageInput","x-fal-order-properties":["prompt","num_images","seed","aspect_ratio","output_format","safety_tolerance","sync_mode","image_urls","system_prompt","resolution","video_url","pdf_url","limit_generations","enable_web_search","thinking_level"],"required":["prompt"]},"NanoBanana21EditOutput":{"properties":{"description":{"type":"string","description":"The description of the generated images.","title":"Description"},"images":{"type":"array","description":"The edited images.","title":"Images","items":{"$ref":"#/components/schemas/ImageFile"},"examples":[[{"url":"https://storage.googleapis.com/falserverless/example_outputs/nano-banana-multi-edit-output.png","file_name":"nano-banana-multi-edit-output.png","content_type":"image/png"}]]}},"type":"object","title":"NanoBanana21ImageToImageOutput","x-fal-order-properties":["images","description"],"required":["images","description"]},"ImageFile":{"properties":{"file_size":{"description":"The size of the file in bytes.","title":"File Size","anyOf":[{"type":"integer"},{"type":"null"}],"examples":[4404019]},"url":{"type":"string","description":"The URL where the file can be downloaded from.","title":"Url"},"file_name":{"description":"The name of the file. It will be auto-generated if not provided.","title":"File Name","anyOf":[{"type":"string"},{"type":"null"}],"examples":["z9RV14K95DvU.png"]},"width":{"description":"The width of the image","title":"Width","anyOf":[{"type":"integer"},{"type":"null"}]},"content_type":{"description":"The mime type of the file.","title":"Content Type","anyOf":[{"type":"string"},{"type":"null"}],"examples":["image/png"]},"height":{"description":"The height of the image","title":"Height","anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object","title":"ImageFile","x-fal-order-properties":["url","content_type","file_name","file_size","width","height"],"required":["url"]}}},"paths":{"/google/nano-banana-2.1/edit/requests/{request_id}/status":{"get":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}},{"name":"logs","in":"query","required":false,"schema":{"type":"number","description":"Whether to include logs (`1`) in the response or not (`0`)."}}],"responses":{"200":{"description":"The request status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueStatus"}}}}}}},"/google/nano-banana-2.1/edit/requests/{request_id}/cancel":{"put":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}}],"responses":{"200":{"description":"The request was cancelled.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the request was cancelled successfully."}}}}}}}}},"/google/nano-banana-2.1/edit":{"post":{"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NanoBanana21EditInput"}}}},"responses":{"200":{"description":"The request status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueStatus"}}}}}}},"/google/nano-banana-2.1/edit/requests/{request_id}":{"get":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}}],"responses":{"200":{"description":"Result of the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NanoBanana21EditOutput"}}}}}}}},"servers":[{"url":"https://queue.fal.run"}],"security":[{"apiKeyAuth":[]}]}},{"endpoint_id":"fal-ai/nano-banana-2/edit","metadata":{"display_name":"Nano Banana 2","category":"image-to-image","description":"Nano Banana 2 is Google's new state-of-the-art image generation and editing model\n","status":"active","tags":[],"updated_at":"2026-11-10T03:23:32.967Z","is_favorited":null,"thumbnail_url":"https://v3b.fal.media/files/b/0a900b75/DHb_RgXoXsYLdvzQz6mdn_95e87a44239c43448939b4c382dd957c.jpg","model_url":"https://fal.run/fal-ai/nano-banana-2/edit","license_type":"commercial","date":"2026-02-26T16:20:09.685Z","group":{"key":"nano-banana-2","label":"Image Editing"},"highlighted":false,"kind":"inference","pinned":false},"retires_at":null,"replacement":null,"openapi":{"openapi":"3.1.0","info":{"title":"Queue OpenAPI for fal-ai/nano-banana-2/edit","version":"1.0.0","description":"The OpenAPI schema for the fal-ai/nano-banana-2/edit queue.","x-fal-metadata":{"endpointId":"fal-ai/nano-banana-2/edit","category":"image-to-image","thumbnailUrl":"https://v3b.fal.media/files/b/0a900b75/DHb_RgXoXsYLdvzQz6mdn_95e87a44239c43448939b4c382dd957c.jpg","playgroundUrl":"https://fal.ai/models/fal-ai/nano-banana-2/edit","documentationUrl":"https://fal.ai/models/fal-ai/nano-banana-2/edit/api","about":"Gemini 3.1 Flash Image is a text-to-image model that generates images from text descriptions."}},"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"Fal Key"}},"schemas":{"QueueStatus":{"type":"object","properties":{"status":{"type":"string","enum":["IN_QUEUE","IN_PROGRESS","COMPLETED"]},"request_id":{"type":"string","description":"The request id."},"response_url":{"type":"string","description":"The response url."},"status_url":{"type":"string","description":"The status url."},"cancel_url":{"type":"string","description":"The cancel url."},"logs":{"type":"object","description":"The logs.","additionalProperties":true},"metrics":{"type":"object","description":"The metrics.","additionalProperties":true},"queue_position":{"type":"integer","description":"The queue position."}},"required":["status","request_id"]},"NanoBanana2EditInput":{"x-fal-order-properties":["prompt","image_urls","history","context","return_history","thinking_level","include_thoughts","temperature","top_p","max_output_tokens","num_images","seed","aspect_ratio","output_format","safety_tolerance","sync_mode","system_prompt","resolution","video_url","audio_url","pdf_url","limit_generations","enable_web_search","enable_image_search"],"title":"NanoBanana2ImageToImageInput","type":"object","required":["prompt"],"properties":{"enable_web_search":{"description":"Enable web search for the image generation task. This will allow the model to use the latest information from the web to generate the image.","title":"Enable Web Search","type":"boolean","default":false},"prompt":{"examples":["make a photo of the man driving the car down the california coastline"],"title":"Prompt","type":"string","minLength":3,"maxLength":50000,"description":"The prompt for image editing."},"system_prompt":{"description":"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).","title":"System Prompt","type":"string","maxLength":50000,"default":""},"context":{"title":"Context","type":"array","items":{"discriminator":{"propertyName":"type","mapping":{"document":"#/components/schemas/GeminiDocumentPart","video":"#/components/schemas/GeminiVideoPart","signature":"#/components/schemas/GeminiSignaturePart","image":"#/components/schemas/GeminiImagePart","text":"#/components/schemas/GeminiTextPart"}},"oneOf":[{"$ref":"#/components/schemas/GeminiTextPart"},{"$ref":"#/components/schemas/GeminiImagePart"},{"$ref":"#/components/schemas/GeminiDocumentPart"},{"$ref":"#/components/schemas/GeminiVideoPart"},{"$ref":"#/components/schemas/GeminiSignaturePart"}]},"description":"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."},"temperature":{"anyOf":[{"maximum":2,"type":"number","minimum":0},{"type":"null"}],"title":"Temperature","description":"Sampling temperature. Omit to use the provider default of 1. Explicit values use a direct Google or Vertex API."},"aspect_ratio":{"description":"The aspect ratio of the generated image. Supports extreme ratios: 4:1, 1:4, 8:1, 1:8.","anyOf":[{"enum":["auto","21:9","16:9","3:2","4:3","5:4","1:1","4:5","3:4","2:3","9:16","4:1","1:4","8:1","1:8"],"type":"string"},{"type":"null"}],"title":"Aspect Ratio","default":"auto"},"top_p":{"anyOf":[{"maximum":1,"type":"number","minimum":0},{"type":"null"}],"title":"Top P","description":"Nucleus sampling probability. Omit to use the provider default of 0.95. Explicit values use a direct Google or Vertex API."},"return_history":{"description":"Return 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.","title":"Return History","type":"boolean","default":false},"resolution":{"description":"The resolution of the image to generate.","title":"Resolution","type":"string","enum":["0.5K","1K","2K","4K"],"default":"1K"},"num_images":{"minimum":1,"description":"The number of images to generate.","title":"Number of Images","maximum":4,"type":"integer","default":1},"pdf_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"PDF URL","description":"Optional PDF document to use as input context. Accepts an http(s)/data URL (downloaded and sent inline, max 15MB)."},"limit_generations":{"description":"Experimental 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.","title":"Limit Generations","type":"boolean","default":true},"audio_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Audio URL","description":"Optional audio file to use as input context. Accepts an http(s)/data URL (downloaded and sent inline, max 15MB)."},"history":{"title":"History","type":"array","items":{"$ref":"#/components/schemas/GeminiVideoMessage"},"description":"Previous native Gemini turns, including original parts and thought signatures from conversations. The current prompt starts a new user turn."},"output_format":{"description":"The format of the generated image.","title":"Output Format","type":"string","enum":["jpeg","png","webp"],"default":"png"},"sync_mode":{"description":"If `True`, the media will be returned as a data URI and the output data won't be available in the request history.","title":"Sync Mode","type":"boolean","default":false},"max_output_tokens":{"anyOf":[{"maximum":32768,"type":"integer","minimum":1},{"type":"null"}],"title":"Max Output Tokens","description":"Maximum output tokens for the generation. Omit to retain the provider default. Explicit values use a direct Google or Vertex API."},"safety_tolerance":{"description":"The safety tolerance level for content moderation. 1 is the most strict (blocks most content), 6 is the least strict.","title":"Safety Tolerance","type":"string","enum":["1","2","3","4","5","6"],"default":"4"},"video_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Video URL","description":"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)."},"image_urls":{"examples":[["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"]],"title":"Image URLs","type":"array","items":{"type":"string"},"description":"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."},"seed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seed","description":"The seed for the random number generator."},"thinking_level":{"anyOf":[{"enum":["minimal","high"],"type":"string"},{"type":"null"}],"title":"Thinking Level","description":"Controls thinking effort ('minimal' or 'high') and requests thought summaries. Omit to use the provider default ('minimal'); thinking cannot be disabled."},"enable_image_search":{"description":"Ground 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.","title":"Enable Image Search","type":"boolean","default":false},"include_thoughts":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Include Thoughts","description":"Whether 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."}}},"NanoBanana2EditOutput":{"x-fal-order-properties":["images","description","conversations","grounding_metadata"],"title":"NanoBanana2ImageToImageOutput","type":"object","required":["images","description"],"properties":{"description":{"title":"Description","type":"string","description":"The description of the generated images."},"conversations":{"title":"Conversations","type":"array","items":{"$ref":"#/components/schemas/GeminiConversation"},"description":"Reusable per-generation conversations, populated only when return_history is true. Retain every part and thought signature when continuing a conversation."},"grounding_metadata":{"title":"Grounding Metadata","type":"array","items":{"type":"object"},"description":"Provider grounding metadata for the generated images, including search queries, source pages and image-source attribution when available."},"images":{"examples":[[{"content_type":"image/png","file_name":"nano-banana-2-edit-output.png","url":"https://storage.googleapis.com/falserverless/example_outputs/nano-banana-2-edit-output.png"}]],"title":"Images","type":"array","items":{"$ref":"#/components/schemas/ImageFile"},"description":"The edited images."}}},"GeminiTextPart":{"x-fal-order-properties":["thought","thought_signature","type","text"],"title":"GeminiTextPart","type":"object","required":["type","text"],"properties":{"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Provider thought marker, preserved when replaying a returned conversation."},"thought_signature":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Thought Signature","description":"Opaque provider-issued thought signature. Replay it unchanged on its original part."},"type":{"title":"Type","type":"string","const":"text","description":"The text part discriminator."},"text":{"title":"Text","type":"string","description":"Text at this position in the conversation."}}},"GeminiImagePart":{"x-fal-order-properties":["thought","thought_signature","type","image_url"],"title":"GeminiImagePart","type":"object","required":["type","image_url"],"properties":{"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Provider thought marker, preserved when replaying a returned conversation."},"thought_signature":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Thought Signature","description":"Opaque provider-issued thought signature. Replay it unchanged on its original part."},"type":{"title":"Type","type":"string","const":"image","description":"The image part discriminator."},"image_url":{"title":"Image Url","type":"string","description":"Original image URL or data URI. Replayed without resizing or re-encoding."}}},"GeminiDocumentPart":{"x-fal-order-properties":["thought","thought_signature","type","file_url","mime_type"],"title":"GeminiDocumentPart","type":"object","required":["type","file_url","mime_type"],"properties":{"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Provider thought marker, preserved when replaying a returned conversation."},"thought_signature":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Thought Signature","description":"Opaque provider-issued thought signature. Replay it unchanged on its original part."},"file_url":{"title":"File Url","type":"string","description":"PDF or UTF-8 plain-text document URL or data URI (up to 15 MB)."},"mime_type":{"title":"Mime Type","type":"string","enum":["application/pdf","text/plain"],"description":"The document's media type."},"type":{"title":"Type","type":"string","const":"document","description":"The document part discriminator."}}},"GeminiVideoPart":{"x-fal-order-properties":["thought","thought_signature","type","video_url"],"title":"GeminiVideoPart","type":"object","required":["type","video_url"],"properties":{"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Provider thought marker, preserved when replaying a returned conversation."},"thought_signature":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Thought Signature","description":"Opaque provider-issued thought signature. Replay it unchanged on its original part."},"type":{"title":"Type","type":"string","const":"video","description":"The video part discriminator."},"video_url":{"title":"Video Url","type":"string","description":"Video URL or data URI (up to 15 MB and 120 seconds), or a YouTube URL. Supported by Flash Image only."}}},"GeminiSignaturePart":{"x-fal-order-properties":["thought","thought_signature","type"],"title":"GeminiSignaturePart","type":"object","required":["thought_signature","type"],"properties":{"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Provider thought marker, preserved when replaying a returned conversation."},"thought_signature":{"title":"Thought Signature","type":"string","minLength":1,"description":"Provider-issued signature-only part, replayed unchanged."},"type":{"title":"Type","type":"string","const":"signature","description":"The signature part discriminator."}}},"GeminiVideoMessage":{"x-fal-order-properties":["role","parts"],"title":"GeminiVideoMessage","type":"object","required":["role","parts"],"properties":{"parts":{"minItems":1,"type":"array","title":"Parts","items":{"discriminator":{"propertyName":"type","mapping":{"document":"#/components/schemas/GeminiDocumentPart","video":"#/components/schemas/GeminiVideoPart","signature":"#/components/schemas/GeminiSignaturePart","audio":"#/components/schemas/GeminiAudioPart","image":"#/components/schemas/GeminiImagePart","text":"#/components/schemas/GeminiTextPart"}},"oneOf":[{"$ref":"#/components/schemas/GeminiTextPart"},{"$ref":"#/components/schemas/GeminiImagePart"},{"$ref":"#/components/schemas/GeminiDocumentPart"},{"$ref":"#/components/schemas/GeminiVideoPart"},{"$ref":"#/components/schemas/GeminiSignaturePart"},{"$ref":"#/components/schemas/GeminiAudioPart"}]},"description":"Ordered text, image, document, video, audio, and signature parts."},"role":{"title":"Role","type":"string","enum":["user","model"],"description":"Native Gemini conversation role."}}},"GeminiConversation":{"x-fal-order-properties":["messages"],"title":"GeminiConversation","type":"object","required":["messages"],"properties":{"messages":{"title":"Messages","type":"array","items":{"$ref":"#/components/schemas/GeminiVideoMessage"},"description":"One complete provider conversation. Pass messages as history in the next request, retaining every signature and part."}}},"ImageFile":{"x-fal-order-properties":["url","content_type","file_name","file_size","width","height"],"title":"ImageFile","type":"object","required":["url"],"properties":{"file_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"File Size","examples":[4404019],"description":"The size of the file in bytes."},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Width","description":"The width of the image"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","examples":["image/png"],"description":"The mime type of the file."},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Height","description":"The height of the image"},"file_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Name","examples":["z9RV14K95DvU.png"],"description":"The name of the file. It will be auto-generated if not provided."},"url":{"title":"Url","type":"string","description":"The URL where the file can be downloaded from."}}},"GeminiAudioPart":{"x-fal-order-properties":["thought","thought_signature","type","audio_url"],"title":"GeminiAudioPart","type":"object","required":["type","audio_url"],"properties":{"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Provider thought marker, preserved when replaying a returned conversation."},"thought_signature":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Thought Signature","description":"Opaque provider-issued thought signature. Replay it unchanged on its original part."},"type":{"title":"Type","type":"string","const":"audio","description":"The audio part discriminator."},"audio_url":{"title":"Audio Url","type":"string","description":"Original audio URL or data URI from a previous Flash Image request (up to 15 MB)."}}}}},"paths":{"/fal-ai/nano-banana-2/edit/requests/{request_id}/status":{"get":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}},{"name":"logs","in":"query","required":false,"schema":{"type":"number","description":"Whether to include logs (`1`) in the response or not (`0`)."}}],"responses":{"200":{"description":"The request status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueStatus"}}}}}}},"/fal-ai/nano-banana-2/edit/requests/{request_id}/cancel":{"put":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}}],"responses":{"200":{"description":"The request was cancelled.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the request was cancelled successfully."}}}}}}}}},"/fal-ai/nano-banana-2/edit":{"post":{"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NanoBanana2EditInput"}}}},"responses":{"200":{"description":"The request status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueStatus"}}}}}}},"/fal-ai/nano-banana-2/edit/requests/{request_id}":{"get":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}}],"responses":{"200":{"description":"Result of the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NanoBanana2EditOutput"}}}}}}}},"servers":[{"url":"https://queue.fal.run"}],"security":[{"apiKeyAuth":[]}]}},{"endpoint_id":"fal-ai/nano-banana-pro","metadata":{"display_name":"Nano Banana Pro","category":"text-to-image","description":"Nano Banana Pro is Google's new state-of-the-art image generation and editing model","status":"active","tags":["realism","typography"],"updated_at":"2026-11-10T03:23:32.955Z","is_favorited":null,"thumbnail_url":"https://v3b.fal.media/files/b/0a8691ce/SR0_u1zPJbx8jCIO6bJR0_8c83f0d66bbd48f3b55f825117941f84.jpg","model_url":"https://fal.run/fal-ai/nano-banana-pro","license_type":"commercial","date":"2025-11-20T14:24:45.001Z","group":{"key":"Nano-Banana-Pro","label":"Text to Image"},"highlighted":false,"kind":"inference","pinned":false},"retires_at":null,"replacement":null,"openapi":{"openapi":"3.1.0","info":{"title":"Queue OpenAPI for fal-ai/nano-banana-pro","version":"1.0.0","description":"The OpenAPI schema for the fal-ai/nano-banana-pro queue.","x-fal-metadata":{"endpointId":"fal-ai/nano-banana-pro","category":"text-to-image","thumbnailUrl":"https://v3b.fal.media/files/b/0a8691ce/SR0_u1zPJbx8jCIO6bJR0_8c83f0d66bbd48f3b55f825117941f84.jpg","playgroundUrl":"https://fal.ai/models/fal-ai/nano-banana-pro","documentationUrl":"https://fal.ai/models/fal-ai/nano-banana-pro/api","about":"Gemini 3 Pro Image is a text-to-image model that generates images from text descriptions."}},"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"Fal Key"}},"schemas":{"QueueStatus":{"type":"object","properties":{"status":{"type":"string","enum":["IN_QUEUE","IN_PROGRESS","COMPLETED"]},"request_id":{"type":"string","description":"The request id."},"response_url":{"type":"string","description":"The response url."},"status_url":{"type":"string","description":"The status url."},"cancel_url":{"type":"string","description":"The cancel url."},"logs":{"type":"object","description":"The logs.","additionalProperties":true},"metrics":{"type":"object","description":"The metrics.","additionalProperties":true},"queue_position":{"type":"integer","description":"The queue position."}},"required":["status","request_id"]},"NanoBananaProInput":{"x-fal-order-properties":["prompt","history","context","return_history","thinking_level","include_thoughts","temperature","top_p","max_output_tokens","num_images","seed","aspect_ratio","output_format","safety_tolerance","sync_mode","system_prompt","resolution","limit_generations","enable_web_search"],"required":["prompt"],"title":"NanoBananaTextToImageInput","type":"object","properties":{"context":{"type":"array","title":"Context","description":"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.","items":{"discriminator":{"mapping":{"document":"#/components/schemas/GeminiDocumentPart","text":"#/components/schemas/GeminiTextPart","image":"#/components/schemas/GeminiImagePart","signature":"#/components/schemas/GeminiSignaturePart"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/GeminiTextPart"},{"$ref":"#/components/schemas/GeminiImagePart"},{"$ref":"#/components/schemas/GeminiDocumentPart"},{"$ref":"#/components/schemas/GeminiSignaturePart"}]}},"include_thoughts":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Include Thoughts","description":"Whether 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."},"temperature":{"anyOf":[{"minimum":0,"type":"number","maximum":2},{"type":"null"}],"title":"Temperature","description":"Sampling temperature. Omit to use the provider default of 1. Explicit values use a direct Google or Vertex API."},"aspect_ratio":{"default":"1:1","anyOf":[{"enum":["auto","21:9","16:9","3:2","4:3","5:4","1:1","4:5","3:4","2:3","9:16","4:1","1:4","8:1","1:8"],"type":"string"},{"type":"null"}],"title":"Aspect Ratio","description":"The aspect ratio of the generated image."},"return_history":{"default":false,"title":"Return History","description":"Return 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.","type":"boolean"},"max_output_tokens":{"anyOf":[{"minimum":1,"type":"integer","maximum":32768},{"type":"null"}],"title":"Max Output Tokens","description":"Maximum output tokens for the generation. Omit to retain the provider default. Explicit values use a direct Google or Vertex API."},"resolution":{"enum":["1K","2K","4K"],"default":"1K","title":"Resolution","description":"The resolution of the image to generate.","type":"string"},"limit_generations":{"default":true,"title":"Limit Generations","description":"Experimental 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.","type":"boolean"},"top_p":{"anyOf":[{"minimum":0,"type":"number","maximum":1},{"type":"null"}],"title":"Top P","description":"Nucleus sampling probability. Omit to use the provider default of 0.95. Explicit values use a direct Google or Vertex API."},"thinking_level":{"anyOf":[{"const":"high","type":"string"},{"type":"null"}],"title":"Thinking Level","description":"Thinking 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."},"output_format":{"enum":["jpeg","png","webp"],"default":"png","title":"Output Format","description":"The format of the generated image.","type":"string"},"safety_tolerance":{"enum":["1","2","3","4","5","6"],"default":"4","title":"Safety Tolerance","description":"The safety tolerance level for content moderation. 1 is the most strict (blocks most content), 6 is the least strict.","type":"string"},"num_images":{"type":"integer","default":1,"minimum":1,"title":"Number of Images","description":"The number of images to generate.","maximum":4},"seed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seed","description":"The seed for the random number generator."},"system_prompt":{"type":"string","default":"","title":"System Prompt","description":"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).","maxLength":50000},"history":{"type":"array","title":"History","description":"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.","items":{"$ref":"#/components/schemas/GeminiMessage"}},"prompt":{"type":"string","minLength":3,"examples":["An action shot of a black lab swimming in an inground suburban swimming pool. The camera is placed meticulously on the water line, dividing the image in half, revealing both the dogs head above water holding a tennis ball in it's mouth, and it's paws paddling underwater."],"title":"Prompt","description":"The text prompt to generate an image from.","maxLength":50000},"enable_web_search":{"default":false,"title":"Enable Web Search","description":"Enable web search for the image generation task. This will allow the model to use the latest information from the web to generate the image.","type":"boolean"},"sync_mode":{"default":false,"title":"Sync Mode","description":"If `True`, the media will be returned as a data URI and the output data won't be available in the request history.","type":"boolean"}}},"NanoBananaProOutput":{"x-fal-order-properties":["images","description","conversations","grounding_metadata"],"required":["images","description"],"title":"NanoBananaTextToImageOutput","type":"object","properties":{"images":{"type":"array","examples":[[{"content_type":"image/png","file_name":"nano-banana-pro-t2i-output.png","url":"https://storage.googleapis.com/falserverless/example_outputs/nano-banana-pro-t2i-output.png"}]],"title":"Images","description":"The generated images.","items":{"$ref":"#/components/schemas/ImageFile"}},"conversations":{"title":"Conversations","items":{"$ref":"#/components/schemas/GeminiConversation"},"description":"Reusable per-generation conversations, populated only when return_history is true. Retain every part and thought signature when continuing a conversation.","type":"array"},"description":{"title":"Description","description":"The description of the generated images.","type":"string"},"grounding_metadata":{"title":"Grounding Metadata","items":{"type":"object"},"description":"Provider grounding metadata for the generated images, including search queries, source pages and image-source attribution when available.","type":"array"}}},"GeminiTextPart":{"x-fal-order-properties":["thought","thought_signature","type","text"],"required":["type","text"],"title":"GeminiTextPart","type":"object","properties":{"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Provider thought marker, preserved when replaying a returned conversation."},"text":{"title":"Text","description":"Text at this position in the conversation.","type":"string"},"thought_signature":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}],"title":"Thought Signature","description":"Opaque provider-issued thought signature. Replay it unchanged on its original part."},"type":{"const":"text","title":"Type","description":"The text part discriminator.","type":"string"}}},"GeminiImagePart":{"x-fal-order-properties":["thought","thought_signature","type","image_url"],"required":["type","image_url"],"title":"GeminiImagePart","type":"object","properties":{"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Provider thought marker, preserved when replaying a returned conversation."},"thought_signature":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}],"title":"Thought Signature","description":"Opaque provider-issued thought signature. Replay it unchanged on its original part."},"image_url":{"title":"Image Url","description":"Original image URL or data URI. Replayed without resizing or re-encoding.","type":"string"},"type":{"const":"image","title":"Type","description":"The image part discriminator.","type":"string"}}},"GeminiDocumentPart":{"x-fal-order-properties":["thought","thought_signature","type","file_url","mime_type"],"required":["type","file_url","mime_type"],"title":"GeminiDocumentPart","type":"object","properties":{"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Provider thought marker, preserved when replaying a returned conversation."},"thought_signature":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}],"title":"Thought Signature","description":"Opaque provider-issued thought signature. Replay it unchanged on its original part."},"file_url":{"title":"File Url","description":"PDF or UTF-8 plain-text document URL or data URI (up to 15 MB).","type":"string"},"type":{"const":"document","title":"Type","description":"The document part discriminator.","type":"string"},"mime_type":{"enum":["application/pdf","text/plain"],"title":"Mime Type","description":"The document's media type.","type":"string"}}},"GeminiSignaturePart":{"x-fal-order-properties":["thought","thought_signature","type"],"required":["thought_signature","type"],"title":"GeminiSignaturePart","type":"object","properties":{"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Provider thought marker, preserved when replaying a returned conversation."},"thought_signature":{"minLength":1,"title":"Thought Signature","description":"Provider-issued signature-only part, replayed unchanged.","type":"string"},"type":{"const":"signature","title":"Type","description":"The signature part discriminator.","type":"string"}}},"GeminiMessage":{"x-fal-order-properties":["role","parts"],"required":["role","parts"],"title":"GeminiMessage","type":"object","properties":{"role":{"enum":["user","model"],"title":"Role","description":"Native Gemini conversation role.","type":"string"},"parts":{"title":"Parts","minItems":1,"items":{"discriminator":{"mapping":{"document":"#/components/schemas/GeminiDocumentPart","text":"#/components/schemas/GeminiTextPart","image":"#/components/schemas/GeminiImagePart","signature":"#/components/schemas/GeminiSignaturePart"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/GeminiTextPart"},{"$ref":"#/components/schemas/GeminiImagePart"},{"$ref":"#/components/schemas/GeminiDocumentPart"},{"$ref":"#/components/schemas/GeminiSignaturePart"}]},"description":"Ordered text, image, document, and signature parts.","type":"array"}}},"ImageFile":{"x-fal-order-properties":["url","content_type","file_name","file_size","width","height"],"required":["url"],"title":"ImageFile","type":"object","properties":{"file_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"examples":[4404019],"title":"File Size","description":"The size of the file in bytes."},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"examples":["image/png"],"title":"Content Type","description":"The mime type of the file."},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Width","description":"The width of the image"},"file_name":{"anyOf":[{"type":"string"},{"type":"null"}],"examples":["z9RV14K95DvU.png"],"title":"File Name","description":"The name of the file. It will be auto-generated if not provided."},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Height","description":"The height of the image"},"url":{"title":"Url","description":"The URL where the file can be downloaded from.","type":"string"}}},"GeminiConversation":{"x-fal-order-properties":["messages"],"required":["messages"],"title":"GeminiConversation","type":"object","properties":{"messages":{"title":"Messages","items":{"$ref":"#/components/schemas/GeminiVideoMessage"},"description":"One complete provider conversation. Pass messages as history in the next request, retaining every signature and part.","type":"array"}}},"GeminiVideoMessage":{"x-fal-order-properties":["role","parts"],"required":["role","parts"],"title":"GeminiVideoMessage","type":"object","properties":{"role":{"enum":["user","model"],"title":"Role","description":"Native Gemini conversation role.","type":"string"},"parts":{"title":"Parts","minItems":1,"items":{"discriminator":{"mapping":{"signature":"#/components/schemas/GeminiSignaturePart","text":"#/components/schemas/GeminiTextPart","image":"#/components/schemas/GeminiImagePart","document":"#/components/schemas/GeminiDocumentPart","video":"#/components/schemas/GeminiVideoPart","audio":"#/components/schemas/GeminiAudioPart"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/GeminiTextPart"},{"$ref":"#/components/schemas/GeminiImagePart"},{"$ref":"#/components/schemas/GeminiDocumentPart"},{"$ref":"#/components/schemas/GeminiVideoPart"},{"$ref":"#/components/schemas/GeminiSignaturePart"},{"$ref":"#/components/schemas/GeminiAudioPart"}]},"description":"Ordered text, image, document, video, audio, and signature parts.","type":"array"}}},"GeminiVideoPart":{"x-fal-order-properties":["thought","thought_signature","type","video_url"],"required":["type","video_url"],"title":"GeminiVideoPart","type":"object","properties":{"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Provider thought marker, preserved when replaying a returned conversation."},"thought_signature":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}],"title":"Thought Signature","description":"Opaque provider-issued thought signature. Replay it unchanged on its original part."},"video_url":{"title":"Video Url","description":"Video URL or data URI (up to 15 MB and 120 seconds), or a YouTube URL. Supported by Flash Image only.","type":"string"},"type":{"const":"video","title":"Type","description":"The video part discriminator.","type":"string"}}},"GeminiAudioPart":{"x-fal-order-properties":["thought","thought_signature","type","audio_url"],"required":["type","audio_url"],"title":"GeminiAudioPart","type":"object","properties":{"audio_url":{"title":"Audio Url","description":"Original audio URL or data URI from a previous Flash Image request (up to 15 MB).","type":"string"},"thought_signature":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}],"title":"Thought Signature","description":"Opaque provider-issued thought signature. Replay it unchanged on its original part."},"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Provider thought marker, preserved when replaying a returned conversation."},"type":{"const":"audio","title":"Type","description":"The audio part discriminator.","type":"string"}}}}},"paths":{"/fal-ai/nano-banana-pro/requests/{request_id}/status":{"get":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}},{"name":"logs","in":"query","required":false,"schema":{"type":"number","description":"Whether to include logs (`1`) in the response or not (`0`)."}}],"responses":{"200":{"description":"The request status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueStatus"}}}}}}},"/fal-ai/nano-banana-pro/requests/{request_id}/cancel":{"put":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}}],"responses":{"200":{"description":"The request was cancelled.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the request was cancelled successfully."}}}}}}}}},"/fal-ai/nano-banana-pro":{"post":{"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NanoBananaProInput"}}}},"responses":{"200":{"description":"The request status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueStatus"}}}}}}},"/fal-ai/nano-banana-pro/requests/{request_id}":{"get":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}}],"responses":{"200":{"description":"Result of the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NanoBananaProOutput"}}}}}}}},"servers":[{"url":"https://queue.fal.run"}],"security":[{"apiKeyAuth":[]}]}},{"endpoint_id":"fal-ai/flux/schnell","metadata":{"display_name":"FLUX.1 [schnell]","category":"text-to-image","description":"FLUX.1 [schnell] is a 12 billion parameter flow transformer that generates high-quality images from text in 1 to 4 steps, suitable for personal and commercial use.","status":"active","tags":[],"updated_at":"2026-06-24T23:02:10.109Z","is_favorited":null,"thumbnail_url":"https://v3b.fal.media/files/b/0a9af64d/GxvCUPd3gO-MSYcy06g0x_1641cfe028c2429b8e12e4fc320eb0a8.jpg","model_url":"https://fal.run/fal-ai/flux/schnell","github_url":"https://www.apache.org/licenses/LICENSE-2.0.txt","license_type":"commercial","date":"2024-11-25T00:00:00.000Z","group":{"key":"flux-1","label":"Text to Image [schnell]"},"highlighted":false,"kind":"inference","pinned":false},"retires_at":null,"replacement":null,"openapi":{"openapi":"3.1.0","info":{"title":"Queue OpenAPI for fal-ai/flux/schnell","version":"1.0.0","description":"The OpenAPI schema for the fal-ai/flux/schnell queue.","x-fal-metadata":{"endpointId":"fal-ai/flux/schnell","category":"text-to-image","thumbnailUrl":"https://v3b.fal.media/files/b/0a9af64d/GxvCUPd3gO-MSYcy06g0x_1641cfe028c2429b8e12e4fc320eb0a8.jpg","playgroundUrl":"https://fal.ai/models/fal-ai/flux/schnell","documentationUrl":"https://fal.ai/models/fal-ai/flux/schnell/api","about":"FLUX.1 [schnell], turbo mode for next generation text-to-image model FLUX."}},"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"Fal Key"}},"schemas":{"QueueStatus":{"type":"object","properties":{"status":{"type":"string","enum":["IN_QUEUE","IN_PROGRESS","COMPLETED"]},"request_id":{"type":"string","description":"The request id."},"response_url":{"type":"string","description":"The response url."},"status_url":{"type":"string","description":"The status url."},"cancel_url":{"type":"string","description":"The cancel url."},"logs":{"type":"object","description":"The logs.","additionalProperties":true},"metrics":{"type":"object","description":"The metrics.","additionalProperties":true},"queue_position":{"type":"integer","description":"The queue position."}},"required":["status","request_id"]},"FluxSchnellInput":{"x-fal-order-properties":["num_inference_steps","prompt","image_size","seed","guidance_scale","sync_mode","num_images","enable_safety_checker","output_format","acceleration"],"title":"SchnellTextToImageInput","type":"object","required":["prompt"],"properties":{"prompt":{"examples":["Extreme close-up of a single tiger eye, direct frontal view. Detailed iris and pupil. Sharp focus on eye texture and color. Natural lighting to capture authentic eye shine and depth. The word \"FLUX\" is painted over it in big, white brush strokes with visible texture."],"title":"Prompt","type":"string","description":"The prompt to generate an image from."},"output_format":{"default":"jpeg","enum":["jpeg","png"],"type":"string","title":"Output Format","description":"The format of the generated image."},"sync_mode":{"default":false,"title":"Sync Mode","type":"boolean","description":"If `True`, the media will be returned as a data URI and the output data won't be available in the request history."},"guidance_scale":{"minimum":1,"default":3.5,"title":"Guidance scale (CFG)","maximum":20,"type":"number","description":"\n        The CFG (Classifier Free Guidance) scale is a measure of how close you want\n        the model to stick to your prompt when looking for a related image to show you.\n    "},"num_inference_steps":{"minimum":1,"default":4,"title":"Num Inference Steps","maximum":12,"type":"integer","description":"The number of inference steps to perform."},"image_size":{"default":"landscape_4_3","anyOf":[{"$ref":"#/components/schemas/ImageSize"},{"enum":["square_hd","square","portrait_4_3","portrait_16_9","landscape_4_3","landscape_16_9"],"type":"string"}],"title":"Image Size","description":"The size of the generated image."},"num_images":{"minimum":1,"default":1,"title":"Num Images","maximum":4,"type":"integer","description":"The number of images to generate."},"seed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seed","description":"\n        The same seed and the same prompt given to the same version of the model\n        will output the same image every time.\n    "},"acceleration":{"default":"none","enum":["none","regular","high"],"type":"string","title":"Acceleration","description":"The speed of the generation. The higher the speed, the faster the generation."},"enable_safety_checker":{"default":true,"title":"Enable Safety Checker","type":"boolean","description":"If set to true, the safety checker will be enabled. Disabling it requires account authorization; unauthorized requests are always checked, and images flagged as unsafe are returned as black images."}}},"FluxSchnellOutput":{"x-fal-order-properties":["images","timings","seed","has_nsfw_concepts","prompt"],"title":"Output","type":"object","required":["images","timings","seed","has_nsfw_concepts","prompt"],"properties":{"has_nsfw_concepts":{"items":{"type":"boolean"},"type":"array","title":"Has Nsfw Concepts","description":"Whether the generated images contain NSFW concepts."},"prompt":{"title":"Prompt","type":"string","description":"The prompt used for generating the image."},"timings":{"additionalProperties":{"type":"number"},"title":"Timings","type":"object"},"seed":{"title":"Seed","type":"integer","description":"\n            Seed of the generated Image. It will be the same value of the one passed in the\n            input or the randomly generated that was used in case none was passed.\n        "},"images":{"items":{"$ref":"#/components/schemas/Image"},"type":"array","title":"Images","description":"The generated image files info."}}},"ImageSize":{"x-fal-order-properties":["width","height"],"title":"ImageSize","type":"object","properties":{"height":{"exclusiveMinimum":0,"default":512,"title":"Height","maximum":14142,"type":"integer","description":"The height of the generated image."},"width":{"exclusiveMinimum":0,"default":512,"title":"Width","maximum":14142,"type":"integer","description":"The width of the generated image."}}},"Image":{"x-fal-order-properties":["url","width","height","content_type"],"title":"Image","type":"object","required":["url","width","height"],"properties":{"width":{"title":"Width","type":"integer"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","default":"image/jpeg"},"height":{"title":"Height","type":"integer"},"url":{"title":"Url","type":"string"}}}}},"paths":{"/fal-ai/flux/schnell/requests/{request_id}/status":{"get":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}},{"name":"logs","in":"query","required":false,"schema":{"type":"number","description":"Whether to include logs (`1`) in the response or not (`0`)."}}],"responses":{"200":{"description":"The request status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueStatus"}}}}}}},"/fal-ai/flux/schnell/requests/{request_id}/cancel":{"put":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}}],"responses":{"200":{"description":"The request was cancelled.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the request was cancelled successfully."}}}}}}}}},"/fal-ai/flux/schnell":{"post":{"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FluxSchnellInput"}}}},"responses":{"200":{"description":"The request status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueStatus"}}}}}}},"/fal-ai/flux/schnell/requests/{request_id}":{"get":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}}],"responses":{"200":{"description":"Result of the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FluxSchnellOutput"}}}}}}}},"servers":[{"url":"https://queue.fal.run"}],"security":[{"apiKeyAuth":[]}]}},{"endpoint_id":"openai/gpt-image-2.5/sunburst/edit","metadata":{"display_name":"GPT Image 2.5 Sunburst Edit ","category":"image-to-image","description":"Editing built for the tightest control, edits scoped precisely to the instruction, with subject and composition preserved across many rounds of revision.","status":"active","tags":["stylized","transform","editing"],"updated_at":"2026-09-11T19:34:21.150Z","is_favorited":null,"thumbnail_url":"https://v3b.fal.media/files/b/0aa9a3b8/cSrDjg-ke-PcqgHiY_gxn.jpg","model_url":"https://fal.run/openai/gpt-image-2.5/sunburst/edit","license_type":"commercial","date":"2026-09-08T19:43:14.655Z","group":{"key":"gpt-25","label":"Image Editing Sunburst"},"highlighted":false,"kind":"inference","pinned":false},"retires_at":null,"replacement":null,"openapi":{"openapi":"3.1.0","info":{"title":"Queue OpenAPI for openai/gpt-image-2.5/sunburst/edit","version":"1.0.0","description":"The OpenAPI schema for the openai/gpt-image-2.5/sunburst/edit queue.","x-fal-metadata":{"endpointId":"openai/gpt-image-2.5/sunburst/edit","category":"image-to-image","thumbnailUrl":"https://v3b.fal.media/files/b/0aa9a3b8/cSrDjg-ke-PcqgHiY_gxn.jpg","playgroundUrl":"https://fal.ai/models/openai/gpt-image-2.5/sunburst/edit","documentationUrl":"https://fal.ai/models/openai/gpt-image-2.5/sunburst/edit/api","about":"Edit images with the selected GPT Image 2.5 model."}},"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"Fal Key"}},"schemas":{"QueueStatus":{"type":"object","properties":{"status":{"type":"string","enum":["IN_QUEUE","IN_PROGRESS","COMPLETED"]},"request_id":{"type":"string","description":"The request id."},"response_url":{"type":"string","description":"The response url."},"status_url":{"type":"string","description":"The status url."},"cancel_url":{"type":"string","description":"The cancel url."},"logs":{"type":"object","description":"The logs.","additionalProperties":true},"metrics":{"type":"object","description":"The metrics.","additionalProperties":true},"queue_position":{"type":"integer","description":"The queue position."}},"required":["status","request_id"]},"GptImage25SunburstEditInput":{"required":["prompt","image_urls"],"description":"GPT Image 2.5 edit inputs with model-specific quality and compression.","title":"GPTImage25EditImageRequest","x-fal-order-properties":["prompt","image_urls","mask_url","image_size","background","quality","num_images","output_format","output_compression","sync_mode","enable_safety_checker"],"properties":{"output_compression":{"anyOf":[{"maximum":100,"type":"integer","minimum":0},{"type":"null"}],"title":"Output Compression","description":"Compression level from 0 to 100. Only supported when output_format is 'jpeg' or 'webp'."},"output_format":{"enum":["jpeg","png","webp"],"type":"string","description":"Output format for the images","title":"Output Format","default":"png"},"background":{"enum":["auto","transparent","opaque"],"type":"string","description":"Background for the generated image","title":"Background","default":"auto"},"quality":{"enum":["auto","low","medium","high","xhigh","max"],"type":"string","description":"Quality for the generated image. Higher settings increase detail, latency, and token usage. Use 'auto' to let the model choose.","title":"Quality","default":"high"},"prompt":{"type":"string","description":"The prompt for image generation","title":"Prompt","minLength":1,"examples":["Same workers, same beam, same lunch boxes - but they're all on their phones now. One is taking a selfie. One is on a call looking annoyed. Same danger, new priorities. A hard hat has AirPods."],"maxLength":32000},"mask_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mask URL","description":"Mask image URL. White marks regions to edit and black marks regions to keep."},"image_size":{"anyOf":[{"$ref":"#/components/schemas/ImageSize"},{"enum":["square_hd","square","portrait_4_3","portrait_16_9","landscape_4_3","landscape_16_9","auto"],"type":"string"}],"title":"Image Size","default":"auto","description":"The size of the generated image. Use 'auto' to infer from input images."},"sync_mode":{"type":"boolean","description":"If `True`, the media will be returned as a data URI and the output data won't be available in the request history.","title":"Sync Mode","default":false},"enable_safety_checker":{"type":"boolean","description":"Authorized callers may set false to request relaxed screening.","title":"Enable Safety Checker","default":true},"num_images":{"maximum":10,"type":"integer","description":"Number of images to generate","title":"Number of Images","default":1,"examples":[1],"minimum":1},"image_urls":{"type":"array","maxItems":16,"title":"Image URLs","description":"The URLs of the images to use as a reference for the generation. A maximum of 16 images are allowed.","examples":[["https://v3b.fal.media/files/b/0a8691af/9Se_1_VX1wzTjjTOpWbs9_bb39c2eb-1a41-4749-b1d0-cf134abc8bbf.png"]],"items":{"type":"string"}}},"type":"object"},"GptImage25SunburstEditOutput":{"required":["images"],"properties":{"images":{"type":"array","description":"The generated images.","title":"Images","items":{"$ref":"#/components/schemas/ImageFile"},"examples":[[{"width":1024,"url":"https://v3b.fal.media/files/b/0a8691b0/yUt7tifLSbg1WzWWgfj2o.png","file_name":"yUt7tifLSbg1WzWWgfj2o.png","content_type":"image/png","height":1024}]]}},"title":"EditImageResponse","x-fal-order-properties":["images"],"type":"object"},"ImageSize":{"properties":{"width":{"exclusiveMinimum":0,"maximum":14142,"type":"integer","description":"The width of the generated image.","title":"Width","default":512},"height":{"exclusiveMinimum":0,"maximum":14142,"type":"integer","description":"The height of the generated image.","title":"Height","default":512}},"type":"object","title":"ImageSize","x-fal-order-properties":["width","height"]},"ImageFile":{"required":["url"],"properties":{"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Width","description":"The width of the image"},"url":{"type":"string","description":"The URL where the file can be downloaded from.","title":"Url"},"file_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Name","description":"The name of the file. It will be auto-generated if not provided.","examples":["z9RV14K95DvU.png"]},"file_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"File Size","description":"The size of the file in bytes.","examples":[4404019]},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"The mime type of the file.","examples":["image/png"]},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Height","description":"The height of the image"}},"title":"ImageFile","x-fal-order-properties":["url","content_type","file_name","file_size","width","height"],"type":"object"}}},"paths":{"/openai/gpt-image-2.5/sunburst/edit/requests/{request_id}/status":{"get":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}},{"name":"logs","in":"query","required":false,"schema":{"type":"number","description":"Whether to include logs (`1`) in the response or not (`0`)."}}],"responses":{"200":{"description":"The request status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueStatus"}}}}}}},"/openai/gpt-image-2.5/sunburst/edit/requests/{request_id}/cancel":{"put":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}}],"responses":{"200":{"description":"The request was cancelled.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the request was cancelled successfully."}}}}}}}}},"/openai/gpt-image-2.5/sunburst/edit":{"post":{"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GptImage25SunburstEditInput"}}}},"responses":{"200":{"description":"The request status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueStatus"}}}}}}},"/openai/gpt-image-2.5/sunburst/edit/requests/{request_id}":{"get":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}}],"responses":{"200":{"description":"Result of the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GptImage25SunburstEditOutput"}}}}}}}},"servers":[{"url":"https://queue.fal.run"}],"security":[{"apiKeyAuth":[]}]}},{"endpoint_id":"fal-ai/birefnet/v2","metadata":{"display_name":"Birefnet Background Removal V2","category":"image-to-image","description":"bilateral reference framework (BiRefNet) for high-resolution dichotomous image segmentation (DIS)","status":"active","tags":["background removal","segmentation","high-res","utility"],"updated_at":"2026-07-10T21:29:33.954Z","is_favorited":null,"thumbnail_url":"https://storage.googleapis.com/falserverless/gallery/birefnet.webp","thumbnail_animated_url":"https://storage.googleapis.com/falserverless/gallery/birefnet-animated.webp","model_url":"https://fal.run/fal-ai/birefnet/v2","license_type":"commercial","date":"2024-10-28T00:00:00.000Z","highlighted":false,"kind":"inference","pinned":false},"retires_at":null,"replacement":null,"openapi":{"openapi":"3.1.0","info":{"title":"Queue OpenAPI for fal-ai/birefnet/v2","version":"1.0.0","description":"The OpenAPI schema for the fal-ai/birefnet/v2 queue.","x-fal-metadata":{"endpointId":"fal-ai/birefnet/v2","category":"image-to-image","thumbnailUrl":"https://storage.googleapis.com/falserverless/gallery/birefnet.webp","playgroundUrl":"https://fal.ai/models/fal-ai/birefnet/v2","documentationUrl":"https://fal.ai/models/fal-ai/birefnet/v2/api","about":"Remove Background Http V2"}},"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"Fal Key"}},"schemas":{"QueueStatus":{"type":"object","properties":{"status":{"type":"string","enum":["IN_QUEUE","IN_PROGRESS","COMPLETED"]},"request_id":{"type":"string","description":"The request id."},"response_url":{"type":"string","description":"The response url."},"status_url":{"type":"string","description":"The status url."},"cancel_url":{"type":"string","description":"The cancel url."},"logs":{"type":"object","description":"The logs.","additionalProperties":true},"metrics":{"type":"object","description":"The metrics.","additionalProperties":true},"queue_position":{"type":"integer","description":"The queue position."}},"required":["status","request_id"]},"BirefnetV2Input":{"x-fal-order-properties":["model","operating_resolution","output_mask","refine_foreground","sync_mode","image_url","output_format","mask_only"],"title":"InputV2","required":["image_url"],"type":"object","properties":{"mask_only":{"default":false,"title":"Mask Only","type":"boolean","description":"Whether to return only the segmentation mask without applying it to the image. When set to `True`, only the mask will be returned and foreground refinement will be skipped. Useful for reducing computation and data transfer when only the mask is needed."},"sync_mode":{"default":false,"title":"Sync Mode","type":"boolean","description":"If `True`, the media will be returned as a data URI and the output data won't be available in the request history."},"output_format":{"default":"png","title":"Output Format","type":"string","enum":["webp","png","gif"],"description":"The format of the output image"},"operating_resolution":{"default":"1024x1024","title":"Operating Resolution","type":"string","enum":["1024x1024","2048x2048","2304x2304"],"description":"The resolution to operate on. The higher the resolution, the more accurate the output will be for high res input images. The '2304x2304' option is only available for the 'General Use (Dynamic)' model."},"image_url":{"examples":["https://storage.googleapis.com/falserverless/example_inputs/birefnet-input.jpeg"],"title":"Image Url","type":"string","_fal_ui_field":"image","description":"URL of the image to remove background from"},"output_mask":{"default":false,"title":"Output Mask","type":"boolean","description":"Whether to output the mask used to remove the background"},"model":{"default":"General Use (Light)","title":"Model","type":"string","enum":["General Use (Light)","General Use (Light 2K)","General Use (Heavy)","Matting","Portrait","General Use (Dynamic)"],"description":"\n            Model to use for background removal.\n            The 'General Use (Light)' model is the original model used in the BiRefNet repository.\n            The 'General Use (Light 2K)' model is the original model used in the BiRefNet repository but trained with 2K images.\n            The 'General Use (Heavy)' model is a slower but more accurate model.\n            The 'Matting' model is a model trained specifically for matting images.\n            The 'Portrait' model is a model trained specifically for portrait images.\n            The 'General Use (Dynamic)' model supports dynamic resolutions from 256x256 to 2304x2304.\n            The 'General Use (Light)' model is recommended for most use cases.\n\n            The corresponding models are as follows:\n            - 'General Use (Light)': BiRefNet\n            - 'General Use (Light 2K)': BiRefNet_lite-2K\n            - 'General Use (Heavy)': BiRefNet_lite\n            - 'Matting': BiRefNet-matting\n            - 'Portrait': BiRefNet-portrait\n            - 'General Use (Dynamic)': BiRefNet_dynamic\n        "},"refine_foreground":{"default":true,"title":"Refine Foreground","type":"boolean","description":"Whether to refine the foreground using the estimated mask"}}},"BirefnetV2Output":{"x-fal-order-properties":["image","mask_image"],"title":"OutputV2","required":["image"],"type":"object","properties":{"image":{"examples":[{"url":"https://storage.googleapis.com/falserverless/example_outputs/birefnet-output.png","content_type":"image/png","height":1024,"file_name":"birefnet-output.png","width":1024}],"$ref":"#/components/schemas/ImageFile","description":"Image with background removed. When `mask_only` is `True`, this contains the segmentation mask instead."},"mask_image":{"anyOf":[{"$ref":"#/components/schemas/ImageFile"},{"type":"null"}],"description":"Mask used to remove the background"}}},"ImageFile":{"x-fal-order-properties":["url","content_type","file_name","file_size","width","height"],"title":"ImageFile","required":["url"],"type":"object","properties":{"file_size":{"examples":[4404019],"title":"File Size","anyOf":[{"type":"integer"},{"type":"null"}],"description":"The size of the file in bytes."},"url":{"title":"Url","type":"string","description":"The URL where the file can be downloaded from."},"file_name":{"examples":["z9RV14K95DvU.png"],"title":"File Name","anyOf":[{"type":"string"},{"type":"null"}],"description":"The name of the file. It will be auto-generated if not provided."},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Height","description":"The height of the image"},"content_type":{"examples":["image/png"],"title":"Content Type","anyOf":[{"type":"string"},{"type":"null"}],"description":"The mime type of the file."},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Width","description":"The width of the image"}}}}},"paths":{"/fal-ai/birefnet/v2/requests/{request_id}/status":{"get":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}},{"name":"logs","in":"query","required":false,"schema":{"type":"number","description":"Whether to include logs (`1`) in the response or not (`0`)."}}],"responses":{"200":{"description":"The request status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueStatus"}}}}}}},"/fal-ai/birefnet/v2/requests/{request_id}/cancel":{"put":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}}],"responses":{"200":{"description":"The request was cancelled.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the request was cancelled successfully."}}}}}}}}},"/fal-ai/birefnet/v2":{"post":{"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BirefnetV2Input"}}}},"responses":{"200":{"description":"The request status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueStatus"}}}}}}},"/fal-ai/birefnet/v2/requests/{request_id}":{"get":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}}],"responses":{"200":{"description":"Result of the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BirefnetV2Output"}}}}}}}},"servers":[{"url":"https://queue.fal.run"}],"security":[{"apiKeyAuth":[]}]}},{"endpoint_id":"openai/gpt-image-2/edit","metadata":{"display_name":"GPT Image 2 API","category":"image-to-image","description":"GPT Image 2, OpenAI's latest image model, is capable of making fine-grained, detailed edits to images.","status":"active","tags":["gpt-image-2","openai","chatgpt-images-2"],"updated_at":"2026-08-13T21:01:03.124Z","is_favorited":null,"thumbnail_url":"https://v3b.fal.media/files/b/0a9c2f0d/G7gs81xziNgfaucyi7NO7_cfb3919cd2914dfba679e44ce8bbecdc.jpg","model_url":"https://fal.run/openai/gpt-image-2/edit","license_type":"commercial","date":"2026-04-20T19:16:13.451Z","group":{"key":"gpt-image-2","label":"Edit"},"highlighted":false,"kind":"inference","stream_url":"https://fal.run/openai/gpt-image-2/edit/stream","pinned":false},"retires_at":null,"replacement":null,"openapi":{"openapi":"3.1.0","info":{"title":"Queue OpenAPI for openai/gpt-image-2/edit","version":"1.0.0","description":"The OpenAPI schema for the openai/gpt-image-2/edit queue.","x-fal-metadata":{"endpointId":"openai/gpt-image-2/edit","category":"image-to-image","thumbnailUrl":"https://v3b.fal.media/files/b/0a9c2f0d/G7gs81xziNgfaucyi7NO7_cfb3919cd2914dfba679e44ce8bbecdc.jpg","playgroundUrl":"https://fal.ai/models/openai/gpt-image-2/edit","documentationUrl":"https://fal.ai/models/openai/gpt-image-2/edit/api","about":"GPT Image 2 is OpenAI's next-generation image generation model (alpha).\nIt supports flexible resolutions up to 4K and multiple model variants.\n\nUse it as an image-to-image (editing) API through fal!"}},"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"Fal Key"}},"schemas":{"QueueStatus":{"type":"object","properties":{"status":{"type":"string","enum":["IN_QUEUE","IN_PROGRESS","COMPLETED"]},"request_id":{"type":"string","description":"The request id."},"response_url":{"type":"string","description":"The response url."},"status_url":{"type":"string","description":"The status url."},"cancel_url":{"type":"string","description":"The cancel url."},"logs":{"type":"object","description":"The logs.","additionalProperties":true},"metrics":{"type":"object","description":"The metrics.","additionalProperties":true},"queue_position":{"type":"integer","description":"The queue position."}},"required":["status","request_id"]},"GptImage2EditInput":{"title":"EditImageRequest","properties":{"output_format":{"title":"Output Format","description":"Output format for the images","enum":["jpeg","png","webp"],"default":"png","type":"string"},"enable_safety_checker":{"title":"Enable Safety Checker","description":"Authorized callers may set false to request relaxed screening.","default":true,"type":"boolean"},"sync_mode":{"title":"Sync Mode","description":"If `True`, the media will be returned as a data URI and the output data won't be available in the request history.","default":false,"type":"boolean"},"background":{"title":"Background","description":"Background for the generated image","enum":["auto","transparent","opaque"],"default":"auto","type":"string"},"num_images":{"title":"Number of Images","description":"Number of images to generate","examples":[1],"maximum":10,"minimum":1,"default":1,"type":"integer"},"quality":{"title":"Quality","description":"Quality for the generated image. Use 'auto' to let the model pick the best quality for the prompt.","enum":["auto","low","medium","high"],"default":"high","type":"string"},"prompt":{"title":"Prompt","description":"The prompt for image generation","examples":["Same workers, same beam, same lunch boxes - but they're all on their phones now. One is taking a selfie. One is on a call looking annoyed. Same danger, new priorities. A hard hat has AirPods."],"minLength":1,"maxLength":32000,"type":"string"},"mask_url":{"title":"Mask URL","description":"Mask image URL. White marks regions to edit and black marks regions to keep.","anyOf":[{"type":"string"},{"type":"null"}]},"output_compression":{"title":"Output Compression","description":"Compression level from 0 to 100. Only supported when output_format is 'jpeg' or 'webp'.","anyOf":[{"maximum":100,"minimum":0,"type":"integer"},{"type":"null"}]},"image_urls":{"title":"Image URLs","description":"The URLs of the images to use as a reference for the generation. A maximum of 16 images are allowed.","items":{"type":"string"},"maxItems":16,"examples":[["https://v3b.fal.media/files/b/0a8691af/9Se_1_VX1wzTjjTOpWbs9_bb39c2eb-1a41-4749-b1d0-cf134abc8bbf.png"]],"type":"array"},"image_size":{"anyOf":[{"$ref":"#/components/schemas/ImageSize"},{"enum":["square_hd","square","portrait_4_3","portrait_16_9","landscape_4_3","landscape_16_9","auto"],"type":"string"}],"description":"The size of the generated image. Use 'auto' to infer from input images.","title":"Image Size","default":"auto"}},"required":["prompt","image_urls"],"x-fal-order-properties":["prompt","image_urls","image_size","background","quality","num_images","output_format","output_compression","sync_mode","enable_safety_checker","mask_url"],"type":"object"},"GptImage2EditOutput":{"title":"EditImageResponse","properties":{"images":{"title":"Images","description":"The generated images.","items":{"$ref":"#/components/schemas/ImageFile"},"examples":[[{"height":1024,"file_name":"yUt7tifLSbg1WzWWgfj2o.png","width":1024,"url":"https://v3b.fal.media/files/b/0a8691b0/yUt7tifLSbg1WzWWgfj2o.png","content_type":"image/png"}]],"type":"array"}},"required":["images"],"x-fal-order-properties":["images"],"type":"object"},"ImageSize":{"title":"ImageSize","properties":{"height":{"title":"Height","description":"The height of the generated image.","maximum":14142,"exclusiveMinimum":0,"default":512,"type":"integer"},"width":{"title":"Width","description":"The width of the generated image.","maximum":14142,"exclusiveMinimum":0,"default":512,"type":"integer"}},"x-fal-order-properties":["width","height"],"type":"object"},"ImageFile":{"title":"ImageFile","properties":{"file_size":{"title":"File Size","description":"The size of the file in bytes.","examples":[4404019],"anyOf":[{"type":"integer"},{"type":"null"}]},"height":{"title":"Height","description":"The height of the image","anyOf":[{"type":"integer"},{"type":"null"}]},"width":{"title":"Width","description":"The width of the image","anyOf":[{"type":"integer"},{"type":"null"}]},"file_name":{"title":"File Name","description":"The name of the file. It will be auto-generated if not provided.","examples":["z9RV14K95DvU.png"],"anyOf":[{"type":"string"},{"type":"null"}]},"url":{"title":"Url","description":"The URL where the file can be downloaded from.","type":"string"},"content_type":{"title":"Content Type","description":"The mime type of the file.","examples":["image/png"],"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["url"],"x-fal-order-properties":["url","content_type","file_name","file_size","width","height"],"type":"object"}}},"paths":{"/openai/gpt-image-2/edit/requests/{request_id}/status":{"get":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}},{"name":"logs","in":"query","required":false,"schema":{"type":"number","description":"Whether to include logs (`1`) in the response or not (`0`)."}}],"responses":{"200":{"description":"The request status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueStatus"}}}}}}},"/openai/gpt-image-2/edit/requests/{request_id}/cancel":{"put":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}}],"responses":{"200":{"description":"The request was cancelled.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the request was cancelled successfully."}}}}}}}}},"/openai/gpt-image-2/edit":{"post":{"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GptImage2EditInput"}}}},"responses":{"200":{"description":"The request status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueStatus"}}}}}}},"/openai/gpt-image-2/edit/requests/{request_id}":{"get":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}}],"responses":{"200":{"description":"Result of the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GptImage2EditOutput"}}}}}}}},"servers":[{"url":"https://queue.fal.run"}],"security":[{"apiKeyAuth":[]}]}},{"endpoint_id":"fal-ai/nano-banana/edit","metadata":{"display_name":"Nano Banana","category":"image-to-image","description":"Google's famous original image generation and editing model","status":"active","tags":["image-editing"],"updated_at":"2026-10-20T21:52:29.017Z","is_favorited":null,"thumbnail_url":"https://v3b.fal.media/files/b/0a9f9a4a/mjFnPPGaaBaf5OHrDSoSO_ns4MA9ac.png","model_url":"https://fal.run/fal-ai/nano-banana/edit","license_type":"commercial","date":"2025-08-19T22:16:18.949Z","group":{"key":"nano-banana","label":"Image Editing"},"highlighted":false,"kind":"inference","pinned":false},"retires_at":null,"replacement":null,"openapi":{"openapi":"3.1.0","info":{"title":"Queue OpenAPI for fal-ai/nano-banana/edit","version":"1.0.0","description":"The OpenAPI schema for the fal-ai/nano-banana/edit queue.","x-fal-metadata":{"endpointId":"fal-ai/nano-banana/edit","category":"image-to-image","thumbnailUrl":"https://v3b.fal.media/files/b/0a9f9a4a/mjFnPPGaaBaf5OHrDSoSO_ns4MA9ac.png","playgroundUrl":"https://fal.ai/models/fal-ai/nano-banana/edit","documentationUrl":"https://fal.ai/models/fal-ai/nano-banana/edit/api","about":"Gemini 2.5 Flash Image is a text-to-image model that generates images from text descriptions."}},"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"Fal Key"}},"schemas":{"QueueStatus":{"type":"object","properties":{"status":{"type":"string","enum":["IN_QUEUE","IN_PROGRESS","COMPLETED"]},"request_id":{"type":"string","description":"The request id."},"response_url":{"type":"string","description":"The response url."},"status_url":{"type":"string","description":"The status url."},"cancel_url":{"type":"string","description":"The cancel url."},"logs":{"type":"object","description":"The logs.","additionalProperties":true},"metrics":{"type":"object","description":"The metrics.","additionalProperties":true},"queue_position":{"type":"integer","description":"The queue position."}},"required":["status","request_id"]},"NanoBananaEditInput":{"title":"NanoBananaImageToImageInput","x-fal-order-properties":["prompt","num_images","seed","aspect_ratio","output_format","safety_tolerance","sync_mode","image_urls","limit_generations"],"properties":{"safety_tolerance":{"type":"string","description":"The safety tolerance level for content moderation. 1 is the most strict (blocks most content), 6 is the least strict.","enum":["1","2","3","4","5","6"],"title":"Safety Tolerance","default":"4"},"aspect_ratio":{"description":"The aspect ratio of the generated image.","title":"Aspect Ratio","anyOf":[{"enum":["auto","21:9","16:9","3:2","4:3","5:4","1:1","4:5","3:4","2:3","9:16"],"type":"string"},{"type":"null"}],"default":"auto"},"limit_generations":{"type":"boolean","description":"Experimental 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.","title":"Limit Generations","default":true},"image_urls":{"examples":[["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"]],"description":"The URLs of the images to use for image-to-image generation or image editing.","items":{"type":"string"},"title":"Image URLs","type":"array"},"output_format":{"type":"string","description":"The format of the generated image.","title":"Output Format","enum":["jpeg","png","webp"],"default":"png"},"num_images":{"type":"integer","description":"The number of images to generate.","maximum":4,"minimum":1,"title":"Number of Images","default":1},"seed":{"description":"The seed for the random number generator.","title":"Seed","anyOf":[{"type":"integer"},{"type":"null"}]},"prompt":{"examples":["make a photo of the man driving the car down the california coastline"],"maxLength":50000,"description":"The prompt for image editing.","minLength":3,"title":"Prompt","type":"string"},"sync_mode":{"type":"boolean","description":"If `True`, the media will be returned as a data URI and the output data won't be available in the request history.","title":"Sync Mode","default":false}},"required":["prompt","image_urls"],"type":"object"},"NanoBananaEditOutput":{"title":"NanoBananaImageToImageOutput","x-fal-order-properties":["images","description"],"properties":{"description":{"description":"The description of the generated images.","title":"Description","type":"string"},"images":{"examples":[[{"content_type":"image/png","url":"https://storage.googleapis.com/falserverless/example_outputs/nano-banana-multi-edit-output.png","file_name":"nano-banana-multi-edit-output.png"}]],"description":"The edited images.","items":{"$ref":"#/components/schemas/ImageFile"},"title":"Images","type":"array"}},"required":["images","description"],"type":"object"},"ImageFile":{"title":"ImageFile","x-fal-order-properties":["url","content_type","file_name","file_size","width","height"],"properties":{"file_size":{"examples":[4404019],"description":"The size of the file in bytes.","title":"File Size","anyOf":[{"type":"integer"},{"type":"null"}]},"content_type":{"examples":["image/png"],"description":"The mime type of the file.","title":"Content Type","anyOf":[{"type":"string"},{"type":"null"}]},"url":{"description":"The URL where the file can be downloaded from.","title":"Url","type":"string"},"width":{"description":"The width of the image","title":"Width","anyOf":[{"type":"integer"},{"type":"null"}]},"height":{"description":"The height of the image","title":"Height","anyOf":[{"type":"integer"},{"type":"null"}]},"file_name":{"examples":["z9RV14K95DvU.png"],"description":"The name of the file. It will be auto-generated if not provided.","title":"File Name","anyOf":[{"type":"string"},{"type":"null"}]}},"required":["url"],"type":"object"}}},"paths":{"/fal-ai/nano-banana/edit/requests/{request_id}/status":{"get":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}},{"name":"logs","in":"query","required":false,"schema":{"type":"number","description":"Whether to include logs (`1`) in the response or not (`0`)."}}],"responses":{"200":{"description":"The request status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueStatus"}}}}}}},"/fal-ai/nano-banana/edit/requests/{request_id}/cancel":{"put":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}}],"responses":{"200":{"description":"The request was cancelled.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the request was cancelled successfully."}}}}}}}}},"/fal-ai/nano-banana/edit":{"post":{"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NanoBananaEditInput"}}}},"responses":{"200":{"description":"The request status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueStatus"}}}}}}},"/fal-ai/nano-banana/edit/requests/{request_id}":{"get":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}}],"responses":{"200":{"description":"Result of the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NanoBananaEditOutput"}}}}}}}},"servers":[{"url":"https://queue.fal.run"}],"security":[{"apiKeyAuth":[]}]}},{"endpoint_id":"fal-ai/nano-banana-2","metadata":{"display_name":"Nano Banana 2","category":"text-to-image","description":"Nano Banana 2 is Google's new state-of-the-art fast image generation and editing model","status":"active","tags":[],"updated_at":"2026-11-11T21:41:42.031Z","is_favorited":null,"thumbnail_url":"https://v3b.fal.media/files/b/0a900b9e/ptbZcVWIQ_fXGGHfv8Zez_0ea5ca41bdf143a29e21e30a53120672.jpg","model_url":"https://fal.run/fal-ai/nano-banana-2","license_type":"commercial","date":"2026-02-26T16:08:01.361Z","group":{"key":"nano-banana-2","label":"Text to Image"},"highlighted":false,"kind":"inference","pinned":false},"retires_at":null,"replacement":null,"openapi":{"openapi":"3.1.0","info":{"title":"Queue OpenAPI for fal-ai/nano-banana-2","version":"1.0.0","description":"The OpenAPI schema for the fal-ai/nano-banana-2 queue.","x-fal-metadata":{"endpointId":"fal-ai/nano-banana-2","category":"text-to-image","thumbnailUrl":"https://v3b.fal.media/files/b/0a900b9e/ptbZcVWIQ_fXGGHfv8Zez_0ea5ca41bdf143a29e21e30a53120672.jpg","playgroundUrl":"https://fal.ai/models/fal-ai/nano-banana-2","documentationUrl":"https://fal.ai/models/fal-ai/nano-banana-2/api","about":"Gemini 3.1 Flash Image is a text-to-image model that generates images from text descriptions."}},"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"Fal Key"}},"schemas":{"QueueStatus":{"type":"object","properties":{"status":{"type":"string","enum":["IN_QUEUE","IN_PROGRESS","COMPLETED"]},"request_id":{"type":"string","description":"The request id."},"response_url":{"type":"string","description":"The response url."},"status_url":{"type":"string","description":"The status url."},"cancel_url":{"type":"string","description":"The cancel url."},"logs":{"type":"object","description":"The logs.","additionalProperties":true},"metrics":{"type":"object","description":"The metrics.","additionalProperties":true},"queue_position":{"type":"integer","description":"The queue position."}},"required":["status","request_id"]},"NanoBanana2Input":{"x-fal-order-properties":["prompt","history","context","return_history","thinking_level","include_thoughts","temperature","top_p","max_output_tokens","num_images","seed","aspect_ratio","output_format","safety_tolerance","sync_mode","system_prompt","resolution","limit_generations","enable_web_search","enable_image_search"],"title":"NanoBanana2TextToImageInput","type":"object","required":["prompt"],"properties":{"enable_web_search":{"description":"Enable web search for the image generation task. This will allow the model to use the latest information from the web to generate the image.","title":"Enable Web Search","type":"boolean","default":false},"prompt":{"examples":["An action shot of a black lab swimming in an inground suburban swimming pool. The camera is placed meticulously on the water line, dividing the image in half, revealing both the dogs head above water holding a tennis ball in it's mouth, and it's paws paddling underwater."],"title":"Prompt","type":"string","minLength":3,"maxLength":50000,"description":"The text prompt to generate an image from."},"system_prompt":{"description":"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).","title":"System Prompt","type":"string","maxLength":50000,"default":""},"context":{"title":"Context","type":"array","items":{"discriminator":{"propertyName":"type","mapping":{"document":"#/components/schemas/GeminiDocumentPart","video":"#/components/schemas/GeminiVideoPart","signature":"#/components/schemas/GeminiSignaturePart","image":"#/components/schemas/GeminiImagePart","text":"#/components/schemas/GeminiTextPart"}},"oneOf":[{"$ref":"#/components/schemas/GeminiTextPart"},{"$ref":"#/components/schemas/GeminiImagePart"},{"$ref":"#/components/schemas/GeminiDocumentPart"},{"$ref":"#/components/schemas/GeminiVideoPart"},{"$ref":"#/components/schemas/GeminiSignaturePart"}]},"description":"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."},"temperature":{"anyOf":[{"maximum":2,"type":"number","minimum":0},{"type":"null"}],"title":"Temperature","description":"Sampling temperature. Omit to use the provider default of 1. Explicit values use a direct Google or Vertex API."},"aspect_ratio":{"description":"The 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.","anyOf":[{"enum":["auto","21:9","16:9","3:2","4:3","5:4","1:1","4:5","3:4","2:3","9:16","4:1","1:4","8:1","1:8"],"type":"string"},{"type":"null"}],"title":"Aspect Ratio","default":"auto"},"top_p":{"anyOf":[{"maximum":1,"type":"number","minimum":0},{"type":"null"}],"title":"Top P","description":"Nucleus sampling probability. Omit to use the provider default of 0.95. Explicit values use a direct Google or Vertex API."},"return_history":{"description":"Return 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.","title":"Return History","type":"boolean","default":false},"resolution":{"description":"The resolution of the image to generate.","title":"Resolution","type":"string","enum":["0.5K","1K","2K","4K"],"default":"1K"},"num_images":{"minimum":1,"description":"The number of images to generate.","title":"Number of Images","maximum":4,"type":"integer","default":1},"limit_generations":{"description":"Experimental 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.","title":"Limit Generations","type":"boolean","default":true},"history":{"title":"History","type":"array","items":{"$ref":"#/components/schemas/GeminiVideoMessage"},"description":"Previous native Gemini turns, including original parts and thought signatures from conversations. The current prompt starts a new user turn."},"output_format":{"description":"The format of the generated image.","title":"Output Format","type":"string","enum":["jpeg","png","webp"],"default":"png"},"sync_mode":{"description":"If `True`, the media will be returned as a data URI and the output data won't be available in the request history.","title":"Sync Mode","type":"boolean","default":false},"max_output_tokens":{"anyOf":[{"maximum":32768,"type":"integer","minimum":1},{"type":"null"}],"title":"Max Output Tokens","description":"Maximum output tokens for the generation. Omit to retain the provider default. Explicit values use a direct Google or Vertex API."},"safety_tolerance":{"description":"The safety tolerance level for content moderation. 1 is the most strict (blocks most content), 6 is the least strict.","title":"Safety Tolerance","type":"string","enum":["1","2","3","4","5","6"],"default":"4"},"seed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seed","description":"The seed for the random number generator."},"thinking_level":{"anyOf":[{"enum":["minimal","high"],"type":"string"},{"type":"null"}],"title":"Thinking Level","description":"Controls thinking effort ('minimal' or 'high') and requests thought summaries. Omit to use the provider default ('minimal'); thinking cannot be disabled."},"enable_image_search":{"description":"Ground 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.","title":"Enable Image Search","type":"boolean","default":false},"include_thoughts":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Include Thoughts","description":"Whether 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."}}},"NanoBanana2Output":{"x-fal-order-properties":["images","description","conversations","grounding_metadata"],"title":"NanoBanana2TextToImageOutput","type":"object","required":["images","description"],"properties":{"description":{"title":"Description","type":"string","description":"The description of the generated images."},"conversations":{"title":"Conversations","type":"array","items":{"$ref":"#/components/schemas/GeminiConversation"},"description":"Reusable per-generation conversations, populated only when return_history is true. Retain every part and thought signature when continuing a conversation."},"grounding_metadata":{"title":"Grounding Metadata","type":"array","items":{"type":"object"},"description":"Provider grounding metadata for the generated images, including search queries, source pages and image-source attribution when available."},"images":{"examples":[[{"content_type":"image/png","file_name":"nano-banana-2-t2i-output.png","url":"https://storage.googleapis.com/falserverless/example_outputs/nano-banana-2-t2i-output.png"}]],"title":"Images","type":"array","items":{"$ref":"#/components/schemas/ImageFile"},"description":"The generated images."}}},"GeminiTextPart":{"x-fal-order-properties":["thought","thought_signature","type","text"],"title":"GeminiTextPart","type":"object","required":["type","text"],"properties":{"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Provider thought marker, preserved when replaying a returned conversation."},"thought_signature":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Thought Signature","description":"Opaque provider-issued thought signature. Replay it unchanged on its original part."},"type":{"title":"Type","type":"string","const":"text","description":"The text part discriminator."},"text":{"title":"Text","type":"string","description":"Text at this position in the conversation."}}},"GeminiImagePart":{"x-fal-order-properties":["thought","thought_signature","type","image_url"],"title":"GeminiImagePart","type":"object","required":["type","image_url"],"properties":{"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Provider thought marker, preserved when replaying a returned conversation."},"thought_signature":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Thought Signature","description":"Opaque provider-issued thought signature. Replay it unchanged on its original part."},"type":{"title":"Type","type":"string","const":"image","description":"The image part discriminator."},"image_url":{"title":"Image Url","type":"string","description":"Original image URL or data URI. Replayed without resizing or re-encoding."}}},"GeminiDocumentPart":{"x-fal-order-properties":["thought","thought_signature","type","file_url","mime_type"],"title":"GeminiDocumentPart","type":"object","required":["type","file_url","mime_type"],"properties":{"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Provider thought marker, preserved when replaying a returned conversation."},"thought_signature":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Thought Signature","description":"Opaque provider-issued thought signature. Replay it unchanged on its original part."},"file_url":{"title":"File Url","type":"string","description":"PDF or UTF-8 plain-text document URL or data URI (up to 15 MB)."},"mime_type":{"title":"Mime Type","type":"string","enum":["application/pdf","text/plain"],"description":"The document's media type."},"type":{"title":"Type","type":"string","const":"document","description":"The document part discriminator."}}},"GeminiVideoPart":{"x-fal-order-properties":["thought","thought_signature","type","video_url"],"title":"GeminiVideoPart","type":"object","required":["type","video_url"],"properties":{"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Provider thought marker, preserved when replaying a returned conversation."},"thought_signature":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Thought Signature","description":"Opaque provider-issued thought signature. Replay it unchanged on its original part."},"type":{"title":"Type","type":"string","const":"video","description":"The video part discriminator."},"video_url":{"title":"Video Url","type":"string","description":"Video URL or data URI (up to 15 MB and 120 seconds), or a YouTube URL. Supported by Flash Image only."}}},"GeminiSignaturePart":{"x-fal-order-properties":["thought","thought_signature","type"],"title":"GeminiSignaturePart","type":"object","required":["thought_signature","type"],"properties":{"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Provider thought marker, preserved when replaying a returned conversation."},"thought_signature":{"title":"Thought Signature","type":"string","minLength":1,"description":"Provider-issued signature-only part, replayed unchanged."},"type":{"title":"Type","type":"string","const":"signature","description":"The signature part discriminator."}}},"GeminiVideoMessage":{"x-fal-order-properties":["role","parts"],"title":"GeminiVideoMessage","type":"object","required":["role","parts"],"properties":{"parts":{"minItems":1,"type":"array","title":"Parts","items":{"discriminator":{"propertyName":"type","mapping":{"document":"#/components/schemas/GeminiDocumentPart","video":"#/components/schemas/GeminiVideoPart","signature":"#/components/schemas/GeminiSignaturePart","audio":"#/components/schemas/GeminiAudioPart","image":"#/components/schemas/GeminiImagePart","text":"#/components/schemas/GeminiTextPart"}},"oneOf":[{"$ref":"#/components/schemas/GeminiTextPart"},{"$ref":"#/components/schemas/GeminiImagePart"},{"$ref":"#/components/schemas/GeminiDocumentPart"},{"$ref":"#/components/schemas/GeminiVideoPart"},{"$ref":"#/components/schemas/GeminiSignaturePart"},{"$ref":"#/components/schemas/GeminiAudioPart"}]},"description":"Ordered text, image, document, video, audio, and signature parts."},"role":{"title":"Role","type":"string","enum":["user","model"],"description":"Native Gemini conversation role."}}},"GeminiConversation":{"x-fal-order-properties":["messages"],"title":"GeminiConversation","type":"object","required":["messages"],"properties":{"messages":{"title":"Messages","type":"array","items":{"$ref":"#/components/schemas/GeminiVideoMessage"},"description":"One complete provider conversation. Pass messages as history in the next request, retaining every signature and part."}}},"ImageFile":{"x-fal-order-properties":["url","content_type","file_name","file_size","width","height"],"title":"ImageFile","type":"object","required":["url"],"properties":{"file_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"File Size","examples":[4404019],"description":"The size of the file in bytes."},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Width","description":"The width of the image"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","examples":["image/png"],"description":"The mime type of the file."},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Height","description":"The height of the image"},"file_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Name","examples":["z9RV14K95DvU.png"],"description":"The name of the file. It will be auto-generated if not provided."},"url":{"title":"Url","type":"string","description":"The URL where the file can be downloaded from."}}},"GeminiAudioPart":{"x-fal-order-properties":["thought","thought_signature","type","audio_url"],"title":"GeminiAudioPart","type":"object","required":["type","audio_url"],"properties":{"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Provider thought marker, preserved when replaying a returned conversation."},"thought_signature":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Thought Signature","description":"Opaque provider-issued thought signature. Replay it unchanged on its original part."},"type":{"title":"Type","type":"string","const":"audio","description":"The audio part discriminator."},"audio_url":{"title":"Audio Url","type":"string","description":"Original audio URL or data URI from a previous Flash Image request (up to 15 MB)."}}}}},"paths":{"/fal-ai/nano-banana-2/requests/{request_id}/status":{"get":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}},{"name":"logs","in":"query","required":false,"schema":{"type":"number","description":"Whether to include logs (`1`) in the response or not (`0`)."}}],"responses":{"200":{"description":"The request status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueStatus"}}}}}}},"/fal-ai/nano-banana-2/requests/{request_id}/cancel":{"put":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}}],"responses":{"200":{"description":"The request was cancelled.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the request was cancelled successfully."}}}}}}}}},"/fal-ai/nano-banana-2":{"post":{"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NanoBanana2Input"}}}},"responses":{"200":{"description":"The request status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueStatus"}}}}}}},"/fal-ai/nano-banana-2/requests/{request_id}":{"get":{"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Request ID"}}],"responses":{"200":{"description":"Result of the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NanoBanana2Output"}}}}}}}},"servers":[{"url":"https://queue.fal.run"}],"security":[{"apiKeyAuth":[]}]}}],"next_cursor":"Mg","has_more":true}
