Aumentar a resolução dos vídeos

Você pode usar o Gemini Omni 1.2 Flash para aumentar a resolução de vídeos de resoluções mais baixas (360p ou 720p) para resoluções mais altas (720p, 1080p ou 4K) usando a API Agent Platform. O upscaling de vídeo independente permite iterar em comandos com resoluções mais baixas e fazer o upscaling apenas do vídeo final selecionado, seja do turno anterior ou de um vídeo gerado anteriormente armazenado no Cloud Storage.

Os seguintes modelos são compatíveis com o upscaling de vídeos:

Clique para abrir os modelos compatíveis

Resoluções e especificações compatíveis

O aumento de resolução de vídeo independente é compatível com as seguintes transições de resolução e restrições de entrada:

  • Vídeo de entrada de 360p: faça o upgrade para 720p ou 1080p. Não é possível fazer o upscaling diretamente de 360p para 4k em uma única solicitação.
  • Vídeo de entrada em 720p: aumento de resolução para 1080p ou 4k. Não é possível fazer upgrade de 1080p para 4k.
  • Proporções: 16:9 (paisagem) ou 9:16 (retrato).
  • Frame rate: 24 quadros por segundo (preservados no vídeo de saída).
  • Duração: até 15 segundos.
  • Uso e preços de tokens: o upscaling de vídeo independente ignora o raciocínio de texto e sempre gera zero tokens de entrada (total_input_tokens: 0). Os tokens de vídeo de saída são cobrados pelo mesmo preço de token de vídeo de saída que todas as outras tarefas do Omni 1.2 Flash, com base no par de resolução de origem e destino (2,896 tokens de vídeo de saída por segundo para 360p a 720p e 720p a 1080p, 5,792 tokens de vídeo de saída por segundo para 360p a 1080p e 11,584 tokens de vídeo de saída por segundo para 720p a 4k).

Requisitos de solicitação

Ao enviar uma solicitação de upscaling de vídeo independente, verifique se ela atende aos seguintes requisitos:

  • Especifique task: "upscale": defina generation_config.video_config.task como "upscale". Se você omitir task: "upscale", a API vai interpretar a solicitação como uma operação de edição de vídeo ("edit").
  • Especifique um resolution de destino: é preciso especificar o resolution de destino ("720p", "1080p" ou "4k") em response_format. Omitir o resolution de destino retorna um erro.
  • Forneça uma fonte de vídeo: forneça um vídeo de entrada em input ("type": "video") ou defina previous_interaction_id para aumentar a resolução de um vídeo gerado na rodada com estado imediatamente anterior. Em interações de vários turnos, apenas o turno imediatamente anterior é considerado ao localizar o vídeo para upscaling.
  • Parâmetros opcionais: é possível especificar generation_config.seed para saída reproduzível e anexar rótulos de metadados personalizados (labels) para organizar solicitações e acompanhar os custos faturados.

Teste o Gemini Omni no Colab

Antes de começar

  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. Configure a autenticação do ambiente.

    Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o console do Cloud de Confiance para acessar os serviços e as APIs do Cloud de Confiance by S3NS , não é necessário configurar a autenticação.

    REST

    Para usar as amostras da API REST desta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.

      Instale a Google Cloud CLI e faça login na CLI gcloud com sua identidade federada.

    Saiba mais em Autenticar para usar REST na documentação de autenticação do Cloud de Confiance .

Aumentar a resolução de vídeos usando o Omni 1.2 Flash

Para melhorar a resolução de vídeos usando o Omni 1.2 Flash, selecione um dos seguintes modos de interação:

REST

O upscaling de vídeo pode levar mais de um minuto para ser concluído. Você pode escolher entre vários modos de interação, dependendo do seu fluxo de trabalho:

  • Síncrono: sem estado (vídeo enviado): defina store como false para fazer o upgrade de um vídeo de 360p ou 720p do Cloud Storage em uma única solicitação sem manter o estado de interação no servidor.
  • Síncrono: com estado (turno anterior): referencie o previous_interaction_id do turno com estado imediatamente anterior para fazer o upscale de um vídeo de 360p ou 720p gerado anteriormente.
  • Síncrono: streaming com estado: defina store e stream como true para transmitir as atualizações de status da interação e o vídeo de saída.
  • Assíncrono: defina background como true para executar o upscaling de vídeo em segundo plano e recuperar o resultado mais tarde usando o ID de interação.

As interações armazenadas e assíncronas são retidas por até 7 dias.

Para mais informações sobre como usar os modelos Gemini Omni com a API Interactions, consulte API Interactions.

Síncrona: sem estado

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: uma string que representa o ID do projeto do Cloud de Confiance by S3NS .
  • MODEL_ID: uma string que representa o ID do modelo a ser usado. Este é o valor aceito:
    • "gemini-omni-1.2-flash"
  • CLOUD_STORAGE_VIDEO_URI: uma string que representa o URI do Cloud Storage que contém o vídeo de entrada (360p ou 720p, até 15 segundos). Por exemplo, "gs://video-bucket/input/video.mp4".
  • VIDEO_MIME: uma string que representa um tipo MIME de vídeo. Os valores aceitos são:
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • CLOUD_STORAGE_OUTPUT_URI: opcional: uma string que representa o bucket do Cloud Storage para armazenar o vídeo aprimorado. Se não forem fornecidos, os bytes de vídeo serão retornados na resposta. Por exemplo, "gs://video-bucket/output/".
  • OUTPUT_RESOLUTION: obrigatório: uma string que representa a resolução de saída de destino. Os valores compatíveis dependem da resolução do vídeo de entrada:
    • Para vídeos de entrada em 360p: "720p" ou "1080p"
    • Para vídeos de entrada de 720p: "1080p" ou "4k"

Método HTTP e URL:

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

Corpo JSON da solicitação:

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

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

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

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:

$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
A resposta contém uma interação com o vídeo de saída aprimorado e zero tokens de entrada.
{
  "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"
}

Síncrona: com estado

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: uma string que representa o ID do projeto do Cloud de Confiance by S3NS .
  • MODEL_ID: uma string que representa o ID do modelo a ser usado. Este é o valor aceito:
    • "gemini-omni-1.2-flash"
  • PREVIOUS_INTERACTION_ID: o ID de interação do turno com estado imediatamente anterior que gerou um vídeo de 360p ou 720p (até 15 segundos).
  • CLOUD_STORAGE_OUTPUT_URI: Opcional: uma string que representa o bucket do Cloud Storage para armazenar o vídeo aprimorado. Se não forem fornecidos, os bytes de vídeo serão retornados na resposta. Por exemplo, "gs://video-bucket/output/".
  • OUTPUT_RESOLUTION: obrigatório: uma string que representa a resolução de saída de destino. Os valores compatíveis dependem da resolução de vídeo da vez anterior:
    • Para vídeos em 360p: "720p" ou "1080p"
    • Para vídeos em 720p: "1080p" ou "4k"

Método HTTP e URL:

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

Corpo JSON da solicitação:

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

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

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

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:

$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
A resposta contém uma interação com o vídeo de saída aprimorado e zero tokens de entrada.
{
  "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"
}
Use o INTERACTION_ID para receber o vídeo ampliado:

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: uma string que representa o ID do projeto do Cloud de Confiance by S3NS .
  • INTERACTION_ID: o ID de interação da solicitação assíncrona.

Método HTTP e URL:

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

Para enviar a solicitação, escolha uma destas opções:

curl

Execute o seguinte comando:

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

PowerShell

Execute o seguinte comando:

$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
A resposta está em um formato semelhante ao seguinte:
{
  "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"
}

Síncrono: streaming com estado

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: uma string que representa o ID do projeto do Cloud de Confiance by S3NS .
  • MODEL_ID: uma string que representa o ID do modelo a ser usado. Este é o valor aceito:
    • "gemini-omni-1.2-flash"
  • CLOUD_STORAGE_VIDEO_URI: uma string que representa o URI do Cloud Storage que contém o vídeo de entrada (360p ou 720p, até 15 segundos). Por exemplo, "gs://video-bucket/input/video.mp4".
  • VIDEO_MIME: uma string que representa um tipo MIME de vídeo. Os valores aceitos são:
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • CLOUD_STORAGE_OUTPUT_URI: opcional: uma string que representa o bucket do Cloud Storage para armazenar o vídeo aprimorado. Se não forem fornecidos, os bytes de vídeo serão retornados na resposta. Por exemplo, "gs://video-bucket/output/".
  • OUTPUT_RESOLUTION: obrigatório: uma string que representa a resolução de saída de destino. Os valores compatíveis dependem da resolução do vídeo de entrada:
    • Para vídeos de entrada em 360p: "720p" ou "1080p"
    • Para vídeos de entrada de 720p: "1080p" ou "4k"

Método HTTP e URL:

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

Corpo JSON da solicitação:

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

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

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

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:

$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
A resposta é um stream de eventos enviados pelo servidor (SSE) que contém o vídeo de saída com upscaling.
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]
Use o INTERACTION_ID com `?stream=true` para transmitir a interação armazenada e o vídeo aprimorado:

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: uma string que representa o ID do projeto do Cloud de Confiance by S3NS .
  • INTERACTION_ID: o ID de interação da solicitação.

Método HTTP e URL:

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

Para enviar a solicitação, escolha uma destas opções:

curl

Execute o seguinte comando:

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

PowerShell

Execute o seguinte comando:

$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
A resposta é um stream de eventos enviados pelo servidor (SSE) em um formato semelhante ao seguinte:
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]

Assíncrono

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: uma string que representa o ID do projeto do Cloud de Confiance by S3NS .
  • MODEL_ID: uma string que representa o ID do modelo a ser usado. Este é o valor aceito:
    • "gemini-omni-1.2-flash"
  • CLOUD_STORAGE_VIDEO_URI: uma string que representa o URI do Cloud Storage que contém o vídeo de entrada (360p ou 720p, até 15 segundos). Por exemplo, "gs://video-bucket/input/video.mp4".
  • VIDEO_MIME: uma string que representa um tipo MIME de vídeo. Os valores aceitos são:
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • CLOUD_STORAGE_OUTPUT_URI: opcional: uma string que representa o bucket do Cloud Storage para armazenar o vídeo aprimorado. Se não forem fornecidos, os bytes de vídeo serão retornados na resposta. Por exemplo, "gs://video-bucket/output/".
  • OUTPUT_RESOLUTION: obrigatório: uma string que representa a resolução de saída de destino. Os valores compatíveis dependem da resolução do vídeo de entrada:
    • Para vídeos de entrada em 360p: "720p" ou "1080p"
    • Para vídeos de entrada de 720p: "1080p" ou "4k"

Método HTTP e URL:

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

Corpo JSON da solicitação:

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

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

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

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:

$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
A resposta contém um ID de interação, que você usa para recuperar o vídeo melhorado.
{
  "id": "INTERACTION_ID",
  "status": "in_progress",
  "object": "interaction"
}
Depois, use o INTERACTION_ID para acessar o vídeo ampliado:

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: uma string que representa o ID do projeto do Cloud de Confiance by S3NS .
  • INTERACTION_ID: o ID de interação da solicitação assíncrona.

Método HTTP e URL:

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

Para enviar a solicitação, escolha uma destas opções:

curl

Execute o seguinte comando:

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

PowerShell

Execute o seguinte comando:

$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
A resposta está em um formato semelhante ao seguinte:
{
  "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"
}

A seguir