Generate Video
generate_videoGenerate Switch video across the real provider lineup (Kling, Seedance, Switch Video/WAN 2.7, Switch Video Edit, Topaz upscale) and modes (text-to-video, image-to-video, frame-to-frame, motion, omni, reference-to-video, video-edit, upscale). ALWAYS call list_video_models first to pick the right model + mode and see its required inputs. Pass one shot, or shots:[...] for a storyboard (max 4 by default, hard max 10) where EACH shot is DIFFERENT — never repeat one prompt to get copies. Renders async (~30-90s); a background job delivers each clip to your library. Returns a task_id per shot — poll get_video_status or list_my_videos.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Video mode. Must be supported by the chosen model (see list_video_models). | |
| audio | No | Generate audio. ON by default on Seedance 2.5 (text, image and reference) and on Omni; set false for a silent clip. Models without audio ignore this. See list_video_models for which models generate audio and the max seconds with vs without audio. | |
| model | No | Model id from list_video_models (e.g. kling-v3, seedance-2.0-t2v, wan-2.7-t2v, topaz). Or prefer option_id from list_video_models. | |
| shots | No | A storyboard of 1-10 DISTINCT shots. Each item takes the same fields as a single shot (subject, model, mode, image_url, etc.). | |
| subject | No | The shot: subject + motion + scene (video needs motion language, e.g. "slow push-in"). | |
| duration | No | Clip length in seconds, or "auto" to let the model choose. Seedance 2.5 does 4-30s (auto bills the 30s cap up front and refunds the unused seconds); Seedance 2.0 does 4-15s; Switch Video (WAN) does 5/10/15; Kling/Switch Video Edit cap at 10 — see each model's durations in list_video_models. | |
| image_url | No | Required for image-to-video / frame-to-frame / motion. Accepts EITHER a Switch asset id (from show_media / list_my_assets / upload_media) OR a public https url. An asset id is resolved server-side, so just pass the id you have — no need to fetch a url first. | |
| option_id | No | Optional catalog id from list_video_models (e.g. "kling-image"); use instead of model+mode. | |
| task_type | No | Seedance 2.5 reference mode only: declare what you are doing with the reference clip so the size and length rules are checked immediately instead of failing a minute in. auto = a new take from the references (default), edit = change something inside the clip, extend = continue the clip. Editing and extension inherit the source clip's size, and editing also inherits its length. | |
| video_url | No | Required for video-edit and upscale (the source clip). Accepts one of YOUR Switch videos — a job id from list_my_videos / get_video_status, or its download_url / view_url — or any publicly downloadable https URL. Switch resolves its own videos for you; no need to scrape a page for the file. | |
| resolution | No | Output resolution. Defaults to 1080p where the model supports it. 720p is cheaper and faster. 480p is the cheapest. Seedance 2.5 offers 480p, 720p and 1080p on every mode (no 2K/4K). 4K is only on Kling v3 text/image and Kling Omni; Seedance text-to-video is 720p only. Each model lists its available resolutions in list_video_models. | |
| aspect_ratio | No | e.g. 9:16, 16:9, 1:1. Must be allowed for the model (see list_video_models). | |
| end_image_url | No | End frame for frame-to-frame mode. | |
| face_reference_ids | No | Face reference asset ids from upload_reference_asset (frame_type "face") — the ONLY way to use a face/likeness reference in video. Each id is verified server-side (your own untouched original + identity verification) before the shot fires or is charged; URLs and generic uploads here are rejected. | |
| reference_audio_urls | No | Seedance reference/omni only: up to 3 reference audio files to drive synthesized audio. Requires at least one reference image or video. | |
| reference_image_urls | No | GENERIC reference images (products, scenery, outfits, style). Each entry accepts EITHER a Switch asset id (from show_media / list_my_assets / upload_media / get_my_active_references) OR a public https url — asset ids are resolved server-side. Seedance reference/omni accepts up to 9; Kling Omni up to 7. For Seedance, at least one image or video reference is required. For a person's face/likeness use face_reference_ids instead. | |
| reference_video_urls | No | Seedance reference/omni only: reference video clips for motion/style guidance — up to 10 on Seedance 2.5 (clips 2-30s, 30s combined), up to 3 on Seedance 2.0 (see list_video_models for each model's caps). A Seedance video ref can satisfy the required visual anchor. NOTE: the AUDIO track of these clips is IGNORED — never extracted or preserved. | |
| character_orientation | No | Motion mode only: follow the character image (default) or the reference video. | |
| person_rights_confirmed | No | Required with video_people_declaration "person": confirms you own or are authorized to use the person's likeness in the reference video. | |
| video_people_declaration | No | Required with reference_video_urls: "none" confirms no real person appears; "person" runs the protected pipeline (verified account, your own stored upload, Seedance 2.5/Mini lane, provider asset registration) — also pass person_rights_confirmed: true. |