Meningkatkan skala video

Anda dapat menggunakan Gemini Omni 1.2 Flash untuk meningkatkan resolusi video dari resolusi yang lebih rendah (360p atau 720p) ke resolusi yang lebih tinggi (720p, 1080p, atau 4K) menggunakan Agent Platform API. Peningkatan skala video mandiri memungkinkan Anda melakukan iterasi pada perintah dengan resolusi yang lebih rendah dan hanya meningkatkan skala video akhir yang dipilih, baik dari giliran sebelumnya atau dari video yang dihasilkan sebelumnya yang disimpan di Cloud Storage.

Model berikut mendukung peningkatan skala video:

Klik untuk meluaskan model yang didukung

Resolusi dan spesifikasi yang didukung

Peningkatan skala video mandiri mendukung transisi resolusi dan batasan input berikut:

  • Video input 360p: Tingkatkan skala ke 720p atau 1080p. Peningkatan skala langsung dari 360p ke 4k dalam satu permintaan tidak didukung.
  • Video input 720p: Tingkatkan resolusi ke 1080p atau 4k. Peningkatan skala dari 1080p ke 4k tidak didukung.
  • Rasio aspek: 16:9 (lanskap) atau 9:16 (potret).
  • Kecepatan frame: 24 frame per detik (dipertahankan dalam video output).
  • Durasi: Maksimum 15 detik.
  • Penggunaan dan harga token: Peningkatan skala video mandiri mengabaikan penalaran teks dan selalu dikenai biaya nol token input (total_input_tokens: 0). Token video output ditagih dengan harga token video output yang sama dengan semua tugas Omni 1.2 Flash lainnya, berdasarkan pasangan resolusi sumber dan target (2,896 token video output per detik untuk 360p ke 720p dan 720p ke 1080p, 5,792 token video output per detik untuk 360p ke 1080p, dan 11,584 token video output per detik untuk 720p ke 4k).

Persyaratan permintaan

Saat mengirim permintaan peningkatan skala video mandiri, pastikan permintaan Anda memenuhi persyaratan berikut:

  • Tentukan task: "upscale": Anda harus menetapkan generation_config.video_config.task ke "upscale". Jika Anda menghilangkan task: "upscale", API akan menafsirkan permintaan sebagai operasi pengeditan video ("edit").
  • Tentukan resolution target: Anda harus menentukan resolution target ("720p", "1080p", atau "4k") di response_format. Menghilangkan resolution target akan menampilkan error.
  • Sediakan sumber video: Sediakan video input di input ("type": "video") atau tetapkan previous_interaction_id untuk meningkatkan kualitas video yang dihasilkan dalam giliran stateful sebelumnya. Dalam interaksi multi-giliran, hanya giliran yang mendahului langsung yang dipertimbangkan saat menemukan video yang akan ditingkatkan skalanya.
  • Parameter opsional: Anda dapat menentukan generation_config.seed untuk output yang dapat direproduksi dan melampirkan label metadata kustom (labels) untuk mengatur permintaan dan melacak biaya penagihan.

Coba Gemini Omni di Colab

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy 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. Siapkan autentikasi untuk lingkungan Anda.

    Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:

    Konsol

    Saat menggunakan konsol Google Cloud untuk mengakses layanan dan API Google Cloud , Anda tidak perlu menyiapkan autentikasi.

    REST

    Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

      Instal Google Cloud CLI.

      Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

    Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud .

Meningkatkan kualitas video menggunakan Omni 1.2 Flash

Untuk meningkatkan kualitas video menggunakan Omni 1.2 Flash, pilih salah satu mode interaksi berikut:

REST

Peningkatan kualitas video dapat memerlukan waktu lebih dari satu menit. Anda dapat memilih dari beberapa mode interaksi, bergantung pada alur kerja Anda:

  • Sinkron: stateless (video yang diupload): Tetapkan store ke false untuk meningkatkan skala video 360p atau 720p dari Cloud Storage dalam satu permintaan tanpa mempertahankan status interaksi di server.
  • Sinkron: stateful (giliran sebelumnya): Referensikan previous_interaction_id dari giliran stateful yang langsung mendahului untuk meningkatkan skala video 360p atau 720p yang dibuat sebelumnya.
  • Sinkron: streaming stateful: Tetapkan store dan stream ke true untuk melakukan streaming update status interaksi dan video output.
  • Asinkron: Tetapkan background ke true untuk menjalankan peningkatan skala video di latar belakang dan mengambil hasilnya nanti menggunakan ID interaksi.

Interaksi yang disimpan dan asinkron dipertahankan hingga 7 hari.

Untuk mengetahui informasi selengkapnya tentang penggunaan model Gemini Omni dengan Interactions API, lihat Interactions API.

Sinkron: stateless

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: String yang mewakili project ID Google Cloud Anda.
  • MODEL_ID: String yang mewakili ID model yang akan digunakan. Berikut adalah nilai yang diterima:
    • "gemini-omni-1.2-flash"
  • CLOUD_STORAGE_VIDEO_URI: String yang mewakili Cloud Storage URI yang berisi video input (360p atau 720p, hingga 15 detik). Contoh: "gs://video-bucket/input/video.mp4".
  • VIDEO_MIME: String yang mewakili jenis MIME video. Berikut adalah nilai yang diterima:
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • CLOUD_STORAGE_OUTPUT_URI: Opsional: String yang mewakili bucket Cloud Storage untuk menyimpan video yang ditingkatkan skalanya. Jika tidak diberikan, byte video akan ditampilkan dalam respons. Contoh: "gs://video-bucket/output/".
  • OUTPUT_RESOLUTION: Wajib: String yang mewakili resolusi output target. Nilai yang didukung bergantung pada resolusi video input:
    • Untuk video input 360p: "720p" atau "1080p"
    • Untuk video input 720p: "1080p" atau "4k"

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, lalu jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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
Responsnya berisi interaksi dengan video output yang ditingkatkan skalanya dan token input nol.
{
  "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"
}

Sinkron: stateful

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: String yang mewakili project ID Google Cloud Anda.
  • MODEL_ID: String yang mewakili ID model yang akan digunakan. Berikut adalah nilai yang diterima:
    • "gemini-omni-1.2-flash"
  • PREVIOUS_INTERACTION_ID: ID interaksi dari giliran stateful yang langsung mendahului dan menghasilkan video 360p atau 720p (hingga 15 detik).
  • CLOUD_STORAGE_OUTPUT_URI: Opsional: String yang mewakili bucket Cloud Storage untuk menyimpan video yang ditingkatkan skalanya. Jika tidak diberikan, byte video akan ditampilkan dalam respons. Contoh: "gs://video-bucket/output/".
  • OUTPUT_RESOLUTION: Wajib: String yang mewakili resolusi output target. Nilai yang didukung bergantung pada resolusi video dari giliran sebelumnya:
    • Untuk video 360p: "720p" atau "1080p"
    • Untuk video 720p: "1080p" atau "4k"

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, lalu jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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
Responsnya berisi interaksi dengan video output yang ditingkatkan skalanya dan token input nol.
{
  "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"
}
Gunakan INTERACTION_ID untuk mendapatkan video yang ditingkatkan skalanya:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: String yang mewakili project ID Google Cloud Anda.
  • INTERACTION_ID: ID interaksi dari permintaan asinkron.

Metode HTTP dan URL:

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

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Jalankan perintah berikut:

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

PowerShell

Jalankan perintah berikut:

$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
Responsnya dalam format yang mirip dengan berikut ini:
{
  "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"
}

Sinkron: streaming stateful

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: String yang mewakili project ID Google Cloud Anda.
  • MODEL_ID: String yang mewakili ID model yang akan digunakan. Berikut adalah nilai yang diterima:
    • "gemini-omni-1.2-flash"
  • CLOUD_STORAGE_VIDEO_URI: String yang mewakili Cloud Storage URI yang berisi video input (360p atau 720p, hingga 15 detik). Contoh: "gs://video-bucket/input/video.mp4".
  • VIDEO_MIME: String yang mewakili jenis MIME video. Berikut adalah nilai yang diterima:
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • CLOUD_STORAGE_OUTPUT_URI: Opsional: String yang mewakili bucket Cloud Storage untuk menyimpan video yang ditingkatkan skalanya. Jika tidak diberikan, byte video akan ditampilkan dalam respons. Contoh: "gs://video-bucket/output/".
  • OUTPUT_RESOLUTION: Wajib: String yang mewakili resolusi output target. Nilai yang didukung bergantung pada resolusi video input:
    • Untuk video input 360p: "720p" atau "1080p"
    • Untuk video input 720p: "1080p" atau "4k"

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, lalu jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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
Responsnya adalah aliran Server-Sent Events (SSE) yang berisi video output yang ditingkatkan skalanya.
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]
Gunakan INTERACTION_ID dengan `?stream=true` untuk melakukan streaming interaksi yang disimpan dan video yang ditingkatkan skalanya:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: String yang mewakili project ID Google Cloud Anda.
  • INTERACTION_ID: ID interaksi dari permintaan.

Metode HTTP dan URL:

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

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Jalankan perintah berikut:

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

PowerShell

Jalankan perintah berikut:

$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
Responsnya adalah aliran Peristiwa yang Dikirim Server (SSE) dalam format yang mirip dengan berikut:
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]

Asinkron

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: String yang mewakili project ID Google Cloud Anda.
  • MODEL_ID: String yang mewakili ID model yang akan digunakan. Berikut adalah nilai yang diterima:
    • "gemini-omni-1.2-flash"
  • CLOUD_STORAGE_VIDEO_URI: String yang mewakili Cloud Storage URI yang berisi video input (360p atau 720p, hingga 15 detik). Contoh: "gs://video-bucket/input/video.mp4".
  • VIDEO_MIME: String yang mewakili jenis MIME video. Berikut adalah nilai yang diterima:
    • video/3gpp
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-ms-wmv
  • CLOUD_STORAGE_OUTPUT_URI: Opsional: String yang mewakili bucket Cloud Storage untuk menyimpan video yang ditingkatkan skalanya. Jika tidak diberikan, byte video akan ditampilkan dalam respons. Contoh: "gs://video-bucket/output/".
  • OUTPUT_RESOLUTION: Wajib: String yang mewakili resolusi output target. Nilai yang didukung bergantung pada resolusi video input:
    • Untuk video input 360p: "720p" atau "1080p"
    • Untuk video input 720p: "1080p" atau "4k"

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, lalu jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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
Respons berisi ID interaksi, yang Anda gunakan untuk mengambil video yang di-upscale.
{
  "id": "INTERACTION_ID",
  "status": "in_progress",
  "object": "interaction"
}
Nanti, gunakan INTERACTION_ID untuk mendapatkan video yang di-upscale:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: String yang mewakili project ID Google Cloud Anda.
  • INTERACTION_ID: ID interaksi dari permintaan asinkron.

Metode HTTP dan URL:

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

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Jalankan perintah berikut:

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

PowerShell

Jalankan perintah berikut:

$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
Responsnya dalam format yang mirip dengan berikut ini:
{
  "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"
}

Langkah berikutnya