{"tool_key":"video","description":"Generate a video from a text prompt and/or reference files (image-to-video, video-to-video, lipsync, upscale).","input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"model":{"type":"string","minLength":1},"prompt":{"type":"string","maxLength":20000},"aspect_ratio":{"type":"string"},"files":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"media_type":{"type":"string"}},"required":["url"],"additionalProperties":false}},"options":{"type":"object","properties":{"webhook_url":{"type":"string","format":"uri"},"cache":{"type":"boolean"}},"additionalProperties":{}},"resolution":{"description":"Quality tier. Supported by this model: 480p, 720p, 1080p, 4k. Unsupported tiers fall back to the nearest available.","type":"string","enum":["480p","720p","1080p","4k"]},"audio":{"description":"Native audio track request. Not supported by this model — ignored if sent.","type":"boolean"},"duration":{"description":"Length in seconds. Supported by this model's routes: fal: integer 1-15. A non-numeric value such as \"auto\" is routed to a route whose schema accepts it; when none does, the request is rejected.","anyOf":[{"type":"number","minimum":1,"maximum":120},{"type":"string"}]},"provider_options":{"type":"object","properties":{"fal":{"type":"object","properties":{"seed":{},"style":{},"prompt":{"type":"string","description":"Text prompt for the video generation. Limited to 2048 UTF-8 encoded bytes. Because the limit counts bytes rather than characters, emoji and non-Latin or accented characters (which use multiple bytes each) can push a visually short prompt over the cap."},"duration":{"type":"integer","minimum":1,"maximum":15,"description":"The duration of the generated video in seconds. v6 supports values from 1 to 15 seconds"},"resolution":{"type":"string","enum":["360p","540p","720p","1080p"]},"aspect_ratio":{"type":"string","enum":["16:9","4:3","1:1","3:4","9:16","2:3","3:2","21:9"]},"thinking_type":{},"negative_prompt":{"type":"string","description":"Negative prompt to be used for the generation. Limited to 2048 UTF-8 encoded bytes. Because the limit counts bytes rather than characters, emoji and non-Latin or accented characters (which use multiple bytes each) can push a visually short prompt over the cap."},"enable_safety_checker":{"type":"boolean","description":"Authorized callers may set false to request relaxed screening."},"generate_audio_switch":{"type":"string","description":"Fixed by the route; ignored here. To run a specific route, send its model key as the model (fal:pixverse/v6/max/text-to-video, fal:pixverse/v6/max/image-to-video)."},"generate_multi_clip_switch":{"type":"boolean","description":"Enable multi-clip generation with dynamic camera changes"},"image_url":{"type":"string","description":"URL of the image to use as the first frame"}},"additionalProperties":false}},"additionalProperties":false}},"required":["model"],"additionalProperties":false},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"version":{"type":"string","const":"v1"},"outputs":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"file_id":{"type":"string"},"media_type":{"type":"string"},"size_bytes":{"type":"number"},"raw":{}},"required":["url"],"additionalProperties":false}}},"required":["version","outputs"],"additionalProperties":false},"example":{"input":{"model":"kling-v3","prompt":"a cat jumping over a fence, cinematic","aspect_ratio":"16:9","duration":5},"output":{"version":"v1","outputs":[{"url":"https://s3.varg.ai/o/job_abc123.mp4","media_type":"video/mp4","size_bytes":52428800}]}}}