模型指南

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 对比
Wan 3.0Wan 3.0 Prime
任务文生视频、图生视频、首尾帧、参考图和视频生视频文生视频、图生视频、首尾帧和参考图
分辨率480p、720p 和 1080p480p、720p 和 1080p
时长2 至 30 秒2 至 30 秒
宽高比adaptive、16:9、4:3、1:1、3:4、9:16 或 21:9adaptive、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 与 Prime 每秒及每段片段的价格
分辨率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:

较早的 Wan 模型
模型任务时长声音起价 / 秒线路
Wan 2.6文生视频、图生视频和视频生视频5、10 或 15 秒yes$0.07两条线路
Wan 2.7文生视频、图生视频、首尾帧、视频生视频和参考图2 至 15 秒no$0.09两条线路

生成一段 15 秒的 Wan 3.0 片段

发送 POST /v1/generations 并带上 "model": "wan-3.0",然后轮询该生成任务直到完成。这段 15 秒、720p、带声音的片段费用为 $1.35。

cURL
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"
Python
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.js
// 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 会让画面与你的输入图片一致。

一个密钥,调用 Wan 3.0

用同一个密钥和请求格式运行 Wan 3.0、Wan 3.0 Prime 以及所有其他模型。预付额度 $10 起。