Générer des vidéos à partir de références

Vous pouvez utiliser Gemini Omni Flash ou Veo sur Gemini Enterprise Agent Platform pour guider la génération de vidéos à l'aide d'images ou de vidéos de référence.

Les modèles suivants sont compatibles avec les images de référence :

Gemini Omni Flash

Gemini Omni Flash vous permet d'utiliser des images ou des vidéos de référence pour fournir des entrées supplémentaires au modèle lors de la génération d'une vidéo.

Cliquez pour développer la liste des modèles compatibles

Veo

Veo sur Gemini Enterprise Agent Platform vous permet d'utiliser des images de référence pour orienter la vidéo générée. 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.

Cliquez pour développer la liste des modèles compatibles

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 pour la génération de vidéos.

Essayer Gemini Omni Flash dans Colab

Avant de commencer

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Enable the Agent Platform API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  3. Configurez l'authentification pour votre environnement.

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la console Cloud de Confiance pour accéder aux services et aux API Cloud de Confiance by S3NS , vous n'avez pas besoin de configurer l'authentification.

    Python

    Pour utiliser les exemples Python de cette page dans un environnement de développement local, installez et initialisez la gcloud CLI, puis configurez les Identifiants par défaut de l'application avec vos identifiants utilisateur.

    1. Installez la Google Cloud CLI.

    2. Configurez la gcloud CLI afin d'utiliser votre identité fédérée.

      Pour en savoir plus, consultez Se connecter à la gcloud CLI avec votre identité fédérée.

    3. Créez des identifiants d'authentification locaux pour votre compte utilisateur :

      gcloud auth application-default login

      Si une erreur d'authentification est renvoyée, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.

    Pour en savoir plus, consultez la section Configurer les ADC pour un environnement de développement local dans la documentation sur l'authentification Cloud de Confiance .

    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, puis connectez-vous à 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 Cloud de Confiance .

Générer des vidéos avec Gemini Omni Flash et des références

REST

La génération de la vidéo peut prendre plus d'une minute. Vous pouvez choisir parmi plusieurs modes d'interaction en fonction de votre workflow :

  • Synchrones : sans état : générez une vidéo en une seule requête sans conserver l'état de l'interaction sur le serveur.
  • Synchrone : avec état : définissez store sur true pour conserver l'état de l'interaction, ce qui vous permet de récupérer le résultat ultérieurement ou de référencer l'ID d'interaction pour le montage vidéo multitour.
  • Synchrone : streaming avec état : définissez store et stream sur true pour recevoir les pensées du modèle de manière incrémentielle au fur et à mesure qu'elles sont générées, suivies de la vidéo de sortie.
  • Asynchrone : définissez background sur true pour exécuter la génération de vidéo en arrière-plan et récupérer le résultat ultérieurement à l'aide de l'ID d'interaction.

Les interactions stockées et asynchrones sont conservées pendant 14 jours maximum.

Pour en savoir plus sur l'utilisation de l'API Gemini Omni Flash, consultez API Interactions.

Synchrone : sans état

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

  • PROJECT_ID : chaîne représentant l'ID de votre projet Cloud de Confiance by S3NS .
  • MODEL_ID : chaîne représentant l'ID du modèle à utiliser. Les valeurs suivantes sont acceptées :
    • "gemini-omni-1.1-flash-preview"
  • TEXT_PROMPT : prompt textuel utilisé pour guider la génération de vidéos.
  • CLOUD_STORAGE_IMAGE_URI : chaîne représentant le bucket Cloud Storage contenant l'image d'entrée. Exemple : "gs://video-bucket/input/".
  • IMAGE_MIME : chaîne représentant un type MIME d'image. Les valeurs suivantes sont acceptées :
    • image/png
    • image/jpeg
    • image/webp
    • image/heic
    • image/heif
  • CLOUD_STORAGE_VIDEO_URI : chaîne représentant le bucket Cloud Storage contenant la vidéo d'entrée. Exemple : "gs://video-bucket/input/".
  • VIDEO_MIME : chaîne représentant un type MIME vidéo. Les valeurs suivantes sont acceptées :
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • CLOUD_STORAGE_OUTPUT_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. Exemple : "gs://video-bucket/output/".
  • ASPECT_RATIO (facultatif) : chaîne représentant le format attendu de la vidéo de sortie. Si aucune valeur n'est fournie, le format est déduit de la requête. Voici les valeurs acceptées :
    • "16:9"
    • "9:16"
  • OUTPUT_RESOLUTION :

    Facultatif : chaîne représentant la résolution de sortie de la vidéo. Si aucune valeur n'est fournie, la sortie est définie par défaut sur 720p.

    gemini-omni-1.1-flash-preview accepte les valeurs suivantes :

    • "360p"
    • "720p"
    • "1080p"
    • "4k"

    gemini-omni-flash-preview n'est compatible qu'avec "720p".

  • DURATION : chaîne représentant la durée des fichiers vidéo générés. Les chaînes autorisées sont des nombres entiers compris entre 3 et 10, suivis de "s" pour les secondes. Par exemple, "10s".

Méthode HTTP et URL :

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

Corps JSON de la requête :

{
  "model": "MODEL_ID",
  "input": [
    {
      "type": "text",
      "text": "TEXT_PROMPT Use the image(s) as references to
      generate the video."
    },
    {
      "type": "image",
      "uri": "CLOUD_STORAGE_IMAGE_URI",
      "mime_type": "IMAGE_MIME"
    },
    {
      "type": "video",
      "uri": "CLOUD_STORAGE_VIDEO_URI",
      "mime_type": "VIDEO_MIME"
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "aspect_ratio": "ASPECT_RATIO",
      "resolution": "OUTPUT_RESOLUTION",
      "duration": "DURATION"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "reference_to_video"
    }
  }
}

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 TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

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

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
La réponse contient une interaction qui inclut les réflexions du modèle et une vidéo de sortie.
{
  "id":"INTERACTION_ID",
  "model":"gemini-omni-flash-preview",
  "status":"completed",
  "usage":{
    "total_tokens":479,
    "total_input_tokens":26,
    "input_tokens_by_modality":[
      {
        "modality":"text",
        "tokens":26
      },
      {
        "modality":"image",
        "tokens":124
      }
    ],
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28832
      }
    ],
    "total_output_tokens":28832,
    "total_thought_tokens":453
  },
  "steps":[
    {
      "type":"thought",
      "summary":[
        {
          "type":"text",
          "text":"MODEL THOUGHTS"
        }
      ],
    },
    { 
      "type":"model_output",
      "content":[
        {
          "type":"video",
          "uri":"gs://some/output_path/123.mp4",
          "mime_type":"video/mp4" 
        }
      ]
    }
  ],
  "object":"interaction"
  "role":"model",
  "created":"2026-05-29T02:17:56Z",
  "updated":"2026-05-29T02:17:56Z",
}

Synchrone : avec état

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

  • PROJECT_ID : chaîne représentant l'ID de votre projet Cloud de Confiance by S3NS .
  • MODEL_ID : chaîne représentant l'ID du modèle à utiliser. Les valeurs suivantes sont acceptées :
    • "gemini-omni-1.1-flash-preview"
  • TEXT_PROMPT : prompt textuel utilisé pour guider la génération de vidéos.
  • CLOUD_STORAGE_IMAGE_URI : chaîne représentant le bucket Cloud Storage contenant l'image d'entrée. Exemple : "gs://video-bucket/input/".
  • IMAGE_MIME : chaîne représentant un type MIME d'image. Les valeurs suivantes sont acceptées :
    • image/png
    • image/jpeg
    • image/webp
    • image/heic
    • image/heif
  • CLOUD_STORAGE_VIDEO_URI : chaîne représentant le bucket Cloud Storage contenant la vidéo d'entrée. Exemple : "gs://video-bucket/input/".
  • VIDEO_MIME : chaîne représentant un type MIME vidéo. Les valeurs suivantes sont acceptées :
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • CLOUD_STORAGE_OUTPUT_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. Exemple : "gs://video-bucket/output/".
  • ASPECT_RATIO (facultatif) : chaîne représentant le format attendu de la vidéo de sortie. Si aucune valeur n'est fournie, le format est déduit de la requête. Voici les valeurs acceptées :
    • "16:9"
    • "9:16"
  • OUTPUT_RESOLUTION :

    Facultatif : chaîne représentant la résolution de sortie de la vidéo. Si aucune valeur n'est fournie, la sortie est définie par défaut sur 720p.

    gemini-omni-1.1-flash-preview accepte les valeurs suivantes :

    • "360p"
    • "720p"
    • "1080p"
    • "4k"

    gemini-omni-flash-preview n'est compatible qu'avec "720p".

  • DURATION : chaîne représentant la durée des fichiers vidéo générés. Les chaînes autorisées sont des nombres entiers compris entre 3 et 10, suivis de "s" pour les secondes. Par exemple, "10s".

Méthode HTTP et URL :

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

Corps JSON de la requête :

{
  "model": "MODEL_ID",
  "background": false,
  "store": true,
  "stream": false,
  "input": [
    {
      "type": "user_input",
      "content": [
        {
          "type": "text",
          "text": "TEXT_PROMPT Use the image(s) as references to generate the video."
        },
        {
          "type": "image",
          "uri": "CLOUD_STORAGE_IMAGE_URI",
          "mime_type": "IMAGE_MIME"
        },
        {
          "type": "video",
          "uri": "CLOUD_STORAGE_VIDEO_URI",
          "mime_type": "VIDEO_MIME"
        }
      ]
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "aspect_ratio": "ASPECT_RATIO",
      "resolution": "OUTPUT_RESOLUTION",
      "duration": "DURATION"
    }
  ]
}

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 TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

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

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
La réponse contient une interaction qui inclut les réflexions du modèle et une vidéo de sortie.
{
  "id":"INTERACTION_ID",
  "model":"gemini-omni-flash-preview",
  "status":"completed",
  "usage":{
    "total_tokens":479,
    "total_input_tokens":26,
    "input_tokens_by_modality":[
      {
        "modality":"text",
        "tokens":26
      },
      {
        "modality":"image",
        "tokens":124
      }
    ],
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28832
      }
    ],
    "total_output_tokens":28832,
    "total_thought_tokens":453
  },
  "steps":[
    {
      "type":"thought",
      "summary":[
        {
          "type":"text",
          "text":"MODEL THOUGHTS"
        }
      ],
    },
    { 
      "type":"model_output",
      "content":[
        {
          "type":"video",
          "uri":"gs://some/output_path/123.mp4",
          "mime_type":"video/mp4" 
        }
      ]
    }
  ],
  "object":"interaction",
  "role":"model",
  "created":"2026-05-29T02:17:56Z",
  "updated":"2026-05-29T02:17:56Z",
}
Utilisez INTERACTION_ID pour obtenir la vidéo générée :

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

  • PROJECT_ID : chaîne représentant l'ID de votre projet Cloud de Confiance by S3NS .
  • INTERACTION_ID : ID d'interaction de la requête asynchrone.

Méthode HTTP et URL :

GET https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID

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

curl

Exécutez la commande suivante :

curl -X GET \
-H "Authorization: Bearer TOKEN" \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID"

PowerShell

Exécutez la commande suivante :

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID" | Select-Object -Expand Content
La réponse est au format suivant :
{
  "id":"INTERACTION_ID",
  "model":"gemini-omni-flash-preview",
  "status":"completed",
  "usage":{
    "total_tokens":479,
    "total_input_tokens":26,
    "input_tokens_by_modality":[
      {
        "modality":"text",
        "tokens":26
      },
      {
        "modality":"image",
        "tokens":124
      }
    ],
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28832
      }
    ],
    "total_output_tokens":28832,
    "total_thought_tokens":453
  },
  "steps":[
    {
      "type": "user_input",
      "content": [
        {
          "type": "text",
          "text": "5 second, 9:16 video. Use the image as the first frame."
        },
        {
          "type": "image",
          "uri": "gs://some/path",
          "mime_type": "image/png"
        }
      ]
    },
    {
      "type":"thought"
      "summary":[
        {
          "type":"text",
          "text":"MODEL THOUGHTS"
        }
      ],
    },
    { 
      "type":"model_output",
      "content":[
        {
          "type":"video",
          "data":"VIDEO DATA",
          "mime_type":"video/mp4" 
        }
      ]
    }
  ],
  "object":"interaction"
  "role":"model",
  "created":"2026-05-29T02:17:56Z",
  "updated":"2026-05-29T02:17:56Z",
}

Synchrone : streaming avec état

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

  • PROJECT_ID : chaîne représentant l'ID de votre projet Cloud de Confiance by S3NS .
  • MODEL_ID : chaîne représentant l'ID du modèle à utiliser. Les valeurs suivantes sont acceptées :
    • "gemini-omni-1.1-flash-preview"
  • TEXT_PROMPT : prompt textuel utilisé pour guider la génération de vidéos.
  • CLOUD_STORAGE_IMAGE_URI : chaîne représentant le bucket Cloud Storage contenant l'image d'entrée. Exemple : "gs://video-bucket/input/".
  • IMAGE_MIME : chaîne représentant un type MIME d'image. Les valeurs suivantes sont acceptées :
    • image/png
    • image/jpeg
    • image/webp
    • image/heic
    • image/heif
  • CLOUD_STORAGE_VIDEO_URI : chaîne représentant le bucket Cloud Storage contenant la vidéo d'entrée. Exemple : "gs://video-bucket/input/".
  • VIDEO_MIME : chaîne représentant un type MIME vidéo. Les valeurs suivantes sont acceptées :
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • CLOUD_STORAGE_OUTPUT_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. Exemple : "gs://video-bucket/output/".
  • ASPECT_RATIO (facultatif) : chaîne représentant le format attendu de la vidéo de sortie. Si aucune valeur n'est fournie, le format est déduit de la requête. Voici les valeurs acceptées :
    • "16:9"
    • "9:16"
  • OUTPUT_RESOLUTION :

    Facultatif : chaîne représentant la résolution de sortie de la vidéo. Si aucune valeur n'est fournie, la sortie est définie par défaut sur 720p.

    gemini-omni-1.1-flash-preview accepte les valeurs suivantes :

    • "360p"
    • "720p"
    • "1080p"
    • "4k"

    gemini-omni-flash-preview n'est compatible qu'avec "720p".

  • DURATION : chaîne représentant la durée des fichiers vidéo générés. Les chaînes autorisées sont des nombres entiers compris entre 3 et 10, suivis de "s" pour les secondes. Par exemple, "10s".

Méthode HTTP et URL :

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

Corps JSON de la requête :

{
  "model": "MODEL_ID",
  "background": false,
  "store": true,
  "stream": true,
  "input": [
    {
      "type": "user_input",
      "content": [
        {
          "type": "text",
          "text": "TEXT_PROMPT Use the image(s) as references to generate the video."
        },
        {
          "type": "image",
          "uri": "CLOUD_STORAGE_IMAGE_URI",
          "mime_type": "IMAGE_MIME"
        },
        {
          "type": "video",
          "uri": "CLOUD_STORAGE_VIDEO_URI",
          "mime_type": "VIDEO_MIME"
        }
      ]
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "aspect_ratio": "ASPECT_RATIO",
      "resolution": "OUTPUT_RESOLUTION",
      "duration": "DURATION"
    }
  ]
}

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 TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

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

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
La réponse contient une interaction qui inclut les réflexions du modèle et une vidéo de sortie.
event: interaction.created
data: {"interaction":{"id":"INTERACTION_ID","status":"in_progress","object":"interaction","model":"gemini-omni-flash-preview"},"event_type":"interaction.created"}

event: interaction.status_update
data: {"interaction_id":"INTERACTION_ID","status":"in_progress","event_type":"interaction.status_update"}

event: step.start
data: {"index":0,"step":{"type":"thought"},"event_type":"step.start"}

event: step.delta
data: {"index":0,"delta":{"content":{"text":"MODEL THOUGHTS","type":"text"},"type":"thought_summary"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.delta
data: {"index":0,"delta":{"content":{"text":"MODEL THOUGHTS","type":"text"},"type":"thought_summary"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.delta
data: {"index":0,"delta":{"signature":"...","type":"thought_signature"},"event_type":"step.delta"}

event: step.stop
data: {"index":0,"event_type":"step.stop"}

event: step.start
data: {"index":1,"step":{"type":"model_output"},"event_type":"step.start"}

event: step.delta
data: {"index":1,"delta":{"mime_type":"video/mp4","uri":"gs://some/output_path/123.mp4","type":"video"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.stop
data: {"index":1,"event_type":"step.stop"}

event: interaction.completed
data: {"interaction":{"id":"INTERACTION_ID","status":"completed","usage":{"total_tokens":17812,"total_input_tokens":21,"input_tokens_by_modality":[{"modality":"text","tokens":21}],"total_output_tokens":17376,"output_tokens_by_modality":[{"modality":"video","tokens":17376}],"total_thought_tokens":415},"created":"2026-08-12T21:26:20Z","updated":"2026-08-12T21:26:20Z","event_id":"EVENT_ID","object":"interaction","model":"gemini-omni-flash-preview"},"event_id":"EVENT_ID","event_type":"interaction.completed"}

event: done
data: [DONE]
Utilisez INTERACTION_ID avec "?stream=true" pour diffuser l'interaction stockée et la vidéo générée :

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

  • PROJECT_ID : chaîne représentant l'ID de votre projet Cloud de Confiance by S3NS .
  • INTERACTION_ID : ID d'interaction de la requête.

Méthode HTTP et URL :

GET https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID?stream=true

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

curl

Exécutez la commande suivante :

curl -X GET \
-H "Authorization: Bearer TOKEN" \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID?stream=true"

PowerShell

Exécutez la commande suivante :

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID?stream=true" | Select-Object -Expand Content
La réponse est un flux d'événements envoyés par le serveur (SSE) dans un format semblable à ce qui suit :
event: interaction.created
data: {"interaction":{"id":"INTERACTION_ID","status":"in_progress","object":"interaction","model":"gemini-omni-flash-preview"},"event_type":"interaction.created"}

event: interaction.status_update
data: {"interaction_id":"INTERACTION_ID","status":"in_progress","event_type":"interaction.status_update"}

event: step.start
data: {"index":0,"step":{"type":"thought"},"event_type":"step.start"}

event: step.delta
data: {"index":0,"delta":{"content":{"text":"MODEL THOUGHTS","type":"text"},"type":"thought_summary"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.delta
data: {"index":0,"delta":{"content":{"text":"MODEL THOUGHTS","type":"text"},"type":"thought_summary"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.delta
data: {"index":0,"delta":{"signature":"...","type":"thought_signature"},"event_type":"step.delta"}

event: step.stop
data: {"index":0,"event_type":"step.stop"}

event: step.start
data: {"index":1,"step":{"type":"model_output"},"event_type":"step.start"}

event: step.delta
data: {"index":1,"delta":{"mime_type":"video/mp4","uri":"gs://some/output_path/123.mp4","type":"video"},"event_id":"EVENT_ID","event_type":"step.delta"}

event: step.stop
data: {"index":1,"event_type":"step.stop"}

event: interaction.completed
data: {"interaction":{"id":"INTERACTION_ID","status":"completed","usage":{"total_tokens":17664,"total_input_tokens":21,"input_tokens_by_modality":[{"modality":"text","tokens":21}],"total_output_tokens":17376,"output_tokens_by_modality":[{"modality":"video","tokens":17376}],"total_thought_tokens":267},"created":"2026-08-12T21:33:08Z","updated":"2026-08-12T21:33:08Z","event_id":"EVENT_ID","object":"interaction","model":"gemini-omni-flash-preview"},"event_id":"EVENT_ID","event_type":"interaction.completed"}

event: done
data: [DONE]

Asynchrone

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

  • PROJECT_ID : chaîne représentant l'ID de votre projet Cloud de Confiance by S3NS .
  • MODEL_ID : chaîne représentant l'ID du modèle à utiliser. Les valeurs suivantes sont acceptées :
    • "gemini-omni-1.1-flash-preview"
  • TEXT_PROMPT : prompt textuel utilisé pour guider la génération de vidéos.
  • CLOUD_STORAGE_IMAGE_URI : chaîne représentant le bucket Cloud Storage contenant l'image d'entrée. Exemple : "gs://video-bucket/input/".
  • IMAGE_MIME : chaîne représentant un type MIME d'image. Les valeurs suivantes sont acceptées :
    • image/png
    • image/jpeg
    • image/webp
    • image/heic
    • image/heif
  • CLOUD_STORAGE_VIDEO_URI : chaîne représentant le bucket Cloud Storage contenant la vidéo d'entrée. Exemple : "gs://video-bucket/input/".
  • VIDEO_MIME : chaîne représentant un type MIME vidéo. Les valeurs suivantes sont acceptées :
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • CLOUD_STORAGE_OUTPUT_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. Exemple : "gs://video-bucket/output/".
  • ASPECT_RATIO (facultatif) : chaîne représentant le format attendu de la vidéo de sortie. Si aucune valeur n'est fournie, le format est déduit de la requête. Voici les valeurs acceptées :
    • "16:9"
    • "9:16"
  • OUTPUT_RESOLUTION :

    Facultatif : chaîne représentant la résolution de sortie de la vidéo. Si aucune valeur n'est fournie, la sortie est définie par défaut sur 720p.

    gemini-omni-1.1-flash-preview accepte les valeurs suivantes :

    • "360p"
    • "720p"
    • "1080p"
    • "4k"

    gemini-omni-flash-preview n'est compatible qu'avec "720p".

  • DURATION : chaîne représentant la durée des fichiers vidéo générés. Les chaînes autorisées sont des nombres entiers compris entre 3 et 10, suivis de "s" pour les secondes. Par exemple, "10s".

Méthode HTTP et URL :

POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions

Corps JSON de la requête :

{
  "model": "MODEL_ID",
  "input": [
    {
      "background": true,
      "type": "text",
      "text": "TEXT_PROMPT Use the image(s) as references to
      generate the video."
    },
    {
      "type": "image",
      "uri": "CLOUD_STORAGE_IMAGE_URI",
      "mime_type": "IMAGE_MIME"
    },
    {
      "type": "video",
      "uri": "CLOUD_STORAGE_VIDEO_URI",
      "mime_type": "VIDEO_MIME"
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "aspect_ratio": "ASPECT_RATIO",
      "resolution": "OUTPUT_RESOLUTION",
      "duration": "DURATION"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "reference_to_video"
    }
  }
}

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 TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions"

PowerShell

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

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions" | Select-Object -Expand Content
La réponse contient un ID d'interaction, que vous utiliserez pour obtenir la vidéo que vous avez générée.
{
  "id":"INTERACTION_ID",
  "status":"in_progress",
  "object":"interaction"
}
Utilisez ensuite INTERACTION_ID pour obtenir la vidéo générée :

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

  • PROJECT_ID : chaîne représentant l'ID de votre projet Cloud de Confiance by S3NS .
  • INTERACTION_ID : ID d'interaction de la requête asynchrone.

Méthode HTTP et URL :

GET https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID

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

curl

Exécutez la commande suivante :

curl -X GET \
-H "Authorization: Bearer TOKEN" \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID"

PowerShell

Exécutez la commande suivante :

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions/INTERACTION_ID" | Select-Object -Expand Content
La réponse est semblable à ce qui suit :
{
  "id":"INTERACTION_ID",
  "model":"gemini-omni-flash-preview",
  "status":"completed",
  "usage":{
    "total_tokens":479,
    "total_input_tokens":26,
    "input_tokens_by_modality":[
      {
        "modality":"text",
        "tokens":26
      },
      {
        "modality":"image",
        "tokens":124
      }
    ],
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28832
      }
    ],
    "total_output_tokens":28832,
    "total_thought_tokens":453
  },
  "steps":[
    {
      "type": "user_input",
      "content": [
        {
          "type": "text",
          "text": "5 second, 9:16 video. Use the image as the first frame."
        },
        {
          "type": "image",
          "uri": "gs://some/path",
          "mime_type": "image/png"
        }
      ]
    },
    {
      "type":"thought"
      "summary":[
        {
          "type":"text",
          "text":"MODEL THOUGHTS"
        }
      ],
    },
    { 
      "type":"model_output",
      "content":[
        {
          "type":"video",
          "data":"VIDEO DATA",
          "mime_type":"video/mp4" 
        }
      ]
    }
  ],
  "object":"interaction"
  "role":"model",
  "created":"2026-05-29T02:17:56Z",
  "updated":"2026-05-29T02:17:56Z",
}

Générer des vidéos à l'aide de Veo et d'images de composants

Procédez comme suit :

Console

  1. Dans la console Cloud de Confiance , accédez à la page Agent Platform>Agent Platform Studio .

    Accéder à Agent Platform Studio

  2. Cliquez sur Générer un média.

  3. Cliquez sur Vidéo.

  4. Dans le menu Tâche, sélectionnez Référence à la vidéo (sujet).

  5. Dans le menu Modèle, sélectionnez un modèle parmi les options disponibles.

  6. Dans la section Images du sujet, cliquez sur Ajouter.

    Une boîte de dialogue de sélection de fichier s'affiche. Sélectionnez une à trois images sur votre ordinateur à importer.

  7. Facultatif : dans la section Paramètres, ajustez les paramètres suivants :

    • Format : sélectionnez 16:9 ou 9:16.
    • Nombre de résultats : ajustez le curseur ou saisissez une valeur comprise entre 1 et 4.
    • Durée de la vidéo : sélectionnez 8, 6 ou 4 secondes.
    • Résolution de sortie : sélectionnez l'une des options suivantes :
      • 720p
      • 1080p
      • 4K
  8. 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.

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

  10. Dans la zone Prompt, saisissez votre prompt textuel décrivant les vidéos à générer.

  11. Cliquez sur Exécuter.

Python

Installer

pip install --upgrade google-genai

Pour en savoir plus, consultez la documentation de référence du SDK.

Définissez des variables d'environnement pour utiliser le SDK Google Gen AI avec Vertex AI :

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

import time
from google import genai
from google.genai.types import GenerateVideosConfig, Image, VideoGenerationReferenceImage

client = genai.Client()

# TODO(developer): Update and un-comment below line
# output_gcs_uri = "gs://your-bucket/your-prefix"

operation = client.models.generate_videos(
    model="veo-3.1-generate-preview",
    prompt="A person walks in carrying a vase full of flowers and places the vase on a kitchen table.",
    config=GenerateVideosConfig(
        reference_images=[
            VideoGenerationReferenceImage(
                image=Image(
                    gcs_uri="gs://cloud-samples-data/generative-ai/image/vase.png",
                    mime_type="image/png",
                ),
                reference_type="asset",
            ),
        ],
        aspect_ratio="9:16",
        output_gcs_uri=output_gcs_uri,
    ),
)

while not operation.done:
    time.sleep(15)
    operation = client.operations.get(operation)
    print(operation)

if operation.response:
    print(operation.result.generated_videos[0].video.uri)

# Example response:
# gs://your-bucket/your-prefix

REST

Pour en savoir plus sur l'API Veo, consultez les ressources suivantes :

  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 Cloud de Confiance by S3NS .
    • MODEL_ID : chaîne représentant l'ID du modèle à utiliser. Les modèles suivants sont acceptés :
      • veo-3.1-generate-preview preview
      • veo-3.1-generate-001
      • veo-3.1-fast-generate-preview preview
      • veo-3.1-fast-generate-001
    • TEXT_PROMPT : prompt textuel utilisé 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 de 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 de sujet.

    • ASPECT_RATIO : (facultatif) format de la vidéo générée. Un seul des champs suivants :

      • "16:9"
      • "9:16"

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

    • 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.
    • VIDEO_RESOLUTION : (facultatif) résolution de la vidéo générée. Un seul des éléments suivants :

      • "720p"
      • "1080p"
      • "4k" (modèles Veo 3.1 (preview) uniquement)

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

    • 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" : n'autoriser que la génération de personnes et de visages d'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"
        • "4k" (modèles Veo 3.1 (preview) uniquement)

        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 1-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",
          // 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": {
        "aspectRatio":, "ASPECT_RATIO,
        "durationSeconds": 8,
        "storageUri": "OUTPUT_STORAGE_URI",
        "sampleCount": RESPONSE_COUNT,
        "resolution": "VIDEO_RESOLUTION
      }
    }
    

    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 requête 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"
    }
    

  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 Cloud de Confiance by S3NS .
    • 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