Veo 3 è il modello all'avanguardia di Google per la generazione di video di 8 secondi a 720p di alta fedeltà da un prompt di testo, caratterizzati da un realismo straordinario e da audio generato in modo nativo. Veo 3 eccelle in un'ampia gamma di stili visivi e cinematografici. Scegli un esempio qui sotto per scoprire come generare un video con dialoghi, realismo cinematografico o animazione creativa.
Generare video da immagini
Il seguente codice mostra la generazione di un'immagine utilizzando Imagen, quindi l'utilizzo di questa immagine come frame iniziale del video.
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 Imagen
imagen = client.models.generate_images(
model="imagen-3.0-generate-002",
prompt=prompt,
)
# Step 2: Generate video with Veo 2 using the image
operation = client.models.generate_videos(
model="veo-2.0-generate-001",
prompt=prompt,
image=imagen.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("veo2_with_image_input.mp4")
print("Generated video saved to veo2_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 Imagen
const imagenResponse = await ai.models.generateImages({
model: "imagen-3.0-generate-002",
prompt: prompt,
});
// Step 2: Generate video with Veo 2 using the image
let operation = await ai.models.generateVideos({
model: "veo-2.0-generate-001", // Use Veo 2
prompt: prompt,
image: {
imageBytes: imagenResponse.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: "veo2_with_image_input.mp4",
});
console.log(`Generated video saved to veo2_with_image_input.mp4`);
Vai
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 Imagen
imagenResponse, err := client.Models.GenerateImages(
ctx,
"imagen-3.0-generate-002",
prompt,
nil, // GenerateImagesConfig
)
if err != nil {
log.Fatal(err)
}
// Step 2: Generate video with Veo 2 using the image
operation, err := client.Models.GenerateVideos(
ctx,
"veo-2.0-generate-001",
prompt,
imagenResponse.GeneratedImages[0].Image, // Use generated 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 := "veo2_with_image_input.mp4"
_ = os.WriteFile(fname, video.Video.VideoBytes, 0644)
log.Printf("Generated video saved to %s\n", fname)
}
Parametri e specifiche per la generazione di video
Questi sono i parametri che puoi impostare nella richiesta API per controllare il processo di generazione dei video.
Parametro | Descrizione | Veo 3 (anteprima) | Veo 2 (stabile) |
---|---|---|---|
prompt |
La descrizione testuale del video. Supporta i segnali acustici. | string |
string |
negativePrompt |
Testo che descrive cosa evitare nel video. | string |
string |
image |
Un'immagine iniziale da animare. | Non supportato | Image oggetto |
aspectRatio |
Le proporzioni del video. | "16:9" |
"16:9" , "9:16" |
personGeneration |
Controlla la generazione di persone. | "allow_all" |
"allow_all" , "allow_adult" , "dont_allow" |
Puoi personalizzare la generazione di video impostando i parametri nella richiesta. Ad esempio, puoi specificare negativePrompt
per guidare il modello.
Python
import time
from google import genai
from google.genai import types
client = genai.Client()
operation = client.models.generate_videos(
model="veo-3.0-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.0-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`);
Vai
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.0-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.0-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
Gestione delle operazioni asincrone
La generazione di video è un'attività che richiede un'elevata potenza di calcolo. Quando invii una richiesta, l'API avvia un job a lunga esecuzione e restituisce immediatamente un oggetto operation
. A questo punto, devi eseguire il polling finché il video non è pronto, come indicato dallo stato done
.
Il fulcro di questo processo è un ciclo di polling, che controlla periodicamente lo stato del 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.0-generate-preview",
prompt="A cinematic shot of a majestic lion in the savannah.",
)
# Alternatively, you can use the 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.0-generate-preview",
prompt: "A cinematic shot of a majestic lion in the savannah.",
});
// Alternatively, you can use the 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 ...
Funzionalità del modello
Funzionalità | Descrizione | Veo 3 (anteprima) | Veo 2 (stabile) |
---|---|---|---|
Audio | Genera audio in modo nativo con il video. | ✔️ Sempre attivo | ❌ Solo silenzioso |
Modalità di input | Il tipo di input utilizzato per la generazione. | Da testo a video | Da testo a video, da immagine a video |
Risoluzione | La risoluzione di output del video. | 720p | 720p |
Frequenza fotogrammi | La frequenza fotogrammi di output del video. | 24 fps | 24 fps |
Durata video | Durata del video generato. | 8 secondi | 5-8 secondi |
Video per richiesta | Numero di video generati per richiesta. | 1 | 1 o 2 |
Stato e dettagli | Disponibilità del modello e ulteriori dettagli. | Anteprima | Stabile |
Consulta le pagine Modelli, Prezzi e Limiti di frequenza per ulteriori limitazioni di utilizzo di Veo.
Guida ai prompt di Veo
Questa sezione contiene esempi di video che puoi creare utilizzando Veo e mostra come modificare i prompt per produrre risultati diversi.
Filtri di sicurezza
Veo applica filtri di sicurezza in Gemini per garantire che i video generati e le foto caricate non contengano contenuti offensivi. I prompt che violano i nostri termini e linee guida vengono bloccati.
Richiesta di audio (Veo 3)
Con Veo 3, puoi fornire indicazioni per effetti sonori, rumore ambientale e dialoghi. Il modello acquisisce le sfumature di questi segnali per generare una colonna sonora sincronizzata.
- Dialogo:utilizza le virgolette per un discorso specifico. (Esempio: "Questa deve essere la chiave", sussurrò.)
- Effetti sonori (SFX): descrivi esplicitamente i suoni. (ad es. pneumatici che stridono forte, motore che romba).
- Rumore ambientale:descrivi il paesaggio sonoro dell'ambiente. (Esempio: sullo sfondo si sente un ronzio leggero e inquietante.)
Questi video mostrano come richiedere la generazione di audio di Veo 3 con livelli di dettaglio crescenti.
Prompt | Output generato |
---|---|
Più dettagli (dialoghi e ambiente) Primo piano di due persone che fissano un disegno criptico su una parete, la luce di una torcia che tremola. "Questa deve essere la chiave", mormorò, tracciando il disegno. "Ma cosa significa?" ha chiesto, perplessa, inclinando la testa. Pietra umida, intagli intricati, simboli nascosti. Un ronzio leggero e inquietante risuona sullo sfondo. |
|
Meno dettagli (dialogo) Campeggio (stop motion): camper: "Ora sono tutt'uno con la natura!" Orso: "La natura preferirebbe un po' di spazio personale". |
|
Prova questi prompt per ascoltare l'audio. Prova Veo 3
Nozioni di base sulla scrittura di prompt
I prompt efficaci sono descrittivi e chiari. Per ottenere il massimo da Veo, inizia identificando la tua idea principale, perfezionala aggiungendo parole chiave e modificatori e incorpora la terminologia specifica dei video nei tuoi prompt.
I seguenti elementi devono essere inclusi nel prompt:
- Soggetto: l'oggetto, la persona, l'animale o il paesaggio che vuoi includere nel video, ad esempio paesaggio urbano, natura, veicoli o cuccioli.
- Azione: cosa sta facendo il soggetto (ad esempio, camminando, correndo o girando la testa).
- Stile: specifica la direzione creativa utilizzando parole chiave specifiche per lo stile cinematografico, ad esempio fantascienza, film horror, film noir o stili di animazione come cartone animato.
- Posizionamento e movimento della videocamera: [facoltativo] controlla la posizione e il movimento della videocamera utilizzando termini come vista aerea, altezza degli occhi, inquadratura dall'alto, carrellata o dal basso.
- Composizione: [facoltativo] come è inquadrato lo scatto, ad esempio campo lungo, primo piano, scatto singolo o scatto a due.
- Effetti di messa a fuoco e obiettivo: [facoltativo] utilizza termini come messa a fuoco selettiva, messa a fuoco profonda, messa a fuoco morbida, obiettivo macro e obiettivo grandangolare per ottenere effetti visivi specifici.
- Atmosfera: [facoltativo] in che modo il colore e la luce contribuiscono alla scena, ad esempio toni blu, notte o toni caldi.
Altri suggerimenti per scrivere prompt
- Utilizza un linguaggio descrittivo: utilizza aggettivi e avverbi per fornire un quadro chiaro a Veo.
- Migliora i dettagli del viso: specifica i dettagli del viso come punto focale della foto, ad esempio utilizzando la parola ritratto nel prompt.
Per strategie di prompting più complete, visita la pagina Introduzione alla progettazione dei prompt.
Prompt e output di esempio
Questa sezione presenta diversi prompt, evidenziando come i dettagli descrittivi possano migliorare il risultato di ogni video.
Ghiaccioli
Questo video mostra come utilizzare gli elementi delle basi per la scrittura di prompt nel prompt.
Prompt | Output generato |
---|---|
Primo piano (composizione) di stalattiti che si sciolgono (soggetto) su una parete rocciosa congelata (contesto) con tonalità fredde di blu (atmosfera), con zoom (movimento della videocamera) che mantiene i dettagli ravvicinati delle gocce d'acqua (azione). |
|
Uomo al telefono
Questi video mostrano come rivedere il prompt con dettagli sempre più specifici per fare in modo che Veo perfezioni l'output in base alle tue preferenze.
Prompt | Output generato |
---|---|
Meno dettagli La videocamera si sposta per mostrare il primo piano di un uomo disperato che indossa un impermeabile verde. Sta effettuando una chiamata con un telefono a muro in stile retrò con una luce verde al neon. Sembra una scena di un film. |
|
Maggiori dettagli Un primo piano cinematografico segue un uomo disperato con un cappotto verde consunto mentre compone un numero su un telefono a disco montato su un muro di mattoni grezzi, immerso nel bagliore inquietante di un'insegna al neon verde. La videocamera si avvicina, rivelando la tensione nella mascella e la disperazione incisa sul suo volto mentre fatica a fare la chiamata. La profondità di campo ridotta mette a fuoco la sua fronte aggrottata e il telefono nero con tasti rotanti, sfocando lo sfondo in un mare di colori al neon e ombre indistinte, creando un senso di urgenza e isolamento. |
|
Leopardo delle nevi
Prompt | Output generato |
---|---|
Prompt semplice: Una creatura carina con pelliccia simile a quella di un leopardo delle nevi cammina in una foresta invernale, rendering in stile cartone animato 3D. |
|
Prompt dettagliato: crea una breve scena animata in 3D in stile cartone animato gioioso. Una simpatica creatura con pelliccia simile a quella del leopardo delle nevi, grandi occhi espressivi e una forma amichevole e arrotondata che trotterella felice in una foresta invernale fantastica. La scena dovrebbe mostrare alberi arrotondati e innevati, fiocchi di neve che cadono delicatamente e una calda luce solare che filtra attraverso i rami. I movimenti rimbalzanti della creatura e il suo ampio sorriso devono trasmettere pura gioia. Punta a un tono allegro e commovente con colori vivaci e allegri e animazioni giocose. |
|
Esempi per elementi di scrittura
Questi esempi mostrano come perfezionare i prompt in base a ogni elemento di base.
Oggetto e contesto
Specifica il soggetto principale e lo sfondo o l'ambiente.
Prompt | Output generato |
---|---|
Rendering architettonico di un condominio in cemento bianco con forme organiche fluide, che si fondono perfettamente con la vegetazione lussureggiante ed elementi futuristici |
|
Un satellite che fluttua nello spazio con la luna e alcune stelle sullo sfondo. |
|
Azione
Specifica cosa sta facendo il soggetto (ad es. camminare, correre o girare la testa).
Prompt | Output generato |
---|---|
Un'inquadratura ampia di una donna che cammina lungo la spiaggia, con un'espressione serena e rilassata, mentre guarda l'orizzonte al tramonto. |
|
Stile
Aggiungi parole chiave per indirizzare la generazione verso un'estetica specifica (ad es. surreale, vintage, futuristico, film noir).
Prompt | Output generato |
---|---|
Stile noir, uomo e donna camminano per strada, mistero, cinematografico, bianco e nero. |
|
Movimento della videocamera e composizione
Specifica come si muove la videocamera (soggettiva, vista aerea, vista con drone di monitoraggio) e come viene inquadrato il soggetto (campo lungo, primo piano, angolazione dal basso).
Prompt | Output generato |
---|---|
Una ripresa in soggettiva da un'auto d'epoca che guida sotto la pioggia, Canada di notte, cinematografica. |
|
Primo piano estremo di un occhio con il riflesso della città. |
|
Atmosfera
Le tavolozze dei colori e l'illuminazione influenzano l'atmosfera. Prova a usare termini come "toni caldi arancioni tenui", "luce naturale", "alba" o "toni freddi blu".
Prompt | Output generato |
---|---|
Primo piano di una ragazza che tiene in braccio un adorabile cucciolo di golden retriever nel parco, luce solare. |
|
Primo piano cinematografico di una donna triste che viaggia in autobus sotto la pioggia, con tonalità fredde di blu e un'atmosfera malinconica. |
|
Utilizzare immagini di riferimento per generare video
Puoi dare vita alle immagini utilizzando la funzionalità di conversione di immagini in video di Veo.
Prompt | Output generato |
---|---|
Immagine di input (generata da Imagen) Coniglio con una barretta di cioccolato. |
|
Video di output (generato da Veo 2) Il coniglio scappa. |
|
Prompt negativi
I prompt negativi specificano gli elementi che non vuoi nel video.
- ❌ Non utilizzare un linguaggio che dia istruzioni, ad esempio no o non. (ad es. "No walls" (Nessuna parete).
- ✅ Descrivi ciò che non vuoi vedere. (ad es. "wall, frame").
Prompt | Output generato |
---|---|
Senza prompt negativo: genera una breve animazione stilizzata di una grande quercia solitaria con le foglie mosse vigorosamente da un forte vento… [troncato] |
|
Con prompt negativo: [Stesso prompt] Prompt negativo: sfondo urbano, strutture artificiali, atmosfera buia, tempestosa o minacciosa. |
|
Proporzioni
Veo ti consente di specificare le proporzioni del video.
Prompt | Output generato |
---|---|
Widescreen (16:9) Crea un video con una vista da drone di un uomo che guida una decappottabile rossa a Palm Springs negli anni '70, con luce solare calda e ombre lunghe. |
|
Verticale (9:16 - solo Veo 2) Crea un video che metta in evidenza il movimento fluido di una maestosa cascata hawaiana all'interno di una lussureggiante foresta pluviale. Concentrati sul flusso realistico dell'acqua, sul fogliame dettagliato e sull'illuminazione naturale per trasmettere tranquillità. Cattura l'acqua impetuosa, l'atmosfera nebbiosa e la luce del sole screziata che filtra attraverso la fitta chioma degli alberi. Utilizza movimenti di ripresa fluidi e cinematografici per mostrare la cascata e l'ambiente circostante. Punta a un tono tranquillo e realistico, trasportando lo spettatore nella serena bellezza della foresta pluviale hawaiana. |
|
Limitazioni
- Latenza richiesta: min. 11 secondi; max. 6 minuti (durante le ore di punta).
- Limitazioni regionali:
personGeneration: "allow_all"
(impostazione predefinita in Veo 3) e Image-to-videopersonGeneration
(Veo 2) non sono consentiti in UE, Regno Unito, Svizzera e MENA. - Conservazione dei video:i video generati vengono memorizzati sul server per 2 giorni, dopodiché vengono rimossi. Per salvare una copia locale, devi scaricare il video entro 2 giorni dalla generazione.
- Filigrana: ai video creati da Veo viene applicata una filigrana utilizzando SynthID, il nostro strumento per l'applicazione di filigrane e l'identificazione di contenuti creati con l'AI.
- Sicurezza:i video generati vengono sottoposti a filtri di sicurezza e processi di controllo della memorizzazione che contribuiscono a mitigare i rischi per la privacy, il copyright e i pregiudizi.
Passaggi successivi
- Sperimenta con Veo 3 in Guida rapida di Veo in Colab.
- Scopri come scrivere prompt ancora migliori con la nostra Introduzione alla progettazione dei prompt.
- Se devi utilizzare la conversione di immagini in video o altre funzionalità di Veo 2, consulta la Guida a Veo 2 e alla migrazione.