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.