wan/2-7-text-to-videotext-to-videooutputs videodocs.kie.aipast runsUses `ratio` where every sibling uses `aspect_ratio`. Do not normalize it.720p/1080p · 2-15s · takes audio
aspect_ratio vs ratio vs image_size — the same idea, two names67 modelsCopying a payload between these models silently drops the field, because the receiving model has never heard of that key. uses aspect_ratio: kling-2.6/text-to-video, kling/v2-5-turbo-text-to-video-pro, kling/v2-1-master-text-to-video +52 — uses ratio: wan/2-7-text-to-video — uses image_size: bytedance/seedream, bytedance/seedream-v4-text-to-image, bytedance/seedream-v4-edit +10. google/nano-banana and google/nano-banana-edit declare more than one of these spellings, so setting two of them on the same request sets one idea twice — check which the docs mark current.
resolution accepts different values on different models57 modelsA value that works on one of these is rejected on another. accepts 1080p,720p: kling/v3-turbo-text-to-video, kling/v3-turbo-image-to-video, bytedance/v1-pro-fast-image-to-video +12 — accepts 1080p,4k,720p: kling-3.0-omni/text-to-video, kling-3.0-omni/image-to-video, kling-3.0-omni/reference-to-video +5 — accepts 1080p,480p,4k,720p: bytedance/seedance-2 — accepts 480p,720p: bytedance/seedance-2-fast, bytedance/seedance-2-mini, wan/2-2-a14b-text-to-video-turbo +1 — accepts 1080p,480p,720p: bytedance/seedance-2-5, bytedance/seedance-1.5-pro, bytedance/v1-pro-text-to-video +3 — accepts 480p,580p,720p: wan/2-2-a14b-speech-to-video-turbo, wan/2-2-animate-move, wan/2-2-animate-replace — accepts 1080P,480P,720P: wan/3-0-video, wan/3-0-video-prime — accepts 1K,2K,4K: wan/2-7-image, wan/2-7-image-pro, nano-banana-2 +8 — accepts 1080p,360p,4k,720p: google/gemini-omni-flash-1-1 — accepts 1K,2K: qwen2-1/text-to-image, qwen2-1/image-to-image, qwen3/text-to-image +3.
duration is not the same type on every model43 modelsSending the wrong JSON type is rejected as a 422 that names the field but not the reason. as string: kling-2.6/text-to-video, kling-2.6/image-to-video, kling/v2-5-turbo-text-to-video-pro +23 — as number: kling-3.0-omni/text-to-video, kling-3.0-omni/image-to-video, kling-3.0-omni/reference-to-video +14.
seed is not the same type on every model36 modelsSending the wrong JSON type is rejected as a 422 that names the field but not the reason. as number: bytedance/v1-pro-text-to-video, bytedance/v1-pro-image-to-video, bytedance/v1-lite-text-to-video +31 — as string: google/imagen4, google/imagen4-ultra.
watermark is not the same type on every model9 modelsSending the wrong JSON type is rejected as a 422 that names the field but not the reason. as boolean: wan/2-7-text-to-video, wan/2-7-image-to-video, wan/2-7-videoedit +3 — as string: veo3, veo3_fast, veo3_lite.
Uses `ratio` where every sibling uses `aspect_ratio`. Do not normalize it.
| Field | Type | Accepts | Default |
|---|---|---|---|
promptrequiredPositive prompt for video generation. | text | 1…5000 chars | — |
negative_promptContent to keep out of the video. | text | 0…500 chars | — |
audio_urlSupply your own audio track. | url | audio | — |
resolutionOutput resolution tier. | enum | 720p | 1080p | "1080p" |
ratioThe field is named `ratio` on this model, not `aspect_ratio` — unique across the family. | enum | 16:9 | 9:16 | 1:1 | 4:3 | 3:4 | "16:9" |
durationSeconds, 2 to 15. An integer on the 2.7 generation. | number | 2…15, step 1 | 5 |
prompt_extendRewrite and expand the prompt. Usually helps short prompts; adds processing time. | boolean | — | true |
watermarkStamps "AI generated" in the lower-right corner. | boolean | — | false |
seedRandom seed for reproducibility. | seed | 0…2147483647, step 1 | — |
nsfw_checkerWhen off, results are returned directly by the model without filtering. | boolean | — | false |
The models most easily confused with this one.