Vidu · Video
Reference to VideoNEW
📌 What is this:Generate a new video based on the subjects / style in reference images (some models also accept a reference video).
💡 When to use:Use to put a given character, product or style into a new scene. Reference materials cannot be combined with first/last frames.
Endpoints
| Usage | Method | Path |
|---|---|---|
| Submit task | POST | /api/cqt/generator/vidu |
| Query Result | GET | /api/cqt/info/vidu?id={taskId} |
⏱ Recommended polling interval:Generation takes ~1-3 min; poll every 10-15s until status = succeeded / failed.
Sub-models
Sub-models that support this mode. The tiers column is credits/sec (generateAudio → = audio tier, videoUrls → = with-reference-video tier). Resolutions / durations not listed are rejected at submit (no charge).
| model | Usage | Materials | Duration (sec) | Tier price (credits/sec) |
|---|---|---|---|---|
| vidu-q4-preview | Q4 Preview (image / reference, 3-16 s) | ≤7 reference images | 3~16 | 540P=28.13 / 720P=59.38 / 1080P=75 / 2K=118.75 / 4K=243.75 |
| vidu-q3 | Q3 (reference only) | ≤7 reference images | 1~10 | 540P=31.3 / 720P=62.5 / 1080P=78.2 / 2K=93.9 / 4K=112.7 |
| vidu-q3-turbo | Q3 Turbo fast; all three modes | ≤7 reference images | 1~10 | 540P=12.5 / 720P=31.3 / 1080P=40.6 / 2K=48.7 / 4K=58.5 |
| vidu-q3-mix | Q3 Mix (reference only) | ≤7 reference images | 1~10 | 720P=78.2 / 1080P=93.8 / 2K=112.6 / 4K=135.2 |
| vidu-q3-ad | Q3 AD (reference only) | ≤7 reference images | 3~16 | 720P=78.2 / 1080P=93.8 / 2K=112.6 / 4K=135.2 |
| vidu-q3-drama | Q3 Drama (reference only, 1080P and up) | ≤7 reference images | 8~12 | 1080P=87.5 / 2K=105 / 4K=126 |
| vidu-q2 | Q2 (text / reference) | ≤7 reference images | 1~10 | 540P=24 / 720P=32 / 1080P=82 / 2K=123 / 4K=184.5 |
| vidu-q2-pro | Q2 Pro (image / reference) | ≤7 reference images | 1~10 | 540P=27 / 720P=35 / 1080P=90 / 2K=135 / 4K=202.5 |
Request Parameters
| Param | Type | Required | Description |
|---|---|---|---|
| model | string | Required | Sub-model: vidu-q4-preview / vidu-q3 / vidu-q3-turbo / vidu-q3-mix / vidu-q3-ad / vidu-q3-drama / vidu-q2 / vidu-q2-pro (see the sub-model table below) |
| prompt | string | — | Video description (optional; materials can drive generation) |
| imageUrls | array | — | Reference image URL array (≤7, publicly reachable); send at least one of imageUrls / videoUrls |
| negativePrompt | string | — | Negative prompt (optional) |
| duration | integer | — | Duration (sec), range depends on the sub-model (see table), default 5 |
| resolution | string | — | 540P / 720P / 1080P / 2K / 4K (available tiers depend on the sub-model), default 720P (or the lowest tier if 720P is unavailable); 2K / 4K are upscaled |
| aspectRatio | string | — | Aspect ratio, e.g. 16:9 / 9:16 / 1:1 |
| enhancePrompt | boolean | — | Whether to auto-enhance the prompt (optional) |
| seed | integer | — | Random seed (optional) |
| returnFirstFrame / returnLastFrame / returnFrameAtSecond | boolean / boolean / number | — | Also return the first / last / given-second frame image of the result video (optional), 1 credit per frame |
Request Example
curl -X POST https://api.cqtai.com/api/cqt/generator/vidu \
-H 'Authorization: Bearer <API_KEY>' \
-H 'Content-Type: application/json' \
-d '{
"model": "vidu-q4-preview",
"prompt": "the character from the reference image walks through a neon-lit street",
"imageUrls": [
"https://example.com/ref.jpg"
],
"duration": 5,
"resolution": "720P",
"aspectRatio": "16:9"
}'
# -> { "code":200, "data":"<taskId>" }Response Example
{
"code": 200,
"msg": "success",
"data": {
"id": "<taskId>",
"status": "succeeded",
"resultUrl": "https://cdn.cqtai.com/.../result.mp4",
"errorMsg": null,
"createTime": "2026-10-13 10:00:00",
"completeTime": "2026-10-13 10:02:00"
}
}Response Fields
| Field | Type | Description |
|---|---|---|
| code | number | Status code; 200 means success |
| msg | string | Status message; "success" on success |
| data.id | string | Task ID (taskId); use it to poll GET /api/cqt/info |
| data.status | string | Task status: succeeded / failed / otherwise still processing |
| data.resultUrl | string | URL of the generated video; returned when status = succeeded, null otherwise |
| data.errorMsg | string | null | Failure reason; null on success |
| data.createTime | string | Task creation time |
| data.completeTime | string | null | Task completion time; null until finished |