工作原理

一个 API 调用所有 AI 视频模型

如果你了解用于语言模型的 OpenRouter,那么 Revana 就是同样的思路,只是面向视频和图像生成:一个 API 密钥、一种请求格式和一个预付余额,即可使用 Seedance、Veo、Kling、Wan、Nano Banana Pro、GPT Image 2 和目录中的其他模型,并在上游线路失败时自动回退。

直接调用每个模型的问题

每个模型开发商都运行着自己的 API,有各自的账户、密钥、请求格式、任务状态流程和计费方式。对接其中三家,就意味着要维护三套集成、给三个余额充值、处理三套错误码。有些模型由多个平台以不同的价格提供,限制各不相同,容量时有时无。

当你想试一个新模型时,这些成本就显现出来了,而在 2026 年,这每隔几个月就会发生一次。每出一个新模型,你都得先做一次新的集成,才能看出它是否适合你的产品。

Revana 如何运作

  1. 一个密钥。注册后在控制台创建 API 密钥。它适用于目录中的所有模型。
  2. 一个请求。发送 POST /v1/generations,带上 model id 和 input 对象。每个模型的字段名都相同:prompt、image_url、end_image_url、image_urls、resolution、duration、aspect_ratio 和 audio。
  3. 任何运行之前先有价格。任务的价格取自目录,并从你的预付余额中预留。模型不支持的字段或取值,会在任何扣费之前以 422 被拒绝。你还可以把 max_cost_usd 设为上限。
  4. 路由。路由器会把任务发送给该模型最便宜的线路。如果该线路失败或超时,任务会转到下一条。
  5. 统一的结果格式。轮询 GET /v1/generations/{id}。当状态为 succeeded 时,文件在 output.urls 中,扣费金额在 cost_usd 中。如果任务失败,预留会被释放。

任务是异步的:图片通常只需几秒,视频需要不到一分钟到几分钟不等。文档中有完整的字段参考和错误码。

同一个请求发给三个模型

由于请求格式是共用的,对比模型只是一个循环。这个脚本把同一条提示词发给 Seedance 2.0、Veo 3.1 Fast 和 Wan 3.0,然后打印每个结果及其费用。每个模型保留各自的选项,所以请选三个都接受的取值;这里是 720p、8 秒和 16:9。

Python
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.0720p、8 秒,声音已包含在费率中$1.20
Veo 3.1 Fast720p、8 秒,带声音(单独计价)$0.80
Wan 3.0720p、8 秒,声音已包含在费率中$0.72

max_cost_usd 为 1.5 即可覆盖这三个任务。费用超过上限的任务不会运行。

跨线路回退

线路是模型的一个上游容量来源。Revana 上的许多模型有不止一条线路,路由器会按顺序使用它们:

  • 最便宜的优先。每个任务都会走接受其选项的成本最低的线路。
  • 失败则转下一条。如果该线路失败或超时,任务会自动转到下一条线路。attempts 字段会显示尝试了多少条。
  • 同一个模型,同一个价格。每条线路提供的都是你请求的那个模型,按标价计费。路由器绝不会换成另一个模型。
  • 只收一次费。只有成功的那条线路会收费。如果所有线路都失败,任务会以 failed 结束,且不收费。
一些热门模型的线路数
模型类型线路
Seedance 2.5video五条线路
Seedance 2.0video三条线路
Kling 3.0video两条线路
Veo 3.1 Fastvideo两条线路
Veo 3.1video两条线路
Wan 3.0video三条线路
Nano Banana Proimage一条线路
GPT Image 2image两条线路

只有一条线路的模型无法回退。回退可以提高任务完成的概率,但并不是可用性保证:请在你的代码中处理 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 文件。每个模型的主要字段如下:

models.json 中的字段
字段内容
id要作为以下参数发送的字符串 model
name, maker显示名称和开发该模型的公司
kindvideo or image
tasks模型接受什么,例如 text_to_video 或 image_to_video
options分辨率、宽高比、时长、声音和输入图片数量限制
price计价单位(按秒、按张或按任务)以及每个选项的价格
routes有多少条线路为该模型提供服务

例如,列出所有能根据文本生成视频的模型:

Shell
# 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、开发商、任务、选项、价格和线路数。

一个密钥,整个目录

创建密钥,充入预付额度,就可以用同一个请求调用任何视频或图像模型。