# Video Model Router > Describe a shot and see which AI video generation models can actually make it. A free > browser-side capability matrix over ten models, then four lanes that write the prompt in the > chosen model's own syntax, port it to another model, drive it from a still, or extend a clip. URL: https://video-model-router.skillsafe.ai/ ## What this is A web app for choosing between AI video generation models and writing prompts for them. It does not generate video and it does not generate images. It writes the prompts, reference plans and config bodies you take to the vendor yourself. Not affiliated with or endorsed by Google, OpenAI, Kuaishou, Runway, Lightricks, Luma, Pika, Zhipu or ByteDance. ## The free part The capability matrix needs no account, spends no credits, and runs entirely in your browser. State a shot length, aspect ratio, resolution and what the shot has to do, and every model is checked against its published limits. Crucially, **every model that is ruled out is listed with the rule that ruled it out** - the matrix is not a recommendation engine and never hides its reasoning. When nothing fits, it says which single requirement to relax and how many models that would open. ## The capability matrix | Model | Vendor | Window | Audio | Dialogue | Aspects | Max res | Ref images | Face lock | Motion transfer | Extend | Speed | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | Veo 3.2 | Google | 4-30s | native | yes | 16:9 9:16 | 4k | 3 | yes | no | yes | medium | | Veo 3.1 | Google | 4-8s | native | yes | 16:9 9:16 | 1080p | 3 | yes | no | yes | medium | | Kling 2.6 Pro | Kuaishou | 5-10s | native | no | 16:9 9:16 1:1 | 1080p | 1 | yes | yes | no | slow | | Sora 2 | OpenAI | 5-20s | optional | yes | 16:9 9:16 1:1 | 1080p | 0 | no | no | no | slow | | LTX-2 Pro | Lightricks | 5s exactly | optional | no | 16:9 9:16 1:1 | 1080p | 0 | no | no | no | medium | | Runway Gen-3 Turbo | Runway | 5-10s | none | no | 16:9 9:16 | 1080p | 1 | no | no | yes | fast | | Luma Dream Machine | Luma | 5s exactly | none | no | 16:9 9:16 1:1 | 1080p | 1 | no | no | yes | medium | | Pika 2.2 | Pika | 5-10s | none | no | 16:9 9:16 1:1 | 1080p | 2 | no | no | no | fast | | CogVideoX | Zhipu | 6s exactly | none | no | 16:9 | 720p | 0 | no | no | no | medium | | Seedance 2.0 | ByteDance | 4-15s | native | yes | 16:9 9:16 1:1 | 2k | 9 | no | yes | yes | medium | Sourced from the skills below and current as of the release date. These are a snapshot, not a live feed - check the vendor's own documentation before committing a budget. ## Facts the matrix encodes that people get wrong - **Veo does not use `@asset` syntax.** Assets attach as `RawReferenceImage` with an explicit `reference_type` - `STYLE`, `SUBJECT` or `SUBJECT_FACE` - and at most three per call. Audio cannot be uploaded at all; everything heard is described in the text with `generate_audio`. - **LTX-2 Pro and Luma are exactly five seconds**, and CogVideoX exactly six. Not ranges. - **Runway Gen-3 Turbo generates no audio whatsoever.** A prompt that describes sound for it wastes the instruction. - **Only Kling and Seedance drive motion from a reference video.** - **Only Seedance accepts an audio file as an input reference** - and it refuses uploads containing realistic human faces, so it cannot preserve a real person's identity. - **When extending any clip, the generation length you select is the length of the NEW part**, never the running total. This is the most common way a long piece fails. ## The five lanes | Lane | `task` | What it produces | | --- | --- | --- | | Model selection | `pick` | Shortlist, every rule-out with its reason, a recommendation and the trade-offs | | Veo 3.2 prompt | `veo` | Atomic element mapping, a typed reference plan, the prompt and a GenerateVideosConfig block | | Cross-model port | `port` | Capability diff, the ported prompt, what changed and what is lost | | Image to video | `i2v` | Frame plan, a motion prompt that states what stays still, and drift risks | | Video to video | `v2v` | Operation plan, continuation prompt, handoff frame and join pitfalls | ## Sources Lanes are derived from open-source Agent Skills on GitHub: - https://github.com/pexoai/pexo-skills/tree/main/skills/veo-3.2-prompter - the five-part framework, the atomic element mapping and the typed reference slots. - https://github.com/guia-matthieu/clawfu-skills/tree/main/skills/video/ai-video-prompting - the model selection tree and the per-model prompt shapes. - https://github.com/josiahsiegel/claude-plugin-marketplace/tree/main/plugins/fal-ai-master/skills - fal-model-guide, fal-text-to-video, fal-image-to-video and fal-video-to-video. ## API Full docs with worked examples in eight languages: https://video-model-router.skillsafe.ai/api.html Base URL `https://api.skillsafe.ai/v1/app-api`. Bearer token from https://video-model-router.skillsafe.ai/tokens.html. Every run body must carry a `task` field naming the lane; the body **is** the input object and must not be wrapped in `{"input": ...}`. `GET /me` and `POST /estimate` are free; `POST /run` and `POST /run-stream` are metered. Output is Markdown with level-two section headings in a declared order, GitHub pipe tables with declared columns, prompts in fenced `text` blocks and configs in fenced `json` blocks. ## Pricing Runs are metered and priced per model - `gpt-5.6-luna`, `gpt-5.6-terra` (default) or `gpt-5.6-sol`. `POST /estimate` returns the worst-case reservation for free before anything is spent; the actual charge is usually far lower. The capability matrix and every lane's worked example cost nothing.