Generare video utilizzando Veo

L'API Gemini fornisce accesso a Veo 2, il modello di generazione di video di Google all'avanguardia. Veo è progettato per aiutarti a creare applicazioni di IA di nuova generazione che trasformano i prompt e le immagini degli utenti in asset video di alta qualità. Questa guida ti aiuterà a iniziare a utilizzare Veo con l'API Gemini.

Per indicazioni sui prompt video, consulta la sezione Guida ai prompt Veo.

Informazioni su Veo

Veo è il modello di generazione di video più efficace di Google fino ad oggi. Genera video in un'ampia gamma di stili cinematografici e visivi, catturando le sfumature dei prompt per riprodurre dettagli intricati in modo coerente tra i frame.

Per saperne di più e visualizzare un esempio di output, consulta la panoramica di Google DeepMind Veo.

Specifiche

Modalità
  • Generazione di video da testo
  • Generazione di video a partire da immagini
Latenza della richiesta
  • Min: 11 secondi
  • Massimo: 6 minuti (durante le ore di punta)
Generare stringhe di lunghezza variabile 5-8 secondi
Risoluzione 720p
Frequenza fotogrammi 24 fps
Proporzioni
  • 16:9 - Orizzontale
  • 9:16 - verticale
Lingue di input (da testo a video) Inglese

I video creati da Veo vengono contrassegnati da una filigrana utilizzando SynthID, il nostro strumento per l'applicazione di filigrane e l'identificazione di contenuti creati con l'IA, e vengono sottoposti a filtri di sicurezza e procedure di controllo della memorizzazione che contribuiscono a ridurre i rischi per la privacy, il copyright e i pregiudizi.

Prima di iniziare

Prima di chiamare l'API Gemini, assicurati di aver installato l'SDK che preferisci e di avere configurato e pronto all'uso una chiave API Gemini.

Per utilizzare Veo con gli SDK Google Gen AI, assicurati di avere installato una delle seguenti versioni:

Genera video

Questa sezione fornisce esempi di codice per la generazione di video utilizzando prompt di testo e utilizzando immagini.

Genera da testo

Puoi utilizzare il seguente codice per generare video con Veo:

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

import { GoogleGenAI } from "@google/genai";
import { createWriteStream } from "fs";
import { Readable } from "stream";

const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });

async function main() {
  let operation = await ai.models.generateVideos({
    model: "veo-2.0-generate-001",
    prompt: "Panning wide shot of a calico kitten sleeping in the sunshine",
    config: {
      personGeneration: "dont_allow",
      aspectRatio: "16:9",
    },
  });

  while (!operation.done) {
    await new Promise((resolve) => setTimeout(resolve, 10000));
    operation = await ai.operations.getVideosOperation({
      operation: operation,
    });
  }

  operation.response?.generatedVideos?.forEach(async (generatedVideo, n) => {
    const resp = await fetch(`${generatedVideo.video?.uri}&key=GOOGLE_API_KEY`); // append your API key
    const writer = createWriteStream(`video${n}.mp4`);
    Readable.fromWeb(resp.body).pipe(writer);
  });
}

main();
# 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

# Obtain operation name to download video.
op_name=$(cat op_name)

# Check against status of operation.
while true; do
  is_done=$(curl "${BASE_URL}/${op_name}?key=${GOOGLE_API_KEY}" | tee op_check.json | jq .done)

  if [ "${is_done}" = "true" ]; then
    cat op_check.json
    echo "** Attach API_KEY to download video, or examine error message."
    break
  fi

  echo "** Video ${op_name} has not downloaded yet!  Check again after 5 seconds..."

  # Wait for 5 seoncds to check again.
  sleep 5

done

Gattino che dorme al sole.

L'esecuzione di questo codice richiede circa 2-3 minuti, anche se potrebbe essere necessario più tempo se le risorse sono limitate. Al termine dell'esecuzione, dovresti visualizzare un video simile al seguente:

Se invece di un video visualizzi un messaggio di errore, significa che le risorse sono limitate e la tua richiesta non è stata completata. In questo caso, esegui di nuovo il codice.

I video generati vengono memorizzati sul server per 2 giorni, dopodiché vengono rimossi. Se vuoi salvare una copia locale del video generato, devi eseguire result() e save() entro 2 giorni dalla generazione.

Genera da immagini

Puoi anche generare video utilizzando le immagini. Il seguente codice genera un'immagine utilizzando Imagen, quindi utilizza l'immagine generata come frame iniziale per il video generato.

Innanzitutto, genera un'immagine utilizzando Imagen:

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
import { GoogleGenAI } from "@google/genai";

const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
const response = await ai.models.generateImages({
  model: "imagen-3.0-generate-002",
  prompt: "Panning wide shot of a calico kitten sleeping in the sunshine",
  config: {
    numberOfImages: 1,
  },
});

// you'll pass response.generatedImages[0].image.imageBytes to Veo

Quindi, genera un video utilizzando l'immagine risultante come primo frame:

operation = client.models.generate_videos(
    model="veo-2.0-generate-001",
    prompt=prompt,
    image = imagen.generated_images[0].image,
    config=types.GenerateVideosConfig(
      # person_generation is not allowed for image-to-video generation
      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)
import { GoogleGenAI } from "@google/genai";
import { createWriteStream } from "fs";
import { Readable } from "stream";

const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });

async function main() {
  // get image bytes from Imagen, as shown above

  let operation = await ai.models.generateVideos({
    model: "veo-2.0-generate-001",
    prompt: "Panning wide shot of a calico kitten sleeping in the sunshine",
    image: {
      imageBytes: response.generatedImages[0].image.imageBytes, // response from Imagen
      mimeType: "image/png",
    },
    config: {
      aspectRatio: "16:9",
      numberOfVideos: 2,
    },
  });

  while (!operation.done) {
    await new Promise((resolve) => setTimeout(resolve, 10000));
    operation = await ai.operations.getVideosOperation({
      operation: operation,
    });
  }

  operation.response?.generatedVideos?.forEach(async (generatedVideo, n) => {
    const resp = await fetch(
      `${generatedVideo.video?.uri}&key=GOOGLE_API_KEY`, // append your API key
    );
    const writer = createWriteStream(`video${n}.mp4`);
    Readable.fromWeb(resp.body).pipe(writer);
  });
}

main();

Parametri del modello Veo

Le convenzioni di denominazione variano in base al linguaggio di programmazione.

  • prompt: il prompt di testo per il video. Se presente, il parametro image è facoltativo.
  • image: l'immagine da utilizzare come primo fotogramma del video. Se presente, il parametro prompt è facoltativo.
  • negativePrompt: stringa di testo che descrive tutto ciò che vuoi scoraggiare il modello a generare
  • aspectRatio: consente di modificare le proporzioni del video generato. I valori supportati sono "16:9" e "9:16". Il valore predefinito è "16:9".
  • personGeneration: consenti al modello di generare video di persone. Sono supportati i seguenti valori:
    • Generazione di video da testo:
      • "dont_allow": non consentire l'inclusione di persone o volti.
      • "allow_adult": genera video che includono adulti, ma non bambini.
    • Generazione di video da immagini:
      • Non consentito. Il server rifiuterà la richiesta se viene utilizzato il parametro.
  • numberOfVideos: video di output richiesti, 1 o 2.
  • durationSeconds: la durata di ogni video di output in secondi, compresa tra 5 e 8.
  • enhance_prompt: attiva o disattiva il riscrittore del prompt. Questa opzione è abilitata per impostazione predefinita.

Da provare

Per ottenere il massimo da Veo, incorpora la terminologia specifica del video nei prompt. Veo comprende una vasta gamma di termini relativi a:

  • Composizione dell'inquadratura: specifica l'inquadratura e il numero di soggetti nell'inquadratura (ad es. "primo piano", "piano medio", "piano dal basso").
  • Posizionamento e movimento della fotocamera: controlla la posizione e il movimento della fotocamera utilizzando termini come "a livello degli occhi", "angolazione dall'alto", "a livello del verme", "piana mobile", "pannorama" e "panning".
  • Effetti di messa a fuoco e obiettivi: utilizza termini come "messa a fuoco superficiale", "messa a fuoco profonda", "sfocatura", "obiettivo macro" e "obiettivo grandangolare" per ottenere effetti visivi specifici.
  • Stile e argomento generale: indica la direzione creativa di Veo specificando stili come "fantascienza ","commedia romantica","film d'azione" o "animazione". Puoi anche descrivere gli oggetti e gli sfondi che preferisci, ad esempio "paesaggio urbano", "natura", "veicoli" o "animali".

Guida ai prompt di Veo

Questa sezione della guida di Veo contiene esempi di video che puoi creare utilizzando Veo e mostra come modificare i prompt per ottenere risultati distinti.

Filtri di sicurezza

Veo applica filtri di sicurezza a Gemini per contribuire ad assicurare che i video generati e le foto caricate non contengano contenuti offensivi. I prompt che violano i nostri termini e linee guida vengono bloccati.

Nozioni di base sulla scrittura dei prompt

I prompt efficaci sono descrittivi e chiari. Per ottenere un video generato il più possibile simile a ciò che vuoi, inizia identificando l'idea di base e poi perfezionala aggiungendo parole chiave e modificatori.

Il prompt deve includere i seguenti elementi:

  • Soggetto: l'oggetto, la persona, l'animale o lo scenario che vuoi inserire nel video.
  • Contesto: lo sfondo o il contesto in cui è posizionato il soggetto.
  • Azione: l'azione che sta compiendo il soggetto (ad esempio camminare, correre o girare la testa).
  • Stile: può essere generico o molto specifico. Valuta la possibilità di utilizzare parole chiave specifiche per stili cinematografici, ad esempio film horror, film noir o stili di animazione come il cartoon.
  • Movimento della fotocamera: [Facoltativo] Azione della fotocamera, ad esempio vista aerea, a livello degli occhi, ritratto dall'alto o ritratto dall'alto in basso.
  • Composizione: [Facoltativo] Inquadratura dell'inquadratura, ad esempio piana, primo piano o primo piano estremo.
  • Ambiance: [Facoltativo] Il modo in cui il colore e la luce contribuiscono alla scena, ad esempio toni blu, notte o toni caldi.

Altri suggerimenti per scrivere i prompt

I seguenti suggerimenti ti aiutano a scrivere prompt che generano i tuoi video:

  • Utilizza un linguaggio descrittivo: utilizza aggettivi e avverbi per descrivere in modo chiaro la situazione per Veo.
  • Fornisci il contesto: se necessario, includi informazioni di contesto per aiutare il modello a capire cosa vuoi.
  • Fai riferimento a stili artistici specifici: se hai in mente un'estetica particolare, fai riferimento a stili artistici o movimenti artistici specifici.
  • Utilizza gli strumenti di prompt engineering: valuta la possibilità di esplorare strumenti o risorse di prompt engineering per perfezionare i prompt e ottenere risultati ottimali. Per ulteriori informazioni, consulta Introduzione alla progettazione dei prompt.
  • Migliora i dettagli del viso nelle immagini personali e di gruppo: specifica i dettagli del viso come punto focale della foto, ad esempio utilizzando la parola ritratto nel prompt.

Prompt e output di esempio

Questa sezione presenta diversi prompt che mettono in evidenza in che modo i dettagli descrittivi possono migliorare il risultato di ogni video.

Ghiaccioli

Questo video mostra come utilizzare gli elementi di base per la scrittura dei prompt nel tuo prompt.

Prompt Output generato
Primo piano (composizione) di ghiaccioli che si sciolgono (soggetto) su una parete rocciosa ghiacciata (contesto) con tonalità blu fredde (atmosfera), con zoom (movimento della fotocamera) che mantiene i dettagli in primo piano delle gocce d'acqua (azione). Cascate di ghiaccio su sfondo blu.

Uomo al telefono

Questi video mostrano come puoi rivedere il prompt con dettagli sempre più specifici per consentire a Veo di perfezionare l'output in base alle tue preferenze.

Prompt Output generato Analisi
La fotocamera si avvicina per mostrare un primo piano di un uomo disperato in un trench verde. Sta effettuando una chiamata su una cornetta da parete con rotazione e una luce al neon verde. Sembra una scena di un film. Uomo che parla al telefono. Questo è il primo video generato in base al prompt.
Un primo piano cinematografico segue un uomo disperato in un impermeabile verde sbiadito mentre compone un numero su una cornetta montata su una parete di mattoni ruvida, immersa nell'inquietante bagliore di una insegna al neon verde. La videocamera si avvicina, rivelando la tensione della mascella e la disperazione stampata sul suo viso mentre cerca di effettuare la chiamata. La profondità di campo ridotta si concentra sulla fronte corrugata e sul telefono rotativo nero, sfocando lo sfondo in un mare di colori neon e ombre indistinte, creando un senso di urgenza e isolamento. Uomo che parla al telefono Un prompt più dettagliato consente di creare un video più incentrato e con un ambiente più ricco.
Un video con movimenti fluidi che si avvicina a un uomo disperato in un trench verde, che utilizza un telefono a rotazione vintage contro una parete immersa in un'inquietante luce al neon verde. La videocamera inizia da una distanza media, avvicinandosi lentamente al volto dell'uomo, rivelando la sua espressione frenetica e il sudore sulla fronte mentre compone il numero di telefono con urgenza. L'attenzione è sulle mani dell'uomo, le sue dita che maneggiano il quadrante mentre cerca disperatamente di connettersi. La luce al neon verde proietta ombre lunghe sulla parete, contribuendo a creare un'atmosfera tesa. La scena è inquadrata in modo da sottolineare l'isolamento e la disperazione dell'uomo, mettendo in evidenza il netto contrasto tra il bagliore vibrante del neon e la risoluta determinazione dell'uomo. Uomo che parla al telefono. L'aggiunta di più dettagli conferisce al soggetto un'espressione realistica e crea una scena intensa e vibrante.

Leopardo delle nevi

Questo esempio mostra l'output che Veo potrebbe generare per un prompt semplice.

Prompt Output generato
Una creatura carina con pelliccia simile a quella del leopardo delle nevi cammina nella foresta invernale, rappresentazione in stile cartone animato 3D. Il leopardo delle nevi è apatico.

Leopardo delle nevi in corsa

Questo prompt è più dettagliato e mostra un output generato che potrebbe essere più vicino a ciò che vuoi nel tuo video.

Prompt Output generato
Crea una breve scena animata 3D in uno stile allegro da cartone animato. Una creatura graziosa con una pelliccia simile a quella del leopardo delle nevi, grandi occhi espressivi e una forma amichevole e arrotondata galoppa felicemente in una foresta invernale stravagante. La scena deve includere alberi arrotondati coperti di neve, fiocchi di neve che cadono dolcemente e la luce calda del sole che filtra tra i rami. I movimenti vivaci e il sorriso smagliante della creatura devono trasmettere pura gioia. Scegli un tono allegro e positivo con colori vivaci e allegri e animazioni giocose. Leopardo delle nevi è in esecuzione più velocemente.

Esempi per elementi di scrittura

Questi esempi mostrano come perfezionare i prompt in base a ciascun elemento di base.

Oggetto

Questo esempio mostra come specificare una descrizione dell'oggetto.

Descrizione dell'oggetto Prompt Output generato
La descrizione può includere un soggetto o più soggetti e azioni. In questo caso, l'oggetto è "condominio in cemento bianco". Un rendering architettonico di un condominio in cemento bianco con forme organiche fluide, che si fondono perfettamente con una vegetazione lussureggiante ed elementi futuristici Segnaposto.

Contesto

Questo esempio mostra come specificare il contesto.

Contesto Prompt Output generato
Lo sfondo o il contesto in cui verrà inserito l'oggetto è molto importante. Prova a posizionare il soggetto in vari sfondi, ad esempio su una strada trafficata o nello spazio cosmico. Un satellite che fluttua nello spazio con la luna e alcune stelle sullo sfondo. Satellite che galleggia nell'atmosfera.

Azione

Questo esempio mostra come specificare l'azione.

Azione Prompt Output generato
Azione del soggetto, ad esempio camminare, correre o girare la testa. Un'inquadratura ampia di una donna che cammina lungo la spiaggia, con un'espressione soddisfatta e rilassata, verso l'orizzonte al tramonto. Il tramonto è assolutamente meraviglioso.

Stile

Questo esempio mostra come specificare lo stile.

Stile Prompt Output generato
Puoi aggiungere parole chiave per migliorare la qualità della generazione e avvicinarla allo stile previsto, ad esempio sfocatura, foto di film, minimalista, surreale, vintage, futuristico o doppia esposizione. Stile noir, uomo e donna che camminano per strada, mistero, cinema, bianco e nero. Lo stile noir è assolutamente meraviglioso.

Movimento della videocamera

Questo esempio mostra come specificare il movimento della videocamera.

Rilevamento di movimento della videocamera Prompt Output generato
Le opzioni per il movimento della videocamera includono ripresa in prima persona, vista aerea, vista con drone inseguimento o ripresa inseguimento. Una ripresa in POV di un'auto d'epoca che guida sotto la pioggia, in Canada di notte, con effetto cinematografico. Il tramonto è assolutamente meraviglioso.

Composizione

Questo esempio mostra come specificare la composizione.

Composizione Prompt Output generato
Inquadratura (campo lungo, primo piano, angolazione bassa). Primo piano estremo di un occhio con la città riflessa al suo interno. Il tramonto è assolutamente meraviglioso.
Crea un video di un'inquadratura ampia di un surfista che cammina su una spiaggia con una tavola da surf, tramonto stupendo, stile cinematografico. Il tramonto è assolutamente meraviglioso.

Atmosfera

Questo esempio mostra come specificare l'atmosfera.

Ambiance Prompt Output generato
Le palette di colori svolgono un ruolo fondamentale nella fotografia, influenzando l'atmosfera e trasmettendo le emozioni desiderate. Prova ad esempio "toni caldi arancioni attenuati", "luce naturale", "alba" o "tramonto". Ad esempio, una tavolozza calda e dorata può infondere un'atmosfera romantica e suggestiva a una fotografia. Primo piano di una ragazza che tiene in braccio un adorabile cucciolo di golden retriever nel parco, luce del sole. Un cucciolo tra le braccia di una ragazzina.
Primo piano cinematografico di una donna triste che viaggia su un autobus sotto la pioggia, toni blu freddi, atmosfera triste. Una donna che si sente triste su un autobus.

Utilizzare le immagini di riferimento per generare video

Puoi dare vita alle immagini utilizzando la funzionalità di trasformazione di immagini in video di Veo. Puoi utilizzare gli asset esistenti o provare Imagen per generarne di nuovi.

Prompt Output generato
Coniglietto con una barretta di cioccolato. Bunny sta scappando.
Il coniglio scappa. Bunny sta scappando.

Prompt negativi

I prompt negativi possono essere uno strumento efficace per specificare gli elementi che non vuoi nel video. Descrivi ciò che vuoi scoraggiare il modello a generare dopo la frase "Prompt negativo". Segui questi suggerimenti:

  • ❌ Non utilizzare un linguaggio didattico o parole come no o non. Ad esempio, "Nessuna parete" o "Non mostrare le pareti".

  • ✅ Descrivi ciò che non vuoi vedere. Ad esempio, "muro, inquadratura", il che significa che non vuoi che nel video siano presenti una parete o una cornice.

Prompt Output generato
Genera un'animazione breve e stilizzata di una grande quercia solitaria con le foglie che volano vigorosamente in un forte vento. L'albero deve avere una forma leggermente esagerata e stravagante, con rami dinamici e fluenti. Le foglie devono mostrare una varietà di colori autunnali, roteando e danzando al vento. L'animazione deve utilizzare una tavolozza di colori calda e invitante. Albero con parole.
Genera un'animazione breve e stilizzata di una grande quercia solitaria con le foglie che volano vigorosamente in un forte vento. L'albero deve avere una forma leggermente esagerata e stravagante, con rami dinamici e fluenti. Le foglie devono mostrare una varietà di colori autunnali, roteando e danzando al vento. L'animazione deve utilizzare una tavolozza di colori calda e invitante.

Con prompt negativo: sfondo urbano, strutture create dall'uomo, atmosfera buia, tempestosa o minacciosa.
Albero senza parole chiave escluse.

Proporzioni

La generazione di video di Gemini Veo supporta le seguenti due proporzioni:

Proporzioni Descrizione
Widescreen o 16:9 Le proporzioni più comuni per televisioni, monitor e schermi di cellulari (orizzontale). Da usare quando vuoi catturare una porzione più ampia dello sfondo, ad esempio in paesaggi panoramici.
Verticale o 9:16 Formato widescreen ruotato. Questo formato è stato reso popolare da applicazioni di video nel formato breve, come YouTube Shorts. Utilizzala per ritratti o oggetti alti con forti orientamenti verticali, come edifici, alberi, cascate o edifici.

Widescreen

Questo prompt è un esempio delle proporzioni widescreen 16:9.

Prompt Output generato
Crea un video con una vista da un drone in movimento di un uomo che guida un'auto decappottabile rossa a Palm Springs, anni '70, luce del sole calda, ombre lunghe. La cascata è assolutamente meravigliosa.

Verticale

Questo prompt è un esempio di proporzioni verticali di 9:16.

Prompt Output generato
Crea un video che metta in evidenza il movimento fluido di una maestosa cascata hawaiana immersa in una rigogliosa foresta pluviale. Concentrati su un flusso d'acqua realistico, fogliame dettagliato e illuminazione naturale per trasmettere tranquillità. Scatta foto dell'acqua che scorre, dell'atmosfera nebbiosa e della luce del sole che filtra attraverso la fitta canopia. Utilizza movimenti fluidi e cinematografici della fotocamera per mettere in evidenza la cascata e i suoi dintorni. Mira a un tono tranquillo e realistico, che trasporti lo spettatore nella bellezza serena della foresta pluviale hawaiana. La cascata è assolutamente meravigliosa.

Passaggi successivi

  • Acquisisci più esperienza nella generazione di video con l'IA con Veo Colab.
  • Dai un'occhiata ad alcuni esempi interessanti di utilizzo di Veo 2 sul sito di Google DeepMind