Wan 3.0 API:30 秒视频、价格和代码
Wan 3.0 是 Alibaba 带声音的视频模型,提供五种控制片段的方式,时长从 2 到 30 秒。本文介绍 API 接受的内容、各时长和分辨率的价格,以及调用方式。
Wan 3.0 提供什么
Wan 是 Alibaba 的视频模型系列,而 Wan 3.0 是 Revana 目录中最新一代的 Wan。它接受以下内容:
- 五种输入模式。文生视频、图生视频、首尾帧、参考图和视频生视频。
- 宽泛的时长范围。每段片段 2 到 30 秒,所以 2 秒的快速测试和完整的 30 秒成片都使用同一个模型。
- 画面与声音同步。把
audio设为true,即可在同一次生成中得到环境音、音效和语音。 - 适配各种渠道的画幅。可选 adaptive、16:9、4:3、1:1、3:4、9:16 或 21:9。
- 最多 10 张参考图,用于角色、产品和场景。
我们不公布质量评分或排名。目录会告诉你模型接受什么、价格是多少;它的输出是否适合你的产品,需要你用自己的提示词去测试。
选 Wan 3.0 还是 Wan 3.0 Prime?
两者都在 Revana 上。目录中两者列出的分辨率、时长和参考图数量上限相同。目录显示的差异是:Prime 不提供视频生视频和 21:9,并且有自己的每秒费率(见下方价格表)。
| Wan 3.0 | Wan 3.0 Prime | |
|---|---|---|
| 任务 | 文生视频、图生视频、首尾帧、参考图和视频生视频 | 文生视频、图生视频、首尾帧和参考图 |
| 分辨率 | 480p、720p 和 1080p | 480p、720p 和 1080p |
| 时长 | 2 至 30 秒 | 2 至 30 秒 |
| 宽高比 | adaptive、16:9、4:3、1:1、3:4、9:16 或 21:9 | adaptive、16:9、4:3、1:1、3:4 或 9:16 |
| 参考图 | 最多 10 张 | 最多 10 张 |
| 起价 | $0.05 / s | $0.07 / s |
| 线路 | 三条线路 | 三条线路 |
一个实用的选择方法:用同样的三四条提示词在 480p 下分别跑两个模型,5 秒测试在 Wan 3.0 上费用为 $0.25,在 Prime 上为 $0.35,然后并排比较结果。
Wan 3.0 价格(2026年10月)
两个模型都按输出视频每秒计费,每种分辨率只有一个费率,无论是否带声音。
| 分辨率 | Wan 3.0 / 秒 | 10 秒视频 | 30 秒视频 | Prime / 秒 | Prime 30 秒 |
|---|---|---|---|---|---|
| 480p | $0.05 | $0.50 | $1.50 | $0.07 | $2.10 |
| 720p | $0.09 | $0.90 | $2.70 | $0.13 | $3.90 |
| 1080p | $0.17 | $1.70 | $5.10 | $0.26 | $7.80 |
提交时,任务的价格会从你的预付余额中预留;只有任务成功才会扣费,失败则释放预留。金额以 cost_usd 返回。额度包和各模型费率请见价格页面。
Wan 2.6 和 Wan 2.7
之前的 Wan 模型仍然可用,支持 720p 和 1080p:
生成一段 15 秒的 Wan 3.0 片段
发送 POST /v1/generations 并带上 "model": "wan-3.0",然后轮询该生成任务直到完成。这段 15 秒、720p、带声音的片段费用为 $1.35。
export REVANA_API_KEY="sr_live_..."
# 1. Submit the job (returns 202 with the generation id)
curl https://api.revana.si/v1/generations \
-H "Authorization: Bearer $REVANA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan-3.0",
"input": {
"prompt": "A hot air balloon rises over a misty valley at sunrise. Shot 1: wide shot as the balloon lifts off a meadow. Shot 2: view from the basket as the valley opens up below. Shot 3: the balloon drifts past the camera into the sun. Burner roar, birdsong, wind.",
"resolution": "720p",
"duration": 15,
"aspect_ratio": "16:9",
"audio": true
},
"max_cost_usd": 2
}'
# 2. Poll with the id from step 1 until status is "succeeded" or "failed"
curl https://api.revana.si/v1/generations/gen_01JBX7Q2M4 \
-H "Authorization: Bearer $REVANA_API_KEY"import os
import time
import requests
API = "https://api.revana.si/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}
resp = requests.post(f"{API}/generations", headers=HEADERS, json={
"model": "wan-3.0",
"input": {
"prompt": "A hot air balloon rises over a misty valley at sunrise. Shot 1: wide shot as the balloon lifts off a meadow. Shot 2: view from the basket as the valley opens up below. Shot 3: the balloon drifts past the camera into the sun. Burner roar, birdsong, wind.",
"resolution": "720p",
"duration": 15,
"aspect_ratio": "16:9",
"audio": True,
},
"max_cost_usd": 2,
})
resp.raise_for_status()
job = resp.json()
while job["status"] in ("queued", "running"):
time.sleep(5)
job = requests.get(f"{API}/generations/{job['id']}", headers=HEADERS).json()
if job["status"] == "succeeded":
print(job["output"]["urls"], job["cost_usd"])
else:
print("Failed:", job["error"])// Node 18 or later. Save as generate.mjs and run: node generate.mjs
const API = "https://api.revana.si/v1";
const headers = {
Authorization: `Bearer ${process.env.REVANA_API_KEY}`,
"Content-Type": "application/json",
};
const res = await fetch(`${API}/generations`, {
method: "POST",
headers,
body: JSON.stringify({
model: "wan-3.0",
input: {
prompt: "A hot air balloon rises over a misty valley at sunrise. Shot 1: wide shot as the balloon lifts off a meadow. Shot 2: view from the basket as the valley opens up below. Shot 3: the balloon drifts past the camera into the sun. Burner roar, birdsong, wind.",
resolution: "720p",
duration: 15,
aspect_ratio: "16:9",
audio: true,
},
max_cost_usd: 2,
}),
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
let job = await res.json();
while (job.status === "queued" || job.status === "running") {
await new Promise((r) => setTimeout(r, 5000));
job = await (await fetch(`${API}/generations/${job.id}`, { headers })).json();
}
if (job.status === "succeeded") console.log(job.output.urls, job.cost_usd);
else console.error("Failed:", job.error);第一次调用会返回 202,其中包含生成任务的 id,状态为 queued。一个已完成的任务如下所示:
{
"id": "gen_01JBX7Q2M4",
"model": "wan-3.0",
"status": "succeeded",
"output": {
"urls": [
"https://cdn.revana.si/g/gen_01JBX7Q2M4/0.mp4"
]
},
"cost_usd": 1.35,
"attempts": 1,
"error": null,
"created_at": "2026-10-19T14:02:11Z",
"completed_at": "2026-10-19T14:03:47Z"
}让图片动起来
把图片作为 image_url 发送。使用 adaptive 时,模型会让画面与你的图片一致。这段 8 秒、1080p 的片段费用为 $1.36。
{
"model": "wan-3.0",
"input": {
"prompt": "The waves in the painting start to move and crash against the rocks while the clouds drift slowly. Ocean surf, gulls.",
"image_url": "https://example.com/painting.jpg",
"resolution": "1080p",
"duration": 8,
"aspect_ratio": "adaptive",
"audio": true
},
"max_cost_usd": 2
}参考图
把最多 10 张图片作为 image_urls 传入,并按位置引用每一张。这段 12 秒的方形片段费用为 $1.08。
{
"model": "wan-3.0",
"input": {
"prompt": "The robot from the first image waters the plants in the greenhouse from the second image, then stops to watch a butterfly. Soft electronic hum, dripping water.",
"image_urls": [
"https://example.com/robot.jpg",
"https://example.com/greenhouse.jpg"
],
"resolution": "720p",
"duration": 12,
"aspect_ratio": "1:1",
"audio": true
},
"max_cost_usd": 2
}Wan 3.0 还列有视频生视频,由源片段引导新片段。起始帧和结束帧的用法与其他模型一样:image_url 加上 end_image_url。
Wan 3.0 提示词技巧
- 用极短的片段测试运动。Wan 3.0 接受短至 2 秒的片段,所以在 480p 下做一次快速的运动测试只需 $0.10。
- 长片段用分镜清单。对于 15 到 30 秒的片段,给镜头编号,并为每个镜头写明主体、动作和运镜。
- 描述声音。说明持续存在的底噪(风声、人群、音乐)以及特定时刻发生的声音(开门、一句对白)。如果不想要音乐,就写“无音乐”。
- 控制出场角色数量。在长片段中,一两个角色比一群人更可靠地保持一致。
- 文字留给剪辑软件。在当前的视频模型上,画面中的准确文字并不可靠。
路由与回退
目前在 Revana 上,Wan 3.0 有三条线路,Wan 3.0 Prime 有三条线路。路由器会先把每个任务发送到最便宜的线路,如果失败或超时,就转到下一条。每条线路提供的都是同一个模型、同样的标价,你只会被扣费一次,且只针对成功的那条线路。
回退能提高拿到结果的概率,但并不是可用性保证。如果所有线路都失败,任务会以 failed 结束,不产生任何费用。
在模型页面浏览所有 Wan 模型,阅读 API 文档,或者获取 API 密钥运行这些示例。
常见问题
Wan 3.0 API 多少钱?
2026年10月,Wan 3.0 在 480p 下每秒 $0.05,720p 下 $0.09,1080p 下 $0.17,均含声音。一段 10 秒 720p 的片段是 $0.90。
Wan 3.0 的视频最长能有多长?
每个请求 2 至 30 秒,通过 duration 字段设置。
Wan 3.0 和 Wan 3.0 Prime 有什么区别?
Prime 起价为每秒 $0.07,而 Wan 3.0 为 $0.05,并且不提供视频生视频和 21:9。分辨率、时长和参考图数量上限相同。选择之前请用你自己的提示词分别测试。
Wan 3.0 会生成音频吗?
会。把 audio 设为 true,随画面生成声音;设为 false 则静音。两种情况价格相同。
Wan 3.0 接受多少张参考图?
最多 10 张,以 image_urls 发送。在提示词中按位置引用每张图。
Wan 3.0 支持哪些宽高比?
Wan 3.0 列有 adaptive、16:9、4:3、1:1、3:4、9:16 和 21:9。adaptive 会让画面与你的输入图片一致。