Gemini Omni 1.2 Flashで動画を延長する方法

Omni 1.2のエクステンションは1回につき3〜10秒を追加します。しかし上限はプラットフォームごとに異なり、連結の仕方を誤れば冒頭部分が失われてしまいます。本記事では、リクエストの内容、その計算、そしてコストを解説します。

Medy Evrard

6 11月 2026

Gemini Omni 1.2 Flashで動画を延長する方法

Apidog エンタープライズ

オンプレミスデプロイ

SSO & RBAC

SOC 2 準拠

Apidog Enterpriseを見る

結論から言うと: Gemini Omni 1.2 Flashで動画を拡張するには、クリップと短い続きのプロンプトをInteractions APIに送信します。各ターンで3〜10秒が追加され、より長いクリップが返されます。Gemini APIでは合計30秒までです。Google CloudのAgent Platformでは40秒まで可能ですが、冒頭が切り詰められないよう各ステップを計画することが条件です。

プロンプトの書き方については、Omni 1.1シーン拡張ガイドをご覧ください。本ガイドでは、新たに追加されたリクエスト方法、チェーンの計算、40秒クリップのコストについて解説します。

Gemini Omni 1.2 Flashの動画拡張の仕組み

動画拡張は、クリップの末尾に続きを生成します。モデルは入力の末尾最大10秒をコンテキストとして読み取り、3〜10秒の新しい映像を生成してクリップに連結します。追加できるのは末尾のみで、冒頭への挿入や中間部分の拡張はできません。

Googleでは、モデルの呼び出し先によって異なる制限がドキュメント化されています:

Gemini API Agent Platform (Google Cloud)
認証 APIキー プロジェクトとアクセストークン
合計長 30秒 40秒
入力の長さ 別途の上限の記載なし 任意の長さ
参照画像 Omniで最大6枚 拡張1回につき最大2枚
拡張モード プロンプトが基本、taskはフォールバック 全サンプルでtask: "extend"
シードとラベル Omniのドキュメントには記載なし generation_config.seed, labels
結果の保存 有料ティアで55日間 最大7日間

出典:Gemini API OmniドキュメントとAgent Platform拡張ドキュメント。

Agent Platformでは、モデルは末尾最大10秒を読み取り、新しいセグメントを入力の末尾最大30秒に連結します。Googleの例では60秒の入力を10秒延長して40秒を返すため、最初の30秒は失われます。

Timeline showing a 60-second input clip where the first 30 seconds are dropped, the last 30 seconds are kept, the model reads the final 10 seconds, and the 40-second output is the kept 30 seconds plus 10 new seconds.

出力には既存の映像が含まれるため、自分でつなぎ合わせる必要はありません。ただし、Googleはトランジションを滑らかにするため、入力の末尾近くの一部フレームを編集します。

1.2での拡張に関する変更点

Gemini APIで動画をステップごとに拡張する

  1. クリップを生成するか、Files API経由でアップロードします。アップロードされたファイルは48時間後に削除されます。
  2. 次に何が起きるかだけを記述します。
  3. durationを"3s"〜"10s"の範囲で設定します(デフォルトは10)。
  4. 次のターンに備えてインタラクションIDを保存します。
from google import genai

client = genai.Client()

first = client.interactions.create(
    model="gemini-omni-1.2-flash",
    input="A courier in a yellow jacket cycles through a rainy night market.",
    response_format={"type": "video", "duration": "15s"},
)

second = client.interactions.create(
    model="gemini-omni-1.2-flash",
    previous_interaction_id=first.id,
    input="The courier brakes at a red door. Keep the same yellow jacket.",
    response_format={"type": "video", "duration": "10s", "delivery": "uri"},
)

自分で撮影した映像を拡張するには、previous_interaction_idを、{"type": "video", "uri": video_file.uri}とテキスト項目を含む入力配列に置き換えます。

アップロードにはさらに2つの制限があります:人物が話している箇所へのセリフ追加が不可であること、およびEEA、スイス、英国からは拡張できないことです。生成動画のマルチターン拡張では、どちらの制限も回避できます。

Agent Platformでのリクエストの手順

40秒にする場合やジョブキューが必要な場合は、こちらのルートを使います。生成には1分以上かかることがあるため、backgroundを有効にして、次のボディをhttps://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactionsにPOSTしてください:

{
  "model": "gemini-omni-1.2-flash",
  "background": true,
  "input": [
    { "type": "text", "text": "The courier opens the red door and steps inside." },
    { "type": "video", "uri": "gs://my-bucket/hop-1.mp4", "mime_type": "video/mp4" }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "gs://my-bucket/out/",
      "aspect_ratio": "16:9",
      "duration": "5s"
    }
  ],
  "generation_config": {
    "seed": 4242,
    "video_config": { "task": "extend" }
  },
  "labels": { "campaign": "courier", "hop": "2" }
}

この呼び出しは、ステータスin_progressのインタラクションIDを返します。GET .../locations/global/interactions/INTERACTION_IDでポーリングしてください。完了したら、steps内のmodel_outputステップからgs:// URIを読み取ります。そのURIが次のホップの入力になります。

ステートレス(store: false)、ステートフル(store: true)、ストリーミングの各モードも用意されています。保存された結果と非同期の結果は最大7日間しか保持されないため、必要なものはコピーしてください。

[要確認] 未実行:利用できるGoogle Cloudプロジェクトがありませんでした。Googleのサンプルボディにはseedもlabelsも含まれていないため、配置場所を確認してください。

40秒の上限までチェーンする方法

ホップですべての映像を保持するには、その入力が30秒以下である必要があります。何も失わずに40秒に到達するには、まず正確に30秒まで伸ばします。

ホップ 計画したduration 計画した出力 単純なduration 単純な出力
開始 15秒 15秒 15秒 15秒
1 10秒 25秒 10秒 25秒
2 5秒 30秒 10秒 35秒
3 10秒 40秒 10秒 40秒(冒頭5秒が切り捨て)
Two chaining plans compared: the planned chain of 15 seconds plus 10, 5 and 10 reaches 40 seconds with nothing lost, while the naive chain of 15 seconds plus three 10-second hops reaches 40 seconds but drops the first 5 seconds.

単純なチェーンでは5秒余分に伸ばせますが、その代わりに冒頭を失います。クリップの長さからは警告されません。どちらのチェーンも40秒を返すからです。

40秒を作る場合、15秒で開始してもAPI呼び出しは節約できません:10秒で開始しても拡張は3回必要です。それ以外の長さでは役立ちます。25秒なら拡張が2回ではなく1回で済み、35秒なら3回ではなく2回で済みます。

Gemini APIでは、ホップ2で止めてください。30秒を超えるリクエストがどうなるか、Googleは説明していません。

参照画像とシードでキャラクターを安定させる

最後の10秒より前に画面から出たキャラクターは、そのフレームがクリップに残っていても、モデルには見えません。Googleの解決策は、もう一度言及するか、同じinput配列で参照画像を渡すことです:

{ "type": "image", "uri": "gs://my-bucket/courier.png", "mime_type": "image/png" },
{ "type": "text", "text": "The courier from the reference image walks back into frame." }

再現可能な結果を得るにはgeneration_config.seedを設定します。最も役立つのはデバッグ時です:同じシードでホップを再実行すれば、変化がプロンプトによるものかどうかを確認できます。Googleは、異なるプロンプト間でシードがキャラクターを一定に保つことを保証していないため、その目的には参照画像に頼ってください。ホップごとの課金の追跡にはlabelsを使います。

40秒クリップはいくらかかるか

Googleの料金ページでは、Omni 1.2の動画出力は100万トークンあたり12.00ドルで課金されます。拡張で課金されるのが新しい秒数のみか、返されるすべての秒数かは明記されていません。計画的なチェーンでは40秒を生成しますが、15、25、30、40秒が返されるため、合計は110秒になります。

解像度 1秒あたり 新しい秒数のみ課金の場合 返された全秒数が課金の場合
360p $0.023 $0.93 $2.55
720p 約$0.07 $2.78 $7.65
1080p(アップサンプリング) $0.104 $4.17 $11.47
4K(アップサンプリング) $0.209 $8.34 $22.94

これらはGemini APIの料金で、Googleが公表している秒あたりトークン数から計算したものです。入力トークン(100万トークンあたり$1.50)と思考トークン(100万トークンあたり$9.00)がさらに加算されます。

実際に確認できるまでは、右側の列の金額で予算を組んでください。料金を抑えるには:

gemini-omni-1.1-flashへのリクエストは2026年12月3日から1.2にルーティングされ、1.2の料金で課金されます。

Apidog CLIでコーディングエージェントに非同期フローをテストさせる

非同期チェーンは静かに壊れます:終わらないポーリング、failedで終わる実行、変わってしまうレスポンス形式。コーディングエージェントにApidog CLIでそのテストを作成させ、実行させましょう。

npm install -g apidog-cli@latest
apidog auth login --with-token <YOUR_TOKEN>
apidog skill install

その後、Claude Code、Codex、Cursorのいずれかに次のプロンプトを1つ渡します:

In Apidog project <id>, create endpoints for POST and GET on the Omni
interactions URL. Build a test scenario named omni-extend-async: start a
3-second 360p extension with background set to true, save the interaction
ID, then loop with a 10-second delay on GET until status leaves in_progress.
Assert status is completed and a model_output step holds a video/mp4 item
with a uri or data. Run it and summarize any failures.

エージェントはペイロードを検証したうえで、シナリオを作成・実行します:

apidog cli-schema get test-scenario-update
apidog test-scenario create --project <id> --name "omni-extend-async" --folder-id <folderId> --priority 1
apidog test-scenario import-steps <scenarioId> --project <id> --source endpoint --ids <postId>,<getId>
apidog cli-schema validate test-scenario-update --file scenario.json
apidog test-scenario update <scenarioId> --project <id> --file scenario.json
apidog run -t <scenarioId> --project <id> -e <envId> --timeout-request 300000 -r cli,junit --out-dir ./reports

実行のたびに実際のクリップが課金されるため、コミットごとではなく夜間に実行してください。新しい秒数のみ課金される場合、3秒の360pホップのコストは約$0.07です。同じコマンド列はパイプラインにそのまま組み込めます。詳細はApidog CLIのCI/CDガイドを、エージェント側の設定はClaude Codeセットアップガイドをご覧ください。Apidog Freeは最大4ユーザーまで利用できます。

FAQ

Gemini Omni 1.2 Flashの動画はどれくらい長くできますか? 1回の生成は3〜15秒です。拡張を使う場合、Gemini APIのドキュメントでは合計30秒、Agent Platformのドキュメントでは40秒とされています。

拡張した動画の冒頭が消えたのはなぜですか? Agent Platformでは、入力の末尾30秒分のみが保持されます。30秒を超える入力は冒頭が失われます。最後のホップがちょうど30秒から始まるように、ホップを計画してください。

自分で撮影した動画を拡張できますか? EEA、スイス、英国以外であれば可能です。Files API経由でアップロードするか、Agent PlatformではCloud Storageを参照してください。人物が話しているアップロード済みクリップにセリフを追加することはできません。

クリップを無料で拡張できますか? API経由ではできません。GoogleはOmni 1.2と1.1の無料ティアを「利用不可」としているため、テスト1回でも課金されます。実行できる中で最も安いのは3秒の360p拡張です。

ApidogでAPIデザイン中心のアプローチを取る

APIの開発と利用をよりシンプルなことにする方法を発見できる