Veo 3.1
1 つのタスク API で Veo 3.1 の動画クリップを生成。8 秒クリップ単位の料金の 3 モデルと秒単位の料金の 2 モデルがあり、フレーム指定、音声、GIF 出力に対応します。
Veo 3.1 は Google の動画生成モデルです。SeedRouter では 1 つのエンドポイントで 5 つのモデル ID として提供しています。3 つはクリップ単位の料金で、どのクリップも 8 秒です。2 つは秒単位の料金で、より多くの設定(長さ、音声、シード、ネガティブプロンプト、最初と最後のフレーム)に対応します。リクエストを送信し、返されたタスク 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 | 必須 | 上記 3 つの 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 | クリップを MP4 ではなくアニメーション GIF で返します。720p のみ。 |
nsfw_check | boolean | false | 生成前に、プロンプトと画像に安全でない内容がないかをチェックします。 |
image_urls | array | Fast と Quality のみ。公開画像 URL を最大 3 つ。 | |
generation_type | enum | 画像の枚数による | Fast と Quality のみ。frame または reference。Quality は frame のみ受け付けます。 |
パラメータ:秒単位のモデル
veo-3.1-fast-official と veo-3.1-quality-official。
| フィールド | 型 | 既定値 | 説明 |
|---|---|---|---|
model | string | 必須 | 上記 2 つの 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 | 音声トラックを追加します。1 秒あたりのレートが高くなります。 |
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 枚 | 1 枚目が最初のフレーム、2 枚目が最後のフレームになります。 |
reference | 最大 3 枚 | 画像は被写体とスタイルの参照になります。Fast のみ。 |
| 省略 | 2 枚または 3 枚 | 2 枚ならフレームモード、3 枚なら参照モードになります。 |
veo-3.1-quality は参照モードを実行しないため、generation_type: "reference" も、generation_type なしの 3 枚の画像も拒否します。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}status が completed または failed になるまで、10〜20 秒ごとにポーリングしてください。ポーリング中のネットワークタイムアウトは生成の失敗を意味しません。タスク 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 のストレージ上にあります。
当社のテスト実行で返された結果(各 1 回、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を加えてください。 - 決まった画像で始まり、決まった画像で終わる必要があるショットには、2 枚の画像でフレームモードを使うか、秒単位のモデルで
first_frame_imageとlast_frame_imageを使ってください。 - ショットを詰めていくときは、秒単位のモデルで
seedを固定し、一度に 1 つの節だけを変えてください。
