Gemini API を使用すると、Google の最先端の動画生成モデルである Veo 2 にアクセスできます。Veo は、ユーザー プロンプトと画像を高品質の動画アセットに変換する次世代の AI アプリケーションを構築できるように設計されています。
このガイドでは、Gemini API を使用して Veo を使い始める方法について説明します。
Veo について
Veo は、Google の現時点で最も高機能の動画生成モデルです。幅広い映画的、視覚的スタイルで動画を生成します。プロンプトのニュアンスをキャプチャして、フレーム間で複雑なディテールを一貫してレンダリングします。
詳細と出力例については、Google DeepMind Veo の概要をご覧ください。
仕様
モダリティ |
|
リクエストのレイテンシ |
|
可変長の生成 | 5 ~ 8 秒 |
解決策 | 720p |
フレームレート | 24 fps |
アスペクト比 |
|
入力言語(テキストから動画) | 英語 |
Veo によって作成された動画には、AI 生成コンテンツに透かしを入れて識別するための Google のツールである SynthID を使用して透かしが入れられます。また、プライバシー、著作権、バイアスのリスクを軽減するために、安全フィルタと記憶チェックのプロセスを経て送信されます。
始める前に
Gemini API を呼び出す前に、任意の SDK がインストールされ、Gemini API キーが構成され、使用可能であることを確認してください。
Google Gen AI SDK で Veo を使用するには、次のいずれかのバージョンがインストールされていることを確認してください。
- Python v1.10.0 以降
- TypeScript と JavaScript v0.8.0 以降
- Go v1.0.0 以降
動画を生成
このセクションでは、テキスト プロンプトを使用した動画と画像を使用した動画の生成に関するコードサンプルを示します。
テキストから生成
次のコードを使用して、Veo で動画を生成できます。
Python
import time
from google import genai
from google.genai import types
client = genai.Client() # read API key from GOOGLE_API_KEY
operation = client.models.generate_videos(
model="veo-2.0-generate-001",
prompt="Panning wide shot of a calico kitten sleeping in the sunshine",
config=types.GenerateVideosConfig(
person_generation="dont_allow", # "dont_allow" or "allow_adult"
aspect_ratio="16:9", # "16:9" or "9:16"
),
)
while not operation.done:
time.sleep(20)
operation = client.operations.get(operation)
for n, generated_video in enumerate(operation.response.generated_videos):
client.files.download(file=generated_video.video)
generated_video.video.save(f"video{n}.mp4") # save the video
REST
# Use curl to send a POST request to the predictLongRunning endpoint
# The request body includes the prompt for video generation
curl "${BASE_URL}/models/veo-2.0-generate-001:predictLongRunning?key=${GOOGLE_API_KEY}" \
-H "Content-Type: application/json" \
-X "POST" \
-d '{
"instances": [{
"prompt": "Panning wide shot of a calico kitten sleeping in the sunshine"
}
],
"parameters": {
"aspectRatio": "16:9",
"personGeneration": "dont_allow",
}
}' | tee result.json | jq .name | sed 's/"//g' > op_name
このコードの実行には約 2 ~ 3 分かかりますが、リソースが制限されている場合はさらに時間がかかることがあります。実行が完了すると、次のような動画が表示されます。
動画の代わりにエラー メッセージが表示される場合は、リソースが制限されているため、リクエストを完了できなかったことを意味します。この場合は、コードをもう一度実行します。
生成された動画は 2 日間サーバーに保存され、その後削除されます。生成された動画のローカルコピーを保存するには、生成から 2 日以内に result()
と save()
を実行する必要があります。
画像から生成
画像を使用して動画を生成することもできます。次のコードは、Imagen を使用して画像を生成し、生成された画像を生成された動画の開始フレームとして使用します。
まず、Imagen を使用して画像を生成します。
Python
prompt="Panning wide shot of a calico kitten sleeping in the sunshine",
imagen = client.models.generate_images(
model="imagen-3.0-generate-002",
prompt=prompt,
config=types.GenerateImagesConfig(
aspect_ratio="16:9",
number_of_images=1
)
)
imagen.generated_images[0].image
次に、生成された画像を最初のフレームとして使用して動画を生成します。
Python
operation = client.models.generate_videos(
model="veo-2.0-generate-001",
prompt=prompt,
image = imagen.generated_images[0].image,
config=types.GenerateVideosConfig(
# person_generation only accepts "dont_allow" for image-to-video
aspect_ratio="16:9", # "16:9" or "9:16"
number_of_videos=2
),
)
# Wait for videos to generate
while not operation.done:
time.sleep(20)
operation = client.operations.get(operation)
for n, video in enumerate(operation.response.generated_videos):
fname = f'with_image_input{n}.mp4'
print(fname)
client.files.download(file=video.video)
video.video.save(fname)
Veo モデルのパラメータ
(命名規則はプログラミング言語によって異なります)。
prompt
: 動画のテキスト プロンプト。image
パラメータは、指定した場合は省略可能です。image
: 動画の最初のフレームとして使用する画像。prompt
パラメータは、指定した場合は省略可能です。negativePrompt
: モデルが生成しないようにする必要がある内容を記述したテキスト文字列。aspectRatio
: 生成される動画のアスペクト比を変更します。サポートされる値は"16:9"
と"9:16"
です。デフォルトは"16:9"
です。personGeneration
: モデルが人物の動画を生成する。次の値を使用できます。- テキストからの動画生成:
"dont_allow"
: 人物や顔が含まれないようにします。"allow_adult"
: 大人の画像を生成しますが、子供の画像は生成しません。
- 画像からの動画生成:
"dont_allow"
: 画像から動画への生成のデフォルト値であり、唯一の値です。
- テキストからの動画生成:
numberOfVideos
: リクエストされた出力動画(1
または2
)。durationSeconds
: 各出力動画の長さ(秒単位、5
~8
)。enhance_prompt
: プロンプト書き換えツールを有効または無効にします。デフォルトで有効になっています。
次の方法をお試しください
Veo を最大限に活用するには、動画固有の用語をプロンプトに組み込みます。Veo は、以下の項目に関連する幅広い用語を理解します。
- ショットの構図: ショットのフレーミングと被写体の数を指定します(例: 「シングルショット」、「2 ショット」、「ショルダー ショット」など)を指定します。
- カメラの位置と動き: 「目の高さ」、「高角度」、「ミミズ目」、「ドーリー ショット」、「ズーム ショット」、「パン ショット」、「トラッキング ショット」などの用語を使用して、カメラの位置と動きを制御します。
- フォーカスとレンズの効果: 「浅いフォーカス」、「深いフォーカス」、「ソフトフォーカス」、「マクロレンズ」、「広角レンズ」などの用語を使用して、特定の視覚効果を実現します。
- 全体的なスタイルとテーマ: 「SF」、「ロマンティック コメディ」、「アクション映画」、「アニメーション」などのスタイルを指定して、Veo のクリエイティブの方向性をガイドします。目的の被写体や背景(「街並み」、「自然」、「車」、「動物」など)を説明することもできます。
Veo プロンプト ガイド
Veo ガイドのこのセクションでは、Veo を使用して作成できる動画の例と、プロンプトを変更して異なる結果を生成する方法について説明します。
安全フィルタ
Veo は Gemini 全体に安全フィルタを適用し、生成された動画とアップロードされた写真に不適切なコンテンツが含まれていないことを確認します。Google の利用規約とガイドラインに違反するプロンプトはブロックされます。
プロンプト作成の基本
適切なプロンプトは、わかりやすく説明的なものです。生成された動画を希望する動画にできるだけ近づけるには、まずコアアイデアを特定し、キーワードと修飾子を追加してアイデアを絞り込みます。
プロンプトには次の要素を含める必要があります。
- 被写体: 動画に含める物体、人物、動物、風景。
- コンテキスト: 被写体が配置される背景やコンテキスト。
- アクション: 被写体が行っている動作(歩く、走る、首を回すなど)。
- スタイル: 一般的なスタイルでも、特定化されたスタイルでもかまいません。ホラー映画、フィルム ノワールなど、特定の映画スタイルのキーワードや、カートゥーン スタイルなどのアニメーション スタイルのキーワードの使用を検討してください。
- カメラの動き: [省略可] カメラの動作(空中撮影、目線の高さ、上から撮影、低角度撮影など)。
- 構図: [省略可] ショットのフレーム設定(ワイドショット、クローズアップ、極端なクローズアップなど)。
- Ambiance: [省略可] 色と光がシーンに与える影響(青色トーン、夜間、暖色トーンなど)。
プロンプトの記述に関するその他のヒント
動画を生成するプロンプトを作成する際は、次のヒントを参考にしてください。
- わかりやすい表現を使用する: 形容詞や副詞を使用して、Veo の明確な画像を描きます。
- コンテキストを提供する: 必要に応じて、モデルが目的を理解できるように背景情報を含めます。
- 特定の芸術スタイルを参照する: 特定の美学を念頭に置いている場合は、特定の芸術スタイルや芸術運動を参照します。
- プロンプト エンジニアリング ツールを活用する: プロンプトを改良して最適な結果を得るために、プロンプト エンジニアリング ツールやリソースの使用をおすすめします。詳細については、プロンプト設計の概要をご覧ください。
- 個人写真やグループ写真の顔の細部を補正する: 写真の焦点として顔の細部を指定します(たとえば、プロンプトで「ポートレート」という単語を使用します)。
プロンプトと出力の例
このセクションでは、説明的な詳細情報を追加することで各動画の成果を高める方法を示すプロンプトをいくつか紹介します。
アイシクル
この動画では、プロンプトの作成の基本の要素をプロンプトで使用する方法について説明します。
プロンプト | 生成された出力 |
---|---|
凍った岩壁(コンテキスト)に付着した氷柱(被写体)が溶け出している様子を、青みがかった色調(雰囲気)でクローズアップ撮影(構図)し、水滴が滴り落ちる様子をクローズアップで細かく捉えながらズームイン(カメラ モーション)している(アクション)。 |
![]() |
電話中の男性
これらの動画では、プロンプトをより具体的に修正して、Veo の出力を好みに合わせて調整する方法を示しています。
プロンプト | 生成された出力 | 分析 |
---|---|---|
カメラがドリー撮影で、緑色のトレンチコートを着た絶望的な男性のクローズアップを映します。緑色のネオンライトが付いた回転式の壁掛け電話で通話しています。映画のシーンのようなものです。 |
![]() |
これは、プロンプトに基づいて生成された最初の動画です。 |
古びた緑色のトレンチコートを着た絶望的な男性が、緑色のネオンサインの不気味な光に照らされながら、ざらざらしたレンガの壁に取り付けられた回転式電話をダイヤルしているクローズアップの映画的なショット。カメラがズームインし、通話をかけようと苦労する男性の緊張したあごと、顔に刻まれた絶望が映し出されます。被写界深度が浅いため、男性の眉間にしわが寄った表情と黒いロータリー式電話にピントを合わせ、背景をネオンカラーの海とぼんやりとした影にすることで、緊迫感と孤独感を演出しています。 |
![]() |
より詳細なプロンプトを使用すると、よりフォーカスされた動画が生成され、環境が豊かになります。 |
緑色のトレンチコートを着た絶望的な男性が、不気味な緑色のネオンの光に照らされた壁に立てかけたビンテージの回転式電話を使用している様子を、スムーズなモーションのドリーで撮影した動画。カメラは中距離から始まり、男性の顔にゆっくりと近づき、男性が緊急に電話をかけている様子と額の汗を映します。男性の手がフォーカスされており、必死に接続しようとしている男性の指がダイヤルを操作しています。緑色のネオンライトが壁に長い影を落とし、緊張感のある雰囲気を演出しています。このシーンは、男性の孤独と絶望を強調するようにフレーミングされており、ネオンの鮮やかな輝きと男性の厳しい決意との対照が際立っています。 |
![]() |
ディテールを追加すると、被写体にリアルな表情が生まれ、鮮やかで迫力のあるシーンを演出できます。 |
ユキヒョウ
この例は、簡単なプロンプトに対して Veo が生成できる出力を示しています。
プロンプト | 生成された出力 |
---|---|
スノーレオパードのような毛皮を持つかわいい生き物が冬の森を歩いている、3D アニメ風のレンダリング。 |
![]() |
Snow Leopard を実行している
このプロンプトはより詳細で、動画で望むものに近い生成出力を示します。
プロンプト | 生成された出力 |
---|---|
楽しいアニメ風の短い 3D アニメーション シーンを作成します。雪ヒョウのような毛皮、大きな表情豊かな目、親しみやすい丸い体を持つかわいい生き物が、風変わりな冬の森を喜びに満ちて駆け回っています。雪に覆われた丸い木々、優しく舞い落ちる雪片、枝の間から差し込む暖かい日差しが写っている必要があります。生き物の弾むような動きと大きな笑顔は、純粋な喜びを伝える必要があります。明るく楽しい色と遊び心のあるアニメーションで、明るく心温まるトーンを演出します。 |
![]() |
要素による書き込みの例
次の例は、基本要素ごとにプロンプトを絞り込む方法を示しています。
件名
この例は、件名の説明を指定する方法を示しています。
件名の説明 | プロンプト | 生成された出力 |
---|---|---|
説明には、1 つの主題、または複数の主題とアクションを含めることができます。ここでは、被写体は「白いコンクリートのアパート」です。 | 白のコンクリート製アパートの建築レンダリング。有機的な形状が流れ、緑豊かな植生と近未来的な要素とシームレスに調和しています。 |
![]() |
コンテキスト
この例は、コンテキストを指定する方法を示しています。
文脈 | プロンプト | 生成された出力 |
---|---|---|
被写体が配置される背景やコンテキストが非常に重要です。人通りの多い通りや宇宙空間など、さまざまな背景に被写体を配置してみてください。 | 背景に月と星が写り、宇宙空間を浮遊する衛星。 |
![]() |
アクション
この例では、アクションを指定する方法を示します。
アクション | プロンプト | 生成された出力 |
---|---|---|
被写体が行っている動作(歩く、走る、首を回すなど)。 | 夕暮れ時にビーチを歩き、満足げに水平線を見つめる女性のワイドショット。 |
![]() |
スタイル
この例では、スタイルを指定する方法を示します。
スタイル | プロンプト | 生成された出力 |
---|---|---|
キーワードを追加すると、生成品質を向上させ、意図したスタイルに近づけることができます。キーワードには、被写界深度が浅い、映画のスチル写真、ミニマル、シュール、ビンテージ、未来的、二重露光などがあります。 | フィルム ノワール スタイル、男女が通りを歩く、ミステリー、シネマティック、モノクロ。 |
![]() |
カメラの動き
この例は、カメラの動きを指定する方法を示しています。
カメラの動き | プロンプト | 生成された出力 |
---|---|---|
カメラの動きには、POV ショット、空撮、トラッキング ドローン ビュー、トラッキング ショットなどがあります。 | カナダの夜、雨の中を走るヴィンテージカーからの POV ショット。映画のような映像です。 |
![]() |
楽曲
この例では、コンポジションを指定する方法を示します。
楽曲 | プロンプト | 生成された出力 |
---|---|---|
ショットのフレーム(ワイドショット、クローズアップ、ローアングル)。 | 街が映り込んだ目を極端なクローズアップで撮影した写真。 |
![]() |
サーフボードを持ってビーチを歩くサーファーのワイドショット、美しい夕日、シネマティックな動画を作成します。 |
![]() |
雰囲気
この例では、アンビエンスの指定方法を示します。
雰囲気 | プロンプト | 生成された出力 |
---|---|---|
カラーパレットは写真において重要な役割を果たし、雰囲気に影響を与え、意図する感情を伝えます。「落ち着いたオレンジの暖色系」、「自然光」、「日の出」、「夕日」など、さまざまな言葉を試してみてください。たとえば、暖かみのある金色のパレットは、写真にロマンチックで雰囲気のある印象を与えます。 | 公園で日差しを浴びながら、かわいいゴールデン レトリバーの子犬を抱いている女の子のクローズアップ。 |
![]() |
雨の中、バスに乗っている悲しそうな女性の映画のようなクローズアップ ショット。青みがかった色調で、悲しいムード。 |
![]() |
参照画像を使用して動画を生成する
Veo の画像から動画への変換機能を使用して、画像に動きをつけることができます。既存のアセットを使用することも、Imagen を使用して新しいアセットを生成することもできます。
プロンプト | 生成された出力 |
---|---|
チョコレート キャンディーバーを持ったうさぎ。 |
![]() |
バニーが逃げます。 |
![]() |
ネガティブ プロンプト
否定的なプロンプトは、動画に含めたくない要素を指定できる強力なツールです。[Negative prompt] の後に、モデルが生成しないようにする内容を記述します。次のヒントに従ってください。
❌ 手順を示す言葉や、「なし」や「しない」などの言葉は使用しないでください。たとえば、「壁なし」や「壁を表示しない」などです。
✅ 表示したくない内容を記述します。たとえば、「壁、フレーム」は、動画に壁やフレームを表示しないことを意味します。
プロンプト | 生成された出力 |
---|---|
強い風に葉が激しく吹かれている、大きな孤独なオークの木の短いアニメーションを生成します。木は、少し誇張された風変わりな形で、ダイナミックで流れるような枝を備えている必要があります。葉はさまざまな秋色を呈し、風に舞い踊っている必要があります。アニメーションには、温かみのある魅力的なカラーパレットを使用します。 |
![]() |
強い風に葉が激しく吹かれている、大きな孤独なオークの木の短いアニメーションを生成します。木は、少し誇張された風変わりな形で、ダイナミックで流れるような枝を備えている必要があります。葉はさまざまな秋色を呈し、風に舞い踊っている必要があります。アニメーションには、温かみのある魅力的なカラーパレットを使用します。 ネガティブなプロンプトあり - 都市の背景、人工建造物、暗い、嵐、または脅迫的な雰囲気。 |
![]() |
アスペクト比
Gemini Veo の動画生成は、次の 2 つのアスペクト比をサポートしています。
アスペクト比 | 説明 |
---|---|
ワイドスクリーンまたは 16:9 | テレビ、モニター、スマートフォンの画面(横向き)で最も一般的なアスペクト比です。風景など、広い背景を撮影する場合に使用します。 |
縦向きまたは 9:16 | 回転したワイドスクリーン。このアスペクト比は、YouTube ショートなどのショート動画アプリで普及しています。肖像画や、建物、木、滝など、縦方向に長い対象に使用します。 |
ワイドスクリーン
このメッセージは、ワイドスクリーンのアスペクト比 16:9 の例です。
プロンプト | 生成された出力 |
---|---|
1970 年代のパーム スプリングスで、暖かい日差しと長い影の中、赤いオープンカーを運転する男性をドローンで追跡撮影した動画を作成します。 |
![]() |
縦向き
このプロンプトは、縦向きのアスペクト比が 9:16 の例です。
プロンプト | 生成された出力 |
---|---|
緑豊かな熱帯雨林の中にある、雄大なハワイの滝の滑らかな動きを強調した動画を作成します。リアルな水の流れ、詳細な葉、自然光に焦点を当てて、静けさを表現します。流れ落ちる水、霧のかかった雰囲気、密集した木々の間を照らす日差しを撮影しましょう。滑らかで映画のようなカメラの動きを使って、滝とその周辺を撮影します。ハワイの熱帯雨林の静かな美しさに視聴者を誘う、平和でリアルなトーンを狙います。 |
![]() |
次のステップ
- Veo Colab で AI 動画の生成をさらに学びましょう。