Veo 3.1 は、高忠実度の 8 秒間の 720p または 1080p の動画を生成する Google の最先端モデルです。驚くほどリアルな映像とネイティブに生成された音声が特徴です。このモデルには、Gemini API を使用してプログラムでアクセスできます。使用可能な Veo モデル バリエーションの詳細については、モデルのバージョンをご覧ください。
Veo 3.1 は、幅広い視覚的および映画的なスタイルに優れており、いくつかの新機能が導入されています。
- 動画の拡張: 以前に Veo を使用して生成した動画を拡張します。
- フレーム固有の生成: 最初と最後のフレームを指定して動画を生成します。
- 画像ベースの指示: 最大 3 枚の参照画像を使用して、生成される動画のコンテンツを指示します。
動画生成用の効果的なテキスト プロンプトの作成方法については、Veo プロンプト ガイドをご覧ください。
テキストから動画への生成
次の例を選択して、会話、映画のようなリアリズム、クリエイティブなアニメーションを含む動画を生成する方法をご覧ください。
Python
import time
from google import genai
from google.genai import types
client = genai.Client()
prompt = """A close up of two people staring at a cryptic drawing on a wall, torchlight flickering.
A man murmurs, 'This must be it. That's the secret code.' The woman looks at him and whispering excitedly, 'What did you find?'"""
operation = client.models.generate_videos(
model="veo-3.1-generate-preview",
prompt=prompt,
)
# Poll the operation status until the video is ready.
while not operation.done:
print("Waiting for video generation to complete...")
time.sleep(10)
operation = client.operations.get(operation)
# Download the generated video.
generated_video = operation.response.generated_videos[0]
client.files.download(file=generated_video.video)
generated_video.video.save("dialogue_example.mp4")
print("Generated video saved to dialogue_example.mp4")
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
const prompt = `A close up of two people staring at a cryptic drawing on a wall, torchlight flickering.
A man murmurs, 'This must be it. That's the secret code.' The woman looks at him and whispering excitedly, 'What did you find?'`;
let operation = await ai.models.generateVideos({
model: "veo-3.1-generate-preview",
prompt: prompt,
});
// Poll the operation status until the video is ready.
while (!operation.done) {
console.log("Waiting for video generation to complete...")
await new Promise((resolve) => setTimeout(resolve, 10000));
operation = await ai.operations.getVideosOperation({
operation: operation,
});
}
// Download the generated video.
ai.files.download({
file: operation.response.generatedVideos[0].video,
downloadPath: "dialogue_example.mp4",
});
console.log(`Generated video saved to dialogue_example.mp4`);
Go
package main
import (
"context"
"log"
"os"
"time"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
prompt := `A close up of two people staring at a cryptic drawing on a wall, torchlight flickering.
A man murmurs, 'This must be it. That's the secret code.' The woman looks at him and whispering excitedly, 'What did you find?'`
operation, _ := client.Models.GenerateVideos(
ctx,
"veo-3.1-generate-preview",
prompt,
nil,
nil,
)
// Poll the operation status until the video is ready.
for !operation.Done {
log.Println("Waiting for video generation to complete...")
time.Sleep(10 * time.Second)
operation, _ = client.Operations.GetVideosOperation(ctx, operation, nil)
}
// Download the generated video.
video := operation.Response.GeneratedVideos[0]
client.Files.Download(ctx, video.Video, nil)
fname := "dialogue_example.mp4"
_ = os.WriteFile(fname, video.Video.VideoBytes, 0644)
log.Printf("Generated video saved to %s\n", fname)
}
REST
# Note: This script uses jq to parse the JSON response.
# GEMINI API Base URL
BASE_URL="https://generativelanguage.googleapis.com/v1beta"
# Send request to generate video and capture the operation name into a variable.
operation_name=$(curl -s "${BASE_URL}/models/veo-3.1-generate-preview:predictLongRunning" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-X "POST" \
-d '{
"instances": [{
"prompt": "A close up of two people staring at a cryptic drawing on a wall, torchlight flickering. A man murmurs, \"This must be it. That'\''s the secret code.\" The woman looks at him and whispering excitedly, \"What did you find?\""
}
]
}' | jq -r .name)
# Poll the operation status until the video is ready
while true; do
# Get the full JSON status and store it in a variable.
status_response=$(curl -s -H "x-goog-api-key: $GEMINI_API_KEY" "${BASE_URL}/${operation_name}")
# Check the "done" field from the JSON stored in the variable.
is_done=$(echo "${status_response}" | jq .done)
if [ "${is_done}" = "true" ]; then
# Extract the download URI from the final response.
video_uri=$(echo "${status_response}" | jq -r '.response.generateVideoResponse.generatedSamples[0].video.uri')
echo "Downloading video from: ${video_uri}"
# Download the video using the URI and API key and follow redirects.
curl -L -o dialogue_example.mp4 -H "x-goog-api-key: $GEMINI_API_KEY" "${video_uri}"
break
fi
# Wait for 5 seconds before checking again.
sleep 10
done
画像から動画を生成
次のコードは、Gemini 2.5 Flash Image(別名 Nano Banana)を使用して画像を生成し、その画像を Veo 3.1 で動画を生成するための開始フレームとして使用する方法を示しています。
Python
import time
from google import genai
client = genai.Client()
prompt = "Panning wide shot of a calico kitten sleeping in the sunshine"
# Step 1: Generate an image with Nano Banana.
image = client.models.generate_content(
model="gemini-2.5-flash-image",
prompt=prompt,
)
# Step 2: Generate video with Veo 3.1 using the image.
operation = client.models.generate_videos(
model="veo-3.1-generate-preview",
prompt=prompt,
image=image.generated_images[0].image,
)
# Poll the operation status until the video is ready.
while not operation.done:
print("Waiting for video generation to complete...")
time.sleep(10)
operation = client.operations.get(operation)
# Download the video.
video = operation.response.generated_videos[0]
client.files.download(file=video.video)
video.video.save("veo3_with_image_input.mp4")
print("Generated video saved to veo3_with_image_input.mp4")
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
const prompt = "Panning wide shot of a calico kitten sleeping in the sunshine";
// Step 1: Generate an image with Nano Banana.
const imageResponse = await ai.models.generateContent({
model: "gemini-2.5-flash-image",
prompt: prompt,
});
// Step 2: Generate video with Veo 3.1 using the image.
let operation = await ai.models.generateVideos({
model: "veo-3.1-generate-preview",
prompt: prompt,
image: {
imageBytes: imageResponse.generatedImages[0].image.imageBytes,
mimeType: "image/png",
},
});
// Poll the operation status until the video is ready.
while (!operation.done) {
console.log("Waiting for video generation to complete...")
await new Promise((resolve) => setTimeout(resolve, 10000));
operation = await ai.operations.getVideosOperation({
operation: operation,
});
}
// Download the video.
ai.files.download({
file: operation.response.generatedVideos[0].video,
downloadPath: "veo3_with_image_input.mp4",
});
console.log(`Generated video saved to veo3_with_image_input.mp4`);
Go
package main
import (
"context"
"log"
"os"
"time"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
prompt := "Panning wide shot of a calico kitten sleeping in the sunshine"
// Step 1: Generate an image with Nano Banana.
imageResponse, err := client.Models.GenerateContent(
ctx,
"gemini-2.5-flash-image",
prompt,
nil, // GenerateImagesConfig
)
if err != nil {
log.Fatal(err)
}
// Step 2: Generate video with Veo 3.1 using the image.
operation, err := client.Models.GenerateVideos(
ctx,
"veo-3.1-generate-preview",
prompt,
imageResponse.GeneratedImages[0].Image,
nil, // GenerateVideosConfig
)
if err != nil {
log.Fatal(err)
}
// Poll the operation status until the video is ready.
for !operation.Done {
log.Println("Waiting for video generation to complete...")
time.Sleep(10 * time.Second)
operation, _ = client.Operations.GetVideosOperation(ctx, operation, nil)
}
// Download the video.
video := operation.Response.GeneratedVideos[0]
client.Files.Download(ctx, video.Video, nil)
fname := "veo3_with_image_input.mp4"
_ = os.WriteFile(fname, video.Video.VideoBytes, 0644)
log.Printf("Generated video saved to %s\n", fname)
}
参照画像を使用する
Veo 3.1 では、生成された動画のコンテンツをガイドする参照画像を最大 3 枚まで使用できるようになりました。人物、キャラクター、商品の画像を指定して、出力動画で被写体の外観を保持します。
たとえば、Nano Banana で生成された 3 つの画像をリファレンスとして使用し、適切なプロンプトを指定すると、次の動画が作成されます。
`dress_image` |
`woman_image` |
`glasses_image` |
---|---|---|
![]() |
![]() |
![]() |
Python
import time
from google import genai
client = genai.Client()
prompt = "The video opens with a medium, eye-level shot of a beautiful woman with dark hair and warm brown eyes. She wears a magnificent, high-fashion flamingo dress with layers of pink and fuchsia feathers, complemented by whimsical pink, heart-shaped sunglasses. She walks with serene confidence through the crystal-clear, shallow turquoise water of a sun-drenched lagoon. The camera slowly pulls back to a medium-wide shot, revealing the breathtaking scene as the dress's long train glides and floats gracefully on the water's surface behind her. The cinematic, dreamlike atmosphere is enhanced by the vibrant colors of the dress against the serene, minimalist landscape, capturing a moment of pure elegance and high-fashion fantasy."
dress_reference = types.VideoGenerationReferenceImage(
image=dress_image, # Generated separately with Nano Banana
reference_type="asset"
)
sunglasses_reference = types.VideoGenerationReferenceImage(
image=glasses_image, # Generated separately with Nano Banana
reference_type="asset"
)
woman_reference = types.VideoGenerationReferenceImage(
image=woman_image, # Generated separately with Nano Banana
reference_type="asset"
)
operation = client.models.generate_videos(
model="veo-3.1-generate-preview",
prompt=prompt,
config=types.GenerateVideosConfig(
reference_images=[dress_reference, glasses_reference, woman_reference],
),
)
# Poll the operation status until the video is ready.
while not operation.done:
print("Waiting for video generation to complete...")
time.sleep(10)
operation = client.operations.get(operation)
# Download the video.
video = operation.response.generated_videos[0]
client.files.download(file=video.video)
video.video.save("veo3.1_with_reference_images.mp4")
print("Generated video saved to veo3.1_with_reference_images.mp4")

最初と最後のフレームを使用する
Veo 3.1 では、補間を使用するか、動画の最初と最後のフレームを指定して動画を作成できます。動画生成用の効果的なテキスト プロンプトの作成については、Veo プロンプト ガイドをご覧ください。
Python
import time
from google import genai
client = genai.Client()
prompt = "A cinematic, haunting video. A ghostly woman with long white hair and a flowing dress swings gently on a rope swing beneath a massive, gnarled tree in a foggy, moonlit clearing. The fog thickens and swirls around her, and she slowly fades away, vanishing completely. The empty swing is left swaying rhythmically on its own in the eerie silence."
operation = client.models.generate_videos(
model="veo-3.1-generate-preview",
prompt=prompt,
image=first_image, # Generated separately with Nano Banana
config=types.GenerateVideosConfig(
last_frame=last_image # Generated separately with Nano Banana
),
)
# Poll the operation status until the video is ready.
while not operation.done:
print("Waiting for video generation to complete...")
time.sleep(10)
operation = client.operations.get(operation)
# Download the video.
video = operation.response.generated_videos[0]
client.files.download(file=video.video)
video.video.save("veo3.1_with_interpolation.mp4")
print("Generated video saved to veo3.1_with_interpolation.mp4")
`first_image` |
`last_image` |
veo3.1_with_interpolation.mp4 |
---|---|---|
![]() |
![]() |
![]() |
Veo 動画を拡張する
Veo 3.1 を使用すると、以前に Veo で生成した動画を 7 秒間、最大 20 倍まで延長できます。
入力動画の制限:
- Veo で生成される動画の長さは最長 141 秒です。
- Gemini API は、Veo で生成された動画の動画拡張機能のみをサポートしています。
- 入力動画には、一定の長さ、アスペクト比、サイズが求められます。
- アスペクト比: 9:16 または 16:9
- 解像度: 720p
- 動画の長さ: 141 秒以内
拡張機能の出力は、ユーザー入力動画と生成された拡張動画を組み合わせた 1 本の動画で、最大 148 秒の動画になります。
次の例では、Veo で生成された動画 butterfly_video(元のプロンプトとともに表示)を取得し、video
パラメータと新しいプロンプトを使用して拡張しています。
プロンプト | 出力: butterfly_video |
---|---|
折り紙の蝶が羽ばたき、フランス窓から庭に飛び立つ。 |
![]() |
Python
import time
from google import genai
client = genai.Client()
prompt = "Track the butterfly into the garden as it lands on an orange origami flower. A fluffy white puppy runs up and gently pats the flower."
operation = client.models.generate_videos(
model="veo-3.1-generate-preview",
video=butterfly_video,
prompt=prompt,
config=types.GenerateVideosConfig(
number_of_videos=1,
resolution="720p"
),
)
# Poll the operation status until the video is ready.
while not operation.done:
print("Waiting for video generation to complete...")
time.sleep(10)
operation = client.operations.get(operation)
# Download the video.
video = operation.response.generated_videos[0]
client.files.download(file=video.video)
video.video.save("veo3.1_extension.mp4")
print("Generated video saved to veo3.1_extension.mp4")

動画生成用の効果的なテキスト プロンプトの作成については、Veo プロンプト ガイドをご覧ください。
非同期オペレーションの処理
動画の生成は、コンピューティング集約型のタスクです。API にリクエストを送信すると、長時間実行ジョブが開始され、すぐに operation
オブジェクトが返されます。次に、done
ステータスが true になるまでポーリングする必要があります。
このプロセスの中心はポーリング ループです。このループはジョブのステータスを定期的にチェックします。
Python
import time
from google import genai
from google.genai import types
client = genai.Client()
# After starting the job, you get an operation object.
operation = client.models.generate_videos(
model="veo-3.1-generate-preview",
prompt="A cinematic shot of a majestic lion in the savannah.",
)
# Alternatively, you can use operation.name to get the operation.
operation = types.GenerateVideosOperation(name=operation.name)
# This loop checks the job status every 10 seconds.
while not operation.done:
time.sleep(10)
# Refresh the operation object to get the latest status.
operation = client.operations.get(operation)
# Once done, the result is in operation.response.
# ... process and download your video ...
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
// After starting the job, you get an operation object.
let operation = await ai.models.generateVideos({
model: "veo-3.1-generate-preview",
prompt: "A cinematic shot of a majestic lion in the savannah.",
});
// Alternatively, you can use operation.name to get the operation.
// operation = types.GenerateVideosOperation(name=operation.name)
// This loop checks the job status every 10 seconds.
while (!operation.done) {
await new Promise((resolve) => setTimeout(resolve, 1000));
// Refresh the operation object to get the latest status.
operation = await ai.operations.getVideosOperation({ operation });
}
// Once done, the result is in operation.response.
// ... process and download your video ...
Veo API のパラメータと仕様
API リクエストで設定して動画生成プロセスを制御できるパラメータは次のとおりです。
パラメータ | 説明 | Veo 3.1 と Veo 3.1 Fast | Veo 3 と Veo 3 Fast | Veo 2 |
---|---|---|---|---|
prompt |
動画のテキスト説明。音声キューをサポートしています。 | string |
string |
string |
negativePrompt |
動画に含めてはならない内容を説明するテキスト。 | string |
string |
string |
image |
アニメーション化する最初の画像。 | Image オブジェクト |
Image オブジェクト |
Image オブジェクト |
lastFrame |
補間動画の切り替え先の最終画像。image パラメータと組み合わせて使用する必要があります。 |
Image オブジェクト |
Image オブジェクト |
Image オブジェクト |
referenceImages |
スタイルとコンテンツの参照として使用する画像(最大 3 枚)。 | VideoGenerationReferenceImage オブジェクト(Veo 3.1 のみ) |
なし | なし |
video |
動画広告で使用する動画。 | Video オブジェクト |
なし | なし |
aspectRatio |
動画のアスペクト比。 | "16:9" (デフォルト、720p と 1080p)、"9:16" (720p と 1080p) |
"16:9" (デフォルト、720p と 1080p)、"9:16" (720p と 1080p) |
"16:9" (デフォルト、720p)、"9:16" (720p) |
resolution |
動画のアスペクト比。 | "720p" (デフォルト)、"1080p" (8 秒の長さのみをサポート)"720p" (拡張機能のみ) |
"720p" (デフォルト)、"1080p" (16:9 のみ) |
サポート対象外 |
durationSeconds |
生成された動画の長さ。 | "4" 、"6" 、"8" 。拡張または補間を使用する場合(16:9 と 9:16 の両方をサポート)、および referenceImages を使用する場合(16:9 のみをサポート)は「8」でなければなりません。 |
"4" 、"6" 、"8" |
"5" 、"6" 、"8" |
personGeneration |
人物の生成を制御します。 (リージョン制限については、制限事項をご覧ください) |
テキストから動画を作成、拡張機能:"allow_all" のみ画像から動画を作成、補間、参照画像: "allow_adult" のみ
|
テキストから動画を作成:"allow_all" のみ画像から動画を作成: "allow_adult" のみ
|
テキストから動画を作成: "allow_all" 、"allow_adult" 、"dont_allow"
画像から動画を作成: "allow_adult" 、"dont_allow"
|
seed
パラメータは Veo 3 モデルでも使用できます。決定論は保証されませんが、わずかに改善されます。
リクエストでパラメータを設定することで、動画生成をカスタマイズできます。たとえば、negativePrompt
を指定してモデルをガイドできます。
Python
import time
from google import genai
from google.genai import types
client = genai.Client()
operation = client.models.generate_videos(
model="veo-3.1-generate-preview",
prompt="A cinematic shot of a majestic lion in the savannah.",
config=types.GenerateVideosConfig(negative_prompt="cartoon, drawing, low quality"),
)
# Poll the operation status until the video is ready.
while not operation.done:
print("Waiting for video generation to complete...")
time.sleep(10)
operation = client.operations.get(operation)
# Download the generated video.
generated_video = operation.response.generated_videos[0]
client.files.download(file=generated_video.video)
generated_video.video.save("parameters_example.mp4")
print("Generated video saved to parameters_example.mp4")
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
let operation = await ai.models.generateVideos({
model: "veo-3.1-generate-preview",
prompt: "A cinematic shot of a majestic lion in the savannah.",
config: {
aspectRatio: "16:9",
negativePrompt: "cartoon, drawing, low quality"
},
});
// Poll the operation status until the video is ready.
while (!operation.done) {
console.log("Waiting for video generation to complete...")
await new Promise((resolve) => setTimeout(resolve, 10000));
operation = await ai.operations.getVideosOperation({
operation: operation,
});
}
// Download the generated video.
ai.files.download({
file: operation.response.generatedVideos[0].video,
downloadPath: "parameters_example.mp4",
});
console.log(`Generated video saved to parameters_example.mp4`);
Go
package main
import (
"context"
"log"
"os"
"time"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
videoConfig := &genai.GenerateVideosConfig{
AspectRatio: "16:9",
NegativePrompt: "cartoon, drawing, low quality",
}
operation, _ := client.Models.GenerateVideos(
ctx,
"veo-3.1-generate-preview",
"A cinematic shot of a majestic lion in the savannah.",
nil,
videoConfig,
)
// Poll the operation status until the video is ready.
for !operation.Done {
log.Println("Waiting for video generation to complete...")
time.Sleep(10 * time.Second)
operation, _ = client.Operations.GetVideosOperation(ctx, operation, nil)
}
// Download the generated video.
video := operation.Response.GeneratedVideos[0]
client.Files.Download(ctx, video.Video, nil)
fname := "parameters_example.mp4"
_ = os.WriteFile(fname, video.Video.VideoBytes, 0644)
log.Printf("Generated video saved to %s\n", fname)
}
REST
# Note: This script uses jq to parse the JSON response.
# GEMINI API Base URL
BASE_URL="https://generativelanguage.googleapis.com/v1beta"
# Send request to generate video and capture the operation name into a variable.
operation_name=$(curl -s "${BASE_URL}/models/veo-3.1-generate-preview:predictLongRunning" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-X "POST" \
-d '{
"instances": [{
"prompt": "A cinematic shot of a majestic lion in the savannah."
}
],
"parameters": {
"aspectRatio": "16:9",
"negativePrompt": "cartoon, drawing, low quality"
}
}' | jq -r .name)
# Poll the operation status until the video is ready
while true; do
# Get the full JSON status and store it in a variable.
status_response=$(curl -s -H "x-goog-api-key: $GEMINI_API_KEY" "${BASE_URL}/${operation_name}")
# Check the "done" field from the JSON stored in the variable.
is_done=$(echo "${status_response}" | jq .done)
if [ "${is_done}" = "true" ]; then
# Extract the download URI from the final response.
video_uri=$(echo "${status_response}" | jq -r '.response.generateVideoResponse.generatedSamples[0].video.uri')
echo "Downloading video from: ${video_uri}"
# Download the video using the URI and API key and follow redirects.
curl -L -o parameters_example.mp4 -H "x-goog-api-key: $GEMINI_API_KEY" "${video_uri}"
break
fi
# Wait for 5 seconds before checking again.
sleep 10
done
Veo プロンプト ガイド
このセクションでは、Veo を使用して作成できる動画の例を紹介し、プロンプトを変更して異なる結果を生成する方法について説明します。
安全フィルタ
Veo は、Gemini 全体で安全フィルタを適用し、生成された動画やアップロードされた写真に不適切なコンテンツが含まれていないことを確認します。Google の利用規約とガイドラインに違反するプロンプトはブロックされます。
プロンプト作成の基本
適切なプロンプトは、説明的で明確なものです。Veo を最大限に活用するには、まず主なアイデアを特定し、キーワードと修飾子を追加してアイデアを洗練させ、動画固有の用語をプロンプトに組み込みます。
プロンプトには次の要素を含める必要があります。
- 主題: 動画に含めたい物体、人物、動物、風景(街並み、自然、乗り物、子犬など)。
- アクション: 対象が行っていること(歩く、走る、頭を回すなど)。
- スタイル: SF、ホラー映画、フィルム ノワール、漫画などのアニメーション スタイルなど、特定の映画スタイルのキーワードを使用してクリエイティブの方向性を指定します。
- カメラの位置と動き: [省略可] 空撮、目の高さ、俯瞰撮影、ドリー撮影、ローアングル撮影などの用語を使用して、カメラの位置と動きを制御します。
- 構図: [省略可] ワイドショット、クローズアップ、シングルショット、ツーショットなど、ショットの構図。
- フォーカスとレンズ効果: [省略可] 浅いフォーカス、深いフォーカス、ソフト フォーカス、マクロレンズ、広角レンズなどの用語を使用して、特定の視覚効果を実現します。
- 雰囲気: [省略可] 色と光がシーンにどのように貢献しているか(青いトーン、夜、暖かいトーンなど)。
プロンプトの作成に関するその他のヒント
- わかりやすい表現を使用する: 形容詞や副詞を使用して、Veo の明確な画像を描きます。
- 顔の細部を補正する: プロンプトで「ポートレート」という単語を使用するなど、写真の焦点として顔の細部を指定します。
より包括的なプロンプト戦略については、プロンプト設計の概要をご覧ください。
音声のプロンプト
Veo 3 では、効果音、環境音、会話のキューを指定できます。モデルはこれらのキューのニュアンスを捉え、同期されたサウンドトラックを生成します。
- 会話: 特定の発言には引用符を使用します。(例: 「これが鍵に違いない」と彼はつぶやいた。)
- 効果音(SFX): 音を明確に説明します。(例: タイヤのきしむ音、エンジンのうなり声)
- 周囲のノイズ: 環境のサウンドスケープを説明します。(例: 背景でかすかな不気味なうなり声が響く。)
これらの動画は、Veo 3 の音声生成に詳細レベルを上げてプロンプトを入力する様子を示しています。
プロンプト | 生成された出力 |
---|---|
詳細(セリフとアンビエンス) 霧のかかった太平洋岸北西部の森のワイドショット。疲れた 2 人のハイカー(男性と女性)がシダをかき分けて進んでいると、男性が突然立ち止まり、木を見つめる。クローズアップ: 木の皮に深く新しい爪痕が刻まれています。男:(狩猟ナイフに手を当てて)「あれは普通のクマじゃない。」女性: (恐怖で声が震え、森を見回しながら)「じゃあ、何なの?」粗い樹皮、折れる小枝、湿った地面を踏む足音。一羽の鳥が鳴く。 |
![]() |
Less detail (Dialogue) 切り絵アニメーション。新しい司書: 「禁書はどこに保管されていますか?」以前のキュレーター: 「いいえ。彼らは私たちを維持します。」 |
![]() |
以下のプロンプトを試して、音声を聞いてみましょう。 Veo 3 を試す
参照画像を使用したプロンプト
Veo の画像から動画への変換機能を使用して、1 つ以上の画像を生成動画のガイドとして使用できます。Veo は入力画像を最初のフレームとして使用します。動画の最初のシーンとして思い描いているものに最も近い画像を選択して、日常の物をアニメ化し、線画や絵画に命を吹き込み、自然の風景に動きと音を追加します。
プロンプト | 生成された出力 |
---|---|
入力画像(Nano Banana で生成) 素朴な石造りの洗面台の中で、小さなミニチュアのサーファーが海の波に乗っている超リアルなマクロ写真。真鍮製の蛇口から水が流れ、永遠の波が生まれています。シュールで奇抜な、明るい自然光。 |
![]() |
出力動画(Veo 3.1 で生成) シュールで映画のようなマクロ動画。小さなサーファーが、石造りの洗面台の中で永遠に続く波に乗っている。ヴィンテージの真鍮製の蛇口から流れ出る水が、無限の波を生み出します。ミニチュアのフィギュアがターコイズ ブルーの海を巧みに切り開く、陽光が降り注ぐ奇抜なシーンをカメラがゆっくりとパンする。 |
![]() |
Veo 3.1 では、画像や素材を参照して、生成された動画のコンテンツを指定できます。1 人の人物、キャラクター、商品の画像を 3 枚まで指定します。Veo は、出力動画で被写体の外観を保持します。
プロンプト | 生成された出力 |
---|---|
参照画像(Nano Banana で生成) 深海のアンコウが、暗い深海に潜み、歯をむき出しにして、餌を光らせている。 |
![]() |
参照画像(Nano Banana によって生成) ピンク色の子供用プリンセス コスチューム。杖とティアラ付き。シンプルな商品の背景。 |
![]() |
出力動画(Veo 3.1 で生成) 衣装を着て泳ぎ、杖を振り回している魚の面白い漫画風の動画を作成します。 |
![]() |
Veo 3.1 を使用すると、動画の最初と最後のフレームを指定して動画を生成することもできます。
プロンプト | 生成された出力 |
---|---|
1 枚目の画像(Nano Banana で生成) フランスのリビエラ海岸で赤いオープンカーのレーシングカーを運転する茶トラ猫の高品質で写実的な正面画像。 |
![]() |
最後の画像(Nano Banana によって生成) 車が崖から飛び出すとどうなるかを示します。 |
![]() |
出力動画(Veo 3.1 で生成) 省略可 |
![]() |
この機能を使用すると、開始フレームと終了フレームを定義して、ショットの構図を正確に制御できます。画像をアップロードするか、以前の動画生成のフレームを使用して、シーンが思いどおりに開始し、終了するようにします。
拡張機能のプロンプト
Veo 3.1 で Veo 生成動画を拡張するには、動画を入力として使用し、必要に応じてテキスト プロンプトも使用します。拡張では、動画の最後の 1 秒または 24 フレームを完了し、アクションを続行します。
動画の最後の 1 秒に音声が含まれていない場合、音声を効果的に延長することはできません。
プロンプト | 生成された出力 |
---|---|
入力動画(Veo 3.1 で生成) パラグライダーが山頂から飛び立ち、眼下に広がる花畑の谷を見下ろしながら山々を滑空し始めます。 |
![]() |
出力動画(Veo 3.1 で生成) パラグライダーがゆっくりと降下する動画を延長します。 |
![]() |
プロンプトと出力の例
このセクションでは、いくつかのプロンプトを紹介し、説明的な詳細情報が各動画の結果をどのように向上させるかについて説明します。
アイシクル
この動画では、プロンプト作成の基本の要素をプロンプトで使用する方法について説明します。
プロンプト | 生成された出力 |
---|---|
凍った岩壁(コンテキスト)に垂れる氷柱(被写体)のクローズアップ(構図)。青みがかった色調(雰囲気)で、水滴(アクション)のクローズアップのディテールを維持しながらズームイン(カメラの動き)している。 |
![]() |
電話中の男性
これらの動画では、より具体的な詳細情報をプロンプトに追加して、Veo が出力を好みに合わせて調整する方法を示しています。
プロンプト | 生成された出力 |
---|---|
詳細を減らす カメラがドリーして、緑色のトレンチコートを着た絶望的な表情の男のクローズアップを映し出す。緑色のネオンライトを背景に、ダイヤル式の壁掛け電話で話している。映画のシーンのようです。 |
![]() |
詳細 緑色のネオンサインの不気味な光に照らされた、ざらざらしたレンガの壁に取り付けられたダイヤル式電話を回す、緑色のトレンチコートを着た追い詰められた男を追う、クローズアップの映画のようなショット。カメラがドリーインし、電話をかけようと苦労する彼の顎の緊張と顔に刻まれた絶望を映し出す。被写界深度が浅いため、眉間のしわと黒いダイヤル式電話に焦点が当てられ、背景はネオンカラーの海と不明瞭な影にぼかされ、緊急性と孤立感が生まれている。 |
![]() |
ユキヒョウ
プロンプト | 生成された出力 |
---|---|
シンプルなプロンプト: 雪豹のような毛皮を持つかわいい生き物が冬の森を歩いている、3D アニメ風のレンダリング。 |
![]() |
詳細なプロンプト: 楽しいアニメ風の短い 3D アニメーション シーンを作成して。雪豹のような毛皮、大きな表情豊かな目、丸みを帯びた愛らしい姿をした生き物が、風変わりな冬の森を嬉しそうに跳ね回っている。丸みを帯びた雪に覆われた木々、優しく舞い落ちる雪、枝の間から差し込む暖かい太陽光が特徴のシーン。生き物の弾むような動きと満面の笑みで、純粋な喜びを表現します。明るく陽気な色と遊び心のあるアニメーションで、明るく心温まるトーンを目指します。 |
![]() |
ライティング要素別の例
これらの例は、各基本要素でプロンプトを絞り込む方法を示しています。
件名とコンテキスト
主な焦点(被写体)と背景または環境(コンテキスト)を指定します。
プロンプト | 生成された出力 |
---|---|
白いコンクリート製のアパートメント ビルの建築レンダリング。流れるような有機的な形状で、緑豊かな緑と未来的な要素がシームレスに融合している |
![]() |
宇宙空間を漂う衛星。背景には月と星がいくつか見える。 |
![]() |
アクション
被写体の動作(歩く、走る、頭を回すなど)を指定します。
プロンプト | 生成された出力 |
---|---|
ビーチを歩き、夕日の地平線に向かって満足そうな表情でリラックスしている女性のワイドショット。 |
![]() |
スタイル
キーワードを追加して、特定の美学(シュール、ビンテージ、未来、フィルム ノワールなど)に沿って生成されるようにします。
プロンプト | 生成された出力 |
---|---|
フィルム ノワール風、街を歩く男女、ミステリー、映画風、白黒。 |
![]() |
カメラの動きと構図
カメラの動き(POV ショット、空撮、追跡ドローン ビュー)とショットのフレーミング(ワイドショット、クローズアップ、ローアングル)を指定します。
プロンプト | 生成された出力 |
---|---|
雨の中を走るクラシックカーの車内から撮影した POV ショット、カナダの夜、映画のような雰囲気。 |
![]() |
街が映り込んだ目を極端にクローズアップした画像。 |
![]() |
雰囲気
カラーパレットと照明はムードに影響します。「くすんだオレンジ色の暖色系」、「自然光」、「日の出」、「クールな青色系」などの言葉を試してみてください。
プロンプト | 生成された出力 |
---|---|
公園で愛らしいゴールデン レトリバーの子犬を抱いている少女のクローズアップ、太陽光。 |
![]() |
雨の中、バスに乗る悲しそうな女性の映画のようなクローズアップ ショット。クールな青色のトーン、悲しい雰囲気。 |
![]() |
ネガティブ プロンプト
ネガティブ プロンプトは、動画に含めたくない要素を指定します。
- ❌ 「なし」や「しない」などの手順を示す言葉は使用しないでください。(例: 「壁なし」)。
- ✅ 含めたくないものを記述します。(例: 「壁、フレーム」)。
プロンプト | 生成された出力 |
---|---|
ネガティブ プロンプトなし: 強い風で葉が激しく揺れている、大きな一本のオークの木を短く様式化されたアニメーションで生成して... [切り捨て] |
![]() |
ネガティブ プロンプトあり: [同じプロンプト] ネガティブ プロンプト: 都会の背景、人工建造物、暗い、嵐、脅迫的な雰囲気。 |
![]() |
アスペクト比
Veo では、動画のアスペクト比を指定できます。
プロンプト | 生成された出力 |
---|---|
ワイドスクリーン(16:9) 1970 年代のパーム スプリングスで、赤いオープンカーを運転する男性を追跡するドローンからの視点で撮影した動画を作成します。暖かい日差し、長い影。 |
![]() |
縦向き(9:16) 緑豊かな熱帯雨林にあるハワイの雄大な滝の滑らかな動きを強調した動画を作成します。リアルな水の流れ、細部まで表現された葉、自然な照明に焦点を当てて、静けさを表現します。流れ落ちる水、霧が立ち込める雰囲気、密生した林冠から差し込む斑状の太陽光を捉えましょう。滑らかで映画のようなカメラの動きで、滝とその周辺の様子を紹介します。平和で現実的なトーンを目指し、視聴者をハワイの熱帯雨林の静かな美しさに誘います。 |
![]() |
制限事項
- リクエスト レイテンシ: 最小: 11 秒、最大: 6 分(ピーク時)。
- 地域による制限: EU、英国、スイス、MENA のロケーションでは、
personGeneration
に使用できる値は次のとおりです。- Veo 3:
allow_adult
のみ。 - Veo 2:
dont_allow
、allow_adult
。デフォルトはdont_allow
です。
- Veo 3:
- 動画の保持: 生成された動画は 2 日間サーバーに保存され、その後削除されます。ローカルコピーを保存するには、動画が生成されてから 2 日以内にダウンロードする必要があります。延長された動画は、新しく生成された動画として扱われます。
- 透かし: Veo で作成された動画には、AI 生成コンテンツに透かしを入れて識別するための Google のツールである SynthID を使用して透かしが入れられます。動画は SynthID 検証プラットフォームを使用して検証できます。
- 安全性: 生成された動画は、プライバシー、著作権、バイアスのリスクを軽減するのに役立つ安全フィルタと記憶チェック プロセスを通過します。
- 音声エラー: Veo 3.1 では、安全フィルターや音声の処理に関するその他の問題により、動画の生成がブロックされることがあります。動画の生成がブロックされた場合、料金は発生しません。
モデルの特徴
機能 | 説明 | Veo 3.1 と Veo 3.1 Fast | Veo 3 と Veo 3 Fast | Veo 2 |
---|---|---|---|---|
音声 | 動画とともに音声をネイティブに生成します。 | 動画とともに音声をネイティブに生成します。 | ✔️ 常にオン | ❌ サイレントのみ |
入力モード | 生成に使用される入力のタイプ。 | テキストから動画を作成、画像から動画を作成、動画から動画を作成 | テキストから動画を作成、画像から動画を作成 | テキストから動画を作成、画像から動画を作成 |
解決策 | 動画の出力解像度。 | 720p と 1080p(長さは 8 秒のみ) 動画拡張機能を使用する場合は 720p のみ。 |
720p、1080p(16:9 のみ) | 720p |
フレームレート | 動画の出力フレームレート。 | 24 fps | 24 fps | 24 fps |
動画の再生時間 | 生成された動画の長さ。 | 8 秒、6 秒、4 秒 参照画像を使用する場合のみ 8 秒 |
8秒 | 5 ~ 8 秒 |
リクエストあたりの動画数 | リクエストごとに生成される動画の数。 | 1 | 1 | 1 または 2 |
ステータスと詳細 | モデルの提供状況と詳細。 | プレビュー | Stable | Stable |
モデル バージョン
Veo モデル固有の使用量の詳細については、料金とレート制限のページをご覧ください。
Veo 3.1 プレビュー
プロパティ | 説明 |
---|---|
モデルコード |
Gemini API
|
でサポートされるデータ型 |
入力 テキスト、画像 出力 音声付きの動画 |
の上限 |
テキスト入力 1,024 個のトークン 出力動画 1 |
最終更新日 | 2025 年 9 月 |
Veo 3.1 Fast プレビュー
プロパティ | 説明 |
---|---|
モデルコード |
Gemini API
|
でサポートされるデータ型 |
入力 テキスト、画像 出力 音声付きの動画 |
の上限 |
テキスト入力 1,024 個のトークン 出力動画 1 |
最終更新日 | 2025 年 9 月 |
Veo 3
プロパティ | 説明 |
---|---|
モデルコード |
Gemini API
|
でサポートされるデータ型 |
入力 テキスト、画像 出力 音声付きの動画 |
の上限 |
テキスト入力 1,024 個のトークン 出力動画 1 |
最終更新日 | 2025 年 7 月 |
Veo 3 Fast
Veo 3 Fast を使用すると、高品質を維持しながら、速度とビジネス ユースケースを最適化して、音声付き動画を作成できます。広告をプログラムで生成するバックエンド サービス、クリエイティブ コンセプトの迅速な A/B テストを行うツール、ソーシャル メディア コンテンツを迅速に作成する必要があるアプリに最適です。プロパティ | 説明 |
---|---|
モデルコード |
Gemini API
|
でサポートされるデータ型 |
入力 テキスト、画像 出力 音声付きの動画 |
の上限 |
テキスト入力 1,024 個のトークン 出力動画 1 |
最終更新日 | 2025 年 7 月 |
Veo 2
プロパティ | 説明 |
---|---|
モデルコード |
Gemini API
|
でサポートされるデータ型 |
入力 テキスト、画像 出力 動画 |
の上限 |
テキスト入力 なし 画像入力 ファイルサイズが 20 MB 以下の任意の解像度とアスペクト比の画像 出力動画 最大 2 個 |
最終更新日 | 2025 年 4 月 |
次のステップ
- Veo クイックスタート Colab と Veo 3.1 アプレットでテストして、Veo 3.1 API を使ってみましょう。
- プロンプト設計の概要で、より優れたプロンプトを作成する方法を学習する。