Skip to content

Vidu Video ​

Vidu Q3 (viduq3-pro / viduq3-turbo) is the latest generation of Shengshu Technology's Vidu video model family. It supports text-to-video and image-to-video (single first-frame image) with durations of 1–16 seconds and audio-video co-generation enabled by default (dialogue and sound effects generated directly, at no extra charge). It uses the unified POST /v1/videos endpoint and returns an OpenAI Video style response (id / status / metadata.url), sharing the same task polling mechanism as other video models.

Billing

Vidu Q3 is billed by generated duration (seconds) × resolution-tier unit price; 540P / 720P / 1080P have different unit prices, and audio-video co-generation is free of extra charge. When size is omitted, billing follows 720P (the default tier). Exact unit prices and billing expressions are shown on the corresponding model card in the console "Model Plaza" (prices are intentionally omitted from this documentation).

Endpoints ​

  • Create task: POST $URL/v1/videos
  • Query task: GET $URL/v1/videos/{task_id}

Supported Models ​

Model namePositioningResolutionsDuration
viduq3-proQuality-first, better visuals and consistency540P / 720P / 1080P1–16 s
viduq3-turboSpeed-first, faster and more economical540P / 720P / 1080P1–16 s

Within the same model name, the resolution tier is selected via the size request parameter (see "Parameters" below).

Parameters ​

ParameterTypeRequiredDescription
modelstringyesviduq3-pro / viduq3-turbo
promptstringyesVideo description, up to 5000 characters; recommend specifying subject, action, scene, and camera movement
sizestringnoResolution tier: 540p / 720p / 1080p, defaults to 720P
durationintegernoOutput duration in seconds, range 1–16, defaults to 5
imagestringnoFirst-frame image URL (single, publicly accessible, for image-to-video)
metadata.durationnumbernoAdvanced override: output duration (seconds), takes precedence over top-level duration
metadata.resolutionstringnoAdvanced override: directly specify the resolution tier
metadata.seedintegernoRandom seed for reproducibility

Capability scope

Vidu Q3 currently supports text-to-video and image-to-video with a single first frame. First/last-frame generation (2 images) and multi-image reference generation are not yet available — do not pass 2 images, otherwise the task will fail.

Request Example ​

Text-to-video ​

bash
# 1. Create a video task (720P, 5 seconds)
curl $URL/v1/videos \
  -H "Authorization: Bearer $YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "viduq3-pro",
    "prompt": "Ultra-realistic fashion film style, an astronaut walking through dense fog, slow dolly-in",
    "duration": 5,
    "size": "720p"
  }'

# 2. Query task status (replace {task_id} with the id returned above)
curl $URL/v1/videos/{task_id} \
  -H "Authorization: Bearer $YOUR_API_KEY"
python
import time
import requests

url = "$URL/v1/videos"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
}
payload = {
    "model": "viduq3-turbo",
    "prompt": "Ultra-realistic fashion film style, an astronaut walking through dense fog",
    "duration": 5,
    "size": "720p",
}

task = requests.post(url, json=payload, headers=headers).json()
task_id = task["id"]

while True:
    result = requests.get(f"{url}/{task_id}", headers=headers).json()
    if result["status"] in ("completed", "failed"):
        break
    time.sleep(8)

print(result)

Image-to-video (first frame) ​

bash
curl $URL/v1/videos \
  -H "Authorization: Bearer $YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "viduq3-turbo",
    "prompt": "The astronaut turns to face the camera and waves",
    "image": "https://example.com/first_frame.png",
    "duration": 5,
    "size": "1080p"
  }'

First-frame image requirements

Publicly accessible PNG / JPEG / WEBP URLs are supported, up to 50 MB, with an aspect ratio between 1:4 and 4:1. The upstream server fetches the image itself; intranet or local addresses will fail.

Response Fields ​

Create and query return the same structure (OpenAI Video style):

FieldTypeDescription
idstringTask ID
statusstringTask status (see below)
metadata.urlstringGenerated video URL (returned only when completed)
progressintegerGeneration progress, 0–100
completed_atintegerCompletion timestamp (seconds, only when completed)
error.messagestringFailure reason (only when failed)

Task Status ​

StatusMeaningSuggested action
queuedQueuedKeep polling
in_progressGeneratingKeep polling
completedSucceededGet the video URL from metadata.url; download and save it promptly
failedFailedCheck error.message

Poll every 5–10 seconds

Download and re-host the video as soon as the task completes: the video URL expires after a while.

Response Example ​

json
{
  "id": "task_xxxxxxxx",
  "status": "in_progress",
  "progress": 30
}

On completion:

json
{
  "id": "task_xxxxxxxx",
  "status": "completed",
  "progress": 100,
  "metadata": {
    "url": "https://cdn.example.com/.../result.mp4"
  },
  "completed_at": 1788769182
}

FAQ ​

Q: How do I write a better prompt?

Cover four elements: subject (who/what), action (what is happening), scene (where), and camera (how it moves, e.g. dolly-in / orbit / overhead). Vidu Q3 generates audio as well — you can describe the narration, dialogue, or sound effects you expect.

Q: Does the generated video have sound?

Yes. Vidu Q3 enables audio-video co-generation by default (dialogue + sound effects) at no extra charge.

Q: How long does a task take?

It depends on duration and resolution — 720P 5 seconds usually completes within 1–2 minutes; 1080P with longer durations takes more. Poll the query endpoint for the final status; tasks unfinished after 20 minutes are marked failed automatically.

Q: Do generated video links expire?

Yes. The video URL expires after some time — download and re-host it promptly once the task completes.

Q: Why does passing 2 images fail?

First/last-frame generation is not yet available. Pass a single first-frame image (image) for image-to-video, or no image for text-to-video.

© 2026 Euno AI. All rights reserved.