curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "viduq3-pro",
"prompt": "A cat playing piano, camera slowly zooms in, cinematic quality",
"duration": 8,
"resolution": "1080p",
"aspect_ratio": "16:9",
"audio": true
}'
import requests
response = requests.post(
"https://toapis.com/v1/videos/generations",
headers={
"Authorization": "Bearer <token>",
"Content-Type": "application/json",
},
json={
"model": "viduq3-pro",
"prompt": "A cat playing piano, camera slowly zooms in, cinematic quality",
"duration": 8,
"resolution": "1080p",
"aspect_ratio": "16:9",
"audio": True,
},
)
print(response.json())
const response = await fetch("https://toapis.com/v1/videos/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "viduq3-pro",
prompt: "A cat playing piano, camera slowly zooms in, cinematic quality",
duration: 8,
resolution: "1080p",
aspect_ratio: "16:9",
audio: true
})
});
console.log(await response.json());
{
"id": "<string>",
"object": "<string>",
"model": "<string>",
"status": "<string>",
"created_at": 123
}Vidu Q3
Vidu Q3 비디오 생성
Generate videos with Vidu Q3 models, including text-to-video, image-to-video, first-last frame, reference-to-video and subjects generation
POST
/
v1
/
videos
/
generations
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "viduq3-pro",
"prompt": "A cat playing piano, camera slowly zooms in, cinematic quality",
"duration": 8,
"resolution": "1080p",
"aspect_ratio": "16:9",
"audio": true
}'
import requests
response = requests.post(
"https://toapis.com/v1/videos/generations",
headers={
"Authorization": "Bearer <token>",
"Content-Type": "application/json",
},
json={
"model": "viduq3-pro",
"prompt": "A cat playing piano, camera slowly zooms in, cinematic quality",
"duration": 8,
"resolution": "1080p",
"aspect_ratio": "16:9",
"audio": True,
},
)
print(response.json())
const response = await fetch("https://toapis.com/v1/videos/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "viduq3-pro",
prompt: "A cat playing piano, camera slowly zooms in, cinematic quality",
duration: 8,
resolution: "1080p",
aspect_ratio: "16:9",
audio: true
})
});
console.log(await response.json());
{
"id": "<string>",
"object": "<string>",
"model": "<string>",
"status": "<string>",
"created_at": 123
}중국 본토 사용자 안내: 중국 본토 사용자는
https://toapis.cn 를 API 엔드포인트(Base URL)로 사용해 주세요. 본 문서의 예시에서 https://toapis.com 을 https://toapis.cn 로 바꿔 주세요.- Async task API, returns a task ID after submission
- Supported models:
viduq3-pro,viduq3-turbo,viduq3 viduq3-pro: High quality model, supports audio-video sync and storyboard generationviduq3-turbo: Fast model, intelligent scene switching, fastest generation, best cost-effectivenessviduq3: Best multi-camera consistency, intelligent camera switching, multi-reference generation
Use publicly accessible image URLs. Do not pass base64 image data in
image_urls; upload local images with the Upload 이미지 API first.Authorization
string
필수
All endpoints require Bearer Token authentication.
Authorization: Bearer YOUR_API_KEY
요청 파라미터
string
필수
Vidu Q3 model name.Options:
viduq3-pro- high quality, supports audio-video sync and storyboard generationviduq3-turbo- fastest generation, intelligent scene switchingviduq3- best multi-camera consistency, for multi-reference/subjects generation
string
필수
Text prompt, maximum 5000 characters.Describes subject, action, scene, camera movement, and style. When using subjects, reference them via
@name in the prompt.Example: "A cat playing piano, camera slowly zooms in, cinematic quality"integer
기본값:"5"
Video duration in seconds.
viduq3-pro/viduq3-turbo:1to16viduq3:3to16
string
기본값:"720p"
Video resolution.Options:
540p720p1080p
string
Video aspect ratio.Common values:
16:9, 9:16, 1:1Q3 models support any aspect ratio. When image_urls is provided, the output ratio is usually determined by the reference image.string[]
Reference image URL array.
viduq3-pro/viduq3-turbo- Omitted: text-to-video
- 1 image: image-to-video, image as first frame
- 2 images: first-last frame
viduq3- 필수, up to 7 reference images
["https://example.com/reference.jpg"]boolean
Whether to enable audio-video output.
- All Q3 models default to
true
true, the system generates speech and sound effects based on the prompt.integer
Random seed for more reproducible results with the same parameters.
object
Extended parameters for fields supported by the upstream API but not exposed as top-level fields.
표시 Show metadata fields
표시 Show metadata fields
array
Subject list (Subjects mode,
viduq3 only). Each subject contains name and images fields.- Up to 7 subjects
- Up to 3 images per subject
- Reference subjects via
@namein the prompt
[
{"name": "cat", "images": ["https://example.com/cat.jpg"]},
{"name": "dog", "images": ["https://example.com/dog.jpg"]}
]
boolean
Whether to use intelligent entity library, defaults to
false.string
Voice ID for specifying the voice character in the video.
string
Audio type, effective when
audio is true.Options:all- sound effects + speech (default)speech_only- speech onlysound-effect_only- sound effects only
boolean
Off-peak mode, defaults to
false.true: off-peak generation, consumes fewer credits- Off-peak tasks will be generated within 48 hours; incomplete tasks are auto-cancelled with credits refunded
- Q3 models support off-peak when
audio=true
string
Transparent passthrough parameter, max 1048576 characters.
모델 Selection
| 모델 | Use Case | Image Input | Resolution | Duration |
|---|---|---|---|---|
viduq3-pro | High quality text/image/first-last frame | 선택, up to 2 images | 540p / 720p / 1080p | 1-16s |
viduq3-turbo | Fast text/image/first-last frame | 선택, up to 2 images | 540p / 720p / 1080p | 1-16s |
viduq3 | Multi-reference/Subjects generation | 필수, up to 7 images | 540p / 720p / 1080p | 3-16s |
Billing Dimensions
Vidu Q3 is billed by model, resolution, and generation type:viduq3-pro: high quality tier, approximately 2x the price of turboviduq3-turbo: fast tier, best cost-effectivenessviduq3: multi-reference generation, billed at reference generation rate
응답
string
Task ID for querying task status.
string
Object type, usually
generation.task.string
모델 used for the request.
string
Task status:
queued, in_progress, completed, or failed.integer
Task creation timestamp.
Examples
Text-to-Video
{
"model": "viduq3-pro",
"prompt": "A cat playing piano, camera slowly zooms in, cinematic quality",
"duration": 8,
"resolution": "1080p",
"aspect_ratio": "16:9",
"audio": true
}
Image-to-Video
{
"model": "viduq3-turbo",
"prompt": "The person in the image slowly turns and smiles",
"image_urls": ["https://example.com/portrait.jpg"],
"duration": 5,
"resolution": "720p"
}
First-Last Frame
{
"model": "viduq3-pro",
"prompt": "The person naturally sits down from standing, smooth motion",
"image_urls": [
"https://example.com/first-frame.jpg",
"https://example.com/last-frame.jpg"
],
"duration": 8,
"resolution": "720p"
}
Multi-Reference Image Video
{
"model": "viduq3",
"prompt": "Keep the character consistent from the reference images, walking through a futuristic city street",
"image_urls": [
"https://example.com/character-front.jpg",
"https://example.com/character-side.jpg"
],
"duration": 6,
"resolution": "1080p"
}
Subjects Mode
{
"model": "viduq3",
"prompt": "@cat and @dog are running in the park, sunny day",
"image_urls": ["https://example.com/park-bg.jpg"],
"duration": 8,
"resolution": "720p",
"audio": true,
"metadata": {
"subjects": [
{"name": "cat", "images": ["https://example.com/cat.jpg"]},
{"name": "dog", "images": ["https://example.com/dog.jpg"]}
],
"audio_type": "all"
}
}
Video generation is asynchronous. Use the Get Video Task 상태 endpoint to query progress and results.
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "viduq3-pro",
"prompt": "A cat playing piano, camera slowly zooms in, cinematic quality",
"duration": 8,
"resolution": "1080p",
"aspect_ratio": "16:9",
"audio": true
}'
import requests
response = requests.post(
"https://toapis.com/v1/videos/generations",
headers={
"Authorization": "Bearer <token>",
"Content-Type": "application/json",
},
json={
"model": "viduq3-pro",
"prompt": "A cat playing piano, camera slowly zooms in, cinematic quality",
"duration": 8,
"resolution": "1080p",
"aspect_ratio": "16:9",
"audio": True,
},
)
print(response.json())
const response = await fetch("https://toapis.com/v1/videos/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "viduq3-pro",
prompt: "A cat playing piano, camera slowly zooms in, cinematic quality",
duration: 8,
resolution: "1080p",
aspect_ratio: "16:9",
audio: true
})
});
console.log(await response.json());