Utiliser des images de référence pour guider la génération de vidéos

Veo sur Vertex AI vous permet d'utiliser des images de référence avec veo-2.0-generate-exp pour guider le contenu et le style artistique de votre vidéo générée. Lorsque vous utilisez des images de référence avec Veo, vous pouvez choisir l'une des options suivantes :

  • Image du composant : vous fournissez jusqu'à trois images d'une même personne, d'un même personnage ou d'un même produit. Veo préserve l'apparence du sujet dans la vidéo générée.

  • Image de style : vous fournissez une seule image de style. Veo applique le style de l'image que vous avez importée à la vidéo de sortie.

Pour en savoir plus sur l'écriture de requêtes de texte efficaces pour la génération de vidéos, consultez le guide des requêtes Veo.

Avant de commencer

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Enable the Vertex AI API.

    Enable the API

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Enable the Vertex AI API.

    Enable the API

  6. Configurez l'authentification pour votre environnement.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    REST

    Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.

      Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :

      gcloud init

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

    Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud .

    Utiliser des images de sujets pour générer des vidéos

    Procédez comme suit :

    Console

    1. Dans la console Google Cloud , accédez à la page Vertex AI Studio > Media Studio.

      Media Studio

    2. Cliquez sur Veo.

    3. Dans le volet Paramètres, sélectionnez les paramètres suivants :

      • Modèle : sélectionnez veo-2.0-generate-exp.

      • Nombre de résultats : ajustez le curseur ou saisissez une valeur comprise entre 1 et 4.

    4. Dans la section Référence, sélectionnez Sujet > cliquez sur Ajouter.

    5. Sélectionnez une à trois images sur votre ordinateur à importer.

    6. Facultatif : dans la section Sécurité, sélectionnez l'un des paramètres de génération de personnes suivants :

      • Autoriser (adultes uniquement) : valeur par défaut. Permet de générer uniquement des personnes ou des visages adultes. Ne permet pas de générer des visages ni des personnes représentant des enfants ou des adolescents.

      • Ne pas autoriser : ne permet pas de générer des personnes ni des visages.

    7. Facultatif : dans la section Options avancées, saisissez une valeur de graine pour générer des vidéos aléatoires.

    8. Dans la zone Écrivez votre requête, saisissez votre requête textuelle décrivant les vidéos à générer.

    9. Cliquez sur Générer.

    REST

    Une fois que vous avez configuré votre environnement, vous pouvez utiliser REST pour tester un prompt textuel. L'exemple suivant envoie une requête au point de terminaison du modèle de l'éditeur.

    Pour en savoir plus sur l'API Veo, consultez Veo sur l'API Vertex AI.

    1. Utilisez les commandes suivantes pour envoyer une requête de génération de vidéo. Cette requête lance une opération de longue durée et stocke le résultat dans un bucket Cloud Storage que vous spécifiez.

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

    2. Facultatif : vérifiez l'état de l'opération de longue durée de génération de la vidéo.

      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.

    Utiliser des images de style pour générer des vidéos

    Procédez comme suit :

    Console

    1. Dans la console Google Cloud , accédez à la page Vertex AI Studio > Media Studio.

      Media Studio

    2. Cliquez sur Veo.

    3. Dans le volet Paramètres, sélectionnez les paramètres suivants :

      • Modèle : sélectionnez veo-2.0-generate-exp.

      • Nombre de résultats : ajustez le curseur ou saisissez une valeur comprise entre 1 et 4.

    4. Dans la section Référence, sélectionnez Style > cliquez sur Ajouter.

    5. Sélectionnez une image sur votre ordinateur à importer.

    6. Facultatif : dans la section Sécurité, sélectionnez l'un des paramètres de génération de personnes suivants :

      • Autoriser (adultes uniquement) : valeur par défaut. Permet de générer uniquement des personnes ou des visages adultes. Ne permet pas de générer des visages ni des personnes représentant des enfants ou des adolescents.

      • Ne pas autoriser : ne permet pas de générer des personnes ni des visages.

    7. Facultatif : dans la section Options avancées, saisissez une valeur de graine pour générer des vidéos aléatoires.

    8. Dans la zone Écrivez votre requête, saisissez votre requête textuelle décrivant les vidéos à générer.

    9. Cliquez sur Générer.

    REST

    Une fois que vous avez configuré votre environnement, vous pouvez utiliser REST pour tester un prompt textuel. L'exemple suivant envoie une requête au point de terminaison du modèle de l'éditeur.

    Pour en savoir plus sur l'API Veo, consultez Veo sur l'API Vertex AI.

    1. Utilisez les commandes suivantes pour envoyer une requête de génération de vidéo. Cette requête lance une opération de longue durée et stocke le résultat dans un bucket Cloud Storage que vous spécifiez.

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

    2. Facultatif : vérifiez l'état de l'opération de longue durée de génération de la vidéo.

      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.

    Étapes suivantes