Begin exactly from Image 1 and finish on Image 2. In one continuous five-second shot, the suited tabby cat leans forward with mock seriousness, then suddenly face-plants into the keyboard. Papers twitch. The coffee cup stays put. Camera: locked medium shot with a tiny downward tilt at the impact. No cuts. Preserve the cat's face markings, suit, tie, desk, and lighting. Synchronized audio: chair creak, rapid keyboard clacks, a muffled meow. No readable text, letters, numbers, captions, labels, logos, brands, watermarks, advertisements, posters, UI screens, or product packaging.
Wan 3.0 Image-to-Video API
alibaba/wan-3.0/image-to-videoWan 3.0(Image-to-Video)将首帧图片与可选提示词转化为动态视频,支持可选尾帧精准定位和 2–30 秒单次连续生成。它能够牢固保留原始人物面貌、主体质感与背景构图,同时根据指令为画面注入流畅连贯的物理运动与同步声效。
输入


输出
已就绪继续使用
示例
REST API 规格
快速开始
传入起始图片 URL 提交图生视频任务,并轮询状态接口获取高清成片结果。
第一步:配置 API 鉴权
在控制台申请 API Key,并在每个 HTTP 请求头中携带 Authorization: Bearer <API_KEY> 进行身份验证。
- 任务提交端点
- POST
https://api.vidgo.ai/api/generate/submit - 鉴权请求头
- Authorization: Bearer VIDGO_API_KEY
第二步:提交图生视频任务
向 /api/generate/submit 端点发起 POST 请求,指定 model 为 alibaba/wan-3.0/image-to-video,在 input 中填入 image_urls 数组与可选参数。
REQUEST_BODY=$(cat <<'JSON'
{
"model": "alibaba/wan-3.0/image-to-video",
"input": {
"prompt": "Begin exactly from Image 1 and finish on Image 2. In one continuous five-second shot, the suited tabby cat leans forward with mock seriousness, then suddenly face-plants into the keyboard. Papers twitch. The coffee cup stays put. Camera: locked medium shot with a tiny downward tilt at the impact. No cuts. Preserve the cat's face markings, suit, tie, desk, and lighting. Synchronized audio: chair creak, rapid keyboard clacks, a muffled meow. No readable text, letters, numbers, captions, labels, logos, brands, watermarks, advertisements, posters, UI screens, or product packaging.",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "adaptive",
"audio": true,
"enable_safety_checker": true,
"image_urls": [
"https://cdn.vidgo.ai/apis/models/alibaba/wan-3.0/image-to-video/v1/01/input-01.jpg",
"https://cdn.vidgo.ai/apis/models/alibaba/wan-3.0/image-to-video/v1/01/input-02.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": "task-wan30-i2v-445891",
"status": "running",
"created_time": "2026-09-16T08:35: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-3.0/image-to-video",
"input": {
"prompt": "Begin exactly from Image 1 and finish on Image 2. In one continuous five-second shot, the suited tabby cat leans forward with mock seriousness, then suddenly face-plants into the keyboard. Papers twitch. The coffee cup stays put. Camera: locked medium shot with a tiny downward tilt at the impact. No cuts. Preserve the cat's face markings, suit, tie, desk, and lighting. Synchronized audio: chair creak, rapid keyboard clacks, a muffled meow. No readable text, letters, numbers, captions, labels, logos, brands, watermarks, advertisements, posters, UI screens, or product packaging.",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "adaptive",
"audio": true,
"enable_safety_checker": true,
"image_urls": [
"https://cdn.vidgo.ai/apis/models/alibaba/wan-3.0/image-to-video/v1/01/input-01.jpg",
"https://cdn.vidgo.ai/apis/models/alibaba/wan-3.0/image-to-video/v1/01/input-02.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 内部所支持的图生视频参数:
| 字段 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
| image_urls | array[string] | 是 | - | 图片 URL 数组,支持 1–2 个元素;第一项为首帧图片,可选第二项为尾帧图片。 |
| prompt | string | 否 | - | 可选文本提示词,指导镜头移动、角色动作与声音,长度支持 1–20,000 字符。 |
| duration | integer | 否 | 5 | 生成视频时长,支持 2–30 之间的整数秒。 |
| resolution | string | 否 | 720p | 分辨率枚举值,可选 480p、720p 或 1080p。 |
| aspect_ratio | string | 否 | adaptive | 画面比例,可选 adaptive(跟随原图)、16:9、4:3、1:1、3:4 或 9:16。 |
| audio | boolean | 否 | true | 是否伴随视频生成原生同步音轨,开启与关闭同价。 |
| seed | integer | 否 | - | 随机种子值(0–2,147,483,647),固定种子有助于重现类似运动走势。 |
| enable_safety_checker | boolean | 否 | true | 是否开启安全审查过滤。 |
响应字段(查询结果)
通过 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任务已成功提交入队,正等待图像特征提取与 GPU 计算调度。
running计算节点正在执行基于首尾帧条件的时空扩散去噪与音画合成计算。
finished视频已生成并上传持久化存储,可从 data.files[0].file_url 获取播放及下载地址。
failed任务因素材下载失败、参数校验不通过或安全审核终止,读取 data.error_message 获知原因。
轮询与异常处理
- 轮询频次推荐图生视频任务涉及图像预处理,建议提交后等待 2–3 秒开始首次轮询,后续每 3–5 秒查询一次。
- 网络波动与重试若查询网络出现 5xx 或连接超时,不代表任务失败,可稍作休眠后继续重试查询。
- 异步 Webhook 回调支持在提交请求体根层级传递 callback_url,在任务终态时系统将通过 POST 自动推送完整任务结果。
接口规格
| 规格项 | 取值 | 说明 |
|---|---|---|
| 模型标识 | alibaba/wan-3.0/image-to-video | 请求体 model 字段传递的 API 调用路由标识。 |
| 输入模式 | 1–2 张图片(首帧与可选尾帧) | 支持 JPEG、PNG、WebP,单张体积上限 30MB;可附可选提示词引导动作与运镜。 |
| 输出规格 | 30 fps / MP4 (H.264) | 标准 MP4 视频容器,内嵌 AAC 编码原生同步音轨。 |
| 单次时长 | 2–30 秒 | 支持在 2 到 30 秒闭区间内按整秒自由设置生成时长。 |
| 原生分辨率 | 480p / 720p / 1080p | 可选标清、高清与全高清三档原生输出分辨率,默认 720p。 |
Wan 3.0 Image-to-Video
Wan 3.0 Image-to-Video 由阿里通义实验室开发,能够根据一张起始图片和可选提示词生成带同步音频的高清视频。它在生成过程中持续保留原图中的角色形象、物体质感与空间构图,同时根据文字意图赋予画面逼真的物理动态、运镜轨迹与原生环境音效。
为什么选择此模式?
坚固的主体与外观一致性在长达 30 秒的连续运动中,严格锚定原图人物的面容特征、发型服饰与商品材质,避免面部畸变与结构漂移。
可选尾帧精准引导终态支持同时传入首帧与尾帧两张图片,让模型自主推断并生成平滑连贯的动作过渡与转场轨迹。
图文联合指导镜头与物理动作可结合提示词精准指导相机的推拉摇移、光影流动以及主体的行走、转身或微表情变化。
画面同步生成原生环境声音根据画面主体与动作内容自动生成拟真音效与环境底噪,无需在后期环节手动寻找音效配乐。
全规格高清画幅输出提供 480p、720p 与 1080p 阶梯分辨率,默认自适应继承原图纵横比,或按需指定标准商业比例。
参数说明
| 参数 | 要求 | 说明 |
|---|---|---|
| image_urls | 必填 | 字符串数组。包含 1–2 个公开可访问的图片 HTTP(S) 地址;第 1 张为视频首帧,可选第 2 张为视频尾帧。单张最大 30MB,支持 JPEG、PNG 和 WebP 格式。 |
| prompt | 可选 | 字符串。用于指导主体动作、镜头轨迹、光影变化和环境声效;去除首尾空格后支持 1–20,000 个字符。 |
| duration | 可选 | 整数。设置生成视频的时长,取值范围为 2–30 秒;体验区默认预设为 5 秒。 默认值 5 |
| resolution | 可选 | 字符串。指定输出视频的分辨率规格;可选 480p、720p(默认)或 1080p。 默认值 720p480p1080p |
| aspect_ratio | 可选 | 字符串。控制画面长宽比例;默认为 adaptive(自适应跟随输入图片比例),也可强制指定 16:9、4:3、1:1、3:4 或 9:16。 默认值 adaptive16:94:31:13:49:16 |
| audio | 可选 | 布尔值。控制是否同时生成与画面匹配的原生同步音频;默认为 true,与无音频输出同价。 默认值 truefalse |
| seed | 可选 | 整数。随机数种子,取值范围为 0–2,147,483,647;固定种子有助于复现相似动态走势。 |
| enable_safety_checker | 可选 | 布尔值。开启后对生成内容执行安全合规校验;默认为 true。 默认值 truefalse |
使用方法
上传清晰的首帧图片选择主体清晰、光线良好的正面或特写图片作为视频起始帧(单张最大 30MB,分辨率建议 720p 以上)。
可选配置尾帧图片如果需要视频定向收尾到特定姿态、人物表情或场景构图,可上传第二张图片作为尾帧引导目标终态。
编写动作与运镜提示词简要描述画面中发生的动态与镜头语言,例如:角色面带微笑缓缓转头看向镜头,微风吹拂发丝,镜头缓慢推近特写。
设定时长与输出规格拖动滑块设定 2–30 秒时长,选择目标分辨率(推荐 720p 或 1080p),默认画面比例设为 adaptive 以维持原图构图。
确认声音与高级设置保持音频开关开启以获取自动匹配的动作与环境音效,或根据需要固定随机数种子以重现相似动态。
提交生成并查看成片点击生成按钮提交异步任务,在右侧输出面板查看实时渲染状态,完成后即可在线播放并下载高清 MP4 视频。
计费说明
Wan 3.0 Image-to-Video 按实际生成的成片秒数计费,费率仅由选择的分辨率决定;开启或关闭音频不影响计费费率(1 积分 = $0.005)。
| 计费项 | 费率 | 说明 |
|---|---|---|
| 480p | 10 积分 / 输出秒($0.05 / 秒) | 基础高清规格。生成默认 5 秒为 50 积分($0.25);生成最长 30 秒为 300 积分($1.50)。 |
| 720p(默认) | 20 积分 / 输出秒($0.10 / 秒) | 主流高清规格。生成默认 5 秒为 100 积分($0.50);生成最长 30 秒为 600 积分($3.00)。 |
| 1080p | 40 积分 / 输出秒($0.20 / 秒) | 旗舰全高清规格。生成默认 5 秒为 200 积分($1.00);生成最长 30 秒为 1200 积分($6.00)。 |
适用场景
电商商品动态展示将商品白底图或场景静物照转化为光影流转的展示短片,立体呈现产品细节与质感。
角色立绘与肖像动态化为动漫角色、游戏立绘或艺术肖像赋予自然的呼吸、眨眼、发丝飘动与生动微表情。
照片纪念影像动态唤醒输入风景或历史人物纪念照片,生成逼真的动态回溯画面并搭配真实生动的环境声场。
分镜首尾帧转场过渡输入分镜开场与结尾画面,自动生成平滑细腻的运动补间与视觉转场衔接。
创作技巧
- 优先使用高质量首帧源图:首帧图像的分辨率和光影质量直接决定成片质感,建议输入主体边缘锐利、光线层次分明的原图素材。
- 首尾帧风格与主体保持协调:使用尾帧时,两张图的人物身份、服饰质感与光影基调越接近,中间补间运动的流畅度和稳定性越高。
- 提示词聚焦动作增量而非重述外观:由于画面主体外观已由原图决定,提示词应重点描述动作的变化过程、物理运动幅度与摄影机推拉轨迹。
- 推荐保持自适应比例 adaptive:若输入图片并非标准 16:9 或 9:16,保持 adaptive 可避免对源图进行非必要的内容裁剪与形变拉伸。
- 合理匹配动作幅度与时长:较大幅度的肢体动作建议搭配 8–15 秒生成时长,给模型足够的连续帧空间展现细腻的物理力学过程。
注意事项
- 首尾帧数量限制:本端点必须提供 1 张首帧图片,可选再提供 1 张尾帧图片,单次请求最多支持上传 2 张图片。
- 图片格式与体积要求:单张图片文件体积不得超过 30MB,支持标准的 JPEG、PNG 和 WebP 格式,请确保链接可公网直接访问。
- 整秒时长设定:duration 参数接受 2–30 之间的整数秒,请勿传递浮点数或超出该区间的数值。
Wan 3.0 Image-to-Video API — 常见问题
Wan 3.0 Image-to-Video API 是什么?
Wan 3.0 Image-to-Video 是阿里通义实验室研发的图像生成视频模型。它以静态首帧图片为视觉起点并支持可选尾帧图片,生成最长 30 秒、最高 1080p 分辨率、包含原生同步音频的连续视频。基于 Diffusion Transformer 与 Wan-VAE 3D 时空架构,它在牢固继承原图人物面貌、服装质感与光影构图的同时,赋予画面平滑自然的物理运动。你可以通过 API 进行程序化调用,也可以在上方体验区直接在线试用。
Wan 3.0 图生视频如何指定尾帧引导成片画面?
在 image_urls 数组中传入第二张公开图片链接作为尾帧。模型会自动解析首尾两帧的构图与主体差异,在设定的时长内构建平滑自然的镜头位移与动作演化,实现高度可控的定点动作衔接。
Wan 3.0 图生视频能精准保留原图的衣服质感与面容吗?
能。模型将首帧图片作为外观与构图的锚点,忠实保留角色的面容细节、衣物褶皱纹理与场景固有光照。在提示词中说明具体的运镜方向或肢体位移,可确保角色在运动展开时保持外观前后一致。
只有一张静态图时 Wan 3.0 图生视频会自动生成音效吗?
会。模型具备全模态音画联合生成能力,当 audio 保持开启时,即使未额外提供音频素材,模型也会深度理解首帧画面环境与提示词动作,自动为成片配上精准对齐的环境声场与动作音效。
Wan 3.0 图生视频支持生成竖屏 9:16 短视频吗?
支持。当 aspect_ratio 设为 adaptive 时,视频会默认继承首帧原图的长宽比;若原图不是 9:16,也可以显式选择 9:16 强制生成竖屏视频,满足移动端短视频创作需求。
Wan 3.0 图生视频在长达 30 秒生成中动作会崩解吗?
不会。模型依托前沿的时空连续性建模能力,在 30 秒长时段内能稳定维持物体的物理真实感。建议对于大幅度长镜头,在提示词中规划渐进式的平稳运镜或分段动作节奏,避免瞬时剧烈形变。
有首帧图片时该用 Wan 3.0 图生视频还是参考生视频?
如果成片的开场镜头必须严格以这张图片为第一帧起始画面,应选用图生视频端点;如果只是需要提取图片中的人物容貌或商品细节,而新视频的起始画面和机位需要完全重新设计,则应选用参考生视频端点。
