Vidu API: Vidu Q3 and Q4 models, prices and code
Vidu splits its models by input: Q3 Turbo and Q3 Pro work from a prompt or a start frame, while Q3, Q3 Mix and Q4 are built around reference images. Here is what each does, what it costs per second and how to call it.
The Vidu models on Revana
Vidu is Shengshu's video family. Its models split by what you send: some work from a prompt or a start frame, others are built around reference images, where you hand the model characters, products or places and it puts them in one scene. All take the same request on Revana:
| Model | Model id | Does | Resolution | Length | Sound | Price from |
|---|---|---|---|---|---|---|
| Vidu Q3 Turbo | vidu-q3-turbo | text to video, image to video, first and last frames | 540p, 720p, 1080p | 1 to 16 s | yes | $0.04 / s |
| Vidu Q3 Pro | vidu-q3-pro | text to video, image to video, first and last frames | 540p, 720p, 1080p | 1 to 16 s | yes | $0.07 / s |
| Vidu Q3 | vidu-q3 | reference images (up to 7) | 540p, 720p, 1080p | 3 to 16 s | no | $0.05 / s |
| Vidu Q3 Mix | vidu-q3-mix | reference images (up to 7) | 720p, 1080p | 1 to 16 s | no | $0.13 / s |
| Vidu Q4 | vidu-q4 | image to video, reference images | 540p to 4K | set by the model | no | $0.05 / s |
| Vidu Q4 Preview | vidu-q4-preview | image to video, reference images (up to 15) | 540p to 4K | 3 to 16 s | yes | $0.06 / s |
Each Vidu model has one route on Revana today. That is worth knowing for production use: if that route is busy, the job waits or fails rather than moving to another provider, and a failed job costs nothing.
Which Vidu to use
- Vidu Q3 Turbo for cheap clips from text or a start frame, with sound: $0.07 per second at 1080p is one of the lowest 1080p prices in the catalogue.
- Vidu Q3 Pro when you want the higher Q3 tier for the same jobs.
- Vidu Q3 or Q3 Mix for reference-to-video: send up to seven pictures (a character, an outfit, a product, a place) and describe the scene.
- Vidu Q4 Preview for up to 15 references, sound and output up to 4K.
Clips from 1 second up make Vidu useful for short loops, product spins and transitions that other models will not go down to.
Vidu pricing (October 2026)
| Model | Resolution | Per second | 5 s clip | 10 s clip |
|---|---|---|---|---|
| Vidu Q3 Turbo | 540p | $0.04 | $0.20 | $0.40 |
| Vidu Q3 Turbo | 1080p | $0.07 | $0.35 | $0.70 |
| Vidu Q3 Pro | 720p | $0.15 | $0.75 | $1.50 |
| Vidu Q3 Pro | 1080p | $0.16 | $0.80 | $1.60 |
| Vidu Q3 | 720p | $0.10 | $0.50 | $1.00 |
| Vidu Q3 | 1080p | $0.13 | $0.65 | $1.30 |
| Vidu Q3 Mix | 1080p | $0.15 | $0.75 | $1.50 |
| Vidu Q4 Preview | 1080p | $0.13 | $0.65 | $1.30 |
| Vidu Q4 Preview | 4K | $0.42 | $2.10 | $4.20 |
Vidu Q4 lists $0.12 per second at 1080p and $0.39 at 4K and lists no length or shape options of its own. The exact charge for any job comes back as cost_usd. For other models' prices, see the cheapest video API guide.
Generate a Vidu Q3 Turbo clip
Send POST /v1/generations and poll the generation until it has succeeded or failed. This 8 second 1080p clip with sound costs $0.56.
export REVANA_API_KEY="sr_live_..."
# 1. Submit the job (returns 202 with the generation id)
curl https://api.revana.si/v1/generations \
-H "Authorization: Bearer $REVANA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "vidu-q3-turbo",
"input": {
"prompt": "A paper boat drifts down a rain-filled gutter, passing fallen leaves, the camera following at water level. Rain patter and a distant tram bell.",
"resolution": "1080p",
"duration": 8,
"aspect_ratio": "16:9",
"audio": true
},
"max_cost_usd": 0.7
}'
# 2. Poll with the id from step 1 until status is "succeeded" or "failed"
curl https://api.revana.si/v1/generations/gen_01JC2V8K5T \
-H "Authorization: Bearer $REVANA_API_KEY"import os
import time
import requests
API = "https://api.revana.si/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}
resp = requests.post(f"{API}/generations", headers=HEADERS, json={
"model": "vidu-q3-turbo",
"input": {
"prompt": "A paper boat drifts down a rain-filled gutter, passing fallen leaves, the camera following at water level. Rain patter and a distant tram bell.",
"resolution": "1080p",
"duration": 8,
"aspect_ratio": "16:9",
"audio": True,
},
"max_cost_usd": 0.7,
})
resp.raise_for_status()
job = resp.json()
while job["status"] in ("queued", "running"):
time.sleep(5)
job = requests.get(f"{API}/generations/{job['id']}", headers=HEADERS).json()
if job["status"] == "succeeded":
print(job["output"]["urls"], job["cost_usd"])
else:
print("Failed:", job["error"])// Node 18 or later. Save as generate.mjs and run: node generate.mjs
const API = "https://api.revana.si/v1";
const headers = {
Authorization: `Bearer ${process.env.REVANA_API_KEY}`,
"Content-Type": "application/json",
};
const res = await fetch(`${API}/generations`, {
method: "POST",
headers,
body: JSON.stringify({
model: "vidu-q3-turbo",
input: {
prompt: "A paper boat drifts down a rain-filled gutter, passing fallen leaves, the camera following at water level. Rain patter and a distant tram bell.",
resolution: "1080p",
duration: 8,
aspect_ratio: "16:9",
audio: true,
},
max_cost_usd: 0.7,
}),
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
let job = await res.json();
while (job.status === "queued" || job.status === "running") {
await new Promise((r) => setTimeout(r, 5000));
job = await (await fetch(`${API}/generations/${job.id}`, { headers })).json();
}
if (job.status === "succeeded") console.log(job.output.urls, job.cost_usd);
else console.error("Failed:", job.error);Put several references in one scene with Vidu Q3
For reference to video, send the pictures in image_urls (up to seven for Q3) and say in the prompt how they come together. Upload local files first with POST /v1/uploads. This 6 second 720p clip costs $0.60:
{
"model": "vidu-q3",
"input": {
"prompt": "The woman from the first image, wearing the jacket from the second image, walks into the cafe from the third image and waves at the camera.",
"image_urls": [
"https://example.com/woman.jpg",
"https://example.com/jacket.png",
"https://example.com/cafe.jpg"
],
"resolution": "720p",
"duration": 6,
"aspect_ratio": "9:16"
},
"max_cost_usd": 0.8
}Vidu Q3 and Q3 Mix only take reference images. A single start frame in image_url is refused before anything is charged; use Q3 Turbo or Q3 Pro for that.
All Vidu models are on the models page, the input fields are in the docs and credit packs are on the pricing page. Get an API key to try them.
Frequently asked questions
How much does the Vidu API cost?
In October 2026, Vidu Q3 Turbo costs from $0.04 per second at 540p to $0.07 at 1080p. Vidu Q3 Pro costs $0.16 at 1080p and Vidu Q3 costs $0.13 at 1080p.
What is the difference between Vidu Q3, Q3 Turbo and Q3 Pro?
Q3 Turbo and Q3 Pro work from a prompt, a start frame or first and last frames, with sound. Vidu Q3 and Q3 Mix work from up to seven reference images.
How long can a Vidu clip be?
Up to 16 seconds. Q3 Turbo, Q3 Pro and Q3 Mix go down to 1 second; Vidu Q3 and Q4 Preview start at 3 seconds.
Does Vidu support 4K?
Vidu Q4 and Vidu Q4 Preview go up to 4K. The Q3 models stop at 1080p.
Does Vidu generate sound?
Vidu Q3 Turbo, Q3 Pro and Q4 Preview can. Set audio to true.
Try Vidu with one key
One API key for every Vidu model and every other video and image model. Prepaid credit from $10, charged only for clips that are delivered.