Vidu Q4 is the newest video model in ShengShu's Vidu family (Preview, upstream name viduq4-preview) and generates sound together with the picture. One model id, vidu-q4, covers two modes: one first frame in first_frame_url is image-to-video; 1-15 images in reference_image_urls (plus up to 3 MP3 reference audio clips) is reference-to-video. Any whole length from 3 to 16 seconds, at 540p, 720p, 1080p, 2K or 4K, with audio generated by default. Billed per requested second from $0.042/s, the same price with or without audio. Requests go to Vidu's official API.
| Resolution | Per second | 5s | 10s | 16s |
|---|---|---|---|---|
| 540p | $0.042 | $0.21 | $0.42 | $0.672 |
| 720p (default) | $0.0887 | $0.4435 | $0.887 | $1.4192 |
| 1080p | $0.112 | $0.56 | $1.12 | $1.792 |
| 2K | $0.1773 | $0.8865 | $1.773 | $2.8368 |
| 4K | $0.3639 | $1.8195 | $3.639 | $5.8224 |
Billed by resolution for the seconds you request, any whole number from 3 to 16. Both modes cost the same, audio on or off costs the same, and reference images and audio are free. Charged only on success, refunded on failure.
All requests carry the API key in the header:
Authorization: Bearer YOUR_API_KEYhttps://api.apimodels.app/v1/video/generations·GET/v1/video/generations?task_id=# Image-to-video: one first frame; the clip keeps the image's aspect ratio (prompt optional)
curl -X POST https://api.apimodels.app/v1/video/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "vidu-q4",
"first_frame_url": "https://example.com/astronaut.png",
"prompt": "The astronaut waves at the camera, then the camera rises to reveal the station",
"duration": 5,
"resolution": "1080p"
}'
# Reference-to-video: 1-15 reference images (+ up to 3 MP3 voice clips); prompt required
curl -X POST https://api.apimodels.app/v1/video/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "vidu-q4",
"prompt": "Reference image 1 walks into the cafe from reference image 2, holds up the cup from reference image 3 and says: Morning! Voice from reference audio 1.",
"reference_image_urls": [
"https://example.com/character.png",
"https://example.com/cafe.jpg",
"https://example.com/cup.png"
],
"reference_audio_urls": ["https://example.com/voice.mp3"],
"aspect_ratio": "9:16",
"duration": 8,
"resolution": "720p"
}'
# Response (async — a task is created):
# { "code": 200, "msg": "success", "data": { "taskId": "clxxx", "state": "pending" } }
# Poll until completed (result files are kept 30 days)
curl "https://api.apimodels.app/v1/video/generations?task_id=TASK_ID" \
-H "Authorization: Bearer YOUR_API_KEY"
# { "code": 200, "data": { "state": "completed",
# "resultUrls": ["https://r2.apimodels.app/videos/clxxx.mp4"] } }| Field | Required | Type | Description |
|---|---|---|---|
| model | Yes | string | vidu-q4 |
| first_frame_url | No | string | First frame for image-to-video (public URL or data URI; PNG / JPEG / WebP). Use either this or reference_image_urls. |
| reference_image_urls | No | string[] | 1-15 reference images for reference-to-video. Use either this or first_frame_url. |
| reference_audio_urls | No | string[] | Reference-to-video only: 0-3 MP3 clips, 3-12 seconds each, to guide voices. |
| prompt | Required for reference | string | Describe the scene, action, camera, dialogue and sound; up to 20,000 characters. Optional for image-to-video. |
| duration | No | number | Any whole second from 3 to 16, default 5. Billed for this many seconds. |
| resolution | No | string | 540p, 720p (default), 1080p, 2K or 4K. |
| aspect_ratio | No | string | Reference-to-video only: 16:9 (default), 9:16, 1:1, 4:3, 3:4. Image-to-video follows the first frame. |
| generate_audio | No | boolean | Default true: dialogue, sound effects and ambience synced to the picture. false returns a silent video. audio is accepted as an alias. Same price. |
| is_rec | No | boolean | Image-to-video only: Vidu's prompt enhancement, default true. prompt_extend is accepted as an alias. |
| seed | No | number | Non-negative integer seed; random when omitted. |
| callback_url | No | string | We POST the result to this URL on completion; omit it and poll the GET endpoint instead. |
Try it in the Playground. Capabilities, pricing and a comparison with Seedance 2.5, Kling V3 and FLUX 3 Max are on the Vidu Q4 model page.
Per requested second: 540p $0.042/s, 720p $0.0887/s, 1080p $0.112/s, 2K $0.1773/s, 4K $0.3639/s, any whole length from 3 to 16 seconds; a 5-second 720p clip is $0.4435 and a 16-second 4K clip $5.8224. Both modes and audio on or off cost the same. Only successful generations are charged; failures are refunded.
first_frame_url (or image / image_url) selects image-to-video; reference_image_urls (1-15 images, or images) selects reference-to-video, where prompt is required and reference_audio_urls (0-3 MP3, 3-12 s) and aspect_ratio are allowed. Sending both a first frame and reference images, or neither, returns a 400 at create time.
By position. The first item in reference_image_urls is reference image 1, the first item in reference_audio_urls is reference audio 1, and so on; Vidu's own examples write them in Chinese as 参考图1 and 参考音频1. Example: reference image 1 walks into the cafe of reference image 2 and says hello in the voice of reference audio 1.
Measured via the API on 2026-10-22, one run each at 540p and 3 seconds: image-to-video 102 seconds and reference-to-video (2 images + 1 MP3) 173 seconds from submission to the finished video. Higher resolutions and longer clips were not tested. Poll GET /v1/video/generations?task_id= every few seconds or pass callback_url.
Text-only requests, a last frame, reference videos and keyframes, and aspect_ratio in image-to-video (the clip follows the first frame). Each returns a clear 400 at create time instead of a silently degraded video, so nothing is billed.