Aumenta la risoluzione dei video

Puoi utilizzare Gemini Omni 1.2 Flash per eseguire l'upscaling dei video da risoluzioni inferiori (360p o 720p) a risoluzioni superiori (720p, 1080p o 4K) utilizzando l'API Agent Platform. L'upscaling video autonomo ti consente di eseguire l'iterazione dei prompt a risoluzioni inferiori ed eseguire l'upscaling solo del video finale selezionato, dal turno precedente o da un video generato in precedenza archiviato in Cloud Storage.

I seguenti modelli supportano l'upscaling dei video:

Fai clic per espandere i modelli supportati

Risoluzioni e specifiche supportate

L'upscaling video autonomo supporta le seguenti transizioni di risoluzione e i seguenti vincoli di input:

  • Video di input a 360p: upscaling a 720p o 1080p. L'upscaling diretto da 360p a 4k in una singola richiesta non è supportato.
  • Video di input a 720p: aumento della risoluzione a 1080p o 4k. L'upscaling da 1080p a 4k non è supportato.
  • Proporzioni: 16:9 (orizzontale) o 9:16 (verticale).
  • Frequenza fotogrammi: 24 frame al secondo (conservati nel video di output).
  • Durata: fino a 15 secondi.
  • Utilizzo e prezzi dei token: l'upscaling video autonomo bypassa il ragionamento testuale e comporta sempre zero token di input (total_input_tokens: 0). I token video di output vengono fatturati allo stesso prezzo dei token video di output di tutte le altre attività di Omni 1.2 Flash, in base alla coppia di risoluzioni di origine e di destinazione (2,896 token video di output al secondo per 360p a 720p e 720p a 1080p, 5,792 token video di output al secondo per 360p a 1080p e 11,584 token video di output al secondo per 720p a 4k).

Requisiti per la richiesta

Quando invii una richiesta di upscaling video autonomo, assicurati che soddisfi i seguenti requisiti:

  • Specifica task: "upscale": devi impostare generation_config.video_config.task su "upscale". Se ometti task: "upscale", l'API interpreta la richiesta come un'operazione di editing video ("edit").
  • Specifica un resolution di destinazione: devi specificare il resolution di destinazione ("720p", "1080p" o "4k") in response_format. Se ometti il target resolution, viene restituito un errore.
  • Fornisci una sorgente video: fornisci un video di input in input ("type": "video") o imposta previous_interaction_id per eseguire l'upscaling di un video generato nel turno stateful immediatamente precedente. Nelle interazioni a più turni, viene considerato solo il turno immediatamente precedente per individuare il video di cui eseguire l'upscaling.
  • Parametri facoltativi: puoi specificare generation_config.seed per un output riproducibile e allegare etichette di metadati personalizzati (labels) per organizzare le richieste e monitorare i costi fatturati.

Prova Gemini Omni in Colab

Prima di iniziare

  1. Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment di workload.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud 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

  3. 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

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud 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

  5. 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

  6. Configura l'autenticazione per l'ambiente.

    Seleziona la scheda relativa al modo in cui prevedi di utilizzare gli esempi in questa pagina:

    Console

    Quando utilizzi la console Google Cloud per accedere ai servizi e alle API Google Cloud , non devi configurare l'autenticazione.

    REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.

      Installa Google Cloud CLI.

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

    Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .

Aumenta la risoluzione dei video utilizzando Omni 1.2 Flash

Per aumentare la risoluzione dei video utilizzando Omni 1.2 Flash, seleziona una delle seguenti modalità di interazione:

REST

L'upscaling del video può richiedere più di un minuto. Puoi scegliere tra diverse modalità di interazione a seconda del tuo workflow:

  • Sincrono: stateless (video caricato): imposta store su false per eseguire l'upscaling di un video a 360p o 720p da Cloud Storage in una singola richiesta senza mantenere lo stato dell'interazione sul server.
  • Sincrono: stateful (turno precedente): fai riferimento a previous_interaction_id del turno stateful immediatamente precedente per eseguire l'upscaling di un video a 360p o 720p generato in precedenza.
  • Sincrono: streaming stateful: imposta sia store che stream su true per trasmettere in streaming gli aggiornamenti dello stato dell'interazione e il video di output.
  • Asincrono: imposta background su true per eseguire l'upscaling del video in background e recuperare il risultato in un secondo momento utilizzando l'ID interazione.

Le interazioni archiviate e asincrone vengono conservate per un massimo di 7 giorni.

Per ulteriori informazioni sull'utilizzo dei modelli Gemini Omni con l'API Interactions, consulta API Interactions.

Sincrona: stateless

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: una stringa che rappresenta l'ID progetto Google Cloud .
  • MODEL_ID: una stringa che rappresenta l'ID del modello da utilizzare. Di seguito è riportato il valore accettato:
    • "gemini-omni-1.2-flash"
  • CLOUD_STORAGE_VIDEO_URI: una stringa che rappresenta l'URI Cloud Storage contenente il video di input (360p o 720p, fino a 15 secondi). Ad esempio: "gs://video-bucket/input/video.mp4".
  • VIDEO_MIME: una stringa che rappresenta un tipo MIME video. Di seguito sono riportati i valori accettati:
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • CLOUD_STORAGE_OUTPUT_URI: (Facoltativo) Una stringa che rappresenta il bucket Cloud Storage in cui archiviare il video con upscaling. Se non viene fornito, i byte del video vengono restituiti nella risposta. Ad esempio: "gs://video-bucket/output/".
  • OUTPUT_RESOLUTION: Obbligatorio: una stringa che rappresenta la risoluzione di output di destinazione. I valori supportati dipendono dalla risoluzione del video di input:
    • Per i video di input a 360p: "720p" o "1080p"
    • Per i video di input a 720p: "1080p" o "4k"

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, scegli una di queste opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

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

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

$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 risposta contiene un'interazione con il video di output con upscaling e zero token di input.
{
  "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"
}

Sincrona: stateful

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: una stringa che rappresenta l'ID progetto Google Cloud .
  • MODEL_ID: una stringa che rappresenta l'ID del modello da utilizzare. Di seguito è riportato il valore accettato:
    • "gemini-omni-1.2-flash"
  • PREVIOUS_INTERACTION_ID: l'ID interazione del turno stateful immediatamente precedente che ha generato un video a 360p o 720p (fino a 15 secondi).
  • CLOUD_STORAGE_OUTPUT_URI: (Facoltativo) Una stringa che rappresenta il bucket Cloud Storage in cui archiviare il video con upscaling. Se non viene fornito, i byte del video vengono restituiti nella risposta. Ad esempio: "gs://video-bucket/output/".
  • OUTPUT_RESOLUTION: Obbligatorio: una stringa che rappresenta la risoluzione di output di destinazione. I valori supportati dipendono dalla risoluzione video del turno precedente:
    • Per i video a 360p: "720p" o "1080p"
    • Per i video a 720p: "1080p" o "4k"

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, scegli una di queste opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

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

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

$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 risposta contiene un'interazione con il video di output con upscaling e zero token di input.
{
  "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"
}
Utilizza INTERACTION_ID per ottenere il video con upscaling:

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: una stringa che rappresenta l'ID progetto Google Cloud .
  • INTERACTION_ID: l'ID interazione della richiesta asincrona.

Metodo HTTP e URL:

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

Per inviare la richiesta, scegli una di queste opzioni:

curl

Esegui questo comando:

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

PowerShell

Esegui questo 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
La risposta è in un formato simile al seguente:
{
  "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"
}

Sincrono: streaming stateful

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: una stringa che rappresenta l'ID progetto Google Cloud .
  • MODEL_ID: una stringa che rappresenta l'ID del modello da utilizzare. Di seguito è riportato il valore accettato:
    • "gemini-omni-1.2-flash"
  • CLOUD_STORAGE_VIDEO_URI: una stringa che rappresenta l'URI Cloud Storage contenente il video di input (360p o 720p, fino a 15 secondi). Ad esempio: "gs://video-bucket/input/video.mp4".
  • VIDEO_MIME: una stringa che rappresenta un tipo MIME video. Di seguito sono riportati i valori accettati:
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • CLOUD_STORAGE_OUTPUT_URI: (Facoltativo) Una stringa che rappresenta il bucket Cloud Storage in cui archiviare il video con upscaling. Se non viene fornito, i byte del video vengono restituiti nella risposta. Ad esempio: "gs://video-bucket/output/".
  • OUTPUT_RESOLUTION: Obbligatorio: una stringa che rappresenta la risoluzione di output di destinazione. I valori supportati dipendono dalla risoluzione del video di input:
    • Per i video di input a 360p: "720p" o "1080p"
    • Per i video di input a 720p: "1080p" o "4k"

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, scegli una di queste opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

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

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

$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 risposta è uno stream di Server-Sent Events (SSE) contenente il video di output con 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]
Utilizza INTERACTION_ID con "?stream=true" per riprodurre in streaming l'interazione archiviata e il video con upscaling:

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: una stringa che rappresenta l'ID progetto Google Cloud .
  • INTERACTION_ID: l'ID interazione della richiesta.

Metodo HTTP e URL:

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

Per inviare la richiesta, scegli una di queste opzioni:

curl

Esegui questo comando:

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

PowerShell

Esegui questo 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
La risposta è uno stream di Server-Sent Events (SSE) in un formato simile al seguente:
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]

Asincrona

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: una stringa che rappresenta l'ID progetto Google Cloud .
  • MODEL_ID: una stringa che rappresenta l'ID del modello da utilizzare. Di seguito è riportato il valore accettato:
    • "gemini-omni-1.2-flash"
  • CLOUD_STORAGE_VIDEO_URI: una stringa che rappresenta l'URI Cloud Storage contenente il video di input (360p o 720p, fino a 15 secondi). Ad esempio: "gs://video-bucket/input/video.mp4".
  • VIDEO_MIME: una stringa che rappresenta un tipo MIME video. Di seguito sono riportati i valori accettati:
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • CLOUD_STORAGE_OUTPUT_URI: (Facoltativo) Una stringa che rappresenta il bucket Cloud Storage in cui archiviare il video con upscaling. Se non viene fornito, i byte del video vengono restituiti nella risposta. Ad esempio: "gs://video-bucket/output/".
  • OUTPUT_RESOLUTION: Obbligatorio: una stringa che rappresenta la risoluzione di output di destinazione. I valori supportati dipendono dalla risoluzione del video di input:
    • Per i video di input a 360p: "720p" o "1080p"
    • Per i video di input a 720p: "1080p" o "4k"

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, scegli una di queste opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

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

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

$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 risposta contiene un ID interazione, che utilizzi per recuperare il video con upscaling.
{
  "id": "INTERACTION_ID",
  "status": "in_progress",
  "object": "interaction"
}
In un secondo momento, utilizza INTERACTION_ID per ottenere il video con l'upscaling:

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: una stringa che rappresenta l'ID progetto Google Cloud .
  • INTERACTION_ID: l'ID interazione della richiesta asincrona.

Metodo HTTP e URL:

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

Per inviare la richiesta, scegli una di queste opzioni:

curl

Esegui questo comando:

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

PowerShell

Esegui questo 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
La risposta è in un formato simile al seguente:
{
  "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"
}

Passaggi successivi