Skip to main content

Vidu Q3

In this page's examples, {BASE_URL} is https://api.uniall.ai.

Updated: 2026-08-04

Overview​

Use the Vidu Q3 series through two stable public model IDs. Select the output resolution with the top-level resolution parameter instead of encoding it in the model name.

Public ModelSeriesText To VideoSingle ImageFirst And Last FrameMultiple References
viduq3pQ3 ProSupportedSupportedSupported1 to 4 images
viduq3tQ3 TurboSupportedSupportedSupported1 to 4 images

Both models support 540p, 720p, and 1080p. These are the only public Vidu Q3 model IDs.

When To Use It​

Use Vidu Q3 when you need to:

  • create a video from a text prompt;
  • animate one publicly accessible image;
  • interpolate between a first frame and a last frame;
  • guide generation with 1 to 4 reference images.

Clients only select a public model and request parameters. Do not send channel names, upstream model IDs, upstream task fields, or routing controls.

Endpoints​

Use these endpoints for new integrations:

PurposeMethodPath
Create a video taskPOST/v1/videos
Query a video taskGET/v1/videos/{task_id}
Download the videoGET/v1/videos/{task_id}/content

The following compatibility endpoints remain available:

PurposeMethodPath
Create a video taskPOST/v1/videos/generations
Query a video taskGET/v1/videos/generations/{task_id}
Create a video taskPOST/v1/video/generations
Query a video taskGET/v1/video/generations/{task_id}

Prefer /v1/videos for all new integrations.

Authentication​

Every request requires a UniAll Bearer token:

Authorization: Bearer sk-***

Task creation also requires:

Content-Type: application/json

Request Body Parameters​

ParameterTypeRequiredDescription
modelstringYesviduq3p or viduq3t.
promptstringYesVideo generation prompt.
durationintegerYesOutput duration from 1 to 16 seconds.
aspect_ratiostringNo16:9, 9:16, 3:4, 4:3, or 1:1.
imagestringConditionalPublic HTTP(S) URL for a single image or the first frame.
last_imagestringConditionalPublic HTTP(S) URL for the last frame; requires image.
reference_image_urlsstring[]Conditional1 to 4 public HTTP(S) image URLs for reference generation.
resolutionstringYes540p, 720p, or 1080p.
audiobooleanNoWhether to generate audio.
bgmbooleanNoBackground music control for text-to-video generation.
seedintegerNoRandom seed.

Choose input fields according to the generation mode:

ModeInput Fields
Text to videoprompt
Single imageprompt + image
First and last frameprompt + image + last_image
Multiple referencesprompt + reference_image_urls

Follow these validation rules:

  • Pass top-level resolution on every request.
  • Do not combine image with reference_image_urls.
  • Do not pass last_image without image.
  • Do not use images or image_urls for first-and-last-frame or reference generation.
  • Pass resolution, audio, bgm, and seed at the top level, not inside extra_body.
  • size is not an alias for resolution.

Request Examples​

Text To Video​

curl -X POST "{BASE_URL}/v1/videos" \
-H "Authorization: Bearer sk-***" \
-H "Content-Type: application/json" \
-d '{
"model": "viduq3p",
"prompt": "A cinematic aerial shot over a futuristic coastal city at sunrise, soft light, slow camera push-in.",
"duration": 5,
"aspect_ratio": "16:9",
"resolution": "720p",
"audio": false,
"bgm": false,
"seed": 42
}'

Single Image To Video​

curl -X POST "{BASE_URL}/v1/videos" \
-H "Authorization: Bearer sk-***" \
-H "Content-Type: application/json" \
-d '{
"model": "viduq3t",
"prompt": "The person slowly raises their head and looks at the camera while the camera gently moves forward.",
"image": "https://example.com/source.png",
"duration": 5,
"aspect_ratio": "9:16",
"resolution": "540p",
"audio": false,
"seed": 42
}'

First And Last Frame​

curl -X POST "{BASE_URL}/v1/videos" \
-H "Authorization: Bearer sk-***" \
-H "Content-Type: application/json" \
-d '{
"model": "viduq3p",
"prompt": "The person turns naturally from a front view to a side view while identity and motion remain consistent.",
"image": "https://example.com/head.png",
"last_image": "https://example.com/tail.png",
"duration": 6,
"aspect_ratio": "16:9",
"resolution": "720p",
"audio": false,
"seed": 42
}'

Multiple Reference Images​

curl -X POST "{BASE_URL}/v1/videos" \
-H "Authorization: Bearer sk-***" \
-H "Content-Type: application/json" \
-d '{
"model": "viduq3p",
"prompt": "A @Image1 walking through a beach in the visual style of @Image2",
"reference_image_urls": [
"https://example.com/ref-1.png",
"https://example.com/ref-2.png"
],
"duration": 5,
"aspect_ratio": "16:9",
"resolution": "1080p",
"audio": false,
"seed": 42
}'

Both public models accept reference_image_urls. Reference prompts can use @Image1, @Image2, and subsequent markers in array order.

Response Examples​

Task Created​

Save id or the compatible task_id value for later queries:

{
"id": "task_xxxxxxxxxxxxx",
"task_id": "task_xxxxxxxxxxxxx",
"object": "video.generation.job",
"model": "viduq3p",
"status": "queued",
"progress": 0,
"created_at": 1785772800
}

Public responses do not include channel identifiers, upstream task IDs, credentials, or raw upstream payloads.

Task Status And Result​

After creation, save id or task_id, then poll GET /v1/videos/{task_id} until the task reaches completed or failed. See Video Generation Overview for the shared polling interval, status fields, error contract, result URL, and authenticated download flow.

Billing Notes​

Billing depends on the public model, requested resolution, and actual output duration. The model ID does not carry a resolution or time-based billing tier.

The current Baidu VOD/BV channel reference for normal-time text-to-video, single-image-to-video, and first-and-last-frame requests is:

Public Model540p720p1080p
viduq3p (Q3 Pro)CNY 0.28125/secondCNY 0.625/secondCNY 0.75/second
viduq3t (Q3 Turbo)CNY 0.21875/secondCNY 0.375/secondCNY 0.40625/second

Total channel consumption is the rate multiplied by the actual output duration. Reference-image requests may use a different eligible route. Treat these values as the current channel reference, and use the UniAll model page and consumption log as the source of the final user-facing price and settlement.

Common Errors​

Requests are rejected before task creation when they:

  • use a model ID other than viduq3p or viduq3t;
  • omit resolution or pass a value other than 540p, 720p, or 1080p;
  • use size instead of resolution;
  • omit duration or pass a value outside 1 to 16;
  • use an unsupported aspect ratio such as 21:9 or 1920x1080;
  • pass an empty reference_image_urls array or more than 4 references;
  • combine image with reference_image_urls, or pass last_image alone;
  • use an image URL that the service cannot access publicly;
  • place supported top-level controls inside extra_body.