MiniMax · Video
Multi-image ReferenceNEW
📌 What is this:Generate a video from one or more reference images (optionally plus reference video/audio) — the default image-to-video workflow. This page covers 3 values: multi-reference (general), multi-reference-4 (multi-image composition) and mj (MJ-style reference), selected via workflow_id.
💡 When to use:Use when you have reference images to animate (up to 9); optionally add reference video for motion/style or audio for rhythm. The 3 values share identical material limits, duration, resolution tiers and pricing — pick by the generation style you want.
🔗 Response format:The query response follows the OpenAI video-task format: a flat top-level structure (no {code,msg,data} wrapper), lowercase status queued / running / success / failed, success returns video_url, failure returns {"error":{"code","message"}}; video_url is our CDN direct link, ready to download/play.
Endpoints
| Usage | Method | Path |
|---|---|---|
| Submit task | POST | /v1/videos |
| Query Result | GET | /v1/videos/{taskId} |
⏱ Recommended polling interval:Poll GET /v1/videos/{taskId} every 5s until status = success / failed.
Workflow values
These 3 values share the same params, request example and pricing on this page; they differ only in generation style.
| workflow_id | Usage | Materials | Duration (sec) | Resolution tiers |
|---|---|---|---|---|
| multi-reference | General multi-image reference (default) | images <=9 · ref videos <=3 · audio <=3 | 4~15 | 480P / 768P / 1080P |
| multi-reference-4 | Composition across multiple reference images | images <=9 · ref videos <=3 · audio <=3 | 4~15 | 480P / 768P / 1080P |
| mj | MJ-style reference (follow the art style of the material) | images <=9 · ref videos <=3 · audio <=3 | 4~15 | 480P / 768P / 1080P |
⚠ multi-reference-4 and mj cannot be inferred from inputs — pass workflow_id explicitly; sending image_urls without workflow_id runs multi-reference.
Request Parameters
| Param | Type | Required | Description |
|---|---|---|---|
| model | string | — | Fixed minimax-h3 |
| workflow_id | string | — | Workflow; 1 of 3 on this page: multi-reference / multi-reference-4 / mj. See the table below for what each does; omit it and inputs are inferred as multi-reference; the other values must be set explicitly |
| prompt | string | Required | Required. Text description (the new engine always requires prompt — including image-to-video and first/last-frame, e.g. "gentle camera push-in, soft light") |
| image_urls | string[] | Required | Reference image URLs, up to 9 (alias: images) |
| ratio | string | — | Aspect ratio, 1 of 8: 16:9 / 9:16 / 1:1 / 4:3 / 3:4 / 3:2 / 2:3 / 21:9, default 16:9 (ratio x resolution tier determine the output size; see the size table) |
| resolution | string | — | Resolution tier (case-insensitive): 480P / 768P / 1080P, default 1080P; unit price varies by tier (480P=5, 768P=12, 1080P=18 credits/sec), see billing |
| duration | integer | — | Duration (sec) integer 4~15, default 4 (alias: seconds) |
| reference_videos | string[] | — | Reference video URLs, up to 3, as motion/style reference (aliases: reference_video (single) / video_urls / videos) |
| audio_urls | string[] | — | Audio URLs, up to 3, for audio-guided generation (alias: reference_audios) |
| prompt_enhance | boolean | — | Prompt enhancement (optional, boolean); defaults to on if omitted |
Request Example
curl -X POST https://api.cqtai.com/v1/videos \
-H 'Authorization: Bearer <API_KEY>' \
-H 'Content-Type: application/json' \
-d '{
"model": "minimax-h3",
"workflow_id": "multi-reference",
"prompt": "gentle camera push-in, soft light",
"image_urls": ["https://cdn.novapi.ai/your/frame.png"],
"ratio": "9:16",
"resolution": "1080P",
"duration": 8
}'
# -> 创建响应: { "id":"<task_id>", "task_id":"<task_id>", "object":"video", "model":"minimax-h3", "status":"PROCESSING", "progress":0 }Response Example
{
"id": "b976d0f8c1ed4c1c8ef006ea22161bcc",
"task_id": "b976d0f8c1ed4c1c8ef006ea22161bcc",
"object": "video",
"model": "minimax-h3",
"status": "success",
"progress": 100,
"video_url": "https://cdn.novapi.ai/minimax/1786516943631_d6ddaeaa68a4464f9e16938f16b9534b.mp4"
}Response Fields
| Field | Type | Description |
|---|---|---|
| id | string | Task ID (opaque), same as task_id; used to poll GET /v1/videos/{task_id} |
| task_id | string | Task ID (opaque); returned on submit, used for polling |
| object | string | Object type, always "video" |
| model | string | Model name, always "minimax-h3" |
| status | string | Task status (lowercase): queued / running / success / failed |
| progress | number | Progress 0-100 |
| video_url | string | Result video URL (our CDN direct link); returned when status = success |
| error | object | Error info {"code","message"}; returned when status = failed |
Billing & Credits
Billed per second = credits/sec x duration (sec). Credits/sec: 480P=5, 768P=12, 1080P=18. Example: 1080P 6s = 18 x 6 = 108. Auto-refunded on failure.