person holding camera with red lights on lens
Photo by Lisa Fotios on Pexels.com

Veo 3.1の「Extend」を極める——実装手順・設計パターン・API対応の最新ガイド

先に要点

  • Extendの正体:Veo 3.1は既存のVeo生成動画を“7秒ずつ”最大20回まで継ぎ足し、単一の連続クリップとして書き出せます(出力は最大約148秒)。Gemini APIから正式に利用可能で、FlowVertex AIのUI/SDKでも運用できます。
  • 対応チャネルGemini API(Veo 3.1/3.1 Fast)Google Cloud Vertex AIのドキュメントにExtend手順が公開されています。Flowでも「Scene Extension」など拡張系機能が追加され、音声も扱えます。
  • 要件と上限:拡張対象はVeo生成動画に限り、9:16または16:9/720pなどの入力条件が設けられています。
  • 誰に効くか広告・SNS運用チーム/ニュース編集部/UGCプラットフォーム/教育・社内研修短尺→長尺テンポよく尺を伸ばすワークフローをAPIで自動化できます。
  • この記事の狙い今日から動く最短ルート(環境準備→基本生成→Extend→品質管理→運用テンプレ)をUI/API両面で、コピー&ペースト可能なサンプルとともに解説します。

誰に一番役立つか(利用者像を具体化)

  • 広告・SNS運用チーム:8秒の良ショットを7秒刻みで“呼吸を継ぐ”ように延長し、30〜60秒へ自然に拡張してCTRや視聴維持率のA/Bを回したい方。
  • ニュース・メディア編集部:速報の短いリード映像を、続報やテロップ情報を繋ぎ足して1本の尺に仕上げたい方。
  • UGC/アプリ開発:ユーザーのVeo生成クリップ自動連結してテンプレート化し、一貫したトーンで出力したい方。
  • 教育・社内研修イントロ→手順→まとめ段階Extendで作成し、校正・差し替えを容易にしたい方。

本稿は正確性最優先で、不確実情報は採用しません。仕様・上限・対応チャネルは公開ドキュメント裏取りしています。


1. まず押さえるVeo 3.1「Extend」の事実(2025年10月時点)

  • Extendの粒度1回あたり7秒最大20回の拡張が可能。結果、単一の連結動画として約148秒まで出力されます。
  • 入力の前提Veoが生成した動画のみ拡張対象。アスペクト比は9:16 or 16:9、解像度は720p141秒以下の入力に制限。Gemini API経由のExtendはVeo生成物が必須です。
  • 対応面Gemini API(Veo 3.1 / 3.1 Fast)で利用可能。Vertex AIでもコンソール/APIの両方で拡張手順が案内されています。Flowは「Scene Extension」等を備え、音も拡張可能に。
  • 関連強化点:Veo 3.1は参照画像最大3点ファースト/ラストフレーム補間など継続性の制御が改善。Extendと組み合わせるとシーンの統一感を保ちながら長尺化できます。

ひとことで言えば、**「短尺で当てた美味しいショットを、破綻なく順次のばせる」**のがVeo 3.1 Extendの強みです。


2. ワークフローの全体設計(UI→APIの両建て)

2-1. 基本フロー(全体像)

  1. コンセプト決定:映像の被写体・レンズ感・色温度など継続の骨格を決める。
  2. 短尺の“芯”を生成:8秒前後で最も象徴的なショットを作る(参照画像やラストフレームを活用)。
  3. Extendで7秒ずつ継ぎ足し文脈プロンプト制約プロンプトを分けてブレを抑制
  4. 品質確認動きの継ぎ目/音の連続性をチェック、必要なら再Extend
  5. 書き出し/公開字幕・ロゴ・比率を目的媒体に合わせて最終調整。

2-2. どのチャネルを使う?

  • 素早い試作Flow(Scene Extension)Gemini API プレビューで微調整。
  • 本番実装Gemini APIまたはVertex AISDK/RESTを採用。Cloud運用(権限管理・監査)を重視するならVertex AIを軸に。

3. サンプル:UIでExtendを理解する(Flow/Vertex AI)

3-1. Flow(Scene Extension)の基本手順

  1. Veo 3.1でベースを生成(参照画像やファースト/ラストフレームで統一感を確保)。
  2. Extend/Scene Extensionを選択し、7秒の追加プロンプトを入力。環境音/BGMも同一世界観で明示。
  3. 連続して最大20回まで繰り返し、1本の連結クリップで出力。

3-2. Vertex AI コンソールでのExtend

  • Media Studio → VideoでVeoを選択し、生成済みクリップに対してAI actions → Extend videoを実行。プロンプトを追加して生成。APIでも同様に実行可能です。

4. Gemini APIでExtendを実装する(コード付き)

ここからはGemini API(Veo 3.1)を使い、8秒の芯→7秒Extend×Nという王道パターンを示します。上限・前提はドキュメント準拠です。

4-1. 前提

  • モデルveo-3.1-generate-preview または veo-3.1-fast-generate-preview
  • 拡張対象Veo生成動画(9:16/16:9, 720p, 長さ141秒以下)
  • Extend単位7秒最大20回(出力は単一の連結動画、最大約148秒)

4-2. ベース動画の生成(Python)

# pip install google-genai
import time
from google import genai
from google.genai import types

client = genai.Client()

prompt = (
  "A cinematic medium shot of a female reporter in a modern newsroom. "
  "Cool daylight tone, 35mm look, shallow depth of field. "
  "She turns to camera and starts walking forward. Include natural ambience."
)

op = client.models.generate_videos(
    model="veo-3.1-generate-preview",
    prompt=prompt,
    # 参考: 参照画像や first/last frame も利用可
    # config=types.GenerateVideosConfig(reference_images=[...], last_frame=...),
)
while not op.done:
    time.sleep(10)
    op = client.operations.get(op)

video_asset = op.response.generated_videos[0].video
client.files.download(file=video_asset)
video_asset.save("base_8s.mp4")

ポイント参照画像(最大3点)ファースト/ラストフレームを使うと、Extend時の連続性が明確に。

4-3. 7秒Extendを1回実行(Python)

import time
from google import genai
from google.genai import types

client = genai.Client()

extend_prompt = (
  "Continue the scene: she stops near the anchor desk, points to the right screen. "
  "Keep the same outfit, lighting, and ambience. Camera slowly pushes in."
)

op = client.models.generate_videos(
    model="veo-3.1-generate-preview",
    video=video_asset,  # 直前のVeo生成物を指定
    prompt=extend_prompt,
    config=types.GenerateVideosConfig(
        number_of_videos=1,
        resolution="720p",   # Extendは720p前提(仕様に従う)
    ),
)
while not op.done:
    time.sleep(10)
    op = client.operations.get(op)

extended = op.response.generated_videos[0].video
client.files.download(file=extended)
extended.save("extended_15s.mp4")

仕様の要点7秒刻み最大20回。入力はVeo生成物に限定、解像度720p/9:16 or 16:9など条件あり。

4-4. 連続Extendの実務テンプレ(Python)

def extend_chain(base_video, prompts, max_hops=5):
    """
    base_video: client.files.get(...)等で取得したVeo生成動画ハンドル
    prompts: 7秒ごとの継続プロンプト配列
    max_hops: 上限 20 まで (仕様)
    """
    assert len(prompts) <= max_hops <= 20
    current = base_video
    results = []
    for i, p in enumerate(prompts, 1):
        op = client.models.generate_videos(
            model="veo-3.1-generate-preview",
            video=current,
            prompt=p,
            config=types.GenerateVideosConfig(
                number_of_videos=1,
                resolution="720p",
            ),
        )
        while not op.done:
            time.sleep(10)
            op = client.operations.get(op)
        current = op.response.generated_videos[0].video
        results.append(current)
    return current, results  # currentが連続クリップ

4-5. JavaScript(Node.js)版の骨格

import { GoogleAI } from "@google/generative-ai"; // gemini-js SDK相当
const ai = new GoogleAI();

const base = await ai.models.generateVideos({
  model: "veo-3.1-generate-preview",
  prompt: "A cinematic shot in a modern newsroom. Cool daylight, 35mm.",
});

let video = base.response.generatedVideos[0].video;

const prompts = [
  "Continue: she approaches the desk; maintain lighting, ambience.",
  "Continue: over-shoulder view of the wall monitor; match color tone.",
  // ...
];

for (const p of prompts) {
  const op = await ai.models.generateVideos({
    model: "veo-3.1-generate-preview",
    video,
    prompt: p,
    config: { numberOfVideos: 1, resolution: "720p" }
  });
  video = op.response.generatedVideos[0].video;
}

// download video.bytes → save

モデルID/パラメータ公式ドキュメントの表に準拠してください(veo-3.1(-fast)-generate-previewnumber_of_videosresolution など)。


5. Vertex AIでExtendを実装する(SDK/REST)

Cloudの権限管理・監査・コスト監視を重視する場合はVertex AIが安定。コンソールAPIの両方でExtend可能です。

5-1. Python(GenAI SDK on Vertex AI)

pip install --upgrade google-genai
export GOOGLE_CLOUD_PROJECT=your_project
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_VERTEXAI=True
import time
from google import genai
from google.genai.types import GenerateVideosConfig, Video

client = genai.Client()

# 例: まずは短尺を生成(省略)。以降は既存のVeo動画を7秒Extend
op = client.models.generate_videos(
    model="veo-3.1-generate-preview",  # VertexでもVeo 3.1利用可(ロールアウト範囲は最新Doc確認)
    prompt="Continue: camera push-in; keep ambience and outfit.",
    video=Video(uri="gs://your-bucket/base_8s.mp4", mime_type="video/mp4"),
    config=GenerateVideosConfig(
        aspect_ratio="16:9",
        # Vertexでは出力先をGCSに指定する設計が実務的
        output_gcs_uri="gs://your-bucket/output/",
        # resolution パラメータなど、モデル世代ごとの対応はDocに従う
    ),
)
while not op.done:
    time.sleep(15)
    op = client.operations.get(op)

print(op.result.generated_videos[0].video.uri)

VertexのガイドにはExtendのUI/REST/SDK手順がまとまっています。認証/役割(IAM)GCS出力の流れも合わせて確認しましょう。


6. プロンプト設計:連続性を“壊さない”書き方

推奨の分割

  • Context:世界観・レンズ・色温度・音の雰囲気。
  • Directive:被写体の動き/カメラワークの具体指示。
  • Constraints衣装・小物・光源の固定、NG(手指破綻、文字の滲み 等)。

Extend用サンプル(7秒ごと)

[Context]
modern newsroom, cool daylight, 35mm look, shallow depth of field; natural ambience.

[Directive]
continue from previous shot; reporter slows down and glances at the wall monitor; camera pushes in slightly.

[Constraints]
keep same outfit and mic color; keep shadow direction consistent; avoid exaggerated hand deformation.

参照画像の活用:人物・衣装・小物の3点リファレンスを与えると、同一性の維持に効きます。ファースト/ラストフレーム(補間)と併用すれば、動きの接続がなめらかに。


7. 品質管理:失敗を早く見つけて安く直す

  • 境界フレームの監査:Extend直後のつなぎ目で、被写体の姿勢・向き・影の整合を確認。
  • 音の連続性環境音やBGMキーContextに固定。フェードは編集側で吸収。
  • NG検出の自動化:CLIP類似度やSSIMで前後カットの一致率を定量化。閾値を割ったら同一プロンプトで再Extendし、シード固定で揺れを抑える。
  • 制作ループ「短尺→Extend→点検→必要な箇所だけ再Extend」7秒ユニットで回すと、コスト/時間/破綻率が下がります。

Veo 3.1は音声統合が強化され、Flowの編集機能も向上。照明や影のリアリズムが上がったぶん、「少しの違和感」が出た時はプロンプトの制約語彙を明確化すると収まりやすいです。


8. よくある疑問と答え(API&運用)

Q1. APIでExtendできますか?
はいGemini APIVeo 3.1/3.1 Fastが提供され、**Extendの仕様(7秒×最大20回)**が公式に公開されています。Vertex AIのガイドにもExtend手順があります。

Q2. どのくらいの長さまで?
入力141秒以下のVeo動画に7秒刻みで継ぎ足し最大約148秒単一動画として出力可能です。

Q3. 9:16で作った縦動画もExtendできますか?
できます9:16または16:9がサポート対象です(Extend時の解像度は720p)。

Q4. まずはUIから試すなら?
FlowScene Extensionが手軽です。音付きで延長でき、編集系の新機能も追加されています。

Q5. 価格や出力品質は?
モデルや解像度、長さで変動します。Veo 3.11080p(8s)720p長尺などの選択肢があり、Fast版も提供。最新の料金・上限モデルバージョンの節や最新発表を参照してください。


9. プロダクション向け設計パターン(Gemini/Vertex両対応)

9-1. ドライバ差し替え(抽象→実装)

class ExtendDriver(Protocol):
    def generate(self, prompt: str, **cfg) -> "Video": ...
    def extend(self, video: "Video", prompt: str, **cfg) -> "Video": ...

class GeminiVeoDriver(ExtendDriver):
    ...

class VertexVeoDriver(ExtendDriver):
    ...

def extend_to_target(video, prompts, driver: ExtendDriver, limit=20):
    assert len(prompts) <= limit
    current = video
    for p in prompts:
        current = driver.extend(current, p, resolution="720p")
    return current
  • 抽象I/Fを固定しておけば、Gemini ↔ Vertex切り替え将来のモデル更新に強いです。
  • キュー管理(RDB/Redis/SQS)監査ログを外付けし、7秒ユニットの再試行を容易に。

9-2. テンプレプロンプトと“継続語彙”の辞書

  • Context語彙(照明・レンズ・色温度・音)を辞書化
  • 制約(衣装・小物・ロゴ露出・Negative)をチーム共通フォーマットで共有。
  • トランジション(マッチカット/軽いディゾルブ)の使い分け指針をルール化。

10. サンプル案件:ニュースOPを60秒へ自然にExtend

前提:8秒でキャスター登場歩き出しのショットを作成。Cool daylight/35mmで統一。

Extend 7秒×7回(合計約57秒)プロンプト例

  1. #1(0–7s):「キャスターがデスクへ近づく。カメラはゆるくドリーイン。環境音はニュースルームのざわめき。」
  2. #2(7–14s):「モニターに当日のトピックが薄く映り込む。衣装・髪型・影の向きは維持。」
  3. #3(14–21s):「机上のペンを手に取り、右を指す所作。ライティングは変えない。」
  4. #4(21–28s):「背後の透明パネル越しにスタッフの影が横切る演出。音量は一定。」
  5. #5(28–35s):「テロップ位置を意識し、画面左に空間をつくる。マッチカット想定。」
  6. #6(35–42s):「キャスターの小さな頷きと視線移動。顔の形状・口元の質感は維持。」
  7. #7(42–49s):「机に並ぶ資料へ視線を落とし、音のボリュームを微弱にスッと下げる。」

NG指定(常時):「手指の過度な変形なし/過度なボケ・白飛び回避/ロゴ露出は2秒未満/髪の長さと色を保持」

仕上げ字幕BGMフェードは編集側で調整し、**SNS版(9:16)YouTube版(16:9)**へクロップ/再レイアウト。


11. トラブルと回避策

  • つなぎ目で被写体が“別人化”
    参照画像(最大3点)でアイデンティティを固定。髪型・衣装・小物Constraintsに明記。
  • 露出・色温度の揺れ
    Context色温度・光源方向を固定語彙で入れる。Flowで照明・影の調整も検討。
  • 音の違和感
    環境音/BGMキーをプロンプトで固定。音量変化は短くスムーズに。
  • 長さ上限に到達
    最終尺の逆算Extend回数を設計。必要に応じて2本構成(第1部・第2部)に分割し、編集で連結。

12. まとめ——“7秒ユニット”で物語をつなぐ

  • Veo 3.1のExtendは、7秒×最大20回連続拡張Gemini API/Flow/Vertex AIから安全に実現します。**入力条件(720p/9:16 or 16:9/Veo生成物)出力上限(約148秒)**を押さえるのが第一歩。
  • 制作のコツは、“芯の8秒”を先に決め、Context/Directive/Constraints継続語彙を固めること。参照画像/ファースト/ラストフレームを上手に使えば、破綻の少ない長尺が作れます。
  • 運用の正解は、UIで発想→APIで自動化キュー管理・監査ログ・再試行をセットにし、7秒ユニット早く・安く・確実に伸ばしていきましょう。

わたしは、Extendを**「呼吸のバトン渡し」だと考えています。良いショットの息を切らさず、次の7秒へ丁寧につなぐ。その積み重ねが、視聴維持率世界観の没入を生みます。Veo 3.1のExtendなら、その作法をコードと設計**で再現できます。


参考資料(確認日:2025-10-29)

投稿者 greeden

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)