Video
Gemini Omni 1.2 Flash
テキスト、画像、最初と最後のフレーム、参照画像から、音声を同時に生成した 3〜15 秒の Gemini Omni 1.2 Flash 動画を 360p〜4K で作成。動画の編集・延長にも対応します。
Gemini Omni 1.2 Flash は、高速生成、対話形式の編集、映画のような映像表現の制御に対応する Google のマルチモーダル動画モデルです(2026 年 11 月更新)。ひとつのモデル ID で、テキストから動画、画像から動画、最初と最後のフレーム間の補間、最大 10 枚の画像による被写体の参照、動画の編集・延長に対応します。すべてのクリップは音声を同時に生成し、長さは 3〜15 秒、解像度は 360p、720p、1080p、4K です。リクエストを送信し、返されたタスク ID を保持して、完成した動画をタスクから読み取ってください。メディアは URL で渡します。
モデル ID
| モデル ID | モード | 解像度 | 長さ |
|---|---|---|---|
gemini-omni-1.2-flash | テキスト、画像、フレーム、参照、編集、延長 | 360p、720p、1080p、4k | 3〜15 秒 |
現在の料金はモデルページをご覧ください。
クイックサンプル
curl https://api.seedrouter.ai/v1/videos/generations \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni-1.2-flash",
"prompt": "A glass marble rolls fast along a wooden chain-reaction track through a sunlit workshop, one continuous smooth tracking shot. No text, no logos.",
"resolution": "720p",
"duration": 10,
"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 キーはサーバー側のコードで保持してください。
パラメータ
| フィールド | 型 | デフォルト | 説明 |
|---|---|---|---|
model | 文字列 | 必須 | gemini-omni-1.2-flash |
prompt | 文字列 | 必須 | すべてのモードで必須です。新規動画はショットの内容、編集は変更点、延長はその後に起こることを記述します。音も説明し、入れたくないものもここに記述してください。 |
duration | 整数 | 10 | 3〜15 秒。最初と最後のフレームの指定時と延長時(追加部分)は最大 10 秒です。編集時は無視され、元の動画の長さを保ちます。 |
resolution | 列挙型 | 720p | 360p、720p、1080p、4k(2160p は 4k と同じ)。大文字と小文字は区別しません。1080p と 4k は低い解像度から拡大したものです。 |
aspect_ratio | 列挙型 | 16:9 | 16:9 または 9:16。 |
image_urls | URL の配列 | なし | 画像が一枚なら最初のフレーム、複数なら被写体の参照画像になります。フレームとロール付き画像を含めて合計最大 10 枚です。 |
first_frame_image | URL | なし | クリップはこの画像から始まります。last_frame_image と併用すると、その間の動きを補間します。 |
last_frame_image | URL | なし | クリップはこの画像で終わります。最初のフレームが必要です。 |
image_with_roles | オブジェクトの配列 | なし | {"url", "role"} で、ロールは first_frame、last_frame、または参照用のその他のロールです。フレームはこの方法か、ふたつのフレームフィールドで指定し、併用しないでください。 |
video_urls | URL の配列 | なし | 編集・延長する、最大 15 秒のクリップ一本。 |
omni_reference_task_type | 列挙型 | auto | auto、edit、extend、reference、text_to_video、image_to_video、reference_to_video。 |
extend_from_task_id | 文字列 | なし | 完了したご自身の gemini-omni-1.2-flash タスクの ID。アップロードせずに、その動画を編集・延長できます。 |
すべてのクリップには音声が付き、音声スイッチはありません。negative_prompt、seed、音声入力、callback_url はありません。スキーマは厳格です。未知のフィールドは無視されず、拒否されます。
モード
| モード | 選択方法 |
|---|---|
| テキストから動画 | 画像も動画も指定しません。 |
| 画像から動画 | image_urls に画像一枚、または最初のフレームを指定します。 |
| 最初と最後のフレーム | first_frame_image と last_frame_image、またはそれぞれのロールを指定します。最大 10 秒です。 |
| 参照 | image_urls に複数の画像、または参照用のロールを指定します。明示する場合は omni_reference_task_type: "reference" を指定します。 |
| 編集 | video_urls または extend_from_task_id で動画を指定し、auto または edit を使います。 |
| 延長 | 上記と同じ方法で動画を指定し、omni_reference_task_type: "extend" を設定します。最大 10 秒を追加します。 |
動画を入力すると、extend を指定しない限り編集になります。動画を含む場合、reference、text_to_video、image_to_video、reference_to_video は拒否されます。
最初と最後のフレーム
{
"model": "gemini-omni-1.2-flash",
"prompt": "Smooth transition, the camera slowly pushes in.",
"first_frame_image": "https://example.com/start.jpg",
"last_frame_image": "https://example.com/end.jpg",
"duration": 8
}編集
{
"model": "gemini-omni-1.2-flash",
"prompt": "Make the violin invisible. Keep everything else the same.",
"video_urls": ["https://example.com/clip.mp4"]
}編集は元の動画の長さを保ち、duration は影響しません。短く具体的な指示が最も効果的です。一部だけを変更する場合は「ほかはすべてそのままにする」と加えてください。
以前のタスクを延長
{
"model": "gemini-omni-1.2-flash",
"prompt": "The camera keeps panning across the mountains.",
"extend_from_task_id": "task_...",
"omni_reference_task_type": "extend",
"duration": 8
}結果には元の動画に続いて新しい部分が含まれます。追加した秒数と、元の長さの 8 分の 1 が課金対象です。ご自身のクリップを延長する場合は、extend_from_task_id の代わりに video_urls で送ってください。
メディア入力
画像と動画は公開されている HTTP(S) URL で渡します。Base64 の data URI は受け付けません。ファイルを自分のストレージにアップロードし、その URL を渡してください。編集・延長する動画は最大 15 秒である必要があります。リクエスト受理時に長さを読み取り、長さを読み取れない動画は課金前に拒否されます。
料金の要素
現在のレートはモデルの料金セクションをご覧ください。Gemini Omni 1.2 Flash は、解像度ごとのレートで動画の秒数に応じて課金されます:
text, image, frames, references: cost = duration × rate
edit: cost = (source + source / 8) × rate
extend: cost = (added seconds + source / 8) × ratesource は、入力動画の映像の長さを秒単位で切り上げた値です。リクエスト受理時に測定されるため、確保される金額がそのまま課金額になります。8 分の 1 の加算分は入力動画の読み取りに対応します。720p の例:6.2 秒のクリップを編集すると 7 + 7/8 = 7.875 秒が課金対象です。8 秒のクリップを 4 秒延長すると 4 + 1 = 5 秒が課金対象です。失敗したタスクは課金されません。
出力スキーマ
送信するとタスクが返されます:
{"id": "task_...", "model": "gemini-omni-1.2-flash", "status": "processing", "created_at": 1789689600}タスクを取得する
GET https://api.seedrouter.ai/v1/tasks/{task_id}status が completed または failed になるまで、10〜20 秒ごとにポーリングしてください。ポーリング中のネットワークタイムアウトは生成の失敗を意味しません。タスク ID を保持して確認を再開してください。進捗確認のために別のタスクを作成しないでください。
完了したタスク
{
"id": "task_...",
"model": "gemini-omni-1.2-flash",
"status": "completed",
"created_at": 1789689600,
"finished_at": 1789689800,
"output": {
"video_url": "https://static.seedrouter.ai/media/tasks/task_example/0.mp4"
}
}すべての動画に Google の目に見えない SynthID 透かしが入ります。当社のテストでは、5〜8 秒の 720p クリップが、送信から 66〜86 秒後に、1280 × 720 の MP4(H.264)とステレオ AAC トラックで返されました。3 秒のクリップを編集した結果は 3 秒でした。
エラー
タスク作成前に拒否されたリクエストは、HTTP エラーと error オブジェクトを返し、課金されません。受理後に失敗したタスクは、照会時に HTTP 200 と status: "failed"、そして error オブジェクトを返します。
コード・HTTP ステータス・リトライの指針は共通エラーカタログを参照してください。
{
"id": "task_...",
"model": "gemini-omni-1.2-flash",
"status": "failed",
"error": {
"code": 60001,
"message": "The request was rejected by the content policy. Please revise the prompt or input images."
}
}送信自体がタイムアウトした場合は、再送信の前にタスクを確認してください。最初のリクエストが受理されている可能性があります。
ヒント
- 被写体、場所、カメラの動き、光と音を記述してください。クリップの音声はプロンプトに従います。
360pで下書きし、採用するショットを同じリクエストで1080pまたは4kでレンダリングしてください。- 編集では一度にひとつだけ変更し、そのまま保つ必要があるものも指定してください。
- 勝手なマークが入らないよう、
no text, no logosを加えてください。
