Vidu Q3 Pro is the higher-fidelity variant of ShengShu's Vidu Q3, released in January 2026. It generates clips from 1 to 16 seconds at 540p, 720p or 1080p from text, a single start frame, or a first and last frame pair. Generated audio with dialogue and sound effects is on by default and does not change the price. Text-to-video offers five aspect ratios (16:9, 9:16, 4:3, 3:4, 1:1), prompts go up to 2,000 characters, and a seed makes results repeatable.
Best for
- Very short 1-3 second loops and stingers
- 16-second single-shot scenes
- Morphing from one keyframe to another
- Clips with dialogue and effects where sound is included in the price
Prompting tips
aspect_ratioapplies to text-to-video only; with images attached, the frames set the format.- One image gives image-to-video; two images give a first-to-last-frame transition.
- Audio costs nothing extra, so describe the sound you want: "rain on a tin roof, distant thunder".
- Use
seedto hold a result steady while you change wording; -1 means random.
FAQ
How much does the Vidu Q3 Pro API cost?
Vidu Q3 Pro is priced at from $0.142 per second, and generated audio does not change it. Failed generations are not charged.
How long can Vidu Q3 Pro videos be?
From 1 to 16 seconds. The default is 5.
Should I use Vidu Q3 Pro or Turbo?
Both take the same parameters. Pro is the higher-fidelity option, while Vidu Q3 Turbo is faster and lower cost.
How to call Vidu Q3 Pro via API
curl https://jantaris.com/v1/generate?wait=60 \
-H "Authorization: Bearer $JANTARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "vidu-q3-pro",
"input": {
"prompt": "A slow dolly shot through a neon-lit night market in the rain, reflections on wet asphalt, cinematic",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": 5
}
}'import os, time, requests
API = "https://jantaris.com/v1"
H = {"Authorization": f"Bearer {os.environ['JANTARIS_API_KEY']}"}
task = requests.post(f"{API}/generate", headers=H, json={
"model": "vidu-q3-pro",
"input": {
"prompt": "A slow dolly shot through a neon-lit night market in the rain, reflections on wet asphalt, cinematic",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": 5
}
}).json()
while task["status"] in ("queued", "running"):
time.sleep(3)
task = requests.get(f"{API}/tasks/{task['id']}", headers=H).json()
print(task["status"], task["cost"], [o["url"] for o in task["output"]])const API = "https://jantaris.com/v1";
const headers = { Authorization: `Bearer ${process.env.JANTARIS_API_KEY}`, "Content-Type": "application/json" };
let task = await (await fetch(`${API}/generate`, {
method: "POST",
headers,
body: JSON.stringify({
"model": "vidu-q3-pro",
"input": {
"prompt": "A slow dolly shot through a neon-lit night market in the rain, reflections on wet asphalt, cinematic",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": 5
}
}),
})).json();
while (task.status === "queued" || task.status === "running") {
await new Promise((r) => setTimeout(r, 3000));
task = await (await fetch(`${API}/tasks/${task.id}`, { headers })).json();
}
console.log(task.status, task.cost, task.output.map((o) => o.url));
Parameters
| Parameter | Type | Allowed | Default |
|---|---|---|---|
prompt | string | ≤ 2000 chars | |
aspect_ratio | string | 16:9 9:16 4:3 3:4 1:1 | 16:9 |
resolution | string | 540p 720p 1080p | 720p |
duration | integer | 1-16 | 5 |
generate_audio | boolean | true | |
image_url | string | ||
end_image_url | string | ||
seed | integer |
The same schema is available from GET /v1/models/vidu-q3-pro.









