O Veo 3.1 é o modelo mais moderno do Google para gerar vídeos de 8 segundos em 720p ou 1080p com alta fidelidade, realismo impressionante e áudio gerado nativamente. É possível acessar esse modelo de maneira programática usando a API Gemini. Para saber mais sobre as variantes de modelo do Veo disponíveis, consulte a seção Versões do modelo.
O Veo 3.1 se destaca em uma ampla variedade de estilos visuais e cinematográficos e apresenta vários novos recursos:
- Extensão de vídeo: estenda vídeos que foram gerados anteriormente usando o Veo.
- Geração específica de frames: gere um vídeo especificando o primeiro e o último frames.
- Direção com base em imagens: use até três imagens de referência para orientar o conteúdo do vídeo gerado.
Para mais informações sobre como escrever comandos de texto eficazes para geração de vídeos, consulte o guia de comandos do Veo.
Geração de texto para vídeo
Escolha um exemplo para saber como gerar um vídeo com diálogo, realismo cinematográfico ou animação criativa:
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
Geração de vídeo com imagens
O código a seguir demonstra como gerar uma imagem usando o Gemini 2.5 Flash Image, também conhecido como Nano Banana, e usar essa imagem como o frame inicial para gerar um vídeo com o 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)
}
Como usar imagens de referência
O Veo 3.1 agora aceita até três imagens de referência para orientar o conteúdo do vídeo gerado. Forneça imagens de uma pessoa, personagem ou produto para preservar a aparência do assunto no vídeo de saída.
Por exemplo, usar estas três imagens geradas com o Nano Banana como referências com um comando bem escrito cria o seguinte vídeo:
`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")

Usar o primeiro e o último frames
Com o Veo 3.1, você pode criar vídeos usando interpolação ou especificando o primeiro e o último frame do vídeo. Para informações sobre como escrever comandos de texto eficazes para geração de vídeo, consulte o guia de comandos do 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 |
---|---|---|
![]() |
![]() |
![]() |
Como estender vídeos do Veo
Use o Veo 3.1 para estender vídeos gerados anteriormente com o Veo em até 7 segundos e até 20 vezes.
Limitações do vídeo de entrada:
- Vídeos gerados pelo Veo com até 141 segundos de duração.
- A API Gemini só oferece suporte a extensões de vídeo para vídeos gerados com o Veo.
- Os vídeos de entrada precisam ter uma determinada duração, proporção e dimensões:
- Proporção: 9:16 ou 16:9
- Resolução: 720p
- Duração do vídeo: até 141 segundos
A saída da extensão é um único vídeo que combina o vídeo de entrada do usuário e o vídeo estendido gerado por até 148 segundos.
Este exemplo usa o vídeo gerado pelo Veo butterfly_video, mostrado aqui com o comando original, e o estende usando o parâmetro video
e um novo comando:
Comando | Saída: butterfly_video |
---|---|
Uma borboleta de origami bate as asas e voa para fora das portas francesas em direção ao jardim. |
![]() |
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")

Para informações sobre como escrever comandos de texto eficazes para geração de vídeos, consulte o guia de comandos do Veo.
Como lidar com operações assíncronas
A geração de vídeo é uma tarefa que exige muita computação. Quando você envia uma solicitação
para a API, ela inicia um job de longa duração e retorna imediatamente um objeto operation
. Em seguida, faça uma pesquisa até que o vídeo esteja pronto, o que é indicado pelo status
done
como verdadeiro.
O núcleo desse processo é um loop de polling, que verifica periodicamente o status do job.
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 ...
Parâmetros e especificações da API do Veo
Estes são os parâmetros que você pode definir na solicitação de API para controlar o processo de geração de vídeo.
Parâmetro | Descrição | Veo 3.1 e Veo 3.1 Fast | Veo 3 e Veo 3 Fast | Veo 2 |
---|---|---|---|---|
prompt |
A descrição de texto do vídeo. Compatível com dicas de áudio. | string |
string |
string |
negativePrompt |
Texto descrevendo o que não incluir no vídeo. | string |
string |
string |
image |
Uma imagem inicial para animar. | Objeto Image |
Objeto Image |
Objeto Image |
lastFrame |
A imagem final para um vídeo de interpolação fazer a transição. Precisa ser usado com o parâmetro image . |
Objeto Image |
Objeto Image |
Objeto Image |
referenceImages |
Até três imagens para serem usadas como referências de estilo e conteúdo. | Objeto VideoGenerationReferenceImage (somente Veo 3.1) |
N/A | N/A |
video |
Vídeo a ser usado na extensão de vídeo. | Objeto Video |
N/A | N/A |
aspectRatio |
A proporção do vídeo. | "16:9" (padrão, 720p e 1080p),"9:16" (720p e 1080p) |
"16:9" (padrão, 720p e 1080p),"9:16" (720p e 1080p) |
"16:9" (padrão, 720p),"9:16" (720p) |
resolution |
A proporção do vídeo. | "720p" (padrão), "1080p" (aceita apenas duração de 8 segundos)"720p" apenas para extensão |
"720p" (padrão), "1080p" (somente 16:9) |
Incompatível |
durationSeconds |
Duração do vídeo gerado. | "4" , "6" , "8" .Precisa ser "8" ao usar extensão ou interpolação (compatível com 16:9 e 9:16) e ao usar referenceImages (compatível apenas com 16:9) |
"4" , "6" , "8" |
"5" , "6" , "8" |
personGeneration |
Controla a geração de pessoas. (consulte Limitações para restrições regionais) |
Texto para vídeo e extensão:"allow_all" somenteImagens de referência, interpolação e imagem para vídeo: "allow_adult" somente
|
Texto para vídeo:"allow_all" somenteImagem para vídeo: "allow_adult" somente
|
Texto para vídeo: "allow_all" , "allow_adult" , "dont_allow"
Imagem para vídeo: "allow_adult" e "dont_allow"
|
O parâmetro seed
também está disponível para os modelos do Veo 3.
Isso não garante o determinismo, mas o melhora um pouco.
Você pode personalizar a geração de vídeo definindo parâmetros na solicitação.
Por exemplo, é possível especificar negativePrompt
para orientar o modelo.
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
Guia de comandos do Veo
Esta seção contém exemplos de vídeos que você pode criar usando o Veo e mostra como modificar comandos para produzir resultados diferentes.
Filtros de segurança
O Veo aplica filtros de segurança no Gemini para garantir que os vídeos gerados e as fotos enviadas não contenham conteúdo ofensivo. Os comandos que violam nossos termos e diretrizes são bloqueados.
Noções básicas para escrever comandos
Os bons comandos são descritivos e claros. Para aproveitar ao máximo o Veo, comece identificando sua ideia principal, refine-a adicionando palavras-chave e modificadores e incorpore terminologia específica de vídeo aos seus comandos.
Inclua os seguintes elementos no comando:
- Assunto: o objeto, a pessoa, o animal ou o cenário que você quer no vídeo, como paisagem urbana, natureza, veículos ou cachorrinhos.
- Ação: o que o sujeito está fazendo (por exemplo, caminhando, correndo ou virando a cabeça).
- Estilo: especifique a direção criativa usando palavras-chave específicas de estilo de filme, como ficção científica, filme de terror, film noir ou estilos animados como desenho animado.
- Posicionamento e movimento da câmera: [opcional] controle a localização e o movimento da câmera usando termos como vista aérea, na altura dos olhos, vista de cima para baixo, movimento de câmera ou vista de baixo para cima.
- Composição: [opcional] como o plano é enquadrado, por exemplo, plano geral, close-up, plano único ou plano duplo.
- Efeitos de foco e lente: [opcional] use termos como foco raso, foco profundo, foco suave, lente macro e lente grande-angular para conseguir efeitos visuais específicos.
- Ambiente: [opcional] como a cor e a luz contribuem para a cena, por exemplo, tons azuis, noite ou tons quentes.
Mais dicas para escrever comandos
- Use uma linguagem descritiva: use adjetivos e advérbios para dar uma ideia clara ao Veo.
- Melhore os detalhes do rosto: especifique os detalhes do rosto como foco da foto, por exemplo, usando a palavra retrato no comando.
Para estratégias de comandos mais abrangentes, acesse Introdução ao design de comandos.
Solicitar áudio
Com o Veo 3, você pode dar sugestões para efeitos sonoros, ruído ambiente e diálogo. O modelo captura a sutileza dessas dicas para gerar uma trilha sonora sincronizada.
- Diálogo:use aspas para falas específicas. (Exemplo: "Esta deve ser a chave", ele murmurou.)
- Efeitos sonoros (SFX): descreva os sons de forma explícita. (Exemplo: pneus cantando alto, motor roncando.)
- Ruído ambiente:descreva a paisagem sonora do ambiente. Exemplo: um zumbido fraco e assustador ressoa ao fundo.
Esses vídeos mostram como usar comandos para gerar áudio com o Veo 3 com níveis de detalhes cada vez maiores.
Comando | Saída gerada |
---|---|
Mais detalhes (diálogo e ambiente) : uma imagem ampla de uma floresta nebulosa do noroeste do Pacífico. Dois caminhantes exaustos, um homem e uma mulher, atravessam samambaias quando o homem para abruptamente, olhando para uma árvore. Close-up: marcas de garras frescas e profundas estão gravadas na casca da árvore. Homem: (com a mão na faca de caça) "Esse não é um urso comum". Mulher: (voz tensa de medo, olhando para a floresta) "Então o que é?" Um latido áspero, estalos de galhos, passos na terra úmida. Um pássaro solitário canta. |
![]() |
Menos detalhes (diálogo) Animação de recorte de papel. Nova bibliotecária: "Onde você guarda os livros proibidos?" Curador antigo: "Não. Eles nos mantêm." |
![]() |
Teste estes comandos para ouvir o áudio! Teste o Veo 3
Usar imagens de referência nos comandos
Você pode usar uma ou mais imagens como entradas para orientar os vídeos gerados usando os recursos de imagem para vídeo do Veo. O Veo usa a imagem de entrada como o frame inicial. Selecione uma imagem mais próxima do que você imagina como a primeira cena do seu vídeo para animar objetos do dia a dia, dar vida a desenhos e pinturas e adicionar movimento e som a cenas da natureza.
Comando | Saída gerada |
---|---|
Imagem de entrada (gerada pelo Nano Banana) Uma macrofoto hiper-realista de surfistas minúsculos e em miniatura surfando ondas do mar dentro de uma pia de banheiro rústica de pedra. Uma torneira de latão vintage está aberta, criando o surf perpétuo. Surreal, divertido, iluminação natural brilhante. |
![]() |
Vídeo de saída (gerado pelo Veo 3.1) Um vídeo macro surreal e cinematográfico. Pequenos surfistas pegam ondas perpétuas e rolantes dentro de uma pia de banheiro de pedra. Uma torneira de latão vintage em funcionamento gera o surf sem fim. A câmera faz um movimento panorâmico lento pela cena caprichosa e iluminada pelo sol enquanto as figuras em miniatura esculpem habilmente a água azul-turquesa. |
![]() |
Com o Veo 3.1, você pode fazer referência a imagens ou elementos para direcionar o conteúdo do vídeo gerado. Forneça até três imagens de recursos de uma única pessoa, personagem ou produto. O Veo preserva a aparência do assunto no vídeo de saída.
Comando | Saída gerada |
---|---|
Imagem de referência (gerada pelo Nano Banana) Um peixe-pescador de águas profundas espreita na água escura, com os dentes à mostra e a isca brilhando. |
![]() |
Imagem de referência (gerada pelo Nano Banana) : uma fantasia de princesa infantil rosa com uma varinha e uma tiara, em um plano de fundo simples de produto. |
![]() |
Vídeo de saída (gerado pelo Veo 3.1) Crie uma versão de desenho animado engraçada do peixe usando a fantasia, nadando e acenando a varinha. |
![]() |
Com o Veo 3.1, você também pode gerar vídeos especificando o primeiro e o último frame.
Comando | Saída gerada |
---|---|
Primeira imagem (gerada pelo Nano Banana) Uma imagem frontal fotorrealista de alta qualidade de um gato ruivo dirigindo um carro de corrida conversível vermelho na costa da Riviera Francesa. |
![]() |
Última imagem (gerada pelo Nano Banana) Mostre o que acontece quando o carro decola de um penhasco. |
![]() |
Vídeo de saída (gerado pelo Veo 3.1) Opcional |
![]() |
Com esse recurso, você tem controle preciso sobre a composição da sua foto, definindo o frame inicial e final. Envie uma imagem ou use um frame de uma geração de vídeo anterior para garantir que a cena comece e termine exatamente como você imaginou.
Solicitar extensão
Para estender o vídeo gerado pelo Veo com o Veo 3.1, use o vídeo como entrada junto com um comando de texto opcional. A extensão finaliza o último segundo ou 24 frames do vídeo e continua a ação.
A voz não pode ser estendida de forma eficaz se não estiver presente no último segundo do vídeo.
Comando | Saída gerada |
---|---|
Vídeo de entrada (gerado pelo Veo 3.1) O parapente decola do topo da montanha e começa a planar pelas montanhas com vista para os vales cobertos de flores abaixo. |
![]() |
Vídeo de saída (gerado pelo Veo 3.1) Estenda este vídeo com o parapente descendo lentamente. |
![]() |
Exemplos de comandos e saída
Esta seção apresenta vários comandos, destacando como detalhes descritivos podem melhorar o resultado de cada vídeo.
Sinos
Este vídeo demonstra como usar os elementos dos fundamentos da criação de comandos no seu comando.
Comando | Saída gerada |
---|---|
Close-up (composição) de estalactites derretendo (assunto) em uma parede de rocha congelada (contexto) com tons azuis frios (ambiente), com zoom (movimento da câmera) mantendo o detalhe de close-up de gotejamento de água (ação). |
![]() |
Homem no telefone
Esses vídeos mostram como revisar o comando com detalhes cada vez mais específicos para que o Veo refine a saída do jeito que você quer.
Comando | Saída gerada |
---|---|
Menos detalhes A câmera se move para mostrar um close-up de um homem desesperado usando um sobretudo verde. Ele está fazendo uma ligação em um telefone de parede de disco com uma luz verde neon. Parece uma cena de filme. |
![]() |
Mais detalhes Um close cinematográfico mostra um homem desesperado usando um sobretudo verde desbotado enquanto disca um telefone de disco montado em uma parede de tijolos suja, banhada pelo brilho sinistro de um neon verde. A câmera se aproxima, revelando a tensão no maxilar e o desespero gravado no rosto enquanto ele tenta fazer a ligação. A profundidade de campo rasa foca na testa franzida e no telefone preto de discagem, desfocando o fundo em um mar de cores neon e sombras indistintas, criando uma sensação de urgência e isolamento. |
![]() |
Leopardo-das-neves
Comando | Saída gerada |
---|---|
Comando simples: Uma criatura fofa com pelo semelhante ao de um leopardo-das-neves está caminhando em uma floresta de inverno, renderização em estilo desenho animado 3D. |
![]() |
Comando detalhado: crie uma cena animada em 3D curta em um estilo de desenho animado alegre. Uma criatura fofa com pelo parecido com o de um leopardo-das-neves, olhos grandes e expressivos e uma forma arredondada e amigável pula feliz em uma floresta de inverno fantástica. A cena deve ter árvores arredondadas cobertas de neve, flocos de neve caindo suavemente e luz solar quente filtrando os galhos. Os movimentos saltitantes e o sorriso largo da criatura precisam transmitir alegria pura. Use um tom alegre e emocionante com cores brilhantes e alegres e animação divertida. |
![]() |
Exemplos por elementos de escrita
Estes exemplos mostram como refinar seus comandos usando cada elemento básico.
Assunto e contexto
Especifique o foco principal (assunto) e o plano de fundo ou ambiente (contexto).
Comando | Saída gerada |
---|---|
Uma renderização arquitetônica de um prédio de apartamentos de concreto branco com formas orgânicas fluidas, combinando perfeitamente com vegetação exuberante e elementos futuristas |
![]() |
Um satélite flutuando pelo espaço sideral com a lua e algumas estrelas ao fundo. |
![]() |
Ação
Especifique o que o sujeito está fazendo (por exemplo, caminhando, correndo ou virando a cabeça).
Comando | Saída gerada |
---|---|
Uma foto ampla de uma mulher caminhando pela praia, parecendo satisfeita e relaxada em direção ao horizonte ao pôr do sol. |
![]() |
Estilo
Adicione palavras-chave para direcionar a geração a uma estética específica (por exemplo, surreal, vintage, futurista, noir).
Comando | Saída gerada |
---|---|
Estilo filme noir, homem e mulher caminhando na rua, mistério, cinematográfico, preto e branco. |
![]() |
Movimento e composição da câmera
Especifique como a câmera se move (plano em primeira pessoa, vista aérea, rastreamento com drone) e como o plano é enquadrado (plano aberto, close-up, ângulo baixo).
Comando | Saída gerada |
---|---|
Uma foto em primeira pessoa de um carro antigo dirigindo na chuva, Canadá à noite, cinematográfica. |
![]() |
Detalhe máximo de um olho com a cidade refletida nele. |
![]() |
Ambiente
Paletas de cores e iluminação influenciam o clima. Tente termos como "tons laranja quentes," "luz natural," "nascer do sol" ou "tons azuis frios".
Comando | Saída gerada |
---|---|
Um close de uma menina segurando um filhote de golden retriever adorável no parque, à luz do sol. |
![]() |
Close cinematográfico de uma mulher triste andando de ônibus na chuva, tons azuis frios, clima triste. |
![]() |
Solicitações negativas
Os comandos negativos especificam elementos que você não quer no vídeo.
- ❌ Não use linguagem instrutiva, como não. (por exemplo, "Sem paredes").
- ✅ Descreva o que você não quer ver. (por exemplo, "wall, frame".
Comando | Saída gerada |
---|---|
Sem comando negativo: gere uma animação curta e estilizada de um grande carvalho solitário com folhas balançando vigorosamente em um vento forte... [truncated] |
![]() |
Com comando negativo: [Mesmo comando] Comando negativo: plano de fundo urbano, estruturas feitas pelo homem, atmosfera escura, tempestuosa ou ameaçadora. |
![]() |
Proporções
Com o Veo, é possível especificar a proporção do vídeo.
Comando | Saída gerada |
---|---|
Widescreen (16:9) Crie um vídeo com uma visão de drone de um homem dirigindo um carro conversível vermelho em Palm Springs, anos 1970, luz solar quente, sombras longas. |
![]() |
Retrato (9:16) : crie um vídeo destacando o movimento suave de uma majestosa cachoeira havaiana em uma floresta tropical exuberante. Foque no fluxo de água realista, na folhagem detalhada e na iluminação natural para transmitir tranquilidade. Capture a água corrente, a atmosfera nebulosa e a luz do sol filtrada pela densa copa das árvores. Use movimentos suaves e cinematográficos da câmera para mostrar a cachoeira e a área ao redor. Use um tom tranquilo e realista, transportando o espectador para a beleza serena da floresta tropical havaiana. |
![]() |
Limitações
- Latência da solicitação: mínima de 11 segundos e máxima de 6 minutos (durante os horários de pico).
- Limitações regionais:na UE, no Reino Unido, na Suíça e no Oriente Médio e Norte da África, os seguintes são os valores permitidos para
personGeneration
:- Veo 3: somente
allow_adult
. - Veo 2:
dont_allow
eallow_adult
. O padrão édont_allow
.
- Veo 3: somente
- Retenção de vídeo:os vídeos gerados são armazenados no servidor por dois dias e depois removidos. Para salvar uma cópia local, faça o download do vídeo em até dois dias após a geração. Os vídeos mais longos são tratados como vídeos recém-gerados.
- Marca-d'água:os vídeos criados com o Veo recebem uma marca-d'água usando o SynthID, nossa ferramenta para colocar marcas-d'água e identificar conteúdo gerado com IA. Os vídeos podem ser verificados usando a plataforma de verificação SynthID.
- Segurança:os vídeos gerados passam por filtros de segurança e processos de verificação de memorização que ajudam a reduzir os riscos de privacidade, direitos autorais e viés.
- Erro de áudio:às vezes, o Veo 3.1 impede a geração de um vídeo devido a filtros de segurança ou outros problemas de processamento com o áudio. Você não vai receber cobranças se o vídeo for bloqueado.
Recursos do modelo
Recurso | Descrição | Veo 3.1 e Veo 3.1 Fast | Veo 3 e Veo 3 Fast | Veo 2 |
---|---|---|---|---|
Áudio | Gera áudio com vídeo de forma nativa. | Gera áudio com vídeo de forma nativa. | ✔️ Sempre ativada | ❌ Somente silencioso |
Modalidades de entrada | O tipo de entrada usado para a geração. | Texto para vídeo, imagem para vídeo, vídeo para vídeo | Texto para vídeo, imagem para vídeo | Texto para vídeo, imagem para vídeo |
Resolução | A resolução de saída do vídeo. | 720p e 1080p (apenas 8 segundos) 720p apenas ao usar a extensão de vídeo. |
720p e 1080p (somente 16:9) | 720p |
Frame rate | O frame rate de saída do vídeo. | 24 fps | 24 fps | 24 fps |
Duração do vídeo | Duração do vídeo gerado. | 8 segundos, 6 segundos, 4 segundos 8 segundos apenas ao usar imagens de referência |
8 segundos | 5 a 8 segundos |
Vídeos por solicitação | Número de vídeos gerados por solicitação. | 1 | 1 | 1 ou 2 |
Status e detalhes | Disponibilidade do modelo e mais detalhes. | Visualizar | Estável | Estável |
Versões do modelo
Confira as páginas Preços e Limites de taxa para mais detalhes sobre o uso específico do modelo do Veo.
Pré-lançamento do Veo 3.1
Propriedade | Descrição |
---|---|
Código do modelo |
API Gemini
|
Tipos de dados compatíveis |
Entrada Texto, imagem Saída Vídeo com áudio |
Limites de |
Entrada de texto 1.024 tokens Vídeo de saída 1 |
Última atualização | Setembro de 2025 |
Pré-lançamento do Veo 3.1 Fast
Propriedade | Descrição |
---|---|
Código do modelo |
API Gemini
|
Tipos de dados compatíveis |
Entrada Texto, imagem Saída Vídeo com áudio |
Limites de |
Entrada de texto 1.024 tokens Vídeo de saída 1 |
Última atualização | Setembro de 2025 |
Veo 3
Propriedade | Descrição |
---|---|
Código do modelo |
API Gemini
|
Tipos de dados compatíveis |
Entrada Texto, imagem Saída Vídeo com áudio |
Limites de |
Entrada de texto 1.024 tokens Vídeo de saída 1 |
Última atualização | Julho de 2025 |
Veo 3 Fast
Com o Veo 3 Fast, os desenvolvedores podem criar vídeos com som, mantendo a alta qualidade e otimizando a velocidade e os casos de uso comerciais. É ideal para serviços de back-end que geram anúncios de forma programática, ferramentas para testes A/B rápidos de conceitos criativos ou apps que precisam produzir conteúdo para redes sociais rapidamente.Propriedade | Descrição |
---|---|
Código do modelo |
API Gemini
|
Tipos de dados compatíveis |
Entrada Texto, imagem Saída Vídeo com áudio |
Limites de |
Entrada de texto 1.024 tokens Vídeo de saída 1 |
Última atualização | Julho de 2025 |
Veo 2
Propriedade | Descrição |
---|---|
Código do modelo |
API Gemini
|
Tipos de dados compatíveis |
Entrada Texto, imagem Saída Vídeo |
Limites de |
Entrada de texto N/A Entrada de imagem Qualquer resolução e proporção de imagem com tamanho de arquivo de até 20 MB Vídeo de saída Até 2 |
Última atualização | Abril de 2025 |
A seguir
- Comece a usar a API Veo 3.1 testando o Colab de início rápido do Veo e o applet do Veo 3.1.
- Aprenda a escrever comandos ainda melhores com nossa Introdução ao design de comandos.