Claude Opus 5.5 が SeedRouter で利用できます
SeedRouter Docs

Veo 3.1

1 つのタスク API で Veo 3.1 の動画クリップを生成。8 秒クリップ単位の料金の 3 モデルと秒単位の料金の 2 モデルがあり、フレーム指定、音声、GIF 出力に対応します。

View Markdown

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
ヘッダー値
AuthorizationBearer YOUR_API_KEY
Content-Typeapplication/json

レスポンスはタスク({"id": "task_...", "status": "processing"})であり、完成した動画ではありません。結果は GET /v1/tasks/{task_id} をポーリングして取得してください。API キーはサーバー側のコードに保管してください。

パラメータ:クリップ単位のモデル

veo-3.1-fast、veo-3.1-quality、veo-3.1-lite。

フィールド型既定値説明
modelstring必須上記 3 つの ID のいずれか。
promptstring必須ショットを記述します。
durationinteger88 のみ受け付けます。
aspect_ratioenum16:9 または 9:16。
resolutionenum720p720p、1080p、4k(大文字・小文字は区別しません)。veo-3.1-lite は 4k に対応していません。
enable_gifbooleanfalseクリップを MP4 ではなくアニメーション GIF で返します。720p のみ。
nsfw_checkbooleanfalse生成前に、プロンプトと画像に安全でない内容がないかをチェックします。
image_urlsarrayFast と Quality のみ。公開画像 URL を最大 3 つ。
generation_typeenum画像の枚数によるFast と Quality のみ。frame または reference。Quality は frame のみ受け付けます。

パラメータ:秒単位のモデル

veo-3.1-fast-official と veo-3.1-quality-official。

フィールド型既定値説明
modelstring必須上記 2 つの ID のいずれか。
promptstring必須ショットを記述します。
negative_promptstringクリップに入れたくないもの。
durationinteger84、6、8 秒。
aspect_ratioenum16:916:9 または 9:16。
resolutionenum720p720p、1080p、4k(大文字・小文字は区別しません)。
first_frame_imagestring公開画像 URL。クリップはこの画像で始まります。
last_frame_imagestring公開画像 URL。first_frame_image が必要です。
seedintegerランダム0〜4294967295。
generate_audiobooleanfalse音声トラックを追加します。1 秒あたりのレートが高くなります。
person_generationenumallow_adultallow_adult または disallow。
resize_modeenumpadpad または crop。first_frame_image が必要です。
enhance_promptbooleantruetrue のみ受け付けます。それ以外の場合はフィールドを省略してください。
nsfw_checkbooleanfalse生成前に、プロンプトと画像に安全でない内容がないかをチェックします。

スキーマは厳格です。未知のフィールドは無視されず拒否され、各モデルは自分のフィールドだけを受け付けます。コールバックは利用できません。代わりにタスクをポーリングしてください。

画像モード

veo-3.1-fast と veo-3.1-quality では、generation_type で image_urls の使い方を決めます:

generation_type画像効果
frame1 枚または 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_gifGIF、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 つの節だけを変えてください。

関連情報