CQTAI
Vidu Image · Image

Text to ImageNEW

📌 What is this:Generate images from a text description.
💡 When to use:Use to turn a text idea straight into images; omit imageUrls for text-to-image.

Endpoints

UsageMethodPath
Submit taskPOST/api/cqt/generator/vidu
Query ResultGET/api/cqt/info/vidu?id={taskId}
⏱ Recommended polling interval:Poll every 5-10s until status = succeeded / failed.

Sub-models

The tier price column is credits/image (credits/call for per-call models); (default output) = default output only, resolution not accepted; ≥N refs → = multi-reference tier.

modelUsageMaterialsImagesTier price (credits)
vidu-image-q2Q2 imageNone (text only)11K=18.8 / 2K=25 / 4K=31.3
⚠ vidu-image-q2: 1 image per call

Request Parameters

ParamTypeRequiredDescription
modelstringRequiredSub-model: vidu-image-q2
promptstringRequiredImage description
resolutionstring—1K / 2K / 4K, only tiers priced in the table, default = lowest tier; accepted only by vidu-image-q2 (others use the default output and reject it)
aspectRatiostring—Aspect ratio, e.g. 1:1 / 16:9 / 9:16
negativePrompt / seed / enhancePromptstring / integer / boolean—Negative prompt / random seed / auto-enhance prompt (optional)

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-image-q2",
    "prompt": "a cozy wooden cabin in a snowy forest at dusk, warm window light, cinematic",
    "resolution": "1K",
    "aspectRatio": "16:9"
  }'
# -> { "code":200, "data":"<taskId>" }

Response Example

{
  "code": 200,
  "msg": "success",
  "data": {
    "id": "906b6656d0484e9b9a106a7024130181",
    "resultUrl": "https://cdn.novapi.ai/vidu/1791950064254_e40483a0e2cc411c82210620a0fbafe1.png",
    "status": "succeeded",
    "errorMsg": null,
    "createTime": "2026-10-14 11:53:24",
    "completeTime": "2026-10-14 11:54:25"
  }
}

Response Fields

FieldTypeDescription
codenumber200 means success
data.idstringTask ID (taskId)
data.statusstringqueued / running / succeeded / failed
data.resultUrlstringResult URL(s) on our CDN (long-lived); multiple results are comma-separated; null until done or on failure
data.errorMsgstring | nullFailure reason; null on success