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
| Usage | Method | Path |
|---|---|---|
| Submit task | POST | /api/cqt/generator/vidu |
| Query Result | GET | /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.
| model | Usage | Materials | Images | Tier price (credits) |
|---|---|---|---|---|
| vidu-image-q2 | Q2 image | None (text only) | 1 | 1K=18.8 / 2K=25 / 4K=31.3 |
⚠ vidu-image-q2: 1 image per call
Request Parameters
| Param | Type | Required | Description |
|---|---|---|---|
| model | string | Required | Sub-model: vidu-image-q2 |
| prompt | string | Required | Image description |
| resolution | string | — | 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) |
| aspectRatio | string | — | Aspect ratio, e.g. 1:1 / 16:9 / 9:16 |
| negativePrompt / seed / enhancePrompt | string / 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
| Field | Type | Description |
|---|---|---|
| code | number | 200 means success |
| data.id | string | Task ID (taskId) |
| data.status | string | queued / running / succeeded / failed |
| data.resultUrl | string | Result URL(s) on our CDN (long-lived); multiple results are comma-separated; null until done or on failure |
| data.errorMsg | string | null | Failure reason; null on success |