Veo sur l'API Vertex AI

Veo est le nom du modèle compatible avec la génération de vidéos. Veo génère une vidéo à partir d'une requête textuelle ou d'une requête d'image que vous fournissez.

Pour explorer ce modèle dans la console, consultez la fiche de modèle Video Generation dans Model Garden.

Essayer Veo sur Vertex AI (Vertex AI Studio)

Essayer Veo dans Colab

Demander l'accès aux fonctionnalités expérimentales

Modèles compatibles

L'API Veo est compatible avec les modèles suivants:

Requête 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
  }
}'

Utilisez les paramètres suivants pour le modèle Veo. Pour en savoir plus, consultez Générer des vidéos à l'aide de requêtes textuelles et d'images avec Veo.

Paramètre

prompt

string

Obligatoire pour la conversion de texte en vidéo.
Facultatif si une invite d'image d'entrée est fournie (image vers vidéo).

Chaîne de texte pour guider les huit premières secondes de la vidéo. Par exemple :

  • Vue accélérée d'une ville tentaculaire dystopique animée avec des néons lumineux, des voitures volantes et de la brume, de nuit, avec un effet de flare et un éclairage volumétrique
  • Un hologramme néon d'une voiture roulant à toute vitesse, à la vitesse de la lumière, cinématographique, détails incroyables, éclairage volumétrique
  • De nombreuses méduses à pois qui palpitent sous l'eau. Leurs corps sont transparents et brillent dans l'océan profond.
  • Gros plan extrême avec une faible profondeur de champ d'une flaque dans une rue. Reflétant une ville futuriste animée de Tokyo avec des enseignes lumineuses au néon, la nuit, le flare de l'objectif
  • Image accélérée des aurores boréales dansant dans le ciel arctique, étoiles scintillantes, paysage enneigé
  • Un cow-boy solitaire chevauche son cheval à travers une plaine ouverte au coucher du soleil, lumière douce, couleurs chaudes

image

string

Obligatoire pour convertir des images en vidéos.
Facultatif si une requête textuelle est fournie (conversion texte-vidéo).

Image d'entrée pour guider la génération de la vidéo. Nous vous recommandons d'utiliser une image de 1 280 x 720 pixels ou de 720 x 1 280 pixels.

Choisissez l'une des options suivantes :

  • Chaîne d'octets d'image encodée en base64
  • URI d'un bucket Cloud Storage

Si le format de l'image est différent, elle est recadrée à l'aide d'un outil de recadrage au centre.

Si le format de l'image est le même, mais que la résolution est plus élevée, l'image est redimensionnée.

durationSeconds

integer

Obligatoire. Durée des fichiers vidéo que vous souhaitez générer. Les valeurs entières acceptées sont 5-8. La valeur par défaut est 8.

negativePrompt

string

Facultatif. Chaîne de texte décrivant tout ce que vous souhaitez dissuader le modèle de générer. Exemple :

  • éclairage en hauteur, couleurs vives
  • personnes, animaux
  • plusieurs véhicules, vent
enhancePrompt

boolean

Facultatif. Utilisez Gemini pour améliorer vos requêtes. Les valeurs acceptées sont true ou false. La valeur par défaut est true.

seed

uint32

Facultatif. Nombre à demander pour rendre les vidéos générées déterministes. Si vous ajoutez un nombre source à votre requête sans modifier les autres paramètres, le modèle produira les mêmes vidéos.

La plage acceptée est 0-4,294,967,295.

storageURI

string

Facultatif. URI de bucket Cloud Storage pour stocker la vidéo de sortie, au format gs://BUCKET_NAME/SUBDIRECTORY. Si aucun bucket Cloud Storage n'est fourni, des octets vidéo encodés en base64 sont renvoyés dans la réponse.

sampleCount

int

Facultatif. Nombre d'images de sortie demandées. Les valeurs acceptées sont 1-4.

aspectRatio

string

Facultatif. Définit le format de la vidéo générée. L'une des options suivantes:

  • 16:9 (par défaut, mode paysage)
  • 9:16 (portrait)

personGeneration

string

Facultatif. Paramètre de sécurité qui contrôle si la génération de personnes ou de visages est autorisée. Choisissez l'une des options suivantes :

  • allow_adult (valeur par défaut): autorise uniquement la génération de contenus réservés aux adultes
  • dont_allow: interdit l'inclusion de personnes/visages dans les images
generateAudio

boolean

Obligatoire pour veo-3.0-generate-preview. Générez l'audio de la vidéo. Les valeurs acceptées sont true ou false.

generateAudio n'est pas compatible avec veo-2.0-generate-001.

Exemple de requête

Utilisez les requêtes suivantes pour envoyer une requête de conversion texte-vidéo ou image-vidéo:

Demande de génération de texte en vidéo

REST

Pour tester une requête de texte à l'aide de l'API Vertex AI Veo, envoyez une requête POST au point de terminaison du modèle de l'éditeur.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet Google Cloud .
  • MODEL_ID : ID du modèle à utiliser. Valeurs disponibles :
    • veo-2.0-generate-001 (DG avec liste d'autorisation).
    • veo-3.0-generate-preview (Bêta)
  • TEXT_PROMPT : requête textuelle utilisée pour guider la génération de vidéos.
  • OUTPUT_STORAGE_URI : (facultatif) bucket Cloud Storage dans lequel stocker les vidéos de sortie. Si cette valeur n'est pas fournie, les octets vidéo sont renvoyés dans la réponse. Par exemple : gs://video-bucket/output/.
  • RESPONSE_COUNT : nombre de fichiers vidéo que vous souhaitez générer. Valeurs entières acceptées : 1 - 4.
  • DURATION : durée des fichiers vidéo que vous souhaitez générer. Valeurs entières acceptées : 5 - 8.
  • Paramètres facultatifs supplémentaires

    Utilisez les variables facultatives suivantes en fonction de votre cas d'utilisation. Ajoutez l'ensemble ou une partie des paramètres suivants dans l'objet "parameters": {}.

    "parameters": {
      "aspectRatio": "ASPECT_RATIO",
      "negativePrompt": "NEGATIVE_PROMPT",
      "personGeneration": "PERSON_SAFETY_SETTING",
      "sampleCount": RESPONSE_COUNT,
      "seed": SEED_NUMBER
    }
    • ASPECT_RATIO : chaîne. Paramètre facultatif. Définit le format des vidéos générées. Valeurs : 16:9 (par défaut, format paysage) ou 9:16 (format portrait).
    • NEGATIVE_PROMPT : chaîne. Paramètre facultatif. Chaîne de texte décrivant ce que vous ne souhaitez pas que le modèle génère.
    • PERSON_SAFETY_SETTING : chaîne. Paramètre facultatif. Paramètre de sécurité qui détermine si la génération de personnes ou de visages est autorisée. Valeurs :
      • allow_adult (valeur par défaut) : autorise uniquement la génération d'adultes.
      • disallow : interdit l'inclusion de personnes ou de visages dans les images.
    • RESPONSE_COUNT : entier. Paramètre facultatif. Nombre d'images de sortie demandées. Valeurs : 1 - 4.
    • SEED_NUMBER : uint32. Paramètre facultatif. Nombre permettant de rendre les vidéos générées déterministes. Si vous spécifiez un numéro source avec votre requête sans modifier d'autres paramètres, vous indiquez au modèle de produire les mêmes vidéos. Valeurs : 0 - 4294967295.

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$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
Cette requête renvoie un nom d'opération complet avec un ID d'opération unique. Utilisez ce nom d'opération complet pour interroger l'état de la demande de génération de vidéo.
{
  "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
}

Demande de génération d'une vidéo à partir d'une image

REST

Pour tester une requête de texte à l'aide de l'API Vertex AI Veo, envoyez une requête POST au point de terminaison du modèle de l'éditeur.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet Google Cloud .
  • MODEL_ID : ID du modèle à utiliser. Valeurs disponibles :
    • veo-2.0-generate-001 (DG avec liste d'autorisation).
    • veo-3.0-generate-preview (Bêta)
  • TEXT_PROMPT : requête textuelle utilisée pour guider la génération de vidéos.
  • INPUT_IMAGE : chaîne d'octets encodée en base64 représentant l'image d'entrée. Pour que le résultat soit de qualité, l'image d'entrée doit avoir une résolution d'au moins 720p (1 280 x 720 pixels) et être au format 16:9 ou 9:16. Les images de formats ou de tailles différents peuvent être redimensionnées ou recadrées au centre lors du processus d'importation.
  • MIME_TYPE : type MIME de l'image d'entrée. Seules les images des types MIME suivants sont acceptées : image/jpeg ou image/png.
  • OUTPUT_STORAGE_URI : (facultatif) bucket Cloud Storage dans lequel stocker les vidéos de sortie. Si cette valeur n'est pas fournie, les octets vidéo sont renvoyés dans la réponse. Par exemple : gs://video-bucket/output/.
  • RESPONSE_COUNT : nombre de fichiers vidéo que vous souhaitez générer. Valeurs entières acceptées : 1 - 4.
  • DURATION : durée des fichiers vidéo que vous souhaitez générer. Valeurs entières acceptées : 5 - 8.
  • Paramètres facultatifs supplémentaires

    Utilisez les variables facultatives suivantes en fonction de votre cas d'utilisation. Ajoutez l'ensemble ou une partie des paramètres suivants dans l'objet "parameters": {}.

    "parameters": {
      "aspectRatio": "ASPECT_RATIO",
      "negativePrompt": "NEGATIVE_PROMPT",
      "personGeneration": "PERSON_SAFETY_SETTING",
      "sampleCount": RESPONSE_COUNT,
      "seed": SEED_NUMBER
    }
    • ASPECT_RATIO : chaîne. Paramètre facultatif. Définit le format des vidéos générées. Valeurs : 16:9 (par défaut, format paysage) ou 9:16 (format portrait).
    • NEGATIVE_PROMPT : chaîne. Paramètre facultatif. Chaîne de texte décrivant ce que vous ne souhaitez pas que le modèle génère.
    • PERSON_SAFETY_SETTING : chaîne. Paramètre facultatif. Paramètre de sécurité qui détermine si la génération de personnes ou de visages est autorisée. Valeurs :
      • allow_adult (valeur par défaut) : autorise uniquement la génération d'adultes.
      • disallow : interdit l'inclusion de personnes ou de visages dans les images.
    • RESPONSE_COUNT : entier. Paramètre facultatif. Nombre d'images de sortie demandées. Valeurs : 1 - 4.
    • SEED_NUMBER : uint32. Paramètre facultatif. Nombre permettant de rendre les vidéos générées déterministes. Si vous spécifiez un numéro source avec votre requête sans modifier d'autres paramètres, vous indiquez au modèle de produire les mêmes vidéos. Valeurs : 0 - 4294967295.

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$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
Cette requête renvoie un nom d'opération complet avec un ID d'opération unique. Utilisez ce nom d'opération complet pour interroger l'état de la demande de génération de vidéo.
{
  "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
}

Interroger l'état de l'opération de génération de vidéo de longue durée

Vérifiez l'état de l'opération de longue durée de génération de vidéos.

REST

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet Google Cloud .
  • MODEL_ID : ID du modèle à utiliser. Valeurs disponibles :
    • veo-2.0-generate-001 (DG avec liste d'autorisation).
    • veo-3.0-generate-preview (Bêta)
  • OPERATION_ID : ID d'opération unique renvoyé dans la requête de génération de vidéo d'origine.

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$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
Cette requête renvoie des informations sur l'opération, y compris si elle est toujours en cours d'exécution ou si elle est terminée.

Corps de la réponse (générer une requête vidéo)

L'envoi d'une requête de conversion de texte en vidéo ou d'image en vidéo renvoie la réponse suivante:

{
  "name": string
}
Élément de réponse Description
name Nom complet de l'opération de longue durée qui commence après l'envoi d'une requête de génération de vidéo.

Exemple de réponse (requête de génération de vidéo)

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

Corps de la réponse (opération de longue durée d'interrogation)

Interroger l'état de l'opération de longue durée de génération de la vidéo d'origine renvoie la réponse suivante:

{
   "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
            }
         },
      ]
   }
}
Élément de réponse Description
name Nom complet de l'opération de longue durée qui commence après l'envoi d'une requête de génération de vidéo.
done Valeur booléenne indiquant si l'opération est terminée.
response Corps de la réponse de l'opération de longue durée.
generatedSamples Tableau des objets d'échantillons vidéo générés.
video La vidéo générée.
uri URI Cloud Storage de la vidéo générée.
encoding Type d'encodage vidéo.

Exemple de réponse (opération de longue durée d'interrogation)

{
   "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"
            }
         }
      ]
   }
}

En savoir plus

Étape suivante