OpenRouter 評比多款圖生影片模型:成本、解析度與控制
Image-to-Video AI Models Compared: Cost, Resolution, and Control
OpenRouter 發布多款主流圖生影片模型的效能與成本對比,涵蓋 Veo 3.1、Seedance、Kling 及 Grok Imagine Video 系列。
原文對比多款熱門圖生影片模型的規格與成本,工程師可據此評估適合特定專案的模型選項。
如果你已經有一張影片要從其開始的圖片,選擇影像轉影片模型就取決於第一幀之後需要發生什麼。影片可能需要以第二張精確圖片結束、播放時間超過幾秒、包含生成音訊,或保持在每秒價格以下。
我們提供的影片模型以不同方式處理這些需求。本文涵蓋四條模型系列:Veo 3.1、Seedance、Kling 和 Grok Imagine Video。它們並非完整的影像轉影片目錄。完整列表見 video models collection。
你可以透過相同的 video generation 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。
影像如何在影片請求中使用
一張影像可定義完成影片中的某幀,或作為參考素材。我們以兩種不同的請求欄位處理這兩種情況。
Text-to-video、image-to-video 與 reference-to-video
使用 text-to-video 時,模型僅以你的提示語建立場景。除提示所描述外,你無法控制開頭幀。
使用 image-to-video 時,影像會成為首幀、尾幀或兩者。如果產品影片必須以精確的產品鏡頭開啟,請選擇此模式。
使用 reference-to-video 時,模型會接收來源素材但不將其固定於某幀位置。你可以提供多張同一角色的影像,讓模型在組合新鏡頭時保持其外觀。
若影像必須出現在影片的特定位置,請使用 image-to-video;若僅需作為指引,則使用 reference-to-video。
frame_images 與 input_references 欄位
我們將兩種模式作為 POST /api/v1/videos 的獨立欄位公開。
| 欄位 | 功能 |
|---|---|
frame_images | 將影像用作精確的首幀、尾幀或兩者 |
input_references | 提供模型影像、影片或音訊素材,但不將其固定於某幀 |
每個 frame_images 條目包含一個 frame_type,其值為 first_frame 或 last_frame。並非所有模型都支援兩種角色。video models catalog 中的 supported_frame_images 陣列告訴你模型可接受哪些角色。
若同時在一個請求中送出兩個欄位,frame_images 會優先,並將工作視為 image‑to‑video。
image‑to‑video 模型比較
這些表格涵蓋 Veo、Seedance、Kling 與 Grok Imagine Video 系列。我們亦提供其他 image‑to‑video 模型,並且 video models collection 為目前的目錄。
解析度、時長、幀角色與音訊設定皆來自 GET /api/v1/videos/models。價格則來自各模型頁面。我們於 2026 年 9 月 11 日檢查了兩者。影片定價依解析度、音訊與輸入型別而異,請將此數值作為比較參考,並於估算製作成本前先確認模型頁面。
輸出設定
| 模型 | 解析度 | 時長 | 生成音訊 | 幀控制 |
|---|---|---|---|---|
| google/veo-3.1 | 720p、1080p、4K | 4、6、8 秒 | 可選 | 首尾 |
| google/veo-3.1-fast | 720p、1080p、4K | 4、6、8 秒 | 可選 | 首尾 |
| google/veo-3.1-lite | 720p、1080p | 4、6、8 秒 | 可選 | 首尾 |
| bytedance/seedance-2.5 | 480p、720p | 4 至 30 秒 | 可選 | 首尾 |
| bytedance/seedance-2.0 | 480p、720p、1080p、4K | 4 至 15 秒 | 可選 | 首尾 |
| bytedance/seedance-2.0-fast | 480p、720p | 4 至 15 秒 | 可選 | 首尾 |
| bytedance/seedance-2.0-mini | 480p、720p | 4 至 15 秒 | 可選 | 首尾 |
| kwaivgi/kling-v3.0-pro | 720p | 3 至 15 秒 | 可選 | 首尾 |
| kwaivgi/kling-v3.0-std | 720p | 3 至 15 秒 | 可選 | 首尾 |
| kwaivgi/kling-video-o1 | 720p | 5 或 10 秒 | 可選 | 首尾 |
| x-ai/grok-imagine-video-1.5 | 480p、720p、1080p | 1 至 15 秒 | 是 | 僅首 |
| x-ai/grok-imagine-video | 480p、720p | 1 至 15 秒 | 未列出 | 僅首 |
參考輸入與價格
| 模型 | 參考輸入 | 價格 |
|---|---|---|
| google/veo-3.1 | 未列出 | $0.20/s to $0.60/s |
| google/veo-3.1-fast | 未列出 | $0.08/s to $0.30/s |
| google/veo-3.1-lite | 未列出 | $0.03/s to $0.08/s |
| bytedance/seedance-2.5 | 最多 50 張影像、影片與音訊資產 | 起價 $0.1028/秒,適用 480p |
| bytedance/seedance-2.0 | 影像、影片與音訊 | 起價 $0.06726/秒,適用 480p |
| bytedance/seedance-2.0-fast | 影像、影片與音訊 | 起價 $0.04035/秒,適用 480p |
| bytedance/seedance-2.0-mini | 影像、影片與音訊 | 起價 $0.03363/秒,適用 480p |
| 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 頁面上模型描述所說的內容。 未列出 表示描述中沒有提及參考影像、影片或音訊。 這並不意味著我們測試後發現參考被拒絕。 參考至影片食譜 解釋了在你基於此開發前如何確認支援。
- 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 以每秒 $0.03 起始(720p、無音訊),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(含音訊)。Kuaishou 將 Pro 描述為更高畫質層級。
Kling Video O1 以 720p 產生 5 或 10 秒剪輯,具備相同的首尾幀角色,價格為每秒 $0.112。當這兩個時長已符合需求時可使用。
單一起始幀且長至 15 秒的剪輯
Grok Imagine Video 1.5 可產生 1 至 15 秒、480p、720p 或 1080p、七種長寬比的影片。其 supported_frame_images 陣列僅列出 first_frame,因此只能固定開頭影像,無法固定結尾影像。模型說明指出它會產生音效、環境音與對白。
較早的 Grok Imagine Video 僅支援 720p,且每秒成本較低。其說明列出可使用多達七張參考影像的參考到影片功能,而 1.5 的說明未提及此項。
若剪輯必須以第二個精確影像結束,請改用 Veo、Seedance 或 Kling。
提交影像到影片工作
選定模型後,請確認來源影像能透過穩定、可直接下載的 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);成功提交會回傳一個工作(job),而非完成的 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