Videos hochskalieren

Mit Gemini Omni 1.2 Flash können Sie Videos mit niedrigeren Auflösungen (360p oder 720p) über die Agent Platform API auf höhere Auflösungen (720p, 1080p oder 4K) hochskalieren. Mit dem eigenständigen Video-Upscaling können Sie Prompts mit niedrigeren Auflösungen iterieren und nur das endgültige ausgewählte Video hochskalieren, entweder aus der vorherigen Runde oder aus einem zuvor generierten Video, das in Cloud Storage gespeichert ist.

Die folgenden Modelle unterstützen das Hochskalieren von Videos:

Klicken, um unterstützte Modelle einzublenden

Unterstützte Auflösungen und Spezifikationen

Das eigenständige Hochskalieren von Videos unterstützt die folgenden Auflösungsübergänge und Eingabeeinschränkungen:

  • Eingabevideo mit 360p: Hochskalieren auf 720p oder 1080p. Die direkte Hochskalierung von 360p auf 4k in einer einzelnen Anfrage wird nicht unterstützt.
  • 720p-Eingabevideo: Hochskalieren auf 1080p oder 4k. Das Hochskalieren von 1080p auf 4k wird nicht unterstützt.
  • Seitenverhältnisse: 16:9 (Querformat) oder 9:16 (Hochformat).
  • Framerate: 24 Bilder pro Sekunde (wird im Ausgabevideo beibehalten).
  • Dauer: bis zu 15 Sekunden
  • Tokennutzung und Preise: Beim eigenständigen Video-Upscaling wird die Textargumentation umgangen und es fallen immer null Eingabetokens (total_input_tokens: 0) an. Ausgabevideotokens werden zum gleichen Preis wie alle anderen Omni 1.2 Flash-Aufgaben abgerechnet, basierend auf dem Paar aus Quell- und Zielauflösung (2,896 Ausgabevideotokens pro Sekunde für 360p bis 720p und 720p bis 1080p, 5,792 Ausgabevideotokens pro Sekunde für 360p bis 1080p und 11,584 Ausgabevideotokens pro Sekunde für 720p bis 4k).

Anfrageanforderungen

Wenn Sie eine Anfrage zum Hochskalieren eines eigenständigen Videos senden, muss diese die folgenden Anforderungen erfüllen:

  • task: "upscale" angeben: Sie müssen generation_config.video_config.task auf "upscale" festlegen. Wenn Sie task: "upscale" weglassen, interpretiert die API die Anfrage als Videobearbeitungsvorgang ("edit").
  • Ziel-resolution angeben: Sie müssen die Ziel-resolution ("720p", "1080p" oder "4k") in response_format angeben. Wenn das Ziel resolution weggelassen wird, wird ein Fehler zurückgegeben.
  • Videoquelle angeben: Geben Sie entweder ein Eingabevideo in input ("type": "video") an oder legen Sie previous_interaction_id fest, um ein Video hochzuskalieren, das in der unmittelbar vorhergehenden zustandsorientierten Runde generiert wurde. Bei Interaktionen mit mehreren Runden wird nur die unmittelbar vorhergehende Runde berücksichtigt, wenn das Video für die Hochskalierung gesucht wird.
  • Optionale Parameter: Sie können generation_config.seed für reproduzierbare Ausgaben angeben und benutzerdefinierte Metadaten-Labels (labels) anhängen, um Anfragen zu organisieren und die in Rechnung gestellten Kosten zu verfolgen.

Gemini Omni in Colab ausprobieren

Hinweis

  1. Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie einfach ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  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. Richten Sie die Authentifizierung für Ihre Umgebung ein.

    Wählen Sie den Tab für die gewünschte Verwendung der Beispiele auf dieser Seite aus:

    Console

    Wenn Sie über die Google Cloud Console auf Dienste und APIs von Google Cloud zugreifen, müssen Sie die Authentifizierung nicht einrichten.

    REST

    Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.

      Installieren Sie die Google Cloud CLI.

      Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

    Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.

Videos mit Omni 1.2 Flash hochskalieren

Wenn Sie Videos mit Omni 1.2 Flash hochskalieren möchten, wählen Sie einen der folgenden Interaktionsmodi aus:

REST

Das Video-Upscaling kann mehr als eine Minute dauern. Je nach Workflow können Sie zwischen verschiedenen Interaktionsmodi wählen:

  • Synchron: zustandslos (hochgeladenes Video): Setzen Sie store auf false, um ein 360p- oder 720p-Video aus Cloud Storage in einer einzigen Anfrage hochzuskalieren, ohne den Interaktionsstatus auf dem Server beizubehalten.
  • Synchron: zustandsorientiert (vorherige Runde): Verweisen Sie auf die previous_interaction_id aus der unmittelbar vorhergehenden zustandsorientierten Runde, um ein zuvor generiertes 360p- oder 720p-Video hochzuskalieren.
  • Synchron: zustandsorientiertes Streaming: Setzen Sie sowohl store als auch stream auf true, um die Statusaktualisierungen der Interaktion und das Ausgabevideo zu streamen.
  • Asynchron: Setzen Sie background auf true, um das Video-Upscaling im Hintergrund auszuführen und das Ergebnis später über die Interaktions-ID abzurufen.

Gespeicherte und asynchrone Interaktionen werden bis zu 7 Tage lang aufbewahrt.

Weitere Informationen zur Verwendung von Gemini Omni-Modellen mit der Interactions API finden Sie unter Interactions API.

Synchron: zustandslos

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ein String, der Ihre Projekt-ID in Google Cloud darstellt.
  • MODEL_ID: Ein String, der die zu verwendende Modell-ID darstellt. Der folgende Wert wird akzeptiert:
    • "gemini-omni-1.2-flash"
  • CLOUD_STORAGE_VIDEO_URI: Ein String, der den Cloud Storage-URI darstellt, der das Eingabevideo enthält (360p oder 720p, bis zu 15 Sekunden). Beispiel: "gs://video-bucket/input/video.mp4".
  • VIDEO_MIME: Ein String, der einen Video-MIME-Typ darstellt. Folgende Werte sind zulässig:
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • CLOUD_STORAGE_OUTPUT_URI: Optional: Ein String, der den Cloud Storage-Bucket darstellt, in dem das hochskalierte Video gespeichert werden soll. Wenn nicht angegeben, werden Videobytes in der Antwort zurückgegeben. Beispiel: "gs://video-bucket/output/"
  • OUTPUT_RESOLUTION: Erforderlich: Ein String, der die Zielauflösung für die Ausgabe darstellt. Die unterstützten Werte hängen von der Auflösung des Eingabevideos ab:
    • Für 360p-Eingabevideos: "720p" oder "1080p"
    • Für 720p-Eingabevideos: "1080p" oder "4k"

HTTP-Methode und URL:

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

JSON-Text der Anfrage:

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

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

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

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$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
Die Antwort enthält eine Interaktion mit dem hochskalierten Ausgabevideo und null Eingabetokens.
{
  "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"
}

Synchron: zustandsorientiert

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ein String, der Ihre Projekt-ID in Google Cloud darstellt.
  • MODEL_ID: Ein String, der die zu verwendende Modell-ID darstellt. Der folgende Wert wird akzeptiert:
    • "gemini-omni-1.2-flash"
  • PREVIOUS_INTERACTION_ID: Die Interaktions-ID des unmittelbar vorhergehenden zustandsorientierten Turns, der ein 360p- oder 720p-Video (bis zu 15 Sekunden) generiert hat.
  • CLOUD_STORAGE_OUTPUT_URI: Optional: Ein String, der den Cloud Storage-Bucket darstellt, in dem das hochskalierte Video gespeichert werden soll. Wenn nicht angegeben, werden Videobytes in der Antwort zurückgegeben. Beispiel: "gs://video-bucket/output/"
  • OUTPUT_RESOLUTION: Erforderlich: Ein String, der die Zielauflösung für die Ausgabe darstellt. Die unterstützten Werte hängen von der Videoauflösung der vorherigen Runde ab:
    • Für 360p-Videos: "720p" oder "1080p"
    • Für 720p-Videos: "1080p" oder "4k"

HTTP-Methode und URL:

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

JSON-Text der Anfrage:

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

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

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

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$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
Die Antwort enthält eine Interaktion mit dem hochskalierten Ausgabevideo und null Eingabetokens.
{
  "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"
}
Verwenden Sie die INTERACTION_ID, um das hochskalierte Video abzurufen:

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ein String, der Ihre Projekt-ID in Google Cloud darstellt.
  • INTERACTION_ID: Die Interaktions-ID aus der asynchronen Anfrage.

HTTP-Methode und URL:

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

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

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

PowerShell

Führen Sie diesen Befehl aus:

$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
Die Antwort hat ein Format, das dem folgenden ähnelt:
{
  "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"
}

Synchron: Stateful Streaming

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ein String, der Ihre Projekt-ID in Google Cloud darstellt.
  • MODEL_ID: Ein String, der die zu verwendende Modell-ID darstellt. Der folgende Wert wird akzeptiert:
    • "gemini-omni-1.2-flash"
  • CLOUD_STORAGE_VIDEO_URI: Ein String, der den Cloud Storage-URI darstellt, der das Eingabevideo enthält (360p oder 720p, bis zu 15 Sekunden). Beispiel: "gs://video-bucket/input/video.mp4".
  • VIDEO_MIME: Ein String, der einen Video-MIME-Typ darstellt. Folgende Werte sind zulässig:
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • CLOUD_STORAGE_OUTPUT_URI: Optional: Ein String, der den Cloud Storage-Bucket darstellt, in dem das hochskalierte Video gespeichert werden soll. Wenn nicht angegeben, werden Videobytes in der Antwort zurückgegeben. Beispiel: "gs://video-bucket/output/"
  • OUTPUT_RESOLUTION: Erforderlich: Ein String, der die Zielauflösung für die Ausgabe darstellt. Die unterstützten Werte hängen von der Auflösung des Eingabevideos ab:
    • Für 360p-Eingabevideos: "720p" oder "1080p"
    • Für 720p-Eingabevideos: "1080p" oder "4k"

HTTP-Methode und URL:

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

JSON-Text der Anfrage:

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

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

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

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$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
Die Antwort ist ein Stream von Server-Sent Events (SSE), der das hochskalierte Ausgabevideo enthält.
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]
Verwenden Sie die INTERACTION_ID mit `?stream=true`, um die gespeicherte Interaktion und das hochskalierte Video zu streamen:

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ein String, der Ihre Projekt-ID in Google Cloud darstellt.
  • INTERACTION_ID: Die Interaktions-ID aus der Anfrage.

HTTP-Methode und URL:

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

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

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

PowerShell

Führen Sie diesen Befehl aus:

$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
Die Antwort ist ein Stream von Server-Sent Events (SSE) in einem Format, das dem folgenden ähnelt:
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]

Asynchron

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ein String, der Ihre Projekt-ID in Google Cloud darstellt.
  • MODEL_ID: Ein String, der die zu verwendende Modell-ID darstellt. Der folgende Wert wird akzeptiert:
    • "gemini-omni-1.2-flash"
  • CLOUD_STORAGE_VIDEO_URI: Ein String, der den Cloud Storage-URI darstellt, der das Eingabevideo enthält (360p oder 720p, bis zu 15 Sekunden). Beispiel: "gs://video-bucket/input/video.mp4".
  • VIDEO_MIME: Ein String, der einen Video-MIME-Typ darstellt. Folgende Werte sind zulässig:
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • CLOUD_STORAGE_OUTPUT_URI: Optional: Ein String, der den Cloud Storage-Bucket darstellt, in dem das hochskalierte Video gespeichert werden soll. Wenn nicht angegeben, werden Videobytes in der Antwort zurückgegeben. Beispiel: "gs://video-bucket/output/"
  • OUTPUT_RESOLUTION: Erforderlich: Ein String, der die Zielauflösung für die Ausgabe darstellt. Die unterstützten Werte hängen von der Auflösung des Eingabevideos ab:
    • Für 360p-Eingabevideos: "720p" oder "1080p"
    • Für 720p-Eingabevideos: "1080p" oder "4k"

HTTP-Methode und URL:

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

JSON-Text der Anfrage:

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

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

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

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$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
Die Antwort enthält eine Interaktions-ID, mit der Sie das hochskalierte Video abrufen können.
{
  "id": "INTERACTION_ID",
  "status": "in_progress",
  "object": "interaction"
}
Später können Sie mit der INTERACTION_ID das hochskalierte Video abrufen:

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ein String, der Ihre Projekt-ID in Google Cloud darstellt.
  • INTERACTION_ID: Die Interaktions-ID aus der asynchronen Anfrage.

HTTP-Methode und URL:

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

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

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

PowerShell

Führen Sie diesen Befehl aus:

$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
Die Antwort hat ein Format, das dem folgenden ähnelt:
{
  "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"
}

Nächste Schritte