CQTAI
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

UsageMethodPath
Submit taskPOST/api/cqt/generator/vidu
Query ResultGET/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).

modelUsageMaterialsDuration (sec)Tier price (credits/sec)
vidu-q4-previewQ4 Preview (image / reference, 3-16 s)≤7 reference images3~16540P=28.13 / 720P=59.38 / 1080P=75 / 2K=118.75 / 4K=243.75
vidu-q3Q3 (reference only)≤7 reference images1~10540P=31.3 / 720P=62.5 / 1080P=78.2 / 2K=93.9 / 4K=112.7
vidu-q3-turboQ3 Turbo fast; all three modes≤7 reference images1~10540P=12.5 / 720P=31.3 / 1080P=40.6 / 2K=48.7 / 4K=58.5
vidu-q3-mixQ3 Mix (reference only)≤7 reference images1~10720P=78.2 / 1080P=93.8 / 2K=112.6 / 4K=135.2
vidu-q3-adQ3 AD (reference only)≤7 reference images3~16720P=78.2 / 1080P=93.8 / 2K=112.6 / 4K=135.2
vidu-q3-dramaQ3 Drama (reference only, 1080P and up)≤7 reference images8~121080P=87.5 / 2K=105 / 4K=126
vidu-q2Q2 (text / reference)≤7 reference images1~10540P=24 / 720P=32 / 1080P=82 / 2K=123 / 4K=184.5
vidu-q2-proQ2 Pro (image / reference)≤7 reference images1~10540P=27 / 720P=35 / 1080P=90 / 2K=135 / 4K=202.5

Request Parameters

ParamTypeRequiredDescription
modelstringRequiredSub-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)
promptstring—Video description (optional; materials can drive generation)
imageUrlsarray—Reference image URL array (≤7, publicly reachable); send at least one of imageUrls / videoUrls
negativePromptstring—Negative prompt (optional)
durationinteger—Duration (sec), range depends on the sub-model (see table), default 5
resolutionstring—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
aspectRatiostring—Aspect ratio, e.g. 16:9 / 9:16 / 1:1
enhancePromptboolean—Whether to auto-enhance the prompt (optional)
seedinteger—Random seed (optional)
returnFirstFrame / returnLastFrame / returnFrameAtSecondboolean / 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

FieldTypeDescription
codenumberStatus code; 200 means success
msgstringStatus message; "success" on success
data.idstringTask ID (taskId); use it to poll GET /api/cqt/info
data.statusstringTask status: succeeded / failed / otherwise still processing
data.resultUrlstringURL of the generated video; returned when status = succeeded, null otherwise
data.errorMsgstring | nullFailure reason; null on success
data.createTimestringTask creation time
data.completeTimestring | nullTask completion time; null until finished