一个 API 调用所有 AI 视频模型
如果你了解用于语言模型的 OpenRouter,那么 Revana 就是同样的思路,只是面向视频和图像生成:一个 API 密钥、一种请求格式和一个预付余额,即可使用 Seedance、Veo、Kling、Wan、Nano Banana Pro、GPT Image 2 和目录中的其他模型,并在上游线路失败时自动回退。
直接调用每个模型的问题
每个模型开发商都运行着自己的 API,有各自的账户、密钥、请求格式、任务状态流程和计费方式。对接其中三家,就意味着要维护三套集成、给三个余额充值、处理三套错误码。有些模型由多个平台以不同的价格提供,限制各不相同,容量时有时无。
当你想试一个新模型时,这些成本就显现出来了,而在 2026 年,这每隔几个月就会发生一次。每出一个新模型,你都得先做一次新的集成,才能看出它是否适合你的产品。
Revana 如何运作
- 一个密钥。注册后在控制台创建 API 密钥。它适用于目录中的所有模型。
- 一个请求。发送
POST /v1/generations,带上modelid 和input对象。每个模型的字段名都相同:prompt、image_url、end_image_url、image_urls、resolution、duration、aspect_ratio和audio。 - 任何运行之前先有价格。任务的价格取自目录,并从你的预付余额中预留。模型不支持的字段或取值,会在任何扣费之前以
422被拒绝。你还可以把max_cost_usd设为上限。 - 路由。路由器会把任务发送给该模型最便宜的线路。如果该线路失败或超时,任务会转到下一条。
- 统一的结果格式。轮询
GET /v1/generations/{id}。当状态为succeeded时,文件在output.urls中,扣费金额在cost_usd中。如果任务失败,预留会被释放。
任务是异步的:图片通常只需几秒,视频需要不到一分钟到几分钟不等。文档中有完整的字段参考和错误码。
同一个请求发给三个模型
由于请求格式是共用的,对比模型只是一个循环。这个脚本把同一条提示词发给 Seedance 2.0、Veo 3.1 Fast 和 Wan 3.0,然后打印每个结果及其费用。每个模型保留各自的选项,所以请选三个都接受的取值;这里是 720p、8 秒和 16:9。
import os
import time
import requests
API = "https://api.revana.si/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}
PROMPT = (
"A paper boat sails down a rain-soaked street gutter at dusk, "
"neon signs reflected in the water. Rain, distant traffic."
)
MODELS = ["seedance-2.0", "veo-3.1-fast", "wan-3.0"]
# Submit the same job to every model; each call returns 202 with an id.
jobs = {}
for model in MODELS:
resp = requests.post(f"{API}/generations", headers=HEADERS, json={
"model": model,
"input": {
"prompt": PROMPT,
"resolution": "720p",
"duration": 8,
"aspect_ratio": "16:9",
"audio": True,
},
"max_cost_usd": 1.5,
})
resp.raise_for_status()
jobs[model] = resp.json()["id"]
# Poll each job until it finishes.
for model, job_id in jobs.items():
while True:
job = requests.get(f"{API}/generations/{job_id}", headers=HEADERS).json()
if job["status"] in ("succeeded", "failed"):
break
time.sleep(5)
if job["status"] == "succeeded":
print(model, job["output"]["urls"][0], job["cost_usd"])
else:
print(model, "failed:", job["error"])按 2026 年 10 月的目录价格,这三个任务的费用为:
| 模型 | 请求 | 价格 |
|---|---|---|
| Seedance 2.0 | 720p、8 秒,声音已包含在费率中 | $1.20 |
| Veo 3.1 Fast | 720p、8 秒,带声音(单独计价) | $0.80 |
| Wan 3.0 | 720p、8 秒,声音已包含在费率中 | $0.72 |
max_cost_usd 为 1.5 即可覆盖这三个任务。费用超过上限的任务不会运行。
跨线路回退
线路是模型的一个上游容量来源。Revana 上的许多模型有不止一条线路,路由器会按顺序使用它们:
- 最便宜的优先。每个任务都会走接受其选项的成本最低的线路。
- 失败则转下一条。如果该线路失败或超时,任务会自动转到下一条线路。
attempts字段会显示尝试了多少条。 - 同一个模型,同一个价格。每条线路提供的都是你请求的那个模型,按标价计费。路由器绝不会换成另一个模型。
- 只收一次费。只有成功的那条线路会收费。如果所有线路都失败,任务会以
failed结束,且不收费。
| 模型 | 类型 | 线路 |
|---|---|---|
| Seedance 2.5 | video | 五条线路 |
| Seedance 2.0 | video | 三条线路 |
| Kling 3.0 | video | 两条线路 |
| Veo 3.1 Fast | video | 两条线路 |
| Veo 3.1 | video | 两条线路 |
| Wan 3.0 | video | 三条线路 |
| Nano Banana Pro | image | 一条线路 |
| GPT Image 2 | image | 两条线路 |
只有一条线路的模型无法回退。回退可以提高任务完成的概率,但并不是可用性保证:请在你的代码中处理 failed 的任务,例如稍后重试,或者自己切换到另一个模型。
价格与额度
Revana 采用按量付费。没有订阅,没有席位,也没有每月最低消费:你可以购买 $10、$50、$100、$500、$1,000 或 $5,000 的预付额度包,并按标价用于任何模型。
- 大多数视频模型按每秒输出计价,取决于分辨率,部分模型还取决于是否开启声音。
- 图像模型按每张图片计价,取决于尺寸。
- 价格在提交时预留,任务成功时扣费,任务失败时释放。
价格页面列出了每个模型的价格。我们的指南介绍了常见任务在 Seedance 2.0、Veo 3.1 和 Kling 3.0 上的费用。
用代码读取目录
完整的目录是位于 https://revana.si/data/models.json 的一个公开 JSON 文件。每个模型的主要字段如下:
| 字段 | 内容 |
|---|---|
id | 要作为以下参数发送的字符串 model |
name, maker | 显示名称和开发该模型的公司 |
kind | video or image |
tasks | 模型接受什么,例如 text_to_video 或 image_to_video |
options | 分辨率、宽高比、时长、声音和输入图片数量限制 |
price | 计价单位(按秒、按张或按任务)以及每个选项的价格 |
routes | 有多少条线路为该模型提供服务 |
例如,列出所有能根据文本生成视频的模型:
# Every model that can make a video from a text prompt
curl -s https://revana.si/data/models.json \
| jq -r '.models[] | select(any(.tasks[]; . == "text_to_video")) | .id'你可以用它来构建模型选择器、在提交前检查选项,或在你自己的界面中估算任务价格。模型页面使用的也是同样的数据。
切换之前需要了解的事
- 各模型的选项不同。字段名是共用的,但每个模型接受各自的取值。例如 Kling 3.0 没有列出宽高比选项。在更改
model字符串之前,请先查看模型页面。 - 输出链接会过期。请下载完成的文件,并保存在你自己的存储中。
- 模型由你选择。路由只改变任务在哪里运行,绝不改变运行它的是什么模型。回退到另一个模型,需要由你的代码来决定。
- 价格可能变化。目录始终显示当前价格,而每个任务的价格在你提交时就已固定。
准备好试试了吗?获取 API 密钥,浏览模型,或者从快速开始入手。
常见问题
有能调用所有 AI 视频模型的 API 吗?
Revana 为主要的视频和图像模型提供一个 API 密钥、一种请求格式和一个预付余额,包括 Seedance、Veo、Kling、Wan、Hailuo、Grok Imagine、Nano Banana 和 GPT Image。每个模型保留各自的选项和价格。
Revana 与 OpenRouter 有什么相似之处?
OpenRouter 为开发者提供一个调用众多语言模型的 API。Revana 为视频和图像生成模型做同样的事:一个密钥、一个余额,并在同一个模型的多个容量来源之间路由。
上游线路失败时会发生什么?
如果模型有多条线路,路由器会按相同的标价把任务转到下一条线路。如果所有线路都失败,任务会以失败结束,预留的金额会被释放。
如果我用的模型不可用,Revana 会切换到别的模型吗?
不会。路由器只更换线路,绝不更换模型。如果你想回退到另一个模型,请在你的代码中通过发送一个使用不同模型 id 的新请求来实现。
如何计费?
你可以购买 $10 到 $5,000 的预付额度包,无需订阅。每个任务按目录定价,提交时预留,只有成功时才会扣费。
如何用代码获取模型和价格列表?
请求 https://revana.si/data/models.json。它列出了每个模型的 id、开发商、任务、选项、价格和线路数。