Veo 3.1
透過統一的任務 API 生成 Veo 3.1 影片片段:三個模型按每段 8 秒影片計費,兩個模型按秒計費,支援首尾影格、音訊和 GIF 輸出。
Veo 3.1 是 Google 的影片生成模型。SeedRouter 在同一個端點上提供五個模型 ID:三個按次計費,每段影片都是 8 秒;兩個按秒計費,控制項更多(時長、音訊、種子、負向提示詞、首尾影格)。送出請求,保存回傳的任務 ID,再從該任務讀取生成完成的影片。圖片以 URL 形式傳入。
模型 ID
| 模型 ID | 計費 | 時長 | 圖片 | 音訊 |
|---|---|---|---|---|
veo-3.1-fast | 按次 | 8 秒 | 最多 3 張,首尾影格或參考模式 | 無開關 |
veo-3.1-quality | 按次 | 8 秒 | 最多 3 張,首尾影格模式 | 無開關 |
veo-3.1-lite | 按次 | 8 秒 | 不支援(文字轉影片) | 無開關 |
veo-3.1-fast-official | 按秒 | 4、6 或 8 秒 | 首影格和尾影格 | generate_audio |
veo-3.1-quality-official | 按秒 | 4、6 或 8 秒 | 首影格和尾影格 | generate_audio |
目前價格請見模型頁。
快速範例
curl https://api.seedrouter.ai/v1/videos/generations \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3.1-fast",
"prompt": "A red paper boat drifts across a calm pond at sunrise, soft mist on the water, slow push-in on a 35mm lens, no text, no logos.",
"resolution": "720p",
"aspect_ratio": "16:9"
}'端點
POST https://api.seedrouter.ai/v1/videos/generations| 標頭 | 值 |
|---|---|
| Authorization | Bearer YOUR_API_KEY |
| Content-Type | application/json |
回應是一個任務({"id": "task_...", "status": "processing"}),而不是生成完成的影片。請輪詢 GET /v1/tasks/{task_id} 取得結果。請把 API 金鑰保存在伺服器端程式碼中。
參數:按次計費的模型
veo-3.1-fast、veo-3.1-quality 和 veo-3.1-lite。
| 欄位 | 型別 | 預設值 | 說明 |
|---|---|---|---|
model | string | 必填 | 上述三個 ID 之一。 |
prompt | string | 必填 | 描述鏡頭。 |
duration | integer | 8 | 只接受 8。 |
aspect_ratio | enum | 16:9 或 9:16。 | |
resolution | enum | 720p | 720p、1080p 或 4k(不分大小寫)。veo-3.1-lite 不支援 4k。 |
enable_gif | boolean | false | 以 GIF 動畫而非 MP4 回傳影片。僅限 720p。 |
nsfw_check | boolean | false | 生成前檢查提示詞和圖片是否含有不安全內容。 |
image_urls | array | 僅限 Fast 和 Quality。最多 3 個公開圖片 URL。 | |
generation_type | enum | 依圖片數量而定 | 僅限 Fast 和 Quality。frame 或 reference;Quality 只接受 frame。 |
參數:按秒計費的模型
veo-3.1-fast-official 和 veo-3.1-quality-official。
| 欄位 | 型別 | 預設值 | 說明 |
|---|---|---|---|
model | string | 必填 | 上述兩個 ID 之一。 |
prompt | string | 必填 | 描述鏡頭。 |
negative_prompt | string | 不希望出現在影片中的內容。 | |
duration | integer | 8 | 4、6 或 8 秒。 |
aspect_ratio | enum | 16:9 | 16:9 或 9:16。 |
resolution | enum | 720p | 720p、1080p 或 4k(不分大小寫)。 |
first_frame_image | string | 公開圖片 URL。影片以它開場。 | |
last_frame_image | string | 公開圖片 URL。需要 first_frame_image。 | |
seed | integer | 隨機 | 0 到 4294967295。 |
generate_audio | boolean | false | 加上一條音軌。以較高的每秒費率計費。 |
person_generation | enum | allow_adult | allow_adult 或 disallow。 |
resize_mode | enum | pad | pad 或 crop。需要 first_frame_image。 |
enhance_prompt | boolean | true | 只接受 true;否則請省略此欄位。 |
nsfw_check | boolean | false | 生成前檢查提示詞和圖片是否含有不安全內容。 |
請求結構採嚴格驗證:未知欄位會被拒絕,而不是被忽略,而且每個模型只接受自己的欄位。不支援回呼;請改為輪詢任務。
圖片模式
在 veo-3.1-fast 和 veo-3.1-quality 上,generation_type 決定 image_urls 的用法:
generation_type | 圖片 | 效果 |
|---|---|---|
frame | 1 或 2 張 | 第一張圖是首影格,第二張是尾影格。 |
reference | 最多 3 張 | 這些圖片作為主體和風格的參考。僅限 Fast。 |
| 省略 | 2 或 3 張 | 兩張圖使用首尾影格模式,三張圖使用參考模式。 |
veo-3.1-quality 不支援參考模式,因此會拒絕 generation_type: "reference",也會拒絕未指定 generation_type 的三張圖片。veo-3.1-lite 不接受圖片。
在按秒計費的模型上,設定 first_frame_image,並可選擇設定 last_frame_image。resize_mode 決定畫幅不同的圖片要填補還是裁切。
媒體輸入
圖片是公開的 HTTP(S) URL:
{ "image_urls": ["https://example.com/first.jpg", "https://example.com/last.jpg"] }在按次計費的模型上,每張圖片必須是 JPEG、PNG 或 WebP,且不超過 10 MB;不符合這些規則的檔案會讓任務失敗,但不扣費。不接受 Base64 資料:請把檔案上傳到你自己的儲存空間,再傳入它的 URL。
計費維度
目前費率請查看模型定價部分。
per-clip models: cost = price of one clip at the output resolution (720p and 1080p cost the same)
per-second models: cost = duration × rate for the resolution and audio setting費用在請求被受理時就已確定,因此預扣金額就是實際扣費金額。最終扣費請在帳戶的用量記錄中查看。失敗的任務不計費。
輸出結構
提交後回傳任務:
{"id": "task_...", "model": "veo-3.1-fast", "status": "processing", "created_at": 1789689600}查詢任務
GET https://api.seedrouter.ai/v1/tasks/{task_id}每 10–20 秒輪詢一次,直到 status 變為 completed 或 failed。輪詢過程中出現網路逾時,並不代表生成失敗:請保留任務 ID 並繼續查詢。不要為了查看進度而再建立一個任務。
完成的任務
{
"id": "task_...",
"model": "veo-3.1-fast",
"status": "completed",
"created_at": 1789689600,
"finished_at": 1789689720,
"output": {
"video_url": "https://static.seedrouter.ai/media/tasks/task_example/0.mp4"
}
}video_url 是一個 MP4;如果請求設定了 enable_gif,則是 GIF。該連結位於 SeedRouter 的儲存空間。
我們測試執行的回傳結果(每項各執行一次,2026-10-04):
| 請求 | 檔案 |
|---|---|
veo-3.1-fast,9:16,首尾影格模式 | MP4,H.264,720 × 1280,24 fps,8 秒,含立體聲 AAC 音軌 |
veo-3.1-fast-official,16:9,720p,4 秒,未設 generate_audio | MP4,H.264,1280 × 720,24 fps,4 秒,無音軌 |
veo-3.1-lite,enable_gif | GIF,480 × 270,16 fps,8 秒 |
按次計費的模型沒有音訊開關;按秒計費的模型只有設定 generate_audio 才會加上音軌。
錯誤
在任務建立之前被拒絕的請求,會回傳 HTTP 錯誤狀態碼和一個 error 物件,且不計費。受理之後才失敗的任務,在查詢時回傳 HTTP 200,並帶有 status: "failed" 和一個 error 物件。
錯誤碼、HTTP 狀態碼和重試建議請參見共用錯誤目錄。
{
"id": "task_...",
"model": "veo-3.1-fast",
"status": "failed",
"error": {
"code": 60001,
"message": "The request was rejected by the content policy. Please revise the prompt or input images."
}
}如果提交本身逾時,請先檢查你的任務清單再重新提交:第一次請求有可能已經被受理。
實用建議
- 先用
veo-3.1-lite或veo-3.1-fast以 720p 試提示詞,再換 Quality 或 4k 做最終算繪。 - 寫明攝影機和光線:鏡頭焦段和運鏡對畫面的影響比形容詞大得多。
- 加上
no text, no logos,避免畫面中出現憑空編造的文字和標記。 - 如果鏡頭必須以已知圖片開始和結束,請用兩張圖的首尾影格模式,或在按秒計費的模型上使用
first_frame_image和last_frame_image。 - 在按秒計費的模型上固定
seed,一次只改一個子句,逐步打磨一個鏡頭。
