Augmenter la résolution des vidéos

Vous pouvez utiliser Gemini Omni 1.2 Flash pour améliorer la résolution de vidéos (de 360p ou 720p à 720p, 1080p ou 4K) à l'aide de l'API Agent Platform. L'upscaling vidéo autonome vous permet d'itérer sur des requêtes à des résolutions inférieures et d'effectuer l'upscaling uniquement de la vidéo finale sélectionnée, soit à partir de l'étape précédente, soit à partir d'une vidéo générée précédemment et stockée dans Cloud Storage.

Les modèles suivants sont compatibles avec l'upscaling des vidéos :

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

Résolutions et spécifications compatibles

L'upscaling vidéo autonome est compatible avec les transitions de résolution et les contraintes d'entrée suivantes :

  • Vidéo d'entrée 360p : mise à l'échelle vers 720p ou 1080p. Il n'est pas possible d'effectuer une mise à l'échelle directement de 360p à 4k dans une seule requête.
  • Vidéo d'entrée 720p : mise à l'échelle vers 1080p ou 4k. La mise à l'échelle de 1080p à 4k n'est pas possible.
  • Formats : 16:9 (paysage) ou 9:16 (portrait).
  • Fréquence d'images : 24 images par seconde (conservée dans la vidéo de sortie).
  • Durée : jusqu'à 15 secondes.
  • Utilisation des jetons et tarification : l'upscaling vidéo autonome contourne le raisonnement textuel et n'entraîne jamais de jetons d'entrée (total_input_tokens: 0). Les jetons vidéo de sortie sont facturés au même prix que tous les autres jetons vidéo de sortie des tâches Omni 1.2 Flash, en fonction de la paire de résolutions source et cible (2,896 jetons vidéo de sortie par seconde pour 360p vers 720p et 720p vers 1080p, 5,792 jetons vidéo de sortie par seconde pour 360p vers 1080p, et 11,584 jetons vidéo de sortie par seconde pour 720p vers 4k).

Exigences concernant les demandes

Lorsque vous envoyez une requête d'upscaling vidéo autonome, assurez-vous qu'elle répond aux exigences suivantes :

  • Spécifiez task: "upscale" : vous devez définir generation_config.video_config.task sur "upscale". Si vous omettez task: "upscale", l'API interprète la requête comme une opération de montage vidéo ("edit").
  • Spécifier un resolution cible : vous devez spécifier le resolution cible ("720p", "1080p" ou "4k") dans response_format. Si vous omettez la cible resolution, une erreur est renvoyée.
  • Fournir une source vidéo : fournissez une vidéo d'entrée dans input ("type": "video") ou définissez previous_interaction_id pour améliorer une vidéo générée lors du tour avec état immédiatement précédent. Dans les interactions multitours, seul le tour immédiatement précédent est pris en compte pour localiser la vidéo à améliorer.
  • Paramètres facultatifs : vous pouvez spécifier generation_config.seed pour une sortie reproductible et associer des étiquettes de métadonnées personnalisées (labels) pour organiser les requêtes et suivre les coûts facturés.

Essayer Gemini Omni 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.

    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 .

Augmentez la résolution des vidéos avec Omni 1.2 Flash

Pour améliorer des vidéos à l'aide d'Omni 1.2 Flash, sélectionnez l'un des modes d'interaction suivants :

REST

L'upscaling vidéo peut prendre plus d'une minute. Vous avez le choix entre plusieurs modes d'interaction en fonction de votre workflow :

  • Synchrone : sans état (vidéo importée) : définissez store sur false pour améliorer une vidéo 360p ou 720p de Cloud Storage en une seule requête sans conserver l'état d'interaction sur le serveur.
  • Synchrone : avec état (tour précédent) : référencez l'previous_interaction_id du tour avec état immédiatement précédent pour améliorer une vidéo 360p ou 720p précédemment générée.
  • Synchrone : streaming avec état : définissez store et stream sur true pour diffuser les mises à jour de l'état de l'interaction et la vidéo de sortie.
  • Asynchrone : définissez background sur true pour exécuter l'upscaling 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 sept jours maximum.

Pour en savoir plus sur l'utilisation des modèles Gemini Omni avec l'API Interactions, 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. Voici la valeur acceptée :
    • "gemini-omni-1.2-flash"
  • CLOUD_STORAGE_VIDEO_URI : chaîne représentant l'URI Cloud Storage qui contient la vidéo d'entrée (360p ou 720p, jusqu'à 15 secondes). Par exemple : "gs://video-bucket/input/video.mp4".
  • 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 la vidéo upscalée. Si cette valeur n'est pas fournie, les octets vidéo sont renvoyés dans la réponse. Exemple : "gs://video-bucket/output/".
  • OUTPUT_RESOLUTION : obligatoire. Chaîne représentant la résolution de sortie cible. Les valeurs acceptées dépendent de la résolution de la vidéo d'entrée :
    • Pour les vidéos d'entrée 360p : "720p" ou "1080p"
    • Pour les vidéos d'entrée en 720p : "1080p" ou "4k"

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",
  "store": false,
  "input": [
    {
      "type": "video",
      "uri": "CLOUD_STORAGE_VIDEO_URI",
      "mime_type": "VIDEO_MIME"
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "resolution": "OUTPUT_RESOLUTION"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "upscale"
    }
  }
}

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 avec la vidéo de sortie améliorée et zéro jeton d'entrée.
{
  "id": "INTERACTION_ID",
  "model": "gemini-omni-1.2-flash",
  "status": "completed",
  "usage": {
    "total_tokens": 28960,
    "total_input_tokens": 0,
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28960
      }
    ],
    "total_output_tokens": 28960
  },
  "steps": [
    { 
      "type": "model_output",
      "content": [
        {
          "type": "video",
          "uri": "gs://some/output_path/123.mp4",
          "mime_type": "video/mp4" 
        }
      ]
    }
  ],
  "object": "interaction",
  "role": "model",
  "created": "2026-11-05T02:17:56Z",
  "updated": "2026-11-05T02: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. Voici la valeur acceptée :
    • "gemini-omni-1.2-flash"
  • PREVIOUS_INTERACTION_ID : ID d'interaction du tour avec état immédiatement précédent qui a généré une vidéo 360p ou 720p (jusqu'à 15 secondes).
  • CLOUD_STORAGE_OUTPUT_URI : (facultatif) chaîne représentant le bucket Cloud Storage dans lequel stocker la vidéo upscalée. Si cette valeur n'est pas fournie, les octets vidéo sont renvoyés dans la réponse. Exemple : "gs://video-bucket/output/".
  • OUTPUT_RESOLUTION : obligatoire. Chaîne représentant la résolution de sortie cible. Les valeurs acceptées dépendent de la résolution vidéo de l'étape précédente :
    • Pour les vidéos 360p : "720p" ou "1080p"
    • Pour les vidéos 720p : "1080p" ou "4k"

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",
  "previous_interaction_id": "PREVIOUS_INTERACTION_ID",
  "background": false,
  "store": true,
  "stream": false,
  "input": [
    {
      "type": "user_input",
      "content": [
        {
          "type": "text",
          "text": "Upsample video."
        }
      ]
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "resolution": "OUTPUT_RESOLUTION"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "upscale"
    }
  }
}

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 avec la vidéo de sortie améliorée et zéro jeton d'entrée.
{
  "id": "INTERACTION_ID",
  "previous_interaction_id": "PREVIOUS_INTERACTION_ID",
  "model": "gemini-omni-1.2-flash",
  "status": "completed",
  "usage": {
    "total_tokens": 28960,
    "total_input_tokens": 0,
    "output_tokens_by_modality": [
      {
        "modality": "video",
        "tokens": 28960
      }
    ],
    "total_output_tokens": 28960
  },
  "steps": [
    { 
      "type": "model_output",
      "content": [
        {
          "type": "video",
          "uri": "gs://some/output_path/123.mp4",
          "mime_type": "video/mp4" 
        }
      ]
    }
  ],
  "object": "interaction",
  "role": "model",
  "created": "2026-11-05T02:17:56Z",
  "updated": "2026-11-05T02:17:56Z"
}
Utilisez INTERACTION_ID pour obtenir la vidéo amélioré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-1.2-flash",
  "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. Voici la valeur acceptée :
    • "gemini-omni-1.2-flash"
  • CLOUD_STORAGE_VIDEO_URI : chaîne représentant l'URI Cloud Storage qui contient la vidéo d'entrée (360p ou 720p, jusqu'à 15 secondes). Par exemple : "gs://video-bucket/input/video.mp4".
  • 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 la vidéo upscalée. Si cette valeur n'est pas fournie, les octets vidéo sont renvoyés dans la réponse. Exemple : "gs://video-bucket/output/".
  • OUTPUT_RESOLUTION : obligatoire. Chaîne représentant la résolution de sortie cible. Les valeurs acceptées dépendent de la résolution de la vidéo d'entrée :
    • Pour les vidéos d'entrée 360p : "720p" ou "1080p"
    • Pour les vidéos d'entrée en 720p : "1080p" ou "4k"

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": "video",
          "uri": "CLOUD_STORAGE_VIDEO_URI",
          "mime_type": "VIDEO_MIME"
        }
      ]
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "resolution": "OUTPUT_RESOLUTION"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "upscale"
    }
  }
}

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 est un flux d'événements envoyés par le serveur (SSE) contenant la vidéo de sortie améliorée.
event: interaction.created
data: {"interaction":{"id":"INTERACTION_ID","status":"in_progress","object":"interaction","model":"gemini-omni-1.2-flash"},"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":"model_output"},"event_type":"step.start"}

event: step.delta
data: {"index":0,"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":0,"event_type":"step.stop"}

event: interaction.completed
data: {"interaction":{"id":"INTERACTION_ID","status":"completed","usage":{"total_tokens":28960,"total_input_tokens":0,"total_output_tokens":28960,"output_tokens_by_modality":[{"modality":"video","tokens":28960}]},"created":"2026-11-05T21:26:20Z","updated":"2026-11-05T21:26:20Z","event_id":"EVENT_ID","object":"interaction","model":"gemini-omni-1.2-flash"},"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 amélioré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 à celui-ci :
event: interaction.created
data: {"interaction":{"id":"INTERACTION_ID","status":"in_progress","object":"interaction","model":"gemini-omni-1.2-flash"},"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-1.2-flash"},"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. Voici la valeur acceptée :
    • "gemini-omni-1.2-flash"
  • CLOUD_STORAGE_VIDEO_URI : chaîne représentant l'URI Cloud Storage qui contient la vidéo d'entrée (360p ou 720p, jusqu'à 15 secondes). Par exemple : "gs://video-bucket/input/video.mp4".
  • 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 la vidéo upscalée. Si cette valeur n'est pas fournie, les octets vidéo sont renvoyés dans la réponse. Exemple : "gs://video-bucket/output/".
  • OUTPUT_RESOLUTION : obligatoire. Chaîne représentant la résolution de sortie cible. Les valeurs acceptées dépendent de la résolution de la vidéo d'entrée :
    • Pour les vidéos d'entrée 360p : "720p" ou "1080p"
    • Pour les vidéos d'entrée en 720p : "1080p" ou "4k"

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": true,
  "input": [
    {
      "type": "video",
      "uri": "CLOUD_STORAGE_VIDEO_URI",
      "mime_type": "VIDEO_MIME"
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "resolution": "OUTPUT_RESOLUTION"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "upscale"
    }
  }
}

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 utilisez pour récupérer la vidéo améliorée.
{
  "id": "INTERACTION_ID",
  "status": "in_progress",
  "object": "interaction"
}
Plus tard, utilisez INTERACTION_ID pour obtenir la vidéo mise à l'échelle :

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-1.2-flash",
  "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"
}

Étapes suivantes