API de génération de vidéos Veo sur 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 en savoir plus sur Veo, consultez Présentation de la génération de vidéos Veo.

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

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,
      "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
      },
      "lastFrame": {
        // Union field can be only one of the following:
        "bytesBase64Encoded": string,
        "gcsUri": string,
        // End of list of possible types for union field.
        "mimeType": string
      },
      "video": {
        // Union field can be only one of the following:
        "bytesBase64Encoded": string,
        "gcsUri": string,
        // End of list of possible types for union field.
        "mimeType": string
      },
      "referenceImages": [
        // A list of up to three asset images or at most one style image for the
        // model to use when generating videos.
        //
        // referenceImages is supported by veo-2.0-generate-exp in Preview
        {
        "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
        },
        "referenceType": string
        }
      ]
    }
  ],
  "parameters": {
    "aspectRatio": string,
    "compressionQuality": string,
    "durationSeconds": integer,
    "enhancePrompt": boolean,
    "generateAudio": boolean,
    "negativePrompt": string,
    "personGeneration": string,
    "resolution": string, // Veo 3 models only
    "sampleCount": integer,
    "seed": uint32,
    "storageUri": string
  }
}'

Instances

Instances

prompt

string

Obligatoire pour la conversion texte-vers-vidéo.
 Facultatif si un prompt d'image d'entrée est fourni (image vers vidéo).

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

  • Un plan rapide à travers une métropole dystopique animée avec des néons lumineux, des voitures volantes et de la brume, la nuit, un lens flare, un éclairage volumétrique
  • Hologramme néon d'une voiture roulant à toute vitesse, vitesse de la lumière, style cinématographique, détails incroyables, éclairage volumétrique
  • De nombreuses méduses tachetées pulsent sous l'eau. Leur corps est transparent et lumineux dans les profondeurs de l'océan.
  • Extrême gros plan avec une faible profondeur de champ sur une flaque d'eau dans une rue, reflétant une ville de Tokyo futuriste et animée avec des néons lumineux, la nuit, flare
  • Timelapse d'aurores boréales dansant dans le ciel arctique, étoiles scintillantes, paysage enneigé
  • Un cow-boy solitaire monte à cheval dans une plaine ouverte au magnifique coucher de soleil, lumière douce, couleurs chaudes
image

Champ d'union

Facultatif. Image servant de guide pour la génération de la vidéo. Il peut s'agir d'une chaîne bytesBase64Encoded qui encode une image ou d'une chaîne gcsUri qui correspond à l'URI d'un emplacement de bucket Cloud Storage.

lastFrame

Champ d'union

Facultatif. Image du premier frame d'une vidéo pour combler l'espace entre les deux. lastFrame peut être une chaîne bytesBase64Encoded qui encode une image ou une chaîne gcsUri URI vers un emplacement de bucket Cloud Storage.

lastFrame n'est compatible qu'avec veo-2.0-generate-001.

video

Champ d'union

Facultatif. Vidéo générée par Veo à étendre, qui peut être une chaîne bytesBase64Encoded encodant une vidéo ou une chaîne gcsUri URI vers un emplacement de bucket Cloud Storage.

video n'est compatible qu'avec veo-2.0-generate-001.

referenceImages

list[referenceImages]

Facultatif. Liste de trois images de composants maximum ou d'une image de style maximum décrivant le referenceImages que le modèle doit utiliser pour générer des vidéos.

referenceImages est compatible avec veo-2.0-generate-exp en version preview.

referenceImages.image

Champ d'union

Facultatif. Contient les images de référence pour veo-2.0-generate-exp à utiliser comme entrée de sujet. Chaque image peut être une chaîne bytesBase64Encoded qui encode une image ou une chaîne gcsUri URI vers un emplacement de bucket Cloud Storage.

referenceImages.referenceType

string

Obligatoire dans un objet referenceImages. Spécifie le type d'image de référence fournie. Les valeurs suivantes sont acceptées :

  • "asset" : l'image de référence fournit des éléments pour la vidéo générée, tels que la scène, un objet ou un personnage.
  • "style" : l'image de référence fournit des informations sur le style des vidéos générées, comme les couleurs de la scène, l'éclairage ou la texture.
bytesBase64Encoded

string

Chaîne encodée en base64 d'un fichier image ou vidéo. Utilisé avec les objets suivants :

gcsUri

string

URI de chaîne vers un emplacement de bucket Cloud Storage. Utilisé avec les objets suivants :

mimeType

string

Obligatoire pour les objets suivants :

Spécifie le type MIME d'une vidéo ou d'une image.

Pour les images, les types MIME suivants sont acceptés :

  • image/jpeg
  • image/png

Pour les vidéos, les types MIME suivants sont acceptés :

  • video/mp4

Paramètres

Paramètres
aspectRatio

string

Facultatif. Spécifie le format des vidéos générées. Les valeurs suivantes sont acceptées :

  • 16:9 (valeur par défaut)
  • 9:16
compressionQuality

string

Facultatif. Spécifie la qualité de compression des vidéos générées. Les valeurs acceptées sont "optimized" ou "lossless".

La valeur par défaut est "optimized".

durationSeconds

integer

Obligatoire. Durée en secondes des fichiers vidéo que vous souhaitez générer.

Les valeurs acceptées sont les suivantes :

  • veo-2.0-generate-001 : 58. La valeur par défaut est 8.
  • veo-3.0-generate-preview : 8.
  • Lorsque vous utilisez referenceImages : 8.
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.

enhancePrompt n'est pas compatible avec veo-3.0-generate-001 ni avec veo-3.0-fast-generate-001.

generateAudio

boolean

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

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

negativePrompt

string

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

  • Éclairage zénithal, couleurs vives
  • personnes, animaux
  • plusieurs voitures, vent
personGeneration

string

Facultatif. Paramètre de sécurité qui détermine 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 d'adultes.
  • dont_allow : interdit l'inclusion de personnes ou de visages dans les images.
resolution

string

Facultatif. Modèles Veo 3 uniquement. Résolution de la vidéo générée. Les valeurs acceptées sont 720p (par défaut) ou 1080p.

sampleCount

int

Facultatif. Nombre de vidéos de sortie demandées. Les valeurs acceptées sont 1-4.

seed

uint32

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

La plage acceptée est comprise entre 0 et 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, les octets vidéo encodés en base64 sont renvoyés dans la réponse.

Exemples de requêtes

Utilisez les exemples suivants pour créer votre propre demande de vidéo :

Demande de génération de vidéo à partir de texte

REST

Pour tester une requête textuelle à 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, effectuez les remplacements suivants :

  • PROJECT_ID : chaîne représentant l'ID de votre projet Google Cloud .
  • MODEL_ID : chaîne représentant l'ID du modèle à utiliser. Voici les valeurs acceptées :
    • "veo-2.0-generate-001"
    • "veo-3.0-generate-001"
    • "veo-3.0-fast-generate-001"
    • "veo-3.0-generate-preview" (Bêta)
    • "veo-3.0-fast-generate-preview" (Bêta)
  • TEXT_PROMPT : requête textuelle utilisée pour guider la génération de vidéos.
  • OUTPUT_STORAGE_URI : (facultatif) chaîne représentant le 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 à générer. La plage de valeurs acceptée est 1-4.
  • DURATION : entier représentant la durée des fichiers vidéo générés. Voici les valeurs acceptées pour chaque modèle :
    • Modèles Veo 2 : 5-8
    • Modèles Veo 3 : 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",
      // "resolution": RESOLUTION, // Veo 3 models only
      "sampleCount": RESPONSE_COUNT,
      "seed": SEED_NUMBER
    }
    • ASPECT_RATIO : (Facultatif) Valeur de chaîne décrivant le format des vidéos générées. Vous pouvez utiliser les valeurs suivantes :
      • "16:9" pour le mode Paysage
      • "9:16" pour le mode Portrait

      La valeur par défaut est "16:9".

    • NEGATIVE_PROMPT : (facultatif) valeur de chaîne décrivant le contenu que vous souhaitez empêcher le modèle de générer.
    • PERSON_SAFETY_SETTING : (Facultatif) Valeur de chaîne qui contrôle le paramètre de sécurité pour la génération de personnes ou de visages. Vous pouvez utiliser les valeurs suivantes :
      • "allow_adult" : autoriser uniquement la génération de personnes et de visages adultes.
      • "disallow" : ne génère pas de personnes ni de visages.

      La valeur par défaut est "allow_adult".

    • RESOLUTION : (Facultatif) Valeur de chaîne qui contrôle la résolution de la vidéo générée. Compatible uniquement avec les modèles Veo 3. Vous pouvez utiliser les valeurs suivantes :
      • "720p"
      • "1080p"

      La valeur par défaut est "720p".

    • RESPONSE_COUNT : facultatif. Valeur entière décrivant le nombre de vidéos à générer. La plage de valeurs acceptée est comprise entre 1 et 4.
    • SEED_NUMBER : facultatif. Valeur uint32 que le modèle utilise pour générer des vidéos 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. La plage de valeurs acceptée est comprise entre 0 et 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 de vidéo à partir d'une image

REST

Pour tester une requête textuelle à 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, effectuez les remplacements suivants :

  • PROJECT_ID : chaîne représentant l'ID de votre projet Google Cloud .
  • MODEL_ID : chaîne représentant l'ID du modèle à utiliser. Voici les valeurs acceptées :
    • veo-2.0-generate-001 (DG)
    • 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 encodée en base64 représentant l'image d'entrée. Pour une qualité optimale, nous vous recommandons d'utiliser une image d'entrée d'une résolution d'au moins 720p (1 280 x 720 pixels) et 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 de l'importation.
  • MIME_TYPE : chaîne représentant le type MIME de l'image d'entrée. Seules les images des types MIME suivants sont acceptées :
    • "image/jpeg"
    • "image/png"
  • OUTPUT_STORAGE_URI : (facultatif) chaîne représentant le 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 à générer. La plage de valeurs acceptée est 1-4.
  • DURATION : entier représentant la durée des fichiers vidéo générés. Voici les valeurs acceptées pour chaque modèle :
    • Modèles Veo 2 : 5-8
    • Modèles Veo 3 : 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",
      // "resolution": RESOLUTION, // Veo 3 models only
      "sampleCount": RESPONSE_COUNT,
      "seed": SEED_NUMBER
    }
    • ASPECT_RATIO : (Facultatif) Valeur de chaîne décrivant le format des vidéos générées. Vous pouvez utiliser les valeurs suivantes :
      • "16:9" pour le mode Paysage
      • "9:16" pour le mode Portrait

      La valeur par défaut est "16:9".

    • NEGATIVE_PROMPT : (facultatif) valeur de chaîne décrivant le contenu que vous souhaitez empêcher le modèle de générer.
    • PERSON_SAFETY_SETTING : (Facultatif) Valeur de chaîne qui contrôle le paramètre de sécurité pour la génération de personnes ou de visages. Vous pouvez utiliser les valeurs suivantes :
      • "allow_adult" : autoriser uniquement la génération de personnes et de visages adultes.
      • "disallow" : ne génère pas de personnes ni de visages.

      La valeur par défaut est "allow_adult".

    • RESOLUTION : (Facultatif) Valeur de chaîne qui contrôle la résolution de la vidéo générée. Compatible uniquement avec les modèles Veo 3. Vous pouvez utiliser les valeurs suivantes :
      • "720p"
      • "1080p"

      La valeur par défaut est "720p".

    • RESPONSE_COUNT : facultatif. Valeur entière décrivant le nombre de vidéos à générer. La plage de valeurs acceptée est comprise entre 1 et 4.
    • SEED_NUMBER : facultatif. Valeur uint32 que le modèle utilise pour générer des vidéos 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. La plage de valeurs acceptée est comprise entre 0 et 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"
}

Demande vidéo utilisant des images de composants

REST

Pour tester une requête textuelle à 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, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet Google Cloud .
  • TEXT_PROMPT : requête textuelle utilisée pour guider la génération de vidéos.
  • BASE64_ENCODED_IMAGE : image du sujet encodée en octets base64. Vous pouvez répéter ce champ et mimeType pour spécifier jusqu'à trois images du sujet.
  • IMAGE_MIME_TYPE : type MIME de l'image d'entrée. Un seul des champs suivants :

    • image/jpeg
    • image/png

    Vous pouvez répéter ce champ et bytesBase64Encoded pour spécifier jusqu'à trois images du sujet.

  • OUTPUT_STORAGE_URI : (facultatif) bucket Cloud Storage dans lequel stocker les vidéos de sortie. Si aucune valeur n'est fournie, une vidéo encodée en octets Base64 est renvoyée 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.
  • 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",
      // "resolution": RESOLUTION, // Veo 3 models only
      "sampleCount": RESPONSE_COUNT,
      "seed": SEED_NUMBER
    }
    • ASPECT_RATIO : (Facultatif) Valeur de chaîne décrivant le format des vidéos générées. Vous pouvez utiliser les valeurs suivantes :
      • "16:9" pour le mode Paysage
      • "9:16" pour le mode Portrait

      La valeur par défaut est "16:9".

    • NEGATIVE_PROMPT : (facultatif) valeur de chaîne décrivant le contenu que vous souhaitez empêcher le modèle de générer.
    • PERSON_SAFETY_SETTING : (Facultatif) Valeur de chaîne qui contrôle le paramètre de sécurité pour la génération de personnes ou de visages. Vous pouvez utiliser les valeurs suivantes :
      • "allow_adult" : autoriser uniquement la génération de personnes et de visages adultes.
      • "disallow" : ne génère pas de personnes ni de visages.

      La valeur par défaut est "allow_adult".

    • RESOLUTION : (Facultatif) Valeur de chaîne qui contrôle la résolution de la vidéo générée. Compatible uniquement avec les modèles Veo 3. Vous pouvez utiliser les valeurs suivantes :
      • "720p"
      • "1080p"

      La valeur par défaut est "720p".

    • RESPONSE_COUNT : facultatif. Valeur entière décrivant le nombre de vidéos à générer. La plage de valeurs acceptée est comprise entre 1 et 4.
    • SEED_NUMBER : facultatif. Valeur uint32 que le modèle utilise pour générer des vidéos 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. La plage de valeurs acceptée est comprise entre 0 et 4294967295.

Méthode HTTP et URL :

POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-001:predictLongRunning

Corps JSON de la requête :

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT",
      // The following fields can be repeated for up to three total
      // images.
      "referenceImages": [
        {
          "image": {
            "bytesBase64Encoded": "BASE64_ENCODED_IMAGE",
            "mimeType": "IMAGE_MIME_TYPE"
          },
          "referenceType": "asset"
        }
      ]
    }
  ],
  "parameters": {
    "durationSeconds": 8,
    "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/veo-2.0-generate-001: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/veo-2.0-generate-001: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/veo-2.0-generate-001/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
}

Demande de vidéo à l'aide d'une image de style

REST

Pour tester une requête textuelle à 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, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet Google Cloud .
  • TEXT_PROMPT : requête textuelle utilisée pour guider la génération de vidéos.
  • BASE64_ENCODED_IMAGE : image de style encodée en octets base64.
  • IMAGE_MIME_TYPE : type MIME de l'image d'entrée. Un seul des éléments suivants :
    • image/jpeg
    • 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.
  • 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",
      // "resolution": RESOLUTION, // Veo 3 models only
      "sampleCount": RESPONSE_COUNT,
      "seed": SEED_NUMBER
    }
    • ASPECT_RATIO : (Facultatif) Valeur de chaîne décrivant le format des vidéos générées. Vous pouvez utiliser les valeurs suivantes :
      • "16:9" pour le mode Paysage
      • "9:16" pour le mode Portrait

      La valeur par défaut est "16:9".

    • NEGATIVE_PROMPT : (facultatif) valeur de chaîne décrivant le contenu que vous souhaitez empêcher le modèle de générer.
    • PERSON_SAFETY_SETTING : (Facultatif) Valeur de chaîne qui contrôle le paramètre de sécurité pour la génération de personnes ou de visages. Vous pouvez utiliser les valeurs suivantes :
      • "allow_adult" : autoriser uniquement la génération de personnes et de visages adultes.
      • "disallow" : ne génère pas de personnes ni de visages.

      La valeur par défaut est "allow_adult".

    • RESOLUTION : (Facultatif) Valeur de chaîne qui contrôle la résolution de la vidéo générée. Compatible uniquement avec les modèles Veo 3. Vous pouvez utiliser les valeurs suivantes :
      • "720p"
      • "1080p"

      La valeur par défaut est "720p".

    • RESPONSE_COUNT : facultatif. Valeur entière décrivant le nombre de vidéos à générer. La plage de valeurs acceptée est comprise entre 1 et 4.
    • SEED_NUMBER : facultatif. Valeur uint32 que le modèle utilise pour générer des vidéos 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. La plage de valeurs acceptée est comprise entre 0 et 4294967295.

Méthode HTTP et URL :

POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-001:predictLongRunning

Corps JSON de la requête :

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT",
      "referenceImages": [
        {
          "image": {
            "bytesBase64Encoded": "BASE64_ENCODED_IMAGE",
            "mimeType": "IMAGE_MIME_TYPE"
          },
          "referenceType": "style"
        }
      ]
    }
  ],
  "parameters": {
    "durationSeconds": 8,
    "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/veo-2.0-generate-001: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/veo-2.0-generate-001: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/veo-2.0-generate-001/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
}

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

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

REST

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

  • PROJECT_ID : ID de votre projet Google Cloud .
  • MODEL_ID : ID du modèle à utiliser.
  • 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 texte-vidéo ou image-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 demande de génération de vidéo.

Exemple de réponse (demande 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 (interroger une opération de longue durée)

L'interrogation de l'état de l'opération de longue durée de génération de la vidéo d'origine renvoie une réponse semblable à la suivante :

{
   "name": string,
   "done": boolean,
   "response":{
      "@type":"type.googleapis.com/cloud.ai.large_models.vision.GenerateVideoResponse",
      "raiMediaFilteredCount": integer,
      "videos":[
         {
           "gcsUri": string,
           "mimeType": string
         },
         {
           "gcsUri": string,
           "mimeType": string
         },
         {
           "gcsUri": string,
           "mimeType": string
         },
         {
           "gcsUri": string,
           "mimeType": string
         },
      ]
   }
}
Élément de réponse Description
bytesBase64Encoded Chaîne encodée en octets Base64 représentant l'objet vidéo.
done Valeur booléenne indiquant si l'opération est terminée.
encoding Type d'encodage vidéo.
gcsUri URI Cloud Storage de la vidéo générée.
name Nom complet de l'opération de longue durée qui commence après l'envoi d'une demande de génération de vidéo.
raiMediaFilteredCount Renvoie le nombre de vidéos filtrées par Veo en raison des règles relatives à l'IA responsable. Si aucune vidéo n'est filtrée, le nombre renvoyé est 0.
raiMediaFilteredReasons Liste les raisons pour lesquelles des vidéos Veo ont été filtrées en raison des règles relatives à l'IA responsable. Pour en savoir plus, consultez Catégories de code des filtres de sécurité.
response Corps de la réponse de l'opération de longue durée.
video La vidéo générée.

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

{
   "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",
      "raiMediaFilteredCount": 0,
      "videos":[
        {
          "gcsUri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_0.mp4",
          "mimeType":"video/mp4"
        },
        {
          "gcsUri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_1.mp4",
          "mimeType":"video/mp4"
        },
        {
          "gcsUri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_2.mp4",
          "mimeType":"video/mp4"
        },
        {
          "gcsUri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_3.mp4",
          "mimeType":"video/mp4"
        }
      ]
   }
}

En savoir plus

Étapes suivantes