practice · 2026-09-22
把一张效果图变成 5 秒镜头:万相图生视频的三个账单陷阱
wan2.6-i2v-flash 只需要一张首帧图和一个运动提示词,但它的两个参数默认值都不是便宜的那个。
模型
wan2.6-i2v-flash(通义万相,图生视频,单镜头)
输入
一张首帧图 + 一段运动提示词,图片以 data URI 内联,无需对象存储
接口形态
只有异步:必须传 X-DashScope-Async: enable,然后轮询任务
我们的输出
1024×768 的输入 → 1108×830 / 5.007 秒 / H.264 MP4,约 5.5 MB
一条 5 秒 720P 的成本
无声 ¥0.75,有声 ¥1.50(北京地域价目,按秒计费)
最容易漏的参数
audio 默认 true、resolution 默认 1080P —— 两个默认值都是贵的那一档
一张 1024×768 的室内效果图,一句运动提示词,五秒后拿到一段可以发出去的镜头。这是图生视频里最省事的一档,也是我们六月份给渲见(RenVi)做营销素材时走的那条路。
结论先放这里:模型本身没坑,坑在两个参数的默认值上。

我们实际跑出来的东西
| 项目 | 实测值 |
|---|---|
| 模型 | wan2.6-i2v-flash |
| 输入 | 一张效果图,以 data URI 内联 |
| 请求参数 | resolution: 720P、duration: 5 |
| 输出 | 1108×830、5.007 秒、H.264、约 5.5 MB |
| 附带音轨 | 有,AAC 立体声 44.1 kHz |
| 单条成本 | ¥1.50(本该是 ¥0.75) |
那个 AAC 音轨不是我们要的 —— 是没人告诉模型不要。下面三节就是那三个参数。
首尾两帧放在一起是这样,五秒里只有一次缓慢的推镜:

一、audio 默认是开着的,价格正好翻倍
官方文档在 audio 这一栏写的是:
可选值:true:默认值,输出有声视频。false:输出无声视频。
而价格页同一行模型是这样标的:720P 有声 0.3 元/秒,无声 0.15 元/秒;1080P 有声 0.5 元/秒,无声 0.25 元/秒。
也就是说,不写 audio 就是按有声计费。五秒的有声 720P 是 ¥1.50,无声是 ¥0.75 —— 差的这一块钱,买到的是一段你根本没打算用的 AI 环境音。
我们那批素材就是这么付的:三条片子的文件里都带着音轨,因为当时的脚本 parameters 里只有 resolution 和 duration。复现脚本现在默认 audio: false,要声音得显式写 --audio true。
二、resolution 不是清晰度开关,是像素预算 —— 而且默认 1080P
文档里这句话值得读两遍:
模型根据选择的分辨率档位,自动缩放至相近总像素,视频宽高比将尽量与输入图像 img_url 的宽高比保持一致。
所以选 720P 拿到的不一定是 1280×720。我们的输入是 4:3(1024×768),输出就是 1108×830 —— 91.96 万像素,和 1280×720 的 92.16 万几乎一样。它是「给够这么多像素,形状跟着你的图走」,不是「裁成 16:9」。
更要紧的是同一段文档的另一句:wan2.6-i2v-flash 的 resolution 默认值是 1080P。不写它,就按 1080P 的价钱算,哪怕你的输入图只有 1024 宽、根本喂不出真 1080P 的细节。
三、duration 是 2–15 的整数,不是 5/10 两档
网上关于图生视频的笔记很多写「只有 5 秒和 10 秒」,那说的是 wan2.6-i2v-us。flash 这一档的文档原文是:
取值为[2, 15]之间的整数。默认值为 5。
也就是说 7 秒、9 秒、13 秒都可以,单价按秒线性计费。做产品展示时,比「五秒切下一张」好看得多的用法是一张图 12 秒慢慢推,成本仍然是一秒一秒算的。
接口只有一个模式:异步
这个接口没有同步调用这一回事。请求必须带上 X-DashScope-Async: enable,否则直接报错 —— 原文是「HTTP 请求只支持异步,必须设置为 enable」,缺少这个头会返回 current user api does not support synchronous calls。
拿到 task_id 之后轮询,状态就六种:PENDING、RUNNING、SUCCEEDED、FAILED、CANCELED、UNKNOWN。UNKNOWN 不是「还没好」,是「任务不存在」—— 任务 ID 只保留 24 小时,结果链接也是:
链接有效期 24 小时,可通过此 URL 下载视频。视频格式为 MP4(H.264 编码)。
所以「提交完先去干别的,回头再下载」这种做法,隔夜就失效了。脚本里轮询完成立刻落盘,不是洁癖,是必须。
复现
脚本在这个仓库里,零依赖,只用 Node 和 DashScope 的接口:
export QWEN_API_KEY=sk-... # 或 DASHSCOPE_API_KEY
node scripts/wan-i2v.mjs \
--image room.jpg \
--prompt "slow cinematic dolly-in through the cozy renovated living room, gentle smooth camera motion, soft warm natural light, photorealistic, stable, no people" \
--resolution 720P --duration 5 \
--log run.json
- 默认
--audio false(省钱那档),要声音加--audio true - 图片直接读本地文件转 data URI,不需要对象存储,也不需要先把图传到公网
- 每 8 秒轮询一次,最多 40 次;超时和
FAILED都会报错退出,不会留下一段空文件 - 跑完把
task_id、轮询次数、实际耗时、文件大小写进run.json
我们那批素材的量测日志在 research/wan-i2v/measured-2026-09-22.json,每条片子都带 sha256,尺寸、时长、音轨、字节数都可以自己复算。
这四个参数的取舍
| 参数 | 默认 | 建议 | 为什么 |
|---|---|---|---|
audio | true(有声) | 显式写 false | 无声 720P ¥0.15/秒,有声 ¥0.3/秒,正好一倍 |
resolution | 1080P | 按输入图的实际像素选 | 720P 和 1080P 是 ¥0.15 / ¥0.25 每秒;输入只有 1024 宽时,1080P 是白付的钱 |
duration | 5 | 2–15 的整数,按内容节奏选 | 按秒计费,镜头需要多久就给多久 |
watermark | false | 保持 false | 商用素材不该带「AI 生成」角标 |
这条链能做到哪、做不到哪
- 能做:把一张已经满意的静图变成有镜头运动的短视频,用于商品页、社媒、效果图转视频。成本是每条几毛到一块多。
- 不做:长视频、多镜头叙事(那是
shot_type: multi,另一档模型)、把糟糕的图救回来 —— 输入决定上限,模型只负责给它加运动。 - 一个真实的边界:我们这次是拿 AI 生成的效果图当首帧。真实照片同样可以,但房间的结构、透视关系会跟着动,出现金属反射、灯光逻辑错误时,多半要减小运动幅度重跑,而不是加大提示词。
五秒的镜头,成本七毛五。这个价钱意味着可以为每个风格各出一条,而不是精挑细选只做一条 —— 营销素材的供给量,比单条质量更容易做出差别。
证据
-
图生视频接口只支持异步调用:请求必须带 X-DashScope-Async: enable。
HTTP 请求只支持异步, 必须设置为 enable
help.aliyun.com · 已核验
-
缺少异步请求头时接口直接报错,不存在同步等待视频的用法。
缺少此请求头将报错:“current user api does not support synchronous calls”
help.aliyun.com · 已核验
-
resolution 决定的是总像素预算,输出宽高比会尽量跟随输入图,而不是固定裁成 16:9。
模型根据选择的分辨率档位,自动缩放至相近总像素, 视频宽高比将尽量与输入图像 img_url 的宽高比保持一致
help.aliyun.com · 已核验
-
wan2.6-i2v-flash 的 resolution 可选 720P / 1080P,默认值是 1080P(也就是贵的那一档)。
wan2.6-i2v-flash:可选值:720P、1080P。默认值为 1080P 。
help.aliyun.com · 已核验
-
wan2.6-i2v-flash 的 duration 取值是 [2, 15] 之间的整数,默认 5 秒,而不是只有 5 秒和 10 秒两档。
wan2.6-i2v-flash:取值为[2, 15]之间的整数。默认值为 5。
help.aliyun.com · 已核验
-
audio 的默认值是 true,也就是默认输出有声视频;想要无声必须显式写 false。
可选值: true:默认值,输出有声视频。 false:输出无声视频。
help.aliyun.com · 已核验
-
官方文档写明 audio 直接影响费用,有声与无声按不同价格计费。
audio 直接影响费用,有声视频与无声视频价格不同
help.aliyun.com · 已核验
-
结果视频的下载链接只有 24 小时有效期,格式为 MP4(H.264 编码)。
链接有效期 24 小时,可通过此 URL 下载视频。视频格式为 MP4(H.264 编码)。
help.aliyun.com · 已核验
-
异步任务的状态枚举包含 PENDING、RUNNING、SUCCEEDED、FAILED、CANCELED 和 UNKNOWN,其中 UNKNOWN 表示任务不存在而非尚未完成。
PENDING:任务排队中 RUNNING:任务处理中 SUCCEEDED:任务执行成功 FAILED:任务执行失败 CANCELED:任务已取消 UNKNOWN:任务不存在或状态未知
help.aliyun.com · 已核验
-
北京地域 wan2.6-i2v-flash 按输出秒数计费:720P 有声 0.3 元/秒、无声 0.15 元/秒;1080P 有声 0.5 元/秒、无声 0.25 元/秒。
有声视频 audio=true 720P 0.3 元/秒 50 秒 1080P 0.5 元/秒 无声视频 audio=false 720P 0.15 元/秒 1080P 0.25 元/秒
help.aliyun.com · 已核验
-
1024×768 的输入图,在 720P 档位下产出的是 1108×830(91.96 万像素,与 1280×720 的 92.16 万相当),印证了「相近总像素 + 跟随输入宽高比」。
"width": 1108, "height": 830, "pixels": 919640
-
我们那批片子每条都带 AAC 立体声音轨,因为当时的请求没有传 audio,默认按有声生成(并计费)。
"codec": "aac", "channels": 2, "sample_rate": 44100
-
量测出的成片时长是 5.007 秒,与请求的 5 秒一致。
"duration_seconds": 5.007
-
复现脚本每 8 秒轮询一次,最多 40 次。
export const POLL_INTERVAL_MS = 8000; export const MAX_POLLS = 40;
-
复现脚本显式发送 audio: false,不把「贵一倍」交给服务端的默认值。
Sent explicitly: the API's own default is `true`, and silence is half the price. audio = false,
链接
一张照片进去,几秒后出来一张能用的效果图
上面那条链的起点,是渲见(RenVi)里最常见的一个动作:把家里的房间照片传上去,选一个风格,等几秒。 效果图满意了,再往「变成镜头」这一步走。 视频只是素材的一种形态;真正决定转化的是第一张图好不好看、要等多久。
上传房间照片,免费出一张效果图