Apidog

オールインワン協働API開発プラットフォーム

API設計

APIドキュメント

APIデバッグ

APIモック

API自動テスト

Vertex AI で Google Veo 3 API を使う方法

Nikki Alessandro

Nikki Alessandro

Updated on 5月 21, 2025

長年にわたり、高品質な動画コンテンツの作成は、複雑で時間と費用がかかる作業であり、撮影、編集、サウンドデザイン、アニメーションといった専門的なスキルを必要としてきました。生成AI、特に動画分野のAIは、これらの障壁を大幅に下げることになりそうです。説得力のあるBロール映像や、ダイナミックなソーシャルメディア向けアニメーション、さらには短いシネマティックシーケンスまで、テキスト記述や静止画からすべて生成できると想像してみてください。これこそが、Veo 3のようなモデルがもたらす可能性です。

GoogleはAIの研究開発に大きく貢献しており、Vertex AIを通じて利用可能なモデルの継続的な進化に、生成メディアへのコミットメントが表れています。Vertex AIは統合された機械学習プラットフォームとして機能し、DeepMindを含むGoogleの最先端AIモデルへのアクセスを提供し、ユーザーがMLアプリケーションを容易に構築、デプロイ、スケーリングできるようにします。Veo 3、Imagen 4、Lyria 2の導入は、Vertex AIをクリエイティブAIの強力な基盤としてさらに確固たるものにしました。

💡
美しいAPIドキュメントを生成する優れたAPIテストツールをお探しですか?

開発チームが最大限の生産性で協力できる統合されたオールインワンプラットフォームをお探しですか?

Apidogはあなたのすべての要望に応え、Postmanをはるかに手頃な価格で置き換えます!
button

Veo 3の紹介:AI動画生成の次の飛躍

プロンプト: 中景、歴史冒険の設定:暖かいランプの光が、散らかった書斎にいる地図製作者を照らし、大きなテーブルに広げられた古く広大な地図を熱心に調べている。地図製作者:「この古い海図によると、失われた島は神話ではない!直ちに探検隊を準備しなければ!」


Google DeepMindによって開発されたVeo 3は、Googleの動画生成技術における最新の進歩を表しています。視覚的に印象的なだけでなく、聴覚的な詳細も豊かな高品質動画を生成する能力をユーザーに提供することを目指しています。Veo 3で発表された主な強化点と機能は以下の通りです。

  • 動画品質の向上: Veo 3は、テキストと画像の両方のプロンプトから生成された場合に、優れた品質の動画を生成するように設計されています。これは、よりリアルなテクスチャ、より優れたモーションの整合性、および複雑なプロンプトの詳細へのより忠実な準拠を意味します。このモデルは、複雑なプロンプトの詳細を処理し、微妙なテキスト記述を説得力のある視覚的な物語に変換することができます。
  • 統合された音声生成: 重要な進歩は、Veo 3が対話やナレーションなどの音声を生成された動画に直接組み込む能力です。この機能は、ストーリーテリング、マーケティングコンテンツ、教育資料に大きな可能性を開き、基本的な音声のために別途オーディオ制作ワークフローを必要とせずに、クリエイターが物語の深さをさらに加えることができます。
  • 包括的なオーディオ統合: 音声に加えて、Veo 3は音楽や効果音を含む他のオーディオ要素を生成できます。これは、モデルが単に無声映画を作成するだけでなく、より完全なサウンドスケープを持つ動画を生成できることを意味し、視聴体験を向上させ、オーディオを視覚的なムードや描かれたイベントと一致させます。

これらの機能の潜在的な影響は、早期導入者によってすでに認識されています。デジタル決済のリーダーであるKlarnaは、Vertex AI上でVeo(およびImagen)を活用してコンテンツ作成の効率を高めています。BロールからYouTubeバンパーに至るまで、アセットの制作期間が大幅に短縮されたと述べています。Klarnaのデジタルエクスペリエンス&グロース責任者であるジャスティン・トーマス氏は、この変革について次のように述べています。「VeoとImagenを使用することで、時間のかかる制作プロセスを、コンテンツ作成を迅速にスケーリングできる迅速かつ効率的なタスクに変えました...かつて8週間かかっていたものが、今ではわずか8時間で済むようになり、大幅なコスト削減につながっています。」

Google Veo APIをVertex AIで使用する方法

GoogleのVeoモデルはVertex AIで利用可能であり、テキストまたは画像のプロンプトから動画を生成できます。Google Cloudコンソールを通じて、またはVertex AI APIにリクエストを行うことで、Veoと対話できます。このガイドではAPIの使用に焦点を当てており、主にPython用Gen AI SDKとRESTコールを使用した例を示します。

Vertex AIでVeoを使用するための前提条件

Veoで動画生成を開始する前に、以下の設定が完了していることを確認してください。

  • Google Cloud アカウントとプロジェクト:
  • Google Cloud アカウントが必要です。新しいアカウントには無料クレジットが付与されることがよくあります。
  • Google Cloud コンソール内で、既存のGoogle Cloud プロジェクトを選択するか、新しいプロジェクトを作成します。実験を行う場合は、新しいプロジェクトを作成すると、後でプロジェクトとその関連リソースをすべて削除できるため、クリーンアップが容易になります。
  • Vertex AI APIの有効化:
  • Google Cloud コンソールのプロジェクトセレクターページに移動します。
  • プロジェクトに対してVertex AI APIが有効になっていることを確認します。
  • 認証:
  • 環境の認証を設定する必要があります。
  • REST API(ローカル開発)の場合: REST APIサンプルをローカルで使用する予定の場合、Google Cloud CLI(gcloud CLI)に提供した認証情報が使用されます。gcloud CLIをインストールし、以下を実行して初期化します。
gcloud init

外部IDプロバイダー(IdP)を使用している場合は、まずフェデレーションIDでgcloud CLIにサインインします。

  • Python SDKの場合: Gen AI SDKは通常、アプリケーションのデフォルト認証情報(ADC)を使用します。GOOGLE_CLOUD_PROJECT 環境変数を設定し、GOOGLE_GENAI_USE_VERTEXAI=True を確認する(後の例で示すように)ことで、SDKがVertex AIで動作するように構成され、認証済みのgcloud環境または構成済みのサービスアカウント認証情報を活用できます。

Veoモデルとロケーションへのアクセス

  • モデルバージョン: Veoは複数の動画生成モデルを提供しています。ドキュメントではveo-2.0-generate-001を使用した例を提供し、veo-3.0-generate-preview(現在プレビュー版)にも言及しています。最新のリストとその機能については、常に公式の「Veo モデル」ドキュメントを参照してください。
  • ロケーション: リクエストを行う際、データの保存場所を制御するためにリージョン(ロケーション)を指定できます。利用可能なリージョンのリストについては、「Vertex AI での生成 AI のロケーション」ドキュメントを参照してください。Python SDKの例では、ロケーションを設定するために環境変数を使用することがよくあります。

Python SDK (Gen AI SDK) を使用したVeo APIの使用

Python用Gen AI SDKは、Vertex AI上のVeoモデルと対話するための便利な方法を提供します。

インストール

google-genai ライブラリをインストールまたはアップグレードします。

pip install --upgrade google-genai

環境変数の設定

以下の環境変数を設定します。GOOGLE_CLOUD_PROJECTGOOGLE_CLOUD_LOCATION を、ご自身のプロジェクトIDと希望するGoogle Cloudロケーション(例:global または us-central1 のような特定のリージョン)に置き換えてください。

export GOOGLE_CLOUD_PROJECT=YOUR_PROJECT_ID
export GOOGLE_CLOUD_LOCATION=YOUR_LOCATION
export GOOGLE_GENAI_USE_VERTEXAI=True

クライアントの初期化

from google import genai

client = genai.Client()

テキストからの動画生成

記述的なテキストプロンプトを使用して動画を生成できます。出力は長時間実行されるオペレーションであり、生成された動画は通常、指定したGoogle Cloud Storage(GCS)URIに保存されます。

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

client = genai.Client()

# !!! 重要: 出力用のGCS URIを更新し、コメントアウトを解除してください !!!
# output_gcs_uri = "gs://your-bucket-name/your-output-prefix/"
# このバケットが存在し、プロジェクト/サービスアカウントに書き込み権限があることを確認してください。

try:
    operation = client.models.generate_videos(
        model="veo-2.0-generate-001",  # または利用可能な他のVeoモデル
        prompt="a cat reading a book",
        config=GenerateVideosConfig(
            aspect_ratio="16:9",
            output_gcs_uri=output_gcs_uri, # GCSパスを指定
        ),
    )

    print("動画生成オペレーションが開始されました。完了をポーリングしています...")
    while not operation.done:
        time.sleep(15) # ステータスを確認する前に15秒待機
        operation = client.operations.get(operation) # オペレーションステータスを更新
        print(f"オペレーションステータス: {operation.metadata.state if operation.metadata else '処理中...'}")

    if operation.response and operation.result.generated_videos:
        print(f"動画が正常に生成されました: {operation.result.generated_videos[0].video.uri}")
    elif operation.error:
        print(f"動画生成中のエラー: {operation.error.message}")
    else:
        print("オペレーションは終了しましたが、動画URIが見つからないか、不明なエラーが発生しました。")

except AttributeError:
    print("エラー: 'output_gcs_uri' が定義されていません。'output_gcs_uri' 変数を設定してください。")
except Exception as e:
    print(f"予期しないエラーが発生しました: {e}")

"gs://your-bucket-name/your-output-prefix/" を、実際のGCSバケットと希望する出力パスに置き換えることを忘れないでください。

画像(およびオプションのテキスト)からの動画生成

入力画像から開始して、オプションでテキストプロンプトによってガイドされた動画を生成することもできます。

import time
from google import genai
from google.genai.types import GenerateVideosConfig, Image

client = genai.Client()

# !!! 重要: 出力用のGCS URIを更新し、コメントアウトを解除してください !!!
# output_gcs_uri = "gs://your-bucket-name/your-output-prefix-image/"
# このバケットが存在し、プロジェクト/サービスアカウントに書き込み権限があることを確認してください。

# 公開GCS画像を使用した例。ご自身の画像URIに置き換えてください。
input_image_gcs_uri = "gs://cloud-samples-data/generative-ai/image/flowers.png"

try:
    operation = client.models.generate_videos(
        model="veo-2.0-generate-001",  # または利用可能な他のVeoモデル
        image=Image(
            gcs_uri=input_image_gcs_uri,
            mime_type="image/png", # 画像に応じてmime_typeを調整
        ),
        prompt="the flowers sway gently in the breeze", # オプションのテキストプロンプト
        config=GenerateVideosConfig(
            aspect_ratio="16:9", # または画像/希望する出力に合わせる
            output_gcs_uri=output_gcs_uri,
        ),
    )

    print("画像から動画への生成オペレーションが開始されました。完了をポーリングしています...")
    while not operation.done:
        time.sleep(15)
        operation = client.operations.get(operation)
        print(f"オペレーションステータス: {operation.metadata.state if operation.metadata else '処理中...'}")

    if operation.response and operation.result.generated_videos:
        print(f"動画が正常に生成されました: {operation.result.generated_videos[0].video.uri}")
    elif operation.error:
        print(f"動画生成中のエラー: {operation.error.message}")
    else:
        print("オペレーションは終了しましたが、動画URIが見つからないか、不明なエラーが発生しました。")

except AttributeError:
    print("エラー: 'output_gcs_uri' が定義されていません。'output_gcs_uri' 変数を設定してください。")
except Exception as e:
    print(f"予期しないエラーが発生しました: {e}")

RESTを使用したVeo APIの使用

HTTPリクエストを使用してVeo APIを直接呼び出すことができます。これには、特定のエンドポイントにPOSTリクエストを送信することが含まれます。

エンドポイントとHTTPメソッド

POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning

PROJECT_IDMODEL_ID (例:veo-2.0-generate-001 または veo-3.0-generate-preview)を置き換えてください。

リクエストJSONボディ

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT"
      // 画像入力の場合、「instances」内の構造は異なります。APIリファレンスを参照してください。
    }
  ],
  "parameters": {
    "storageUri": "OUTPUT_STORAGE_URI", // オプション:出力用のGCS URI。例:「gs://video-bucket/output/」
                                        // 指定しない場合、一部の設定ではオペレーション応答で動画バイトが返される可能性があります(ドキュメントを確認)。
    "sampleCount": "RESPONSE_COUNT",    // 生成する動画の数(例:1-4)。
    "durationSeconds": "DURATION",      // 希望する動画の長さ(秒単位)(例:5-8)。
    "enhancePrompt": "ENHANCED_PROMPT"  // ブール値:True(デフォルト)または False。
    // APIリファレンスに従って、「aspectRatio」、「fps」などの他のパラメーターを追加します。
  }
}

TEXT_PROMPTOUTPUT_STORAGE_URIなどのプレースホルダーを実際の値に置き換えるようにしてください。

認証とリクエストの送信(curlを使用した例)

リクエストボディをファイル(例:request.json)に保存します。

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -d @request.json \
     "https://us-central1-aiplatform.googleapis.com/v1/projects/YOUR_PROJECT_ID/locations/us-central1/publishers/google/models/YOUR_MODEL_ID:predictLongRunning"

このコマンドはオペレーション名(例:projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/OPERATION_ID)を返します。

長時間実行されるオペレーションの処理

predictLongRunning エンドポイントは非同期オペレーションを開始します。Python SDKが処理するのと同様に、返されたオペレーション名を使用して完了するまでそのステータスをポーリングする必要があります。

Veo 3のプロンプトとは? Veo 3向けのより良いプロンプトの書き方

Google Veoモデルは、テキスト記述に基づいて動画を生成します。詳細なプロンプトは、一般的に高品質で関連性の高い動画につながります。記述を検討してください:

  • 被写体とアクション。
  • 設定と環境。
  • シネマティックなスタイル、カメラモーション。
  • ムードとトーン。

オーディオをサポートするモデル(veo-3.0-generate-previewなど)の場合、文字起こし(対話)と効果音の説明を含めることができます。

  • プロンプトリライター(プロンプト強化):
    Veoには、LLMベースのプロンプト強化ツールが含まれています。この機能は、より記述的な詳細、カメラモーション、文字起こし、効果音を追加するためにプロンプトを書き換え、より高品質な動画出力を目指します。
  • デフォルトで有効: この機能は、veo-2.0-generate-001 および veo-3.0-generate-preview のようなモデルでデフォルトで有効になっています。
  • 無効化: REST API呼び出しで enhancePrompt パラメーターを False に設定することで、プロンプト強化をオフにできます(または、SDKで利用可能な同様のパラメーターを使用)。
  • veo-3.0-generate-previewに関する重要事項: veo-3.0-generate-preview モデルを使用する場合、プロンプトリライターを無効にすることはできません
  • 応答での書き換えられたプロンプト: 元のプロンプトが30語未満の場合、モデルが使用した書き換えられたプロンプトがAPI応答で提供されます。

さて、Veo REST APIをテストするためのAPIDogのようなツールの使用に関する追加セクションと、記事の結論です。

APIDogのようなツールを使用したVeo REST APIのテスト

curl はコマンドラインでのテストに優れていますが、APIDog、Postman、InsomniaのようなGUIベースのAPIテストツールは、特に複雑なJSONボディを扱ったり、複数のAPIエンドポイントを管理したりする場合に、APIリクエストを構築および管理するためのより視覚的で整理された方法を提供できます。

💡
美しいAPIドキュメントを生成する優れたAPIテストツールをお探しですか?

開発チームが最大限の生産性で協力できる統合されたオールインワンプラットフォームをお探しですか?

Apidogはあなたのすべての要望に応え、Postmanをはるかに手頃な価格で置き換えます!
button

結論

Vertex AI上のGoogleのVeoモデルは、生成AI、特に動画作成において重要な進歩を表しています。Python用Gen AI SDKと直接的なRESTエンドポイントの両方を通じて直感的なAPIアクセスを提供することで、Googleは開発者やクリエイターが強力なテキストから動画へ、画像から動画への機能をワークフローやアプリケーションに統合できるようにしています。