跳到正文
OpenRouter Blog·· 18 天前精选AI 评分63

OpenRouter 对比 2026 年图生视频模型:成本、分辨率与控制方式

Best Image-to-Video AI Models in 2026: Cost, Resolution, and Control

AI 导读

OpenRouter 对比 Veo 3.1、Seedance、Kling 和 Grok Imagine Video 四条图生视频模型线,列出各自支持的分辨率、时长、首尾帧角色、音频选项和每秒价格。

推荐理由

OpenRouter 官方对比四家图生视频模型的分辨率、时长、首尾帧控制与每秒价格,并给出可复用的提交代码。

正文 · AI 翻译

如果你已经有视频应该从哪一帧开始的图像,那么选择图像到视频模型就取决于第一帧之后必须发生什么。片段可能需要以第二张精确的图像结束、时长超过几秒、包含生成的音频,或者保持在每秒价格之下。

我们提供的视频模型对这些需求的处理方式各不相同。本文涵盖四个模型系列:Veo 3.1、Seedance、Kling 和 Grok Imagine Video。它们并非图像到视频的全部目录。视频模型合集中有完整列表。

你可以通过同一个 视频生成 API 调用它们所有。提交、轮询和下载的生命周期对每个模型都是相同的。但每个模型接受的时长、分辨率、帧角色、音频选项和价格则各不相同。本文比较这些设置,然后展示如何使用 TypeScript SDK 提交一个图像到视频任务。

摘要

  • Veo 3.1、Fast 和 Lite 生成 4、6 或 8 秒的片段,支持首帧和尾帧控制以及生成的音频。Veo 3.1 和 Fast 最高可达 4K,Lite 止步于 1080p。
  • Seedance 2.5 生成 4 到 30 秒的片段,分辨率为 480p 或 720p,接受首帧和尾帧,并最多可接受 50 个图像、视频和音频参考素材。Seedance 2.0 系列涵盖 4 到 15 秒。
  • Kling v3.0 Standard 和 Pro 生成 3 到 15 秒的片段,分辨率为 720p,支持首帧和尾帧控制。音频是可选的,并且会改变价格。
  • Grok Imagine Video 1.5 仅从首帧生成 1 到 15 秒的片段,分辨率为 480p、720p 或 1080p,并带有生成的音频。
  • 本文中的每个模型都使用 POST /api/v1/videos。GET /api/v1/videos/models 返回每个模型支持的设置和定价 SKU。

图像在视频请求中的使用方式

图像可以定义成片视频中的某一帧,也可以作为参考素材。我们用两个不同的请求字段来处理这两种情况。

文本到视频、图像到视频和参考到视频

使用 文本到视频 时,模型仅根据你的提示词构建场景。除了提示词所描述的内容之外,你无法控制开场帧。

使用 图像到视频 时,图像会成为首帧、尾帧或两者兼有。如果产品视频必须以一张精确的产品镜头开场,这就是要使用的模式。

使用 参考到视频 时,模型接收源素材,但不将其固定到某个帧位置。你可以提供某个角色的多张图像,让模型在构图新镜头时保持其外观。

如果图像必须出现在片段中的特定位置,请使用图像到视频。如果它只需要引导结果,请使用参考到视频。

frame_images 和 input_references 字段

我们将这两种模式作为 POST /api/v1/videos 上的独立字段暴露出来。

字段作用
frame_images将图像用作精确的首帧、尾帧或两者
input_references为模型提供图像、视频或音频素材以供遵循,但不将其固定到某一帧

每个 frame_images 条目都带有一个 frame_type,取值为 first_frame 或 last_frame。并非每个模型都支持这两种角色。视频模型目录中的 supported_frame_images 数组会告诉你某个模型接受哪些角色。

如果你在一个请求中同时发送两个字段,frame_images 优先,我们会将该任务视为图像到视频。

图像到视频模型对比

这些表格涵盖 Veo、Seedance、Kling 和 Grok Imagine Video 系列。我们也提供其他图像到视频模型,视频模型合集是当前目录。

分辨率、时长、帧角色和音频设置来自GET /api/v1/videos/models。价格来自各模型页面。我们于2026年9月11日对两者进行了核对。视频定价因分辨率、音频和输入类型而异,因此请将这些数字视为对比参考,并在估算制作成本前查看模型页面。

输出设置

模型分辨率时长生成音频帧控制
google/veo-3.1720p、1080p、4K4、6、8 秒可选首帧和尾帧
google/veo-3.1-fast720p、1080p、4K4、6、8 秒可选首帧和尾帧
google/veo-3.1-lite720p、1080p4、6、8 秒可选首帧和尾帧
bytedance/seedance-2.5480p、720p4 至 30 秒可选首帧和尾帧
bytedance/seedance-2.0480p、720p、1080p、4K4 至 15 秒可选首帧和尾帧
bytedance/seedance-2.0-fast480p、720p4 至 15 秒可选首帧和尾帧
bytedance/seedance-2.0-mini480p、720p4 至 15 秒可选首帧和尾帧
kwaivgi/kling-v3.0-pro720p3 至 15 秒可选首帧和尾帧
kwaivgi/kling-v3.0-std720p3 至 15 秒可选首帧和尾帧
kwaivgi/kling-video-o1720p5 或 10 秒可选首帧和尾帧
x-ai/grok-imagine-video-1.5480p、720p、1080p1 至 15 秒是仅首帧
x-ai/grok-imagine-video480p、720p1 至 15 秒未列出仅首帧

参考输入和价格

模型参考输入价格
google/veo-3.1未列出$0.20/秒 至 $0.60/秒
google/veo-3.1-fast未列出$0.08/秒 至 $0.30/秒
google/veo-3.1-lite未列出$0.03/秒 至 $0.08/秒
bytedance/seedance-2.5最多 50 个图像、视频和音频素材480p 下 $0.1028/秒起
bytedance/seedance-2.0图像、视频和音频480p 下 $0.06726/秒起
bytedance/seedance-2.0-fast图像、视频和音频480p 下 $0.04035/秒起
bytedance/seedance-2.0-mini图像、视频和音频480p 下 $0.03363/秒起
kwaivgi/kling-v3.0-pro未列出无音频 $0.112/秒,含音频 $0.168/秒
kwaivgi/kling-v3.0-std未列出无音频 $0.084/秒,含音频 $0.126/秒
kwaivgi/kling-video-o1未列出$0.112/秒
x-ai/grok-imagine-video-1.5未列出$0.08/秒 至 $0.25/秒,另加每张输入图像 $0.01
x-ai/grok-imagine-video最多 7 张图像$0.05/秒 至 $0.07/秒,另加每张输入图像 $0.002

关于阅读这些表格的三点说明。

  • 可选音频意味着模型公开了generate_audio请求参数。Grok Imagine Video 模型未公开该参数。Grok Imagine Video 1.5 的描述称该模型可生成音效、环境音和对话,因此表格中将其标记为“是”。较早的 Grok Imagine Video 描述未提及音频,因此表格中将其标记为“未列出”。
  • 参考输入反映的是模型在其 OpenRouter 页面上的描述所述内容。未列出意味着描述中未提及参考图像、视频或音频。这并不意味着我们经过测试发现参考会被拒绝。reference-to-video cookbook 说明了如何在你基于此构建之前确认支持情况。
  • Seedance 价格按视频 token 计费,而非按秒计费。Seedance 2.0 模型页面指出,token 数量为高度乘以宽度乘以时长乘以 24,再除以 1,024。表格中的每秒数字是模型页面针对 480p 输出显示的起始费率。Seedance 2.5 列出每百万视频 token $10.70,Seedance 2.0 在 480p 和 720p 下列出 $7.00,1080p 和 4K 另有费率,Fast 列出 $4.20,Mini 列出 $3.50。带视频输入的请求使用更低的每 token 费率。

由于大多数模型按秒计费,时长也是一项成本决策。按 Seedance 2.5 每秒 $0.1028 的起价计算,4 秒片段起价约 $0.41,30 秒片段起价约 $3.08。在 720p 或不同输入配置下费用更高。

如何选择

时长和帧控制会先缩小候选范围。一旦你确定了片段必须多长,以及是否需要固定首帧、尾帧或两者都需要,就可以在剩余模型之间比较音频、分辨率和成本。

8 秒及以下且带生成音频的片段

Veo 3.1、Veo 3.1 Fast 和 Veo 3.1 Lite 可生成 4、6 或 8 秒的片段,支持 16:9 或 9:16,具备首帧和尾帧控制,并提供 generate_audio 选项。Veo 3.1 和 Fast 支持 720p、1080p 和 4K。Lite 支持 720p 和 1080p。

Lite 在 720p 无音频时起价为每秒 $0.03,Veo 3.1 在无音频时起价为每秒 $0.20,因此在提示词和运动仍在调整时,Lite 或 Fast 成本更低。image-to-video cookbook 正是出于这个原因使用了 google/veo-3.1-lite。

Veo 3.1 Fast 和 Lite 的模型描述中列出了 SynthID 水印,这是 Google 为 AI 生成内容添加的不可感知标记。如果你的工作流有来源或水印要求,请查看你计划使用的 Veo 变体的模型描述。

最长 30 秒的片段和大量参考素材

Seedance 2.5 可生成 4 到 30 秒的片段,支持 480p 或 720p,接受首帧和尾帧,并可接收最多 50 个图像、视频和音频参考素材。它是本次比较中唯一能在一次生成中产出 20 或 30 秒镜头的模型。

Seedance 2.0 系列以更低的起价覆盖 4 到 15 秒。Seedance 2.0 支持 480p、720p、1080p 和 4K。Fast 和 Mini 支持 480p 和 720p。三者的描述中都列出了图像、视频和音频参考。

如果你不需要 30 秒窗口或 50 个素材的额度,2.0 系列以更低的价格覆盖相同的首帧和尾帧工作流。

所有 Seedance 模型都仅通过托管 API 运行。我们没有找到其中任何一款的公开权重或模型许可证,因此它们都无法在本地或气隙环境中运行。

3 到 15 秒的首帧和尾帧控制

Kling v3.0 Standard 和 Pro 可生成 3 到 15 秒的片段,支持 720p、16:9、9:16 或 1:1,并具备首帧和尾帧控制。音频为可选。Standard 无音频时每秒 $0.084,有音频时每秒 $0.126。Pro 分别为 $0.112 和 $0.168。快手将 Pro 描述为更高视觉质量层级。

Kling Video O1 可生成 5 或 10 秒的片段,支持 720p,帧角色相同,价格为每秒 $0.112。当这两个时长之一已经适合该镜头时使用它。

一个起始帧和最长 15 秒的片段

Grok Imagine Video 1.5 可生成 1 到 15 秒的片段,支持 480p、720p 或 1080p,以及七种宽高比。它的 supported_frame_images 数组只列出 first_frame,因此你可以固定开场图像,但不能固定结尾图像。模型描述称其可生成音效、环境音和对话。

更早的 Grok Imagine Video 最高支持 720p,每秒成本更低。其描述列出了最多七张参考图像的 reference-to-video,而 1.5 的描述未提及这一点。

如果片段必须以第二张精确图像结束,请改用 Veo、Seedance 或 Kling。

提交 image-to-video 任务

选定模型后,请检查源图像是否可通过稳定、可直接下载的 HTTPS URL 访问,以及该模型是否支持你需要的帧角色。

URL 在浏览器中能正常访问,但提供商抓取时仍可能失败,例如它依赖会话 cookie、通过 HTML 页面重定向,或位于机器人检查之后。在花费额度进行生成之前,请先直接检查该 URL。

curl -I "$FIRST_FRAME_URL"

你需要一个 200 状态以及图像内容类型,例如 image/jpeg、image/png 或 image/webp。

下面的示例使用 google/veo-3.1-lite 生成一段 4 秒 720p 的片段,将提供的图像作为第一帧,并关闭音频。REST API 使用 snake_case 字段名,TypeScript SDK 会将其映射为 camelCase。frame_images 变为 frameImages,frame_type 变为 frameType,image_url 变为 imageUrl,generate_audio 变为 generateAudio。诸如 first_frame 和 image_url 这样的值保持不变。

该示例还将 { retries: { strategy: "none" } } 作为第二个参数传给 generate。默认情况下,SDK 会对返回 5XX 状态的请求进行重试,采用指数退避,最长持续一小时。视频提交会启动计费工作,因此如果服务器接受了任务,但在你收到任务 ID 之前返回了瞬时错误,自动重试会提交第二个付费任务,而客户端只会看到第二个。对提交关闭重试后,提交失败会以错误形式暴露出来,由你决定是否重新提交。按调用设置的选项会让只读的 getGeneration 轮询调用保留默认重试,这些调用可以安全地重复。

import { OpenRouter } from "@openrouter/sdk";

const apiKey = process.env.OPENROUTER_API_KEY;
const firstFrameUrl = process.env.FIRST_FRAME_URL;

if (!apiKey) {
  throw new Error("Set OPENROUTER_API_KEY first.");
}

if (!firstFrameUrl) {
  throw new Error("Set FIRST_FRAME_URL to a directly downloadable image URL.");
}

const openRouter = new OpenRouter({ apiKey });

const job = await openRouter.videoGeneration.generate(
  {
    videoGenerationRequest: {
      model: "google/veo-3.1-lite",
      prompt:
        "The camera slowly pushes in as the subject turns toward warm window light, cinematic, realistic motion",
      duration: 4,
      resolution: "720p",
      aspectRatio: "16:9",
      generateAudio: false,
      frameImages: [
        {
          type: "image_url",
          imageUrl: { url: firstFrameUrl },
          frameType: "first_frame",
        },
      ],
    },
  },
  { retries: { strategy: "none" } },
);

console.log(job.id, job.status);

成功提交返回的是一个任务,而不是完成的 MP4。存储任务 ID 并轮询 GET /api/v1/videos/{jobId},直到状态为 completed,然后从任务的 unsigned_urls 数组下载视频(SDK 将其暴露为 unsignedUrls),并在 Authorization 请求头中带上你的 API 密钥。在 failed、cancelled 或 expired 时停止轮询。我们的视频生成指南建议轮询间隔为 30 秒。

let current = job;

while (!["completed", "failed", "cancelled", "expired"].includes(current.status)) {
  await new Promise((resolve) => setTimeout(resolve, 30_000));
  current = await openRouter.videoGeneration.getGeneration({ jobId: job.id });
}

if (current.status !== "completed") {
  throw new Error(current.error ?? `Video generation ${current.status}.`);
}

如果模型支持提供最后一帧,请添加第二个 frameImages 条目,并设置 frameType: "last_frame"。

frameImages: [
  {
    type: "image_url",
    imageUrl: { url: firstFrameUrl },
    frameType: "first_frame",
  },
  {
    type: "image_url",
    imageUrl: { url: lastFrameUrl },
    frameType: "last_frame",
  },
],

如果你的应用允许用户切换模型,请在构建请求之前查询 GET /api/v1/videos/models。响应包含每个模型的 supported_durations、supported_resolutions、supported_aspect_ratios、supported_frame_images、generate_audio 标志以及 pricing_skus。如果请求包含不受支持的时长、分辨率或宽高比,会返回一个 400,其中列出支持的值。

常见问题

OpenRouter 上有哪些可用的图生视频模型?

视频目录包括 Veo 3.1 及其 Fast 和 Lite 变体、Seedance 2.5 和 Seedance 2.0 系列、Kling v3.0 Standard 和 Pro、Kling Video O1,以及 Grok Imagine Video 1.5 及其前代产品等。视频模型合集和 GET /api/v1/videos/models 列出了当前集合。

图生视频和参考生视频有什么区别?

图生视频使用 frame_images。图像会成为确切的第一帧、最后一帧,或两者兼有。参考生视频使用 input_references。模型将图像、视频或音频用作指导,而不将它们放在固定帧上。如果请求同时包含这两个字段,frame_images 优先,我们会将该请求视为图生视频。

图生视频生成费用是多少?

大多数视频模型按输出秒数计费,费率可能随分辨率、是否生成音频以及请求是否包含视频输入而变化。Seedance 模型则按视频 token 计费。每个模型页面都会列出当前费率,GET /api/v1/videos/models 会返回每个模型的定价 SKU。

图生视频任务需要多长时间?

视频生成是异步的。POST /api/v1/videos 会立即返回一个任务,你轮询 GET /api/v1/videos/{jobId} 直到状态为 completed。我们的文档建议轮询间隔为 30 秒。周转时间因模型、时长和分辨率而异。

如果视频生成任务失败会怎样?

任务可能以 failed、cancelled 或 expired 结束。当状态达到其中任一值时停止轮询,并读取 error 字段。轮询请求本身出现瞬时错误并不代表任务失败,因此应针对同一任务 ID 重试状态请求,而不是提交新的付费生成。

来源:OpenRouter Blog · openrouter.ai