API Veo su Vertex AI

Veo è il nome del modello che supporta la generazione di video. Veo genera un video da un prompt di testo o da un prompt di immagine fornito da te.

Per esplorare questo modello nella console, consulta la scheda del modello Video Generation in Model Garden.

Prova Veo su Vertex AI (Vertex AI Studio)

Provare Veo in un Colab

Richiedi l'accesso: funzionalità sperimentali

Modelli supportati

L'API Veo supporta i seguenti modelli:

Richiesta HTTP

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
https://LOCATION}-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:predictLongRunning \

-d '{
  "instances": [
    {
      "prompt": string,
      // Optional. An image to guide video generation.
      "image": {
        // Union field can be only one of the following:
        "bytesBase64Encoded": string,
        "gcsUri": string,
        // End of list of possible types for union field.
        "mimeType": string
      }
    }
  ],
  "parameters": {
    "aspectRatio": string,
    "negativePrompt": string,
    "personGeneration": string,
    "sampleCount": integer,
    "seed": uint32,
    "storageUri": string,
    "durationSeconds": integer,
    "enhancePrompt": boolean
  }
}'

Utilizza i seguenti parametri per il modello Veo. Per ulteriori informazioni, consulta Creare video utilizzando prompt di testo e immagini con Veo.

Parametro

prompt

string

Obbligatorio per la funzionalità da testo a video.
Facoltativo se viene fornito un prompt per l'immagine di input (da immagine a video).

Una stringa di testo per guidare i primi otto secondi del video. Ad esempio:

  • Una foto in time-lapse di una caotica città distopica con luminose insegne al neon, auto volanti e nebbia, notte, bagliore dell'obiettivo, illuminazione volumetrica
  • Un ologramma al neon di un'auto che guida a velocità massima, alla velocità della luce, cinematografico, dettagli incredibili, illuminazione volumetrica
  • Molte meduse macchiate che pulsano sott'acqua. I loro corpi sono trasparenti e luminosi nelle profondità dell'oceano
  • primo piano estremo con una profondità di campo ridotta di una pozzanghera in una strada. riflette una città futuristica e affollata di Tokyo con insegne al neon brillanti, notte, bagliore dell'obiettivo
  • Time-lapse dell'aurora boreale che danza nel cielo artico, stelle che brillano, paesaggio innevato
  • Un cowboy solitario cavalca il suo cavallo in una pianura al tramonto, luce soffusa, colori caldi

image

string

Obbligatorio per l'elaborazione di immagini in video.
Facoltativo se viene fornito un prompt di testo (da testo a video).

Un'immagine di input per guidare la generazione del video. Consigliamo un'immagine di 1280 x 720 pixel o 720 x 1280 pixel.

Il valore sarà uno dei seguenti:

  • Una stringa di byte di immagine con codifica Base64
  • Un URI del bucket Cloud Storage

Se le proporzioni dell'immagine sono diverse, l'immagine viene ritagliata utilizzando uno strumento di ritaglio al centro.

Se le proporzioni dell'immagine sono le stesse, ma la risoluzione è più elevata, l'immagine viene ridimensionata.

durationSeconds

integer

Obbligatorio. La durata dei file video che vuoi generare. I valori interi accettati sono 5-8. Il valore predefinito è 8.

negativePrompt

string

Facoltativo. Una stringa di testo che descrive tutto ciò che vuoi scoraggiare il modello a generare. Ad esempio:

  • illuminazione dall'alto, colori vivaci
  • persone, animali
  • più auto, vento
enhancePrompt

boolean

Facoltativo. Utilizza Gemini per migliorare i tuoi prompt. I valori accettati sono true o false. Il valore predefinito è true.

seed

uint32

Facoltativo. Un numero da richiedere per rendere deterministici i video generati. Se aggiungi un numero seed alla richiesta senza modificare altri parametri, il modello produrrà gli stessi video.

L'intervallo accettato è 0-4,294,967,295.

storageURI

string

Facoltativo. Un URI del bucket Cloud Storage per archiviare il video di output nel formato gs://BUCKET_NAME/SUBDIRECTORY. Se non viene fornito un bucket Cloud Storage, nella risposta vengono restituiti i byte del video codificato in Base64.

sampleCount

int

Facoltativo. Il numero di immagini di output richieste. I valori accettati sono 1-4.

aspectRatio

string

Facoltativo. Definisce le proporzioni del video generato. Uno dei seguenti:

  • 16:9 (predefinito, orizzontale)
  • 9:16 (verticale)

personGeneration

string

Facoltativo. L'impostazione di sicurezza che controlla se è consentita la generazione di persone o volti. Il valore sarà uno dei seguenti:

  • allow_adult (valore predefinito): consente la generazione di annunci solo per adulti
  • dont_allow: non consente l'inclusione di persone/volti nelle immagini
generateAudio

boolean

Obbligatorio per veo-3.0-generate-preview. Genera l'audio per il video. I valori accettati sono true o false.

generateAudio non è supportato da veo-2.0-generate-001.

Richiesta di esempio

Utilizza le seguenti richieste per inviare una richiesta di conversione di testo in video o di conversione di immagine in video:

Richiesta di generazione di video a partire da testo

REST

Per testare un prompt di testo utilizzando l'API Vertex AI Veo, invia una richiesta POST all'endpoint del modello del publisher.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo Google Cloud ID progetto.
  • MODEL_ID: l'ID modello da utilizzare. Valori disponibili:
    • veo-2.0-generate-001 (lista consentita di GA)
    • veo-3.0-generate-preview (anteprima)
  • TEXT_PROMPT: il prompt di testo utilizzato per guidare la generazione del video.
  • OUTPUT_STORAGE_URI: facoltativo: il bucket Cloud Storage per archiviare i video di output. Se non viene fornito, i byte del video vengono restituiti nella risposta. Ad esempio: gs://video-bucket/output/.
  • RESPONSE_COUNT: il numero di file video che vuoi generare. Valori interi accettati: 1-4.
  • DURATION: la durata dei file video che vuoi generare. I valori interi accettati sono 5-8.
  • Parametri facoltativi aggiuntivi

    Utilizza le seguenti variabili facoltative in base al tuo caso d'uso. Aggiungi alcuni o tutti i seguenti parametri all'oggetto "parameters": {}.

    "parameters": {
      "aspectRatio": "ASPECT_RATIO",
      "negativePrompt": "NEGATIVE_PROMPT",
      "personGeneration": "PERSON_SAFETY_SETTING",
      "sampleCount": RESPONSE_COUNT,
      "seed": SEED_NUMBER
    }
    • ASPECT_RATIO: stringa. Facoltativo. Definisce le proporzioni dei video generati. Valori: 16:9 (predefinito, orizzontale) o 9:16 (verticale).
    • NEGATIVE_PROMPT: stringa. Facoltativo. Una stringa di testo che descrive ciò che vuoi disincentivare il modello a generare.
    • PERSON_SAFETY_SETTING: stringa. Facoltativo. L'impostazione di sicurezza che controlla se è consentita la generazione di persone o volti. Valori:
      • allow_adult (valore predefinito): consenti la generazione solo di utenti adulti.
      • disallow: non è consentita l'inclusione di persone o volti nelle immagini.
    • RESPONSE_COUNT: int. Facoltativo. Il numero di immagini di output richieste. Valori: 1-4.
    • SEED_NUMBER: uint32. Facoltativo. Un numero per rendere deterministici i video generati. Se specifichi un numero seed con la richiesta senza modificare altri parametri, il modello produrrà gli stessi video. Valori: 0 - 4294967295.

Metodo HTTP e URL:

POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning

Corpo JSON della richiesta:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT"
    }
  ],
  "parameters": {
    "storageUri": "OUTPUT_STORAGE_URI",
    "sampleCount": "RESPONSE_COUNT"
  }
}

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning"

PowerShell

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning" | Select-Object -Expand Content
Questa richiesta restituisce un nome completo dell'operazione con un ID operazione univoco. Utilizza questo nome completo dell'operazione per monitorare lo stato della richiesta di generazione del video.
{
  "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
}

Richiesta di generazione di video da immagini

REST

Per testare un prompt di testo utilizzando l'API Vertex AI Veo, invia una richiesta POST all'endpoint del modello del publisher.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo Google Cloud ID progetto.
  • MODEL_ID: l'ID modello da utilizzare. Valori disponibili:
    • veo-2.0-generate-001 (lista consentita di GA)
    • veo-3.0-generate-preview (anteprima)
  • TEXT_PROMPT: il prompt di testo utilizzato per guidare la generazione del video.
  • INPUT_IMAGE: stringa di byte con codifica Base64 che rappresenta l'immagine di input. Per garantire la qualità, l'immagine di input deve essere a 720p o superiore (1280 x 720 pixel) e avere proporzioni 16:9 o 9:16. Le immagini di proporzioni o dimensioni diverse potrebbero essere ridimensionate o ritagliate al centro durante la procedura di caricamento.
  • MIME_TYPE: il tipo MIME dell'immagine di input. Sono supportate solo le immagini dei seguenti tipi MIME: image/jpeg o image/png.
  • OUTPUT_STORAGE_URI: facoltativo: il bucket Cloud Storage per archiviare i video di output. Se non viene fornito, i byte del video vengono restituiti nella risposta. Ad esempio: gs://video-bucket/output/.
  • RESPONSE_COUNT: il numero di file video che vuoi generare. Valori interi accettati: 1-4.
  • DURATION: la durata dei file video che vuoi generare. I valori interi accettati sono 5-8.
  • Parametri facoltativi aggiuntivi

    Utilizza le seguenti variabili facoltative in base al tuo caso d'uso. Aggiungi alcuni o tutti i seguenti parametri all'oggetto "parameters": {}.

    "parameters": {
      "aspectRatio": "ASPECT_RATIO",
      "negativePrompt": "NEGATIVE_PROMPT",
      "personGeneration": "PERSON_SAFETY_SETTING",
      "sampleCount": RESPONSE_COUNT,
      "seed": SEED_NUMBER
    }
    • ASPECT_RATIO: stringa. Facoltativo. Definisce le proporzioni dei video generati. Valori: 16:9 (predefinito, orizzontale) o 9:16 (verticale).
    • NEGATIVE_PROMPT: stringa. Facoltativo. Una stringa di testo che descrive ciò che vuoi disincentivare il modello a generare.
    • PERSON_SAFETY_SETTING: stringa. Facoltativo. L'impostazione di sicurezza che controlla se è consentita la generazione di persone o volti. Valori:
      • allow_adult (valore predefinito): consenti la generazione solo di utenti adulti.
      • disallow: non è consentita l'inclusione di persone o volti nelle immagini.
    • RESPONSE_COUNT: int. Facoltativo. Il numero di immagini di output richieste. Valori: 1-4.
    • SEED_NUMBER: uint32. Facoltativo. Un numero per rendere deterministici i video generati. Se specifichi un numero seed con la richiesta senza modificare altri parametri, il modello produrrà gli stessi video. Valori: 0 - 4294967295.

Metodo HTTP e URL:

POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning

Corpo JSON della richiesta:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT",
      "image": {
        "bytesBase64Encoded": "INPUT_IMAGE",
        "mimeType": "MIME_TYPE"
      }
    }
  ],
  "parameters": {
    "storageUri": "OUTPUT_STORAGE_URI",
    "sampleCount": RESPONSE_COUNT
  }
}

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning"

PowerShell

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning" | Select-Object -Expand Content
Questa richiesta restituisce un nome completo dell'operazione con un ID operazione univoco. Utilizza questo nome completo dell'operazione per monitorare lo stato della richiesta di generazione del video.
{
  "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
}

Controlla lo stato dell'operazione a lunga esecuzione di generazione dei video

Controlla lo stato dell'operazione di generazione di video di lunga durata.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo Google Cloud ID progetto.
  • MODEL_ID: l'ID modello da utilizzare. Valori disponibili:
    • veo-2.0-generate-001 (lista consentita di GA)
    • veo-3.0-generate-preview (anteprima)
  • OPERATION_ID: l'ID operazione univoco restituito nella richiesta di generazione del video originale.

Metodo HTTP e URL:

POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation

Corpo JSON della richiesta:

{
  "operationName": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/OPERATION_ID"
}

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation"

PowerShell

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation" | Select-Object -Expand Content
Questa richiesta restituisce informazioni sull'operazione, ad esempio se è ancora in esecuzione o è stata completata.

Corpo della risposta (richiesta di generazione di video)

L'invio di una richiesta di conversione di testo in video o di immagine in video restituisce la seguente risposta:

{
  "name": string
}
Elemento Response Descrizione
name Il nome completo dell'operazione a lunga esecuzione che inizia dopo l'invio di una richiesta di generazione di video.

Risposta di esempio (richiesta di generazione di video)

{
  "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/OPERATION_ID"
}

Corpo della risposta (operazione a lunga esecuzione del sondaggio)

Il polling dello stato dell'operazione a lunga esecuzione di generazione del video originale restituisce la seguente risposta:

{
   "name": string,
   "done": boolean,
   "response":{
      "@type":"type.googleapis.com/cloud.ai.large_models.vision.GenerateVideoResponse",
      "generatedSamples":[
         {
            "video":
            {
               "uri": string,
               "encoding": string
            }
         },
         {
            "video":
            {
               "uri": string,
               "encoding": string
            }
         },
         {
            "video":
            {
               "uri": string,
               "encoding": string
            }
         },
         {
            "video":
            {
               "uri": string,
               "encoding": string
            }
         },
      ]
   }
}
Elemento Response Descrizione
name Il nome completo dell'operazione a lunga esecuzione che inizia dopo l'invio di una richiesta di generazione di video.
done Un valore booleano che indica se l'operazione è completata.
response Il corpo della risposta dell'operazione a lunga esecuzione.
generatedSamples Un array di oggetti SampleVideo generati.
video Il video generato.
uri L'URI Cloud Storage del video generato.
encoding Il tipo di codifica video.

Risposta di esempio (operazione a lunga esecuzione con polling)

{
   "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/OPERATION_ID",
   "done":true,
   "response":{
      "@type":"type.googleapis.com/cloud.ai.large_models.vision.GenerateVideoResponse",
      "generatedSamples":[
         {
            "video":{
               "uri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_0.mp4",
               "encoding":"video/mp4"
            }
         },
         {
            "video":{
               "uri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_1.mp4",
               "encoding":"video/mp4"
            }
         },
         {
            "video":{
               "uri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_2.mp4",
               "encoding":"video/mp4"
            }
         },
         {
            "video":{
               "uri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_3.mp4",
               "encoding":"video/mp4"
            }
         }
      ]
   }
}

Ulteriori informazioni

Passaggi successivi