Begin exactly at Image 1 and end at Image 2. In one continuous five-second locked shot, the same red fox slowly uncurls, plants its paws and rises to stand facing right. Preserve facial features, red fur, white chest, tail, rock and snowy woodland. Natural gentle body mechanics, no cuts or camera movement. No text, lettering, captions, logos, watermarks, brands, advertising or product packaging.
Wan 2.7 Image to Video API
alibaba/wan-2.7/image-to-videoWan 2.7 Image to Video 将静态图像转化为 2–15 秒连贯高清视频,支持首尾帧插值控制、自适应原图比例以及由提示词引导的镜头运动。它能够在赋予画面自然真实物理动效的同时,稳定保留输入图像的主体外观、面部特征、服饰质感与构图基调。
拖拽文件、粘贴剪贴板素材,或输入 URL。
1/1 个素材
拖拽文件、粘贴剪贴板素材,或输入 URL。
1/1 个素材
拖拽文件、粘贴剪贴板素材,或输入 URL。
拖拽文件、粘贴剪贴板素材,或输入 URL。
示例
REST API 规格
快速开始
提交任务并查询状态。
第一步:配置 API 鉴权
在控制台创建 API Key,提交请求时附带 Authorization: Bearer <API_KEY>。
- 任务提交端点
- POST
https://api.vidgo.ai/api/generate/submit - 鉴权请求头
- Authorization: Bearer VIDGO_API_KEY
第 2 步:提交任务
POST /api/generate/submit · alibaba/wan-2.7/image-to-video
REQUEST_BODY=$(cat <<'JSON'
{
"model": "alibaba/wan-2.7/image-to-video",
"input": {
"resolution": "720p",
"duration": 5,
"image_urls": [
"https://example.com/start.png"
]
}
}
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": "task-example",
"status": "running",
"created_time": "2026-09-21T08:00:00Z"
}
}{
"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.7/image-to-video",
"input": {
"resolution": "720p",
"duration": 5,
"image_urls": [
"https://example.com/start.png"
]
}
}
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 | 否 | — | 提示词去除首尾空格后最多 5,000 字符;图生视频可不填。 |
| image_urls | array | 是 | — | 按顺序提供 1–2 张图片:首帧必填,尾帧可选。支持 HTTP(S)、Data URI 或 Base64。 |
| audio_url | string | 否 | — | 可选的公开 HTTP(S) 音频地址。 |
| resolution | string | 否 | 720p | 720p 或 1080p,默认 720p。 |
| duration | integer | 否 | 5 | 2–15 整数秒,默认 5 秒。 |
| multi_shots | boolean | 否 | — | 可选的多镜头控制,默认不传。 |
| seed | integer | 否 | — | 可选整数,范围为 0–2147483647。 |
| enable_safety_checker | boolean | 否 | — | 可选安全检查设置,默认不传。 |
| video_url | string | 否 | — | 公开 HTTP(S) 视频地址;视频编辑必填,图生视频可选。 |
响应字段(查询结果)
通过 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已就绪
failed失败
轮询与异常处理
- 轮询频次推荐建议初始轮询间隔设为 2–3 秒,随着任务持续可递增至 5 秒一次,避免过密请求。
- 网络波动与重试若查询网络出现 5xx 或连接超时,不代表任务失败,可稍作休眠后继续重试查询。
- 异步 Webhook 回调支持在提交请求体根层级传递 callback_url,在任务终态时系统将通过 POST 自动推送完整任务结果。
接口规格
| 规格项 | 取值 | 说明 |
|---|---|---|
| 模型 | alibaba/wan-2.7/image-to-video | |
| 分辨率 | 720p / 1080p | 默认 720p |
| 时长 | 2–15 整数秒,默认 5 秒。 |
Wan 2.7 Image to Video API 常见问题
Wan 2.7 Image to Video API 是什么?
Wan 2.7 Image to Video 是阿里通义实验室研发的图像生成视频模型。它能够将单张或两张静态图片转化为 2 至 15 秒 720p 或 1080p 高清动态视频,原生支持首尾帧插值控制、主体身份保持与原图比例自适应。基于 Diffusion Transformer 架构与 Wan-VAE 3D 时空因果压缩技术,它在为静态画面注入自然连贯物理动效的同时,稳定保留原图的构图美学、主体面貌与光影细节。你可以通过 API 进行程序化调用,也可以在上方体验区直接在线试用。
Wan 2.7 Image to Video 如何实现首尾帧控制?
在 image_urls 数组中按序传入 2 张图片链接即可激活首尾帧控制。第 1 张图片将作为视频起始帧,第 2 张图片作为视频结束画面,模型会在两者之间平滑插值生成符合物理规律的动作过渡。
Wan 2.7 Image to Video 支持多长时长的视频生成?
Wan 2.7 Image to Video 支持 2 至 15 秒之间的任意整秒时长。默认生成时长为 5 秒,你可以根据剧情节奏需要指定整数 duration 参数。
使用 Wan 2.7 Image to Video 必须填写文本提示词吗?
提示词在 Wan 2.7 Image to Video 中为可选参数。留空时模型会自动依据输入图像的语义内容推理最自然的物理动态;如果填写提示词,则可以明确指导镜头的移动方向、景别切换或特定动作细节。
Wan 2.7 Image to Video 如何确定视频画幅比例?
该端点不接受独立的 aspect_ratio 宽高比参数,而是直接自适应继承输入首帧图片的原生画幅尺寸与比例,确保输出视频不发生拉伸、变形或画面裁切。
Wan 2.7 Image to Video 如何保持人物面部身份一致性?
模型通过跨注意力机制将首帧图像的主体特征嵌入深层网络骨架中。在整个生成过程中持续比对并锁定五官结构、肤质纹理与发型,防止在大幅度动作时出现面部漂移或角色变形。
Wan 2.7 Image to Video 支持多镜头多场景生成吗?
支持。通过将 multi_shots 参数设置为 true,模型可以在较长的生成时间线中引入自然的镜头分段与机位微调,为单一图像延伸出更具镜头语言的连贯表现。