CQTAI
Qwen Video · Video

Image to VideoNEW

📌 What is this:Animate a reference image into a video. wan2.7-i2v supports three tasks: first-frame, first+last frame (pass lastFrameUrl), and video continuation (pass a .mp4/.mov clip in imageUrls).
💡 When to use:Use to animate an image, or to control start/end with first+last frame, or to continue from a clip.

Endpoints

UsageMethodPath
Submit taskPOST/api/cqt/generator/qwen
Query ResultGET/api/cqt/info/qwen?id={taskId}
⏱ Recommended polling interval:Video jobs usually take 1-5 minutes. Poll every 15-20s until status = succeeded / failed.

Request Parameters

ParamTypeRequiredDescription
modelstringRequiredwan2.7-i2v / wan2.5-i2v-preview (audio on by default) / happyhorse-1.0-i2v / happyhorse-1.1-i2v / wan3.0-video / wan3.0-video-prime (all-in-one: pass imageUrls for image-to-video, lastFrameUrl for keyframes) / vidu/viduq3-pro_img2video (account not enabled, currently unavailable)
imageUrlsstring[]RequiredInput image URL(s), usually first image is used as the first frame. Note: jpg / png only, no webp. For wan2.7-i2v continuation the first item may be a .mp4/.mov clip.
lastFrameUrlstring—Last frame URL (wan2.7-i2v first+last frame / continuation end frame)
promptstring—Motion / camera prompt
durationinteger—Duration in seconds, default 5, affects billing; wan2.5-preview only 5 / 10; happyhorse 3-15; wan3.0-video/prime 2-30 (pass -1 for smart duration)
aspectRatiostring—Ratio / resolution mapping: 16:9 and 9:16 usually map to 1080P; 1:1 maps to 720P; 4:3/3:4 map to 480P
audioboolean—Generate video with audio when supported
audioUrlstring—Optional audio URL
webhookUrlstring—Completion webhook URL

Request Example

curl -X POST https://api.cqtai.com/api/cqt/generator/qwen \
  -H 'Authorization: Bearer <API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "wan2.7-i2v",
    "prompt": "镜头缓慢推进,光影自然变化",
    "imageUrls": ["https://example.com/first-frame.jpg"],
    "aspectRatio": "16:9",
    "duration": 5
  }'
# -> { "code":200, "data":"<taskId>" }

Response Example

{
  "code": 200,
  "data": {
    "id": "<taskId>",
    "status": "succeeded",
    "resultUrl": "https://.../result.mp4",
    "createTime": "2026-06-15 10:00:00",
    "completeTime": "2026-06-15 10:02:00"
  }
}