{"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. 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: number 0.92-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":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"prompt":{"type":"string","description":"Text prompt for video generation. When omitted or blank, defaults to preserving the frozen reference scene while only the camera moves."},"duration":{"type":"number","minimum":0.92,"maximum":15,"description":"Video length in seconds. The output can run up to about 0.7 s longer than requested."},"image_url":{"type":"string","description":"URL of the image to use as the first frame."},"sync_mode":{"type":"boolean","description":"Return the generated video as base64 instead of a CDN URL."},"resolution":{"type":"string","enum":["480P","768P","1080P"]},"camera_trajectory":{"type":"array","items":{"type":"object","properties":{"time":{"type":"number","minimum":0,"maximum":1,"description":"Normalized video time, from 0 at the start to 1 at the end."},"azimuth":{"type":"number","description":"Horizontal camera angle around the subject, in degrees."},"distance":{"type":"number","exclusiveMinimum":0,"description":"Camera distance from the subject in normalized scene units."},"elevation":{"type":"number","minimum":-90,"maximum":90,"description":"Vertical camera angle around the subject, in degrees."}},"required":["time","azimuth","distance","elevation"],"additionalProperties":false}},"enable_safety_checker":{"type":"boolean","description":"If set to true, the safety checker will be enabled."},"prompt_expansion_mode":{"type":"string","description":"How much effort to spend rewriting the prompt before generation. 'disabled' skips prompt expansion. 'balanced' returns in about a second. 'quality' spends up to ~30s on a richer prompt."}},"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}]}}}