Continue naturally from this exact first frame. The astronaut gently pushes away from the fixed handrail with her right hand, then drifts slowly sideways in zero gravity, her body and clothing retaining their original shape. A subtle camera track follows her at the same distance; equipment remains fixed. Keep her face, blue flight suit, handrail and window consistent. A quiet ventilation hum and soft fabric movement. One uninterrupted shot, no speech, cuts, logos or captions.
Wan 2.6 Image to Video API
alibaba/wan-2.6/image-to-videoWan 2.6 Image to Video 将静态参考图片转化为 5–15 秒 1080p 高清动态视频,支持单图首帧动画、多镜头机位过渡与精确运镜轨迹。它在根据提示词注入生动肢体动作与镜头推进的同时,忠实保留参考图像的人物容貌、服饰纹理与光影构图。

必填 1 张图片。体验区上传支持 JPG、PNG、WebP,最大 10MiB。
示例
REST API 规格
快速开始
提交端点请求并查询任务状态。请将示例素材 URL 替换为可访问的真实文件。
第一步:配置 API 鉴权
在控制台申请 API Key,并在每个 HTTP 请求头中携带 Authorization: Bearer <API_KEY> 进行身份验证。
- 任务提交端点
- POST
https://api.vidgo.ai/api/generate/submit - 鉴权请求头
- Authorization: Bearer VIDGO_API_KEY
第 2 步:提交生成任务
POST /api/generate/submit。model 和可选 callback_url 位于根级,生成参数位于 input 内。
REQUEST_BODY=$(cat <<'JSON'
{
"model": "alibaba/wan-2.6/image-to-video",
"input": {
"prompt": "Continue naturally from this exact first frame. The astronaut gently pushes away from the fixed handrail with her right hand, then drifts slowly sideways in zero gravity, her body and clothing retaining their original shape. A subtle camera track follows her at the same distance; equipment remains fixed. Keep her face, blue flight suit, handrail and window consistent. A quiet ventilation hum and soft fabric movement. One uninterrupted shot, no speech, cuts, logos or captions.",
"duration": 5,
"resolution": "720p",
"multi_shots": false,
"image_urls": [
"https://cdn.vidgo.ai/apis/models/alibaba/wan-2.6/image-to-video/v1/01/input.jpg"
]
}
}
JSON
)
RESPONSE=$(curl --silent --show-error --fail-with-body \
--request POST \
--url "https://api.vidgo.ai/api/generate/submit" \
--header "Authorization: Bearer $VIDGO_API_KEY" \
--header "Content-Type: application/json" \
--data "$REQUEST_BODY")
CODE=$(printf '%s' "$RESPONSE" | jq -r '.code // empty')
if [ "$CODE" != "0" ] && [ "$CODE" != "200" ]; then
printf 'API error: %s
' "$RESPONSE" >&2
exit 1
fi
printf '%s
' "$RESPONSE"第三步:轮询任务执行结果
使用 task_id 查询进度;not_started 或 running 时继续轮询,finished 或 failed 时停止。成功后读取 data.files[].file_url,失败时读取 data.error_message。
状态查询端点
GET https://api.vidgo.ai/api/generate/status/{task_id}使用 task_id 查询进度;not_started 或 running 时继续轮询,finished 或 failed 时停止。成功后读取 data.files[].file_url,失败时读取 data.error_message。
not_startedrunningfinishedfailed{
"code": 200,
"data": {
"task_id": "1QG7XQN3IDI7XD43",
"status": "running",
"created_time": "2026-09-21T17:29:36"
}
}{
"code": 200,
"data": {
"task_id": "task-unified-...",
"status": "finished",
"files": [
{
"file_url": "https://storage.vidgo.ai/generated/video.mp4",
"file_type": "video"
}
],
"created_time": "2026-08-22T10:00:00Z",
"progress": 100,
"error_message": null
}
}端到端完整脚本示例
展开查看在生产环境中具备轮询重试、异常保护和超时处理的完整自动化脚本。
set -euo pipefail
: "${VIDGO_API_KEY:?Set VIDGO_API_KEY in your environment}"
REQUEST_BODY=$(cat <<'JSON'
{
"model": "alibaba/wan-2.6/image-to-video",
"input": {
"prompt": "Continue naturally from this exact first frame. The astronaut gently pushes away from the fixed handrail with her right hand, then drifts slowly sideways in zero gravity, her body and clothing retaining their original shape. A subtle camera track follows her at the same distance; equipment remains fixed. Keep her face, blue flight suit, handrail and window consistent. A quiet ventilation hum and soft fabric movement. One uninterrupted shot, no speech, cuts, logos or captions.",
"duration": 5,
"resolution": "720p",
"multi_shots": false,
"image_urls": [
"https://cdn.vidgo.ai/apis/models/alibaba/wan-2.6/image-to-video/v1/01/input.jpg"
]
}
}
JSON
)
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
--request POST \
--url "https://api.vidgo.ai/api/generate/submit" \
--header "Authorization: Bearer $VIDGO_API_KEY" \
--header "Content-Type: application/json" \
--data "$REQUEST_BODY")
TASK_ID=$(printf '%s' "$SUBMIT_RESPONSE" | jq -r '.data.task_id // .task_id // empty')
BUSINESS_CODE=$(printf '%s' "$SUBMIT_RESPONSE" | jq -r '.code // empty')
if [ "$BUSINESS_CODE" != "0" ] && [ "$BUSINESS_CODE" != "200" ]; then
printf 'Submit failed:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
if [ -z "$TASK_ID" ]; then
printf 'Submit response did not include task_id:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
START_TIME=$(date +%s)
POLL_DELAY=2
while true; do
if [ $(( $(date +%s) - START_TIME )) -ge 600 ]; then
printf 'Timed out after 600 seconds
' >&2
exit 1
fi
STATUS_RESPONSE=$(curl --silent --show-error --fail-with-body \
--url "https://api.vidgo.ai/api/generate/status/$TASK_ID" \
--header "Authorization: Bearer $VIDGO_API_KEY")
STATUS=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.data.status // .status // empty')
BUSINESS_CODE=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.code // empty')
if [ "$BUSINESS_CODE" != "0" ] && [ "$BUSINESS_CODE" != "200" ]; then
printf 'Status request failed:
%s
' "$STATUS_RESPONSE" >&2
exit 1
fi
case "$STATUS" in
finished)
printf '%s' "$STATUS_RESPONSE" | jq -r '(.data.files // .files // [])[]?.file_url'
break
;;
failed)
printf '%s' "$STATUS_RESPONSE" | jq -r '.data.error_message // .error_message // "Generation failed"' >&2
exit 1
;;
not_started|running)
sleep "$POLL_DELAY"
if [ "$POLL_DELAY" -lt 10 ]; then POLL_DELAY=$((POLL_DELAY + 1)); fi
;;
*)
printf 'Unexpected task status: %s
' "$STATUS" >&2
exit 1
;;
esac
done请求参数(input 对象)
向 /api/generate/submit 提交 POST 请求时,input 内部所支持的图生视频参数:
| 字段 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
| prompt | string | 是 | — | 字符串。校验前去除首尾空白,支持 1–5,000 个 Unicode 字符。 |
| image_urls | array<string> | 是 | — | 数组,必须包含 1 个 HTTP(S) 图片 URL。体验区本地上传限制:JPG、PNG、WebP,最大 10MiB。 |
| duration | integer | 否 | 5 | 整数。输出时长支持 5、10、15 秒。 |
| resolution | string | 否 | 720p | 输出分辨率:720p 或 1080p。 |
| multi_shots | boolean | 否 | — | 可选布尔值。省略时不指定上游设置;体验区初始为 false。不额外计费。 |
响应字段(查询结果)
通过 GET /api/generate/status/{task_id} 轮询获取的任务详情:
| 字段 | 类型 | 描述 |
|---|---|---|
| code | integer | 业务响应状态码,200 表示成功。 |
| data.task_id | string | 异步任务全局唯一流水号。 |
| data.status | string | 任务执行阶段:not_started(排队中)、running(生成中)、finished(已完成)、failed(失败)。 |
| data.files | array | 生成成功时包含的成片文件列表,每项含 file_url 与 file_type。 |
| data.error_message | string | null | 任务执行异常时的具体错误描述。 |
任务生命周期
客户端应根据 status 字段判断任务进度,达到 finished 或 failed 终态时立即终止轮询:
not_started任务已接收,等待执行。
running正在生成。
finished生成完成,从 data.files 获取视频 URL。
failed生成失败,请查看 data.error_message,已扣积分按现有流程返还。
轮询与异常处理
- 轮询频次推荐建议初始轮询间隔设为 2–3 秒,随着任务持续可递增至 5 秒一次,避免过密请求。
- 网络波动与重试若查询网络出现 5xx 或连接超时,不代表任务失败,可稍作休眠后继续重试查询。
- 异步 Webhook 回调支持在提交请求体根层级传递 callback_url,在任务终态时系统将通过 POST 自动推送完整任务结果。
接口规格
| 规格项 | 取值 | 说明 |
|---|---|---|
| 模型 ID | alibaba/wan-2.6/image-to-video | 在请求根级 model 字段中发送此值。 |
| 时长 | 5, 10, 15s | 默认 5 秒。 |
| 分辨率 | 720p / 1080p | 默认 720p。 |
Wan 2.6 Image to Video API 常见问题
Wan 2.6 Image to Video API 是什么?
Wan 2.6 Image to Video 是阿里巴巴研发的图像生成视频模型。它根据单张静态参考图与文本提示词生成 5–15 秒、最高 1080p 分辨率的高清视频,支持专业运镜控制与多镜头机位过渡。基于 Diffusion Transformer 时空生成架构,它在忠实保留源图主体外貌、构图与环境光影的同时,为静止画面注入自然连贯的物理动态。你可以通过 API 进行程序化调用,也可以在上方体验区直接在线试用。
Wan 2.6 Image to Video 支持上传几张参考图片?
本端点严格接收 1 张静态图片作为视频起始首帧。在 API 调用时需在 image_urls 数组中传入 1 个图片的 HTTP(S) 链接;体验区支持上传最大 10MiB 的 JPG、PNG 或 WebP 图片。
Wan 2.6 Image to Video 如何保持人物面部特征一致?
模型将输入图片作为扩散生成的先验约束,能深度锁定五官比例与人物神态。建议在提示词中延续原图的服饰与外观描述,并指定渐进式的面部微表情或肢体转动,以确保全片形态稳定。
Wan 2.6 Image to Video 可以在单张图片上开启多镜头吗?
可以。将 multi_shots 参数设为 true 时,模型会在保持首图主体一致的基础上,根据提示词自动推演多视角构图转换,且开启多镜头不会收取任何额外费用。
Wan 2.6 Image to Video 支持哪些输出时长?
输出时长支持 5 秒、10 秒和 15 秒(默认 5 秒)。静态人像微动作推荐 5 秒;需要展开完整镜头推拉或环境演变的场景可选择 10 秒或 15 秒。
Wan 2.6 Image to Video 生成 1080p 会改变原图比例吗?
不会破坏原图构图。选择 1080p 时模型会在保留原始画面纵横比与核心视觉焦点的前提下增强纹理细节与边缘清晰度,带来细腻的商业级高清动态呈现。
想要迁移参考视频的动作时该用 Wan 2.6 Image to Video 吗?
若需要根据已有视频片段参考动作节奏,应使用 Wan 2.6 Reference to Video 端点。Wan 2.6 Image to Video 专用于静态图片的动态唤醒与镜头发展。