Membuat video dari referensi

Anda dapat menggunakan Gemini Omni Flash atau Veo di Gemini Enterprise Agent Platform untuk memandu pembuatan video menggunakan gambar atau video referensi.

Model berikut mendukung gambar referensi:

Gemini Omni Flash

Gemini Omni Flash memungkinkan Anda menggunakan gambar atau video referensi untuk memberikan input tambahan ke model saat membuat video.

Klik untuk meluaskan model yang didukung

Veo

Veo di Gemini Enterprise Agent Platform memungkinkan Anda menggunakan gambar subjek referensi untuk mengarahkan video yang dihasilkan. Anda memberikan hingga tiga gambar dari satu orang, karakter, atau produk. Veo mempertahankan penampilan subjek dalam video output.

Klik untuk meluaskan model yang didukung

Untuk mengetahui informasi selengkapnya tentang cara menulis perintah teks yang efektif untuk pembuatan video, lihat Panduan perintah pembuatan video.

Mencoba Gemini Omni Flash di Colab

Sebelum memulai

  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. Siapkan autentikasi untuk lingkungan Anda.

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

    Konsol

    Saat menggunakan konsol Cloud de Confiance untuk mengakses layanan Cloud de Confiance by S3NS dan API, Anda tidak perlu menyiapkan autentikasi.

    Python

    Untuk menggunakan contoh Python di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.

    1. Instal Google Cloud CLI.

    2. Konfigurasi gcloud CLI agar menggunakan identitas gabungan Anda.

      Untuk mengetahui informasi selengkapnya, lihat Login ke gcloud CLI dengan identitas gabungan Anda.

    3. Buat kredensial autentikasi lokal untuk akun pengguna Anda:

      gcloud auth application-default login

      Jika error autentikasi ditampilkan, pastikan Anda telah login ke gcloud CLI dengan identitas gabungan Anda.

    Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Cloud de Confiance .

    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, lalu login ke gcloud CLI dengan identitas gabungan Anda.

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

Menggunakan Gemini Omni Flash dan referensi untuk membuat video

REST

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

  • Sinkron: stateless: Buat video dalam satu permintaan tanpa menyimpan status interaksi di server.
  • Sinkron: stateful: Tetapkan store ke true untuk mempertahankan status interaksi, yang memungkinkan Anda mengambil hasilnya nanti atau mereferensikan ID interaksi untuk pengeditan video multi-turn.
  • Sinkron: streaming stateful: Tetapkan store dan stream ke true untuk menerima pemikiran model secara inkremental saat dibuat, diikuti dengan video output.
  • Asinkron: Tetapkan background ke true untuk menjalankan pembuatan video di latar belakang dan mengambil hasilnya nanti menggunakan ID interaksi.

Interaksi yang disimpan dan asinkron dipertahankan hingga 14 hari.

Untuk mengetahui informasi selengkapnya tentang cara menggunakan Gemini Omni Flash API, lihat Interactions API.

Sinkron: stateless

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: String yang mewakili project ID Cloud de Confiance by S3NS Anda.
  • MODEL_ID: String yang mewakili ID model yang akan digunakan. Berikut adalah nilai yang diterima:
    • "gemini-omni-1.1-flash-preview"
  • TEXT_PROMPT: Perintah teks yang digunakan untuk memandu pembuatan video.
  • CLOUD_STORAGE_IMAGE_URI: String yang merepresentasikan bucket Cloud Storage yang berisi gambar input. Contoh: "gs://video-bucket/input/".
  • IMAGE_MIME: String yang mewakili jenis MIME gambar. Berikut adalah nilai yang diterima:
    • image/png
    • image/jpeg
    • image/webp
    • image/heic
    • image/heif
  • CLOUD_STORAGE_VIDEO_URI: String yang merepresentasikan bucket Cloud Storage yang berisi video input. Contoh: "gs://video-bucket/input/".
  • 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 merepresentasikan bucket Cloud Storage untuk menyimpan video output. Jika tidak diberikan, byte video akan ditampilkan dalam respons. Contoh: "gs://video-bucket/output/".
  • ASPECT_RATIO: Opsional: String yang mewakili rasio aspek yang diharapkan dari video output. Jika tidak diberikan, rasio aspek akan disimpulkan dari perintah. Berikut adalah nilai yang diterima:
    • "16:9"
    • "9:16"
  • OUTPUT_RESOLUTION:

    Opsional: String yang merepresentasikan resolusi output video. Jika tidak diberikan, output akan ditetapkan secara default ke 720p.

    gemini-omni-1.1-flash-preview mendukung nilai berikut:

    • "360p"
    • "720p"
    • "1080p"
    • "4k"

    gemini-omni-flash-preview hanya mendukung "720p".

  • DURATION: String yang menampilkan panjang file video yang dihasilkan. String yang diizinkan adalah bilangan bulat antara 3 dan 10, diikuti dengan "s" untuk detik. Contoh, "10s".

Metode HTTP dan URL:

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

Meminta isi JSON:

{
  "model": "MODEL_ID",
  "input": [
    {
      "type": "text",
      "text": "TEXT_PROMPT Use the image(s) as references to
      generate the video."
    },
    {
      "type": "image",
      "uri": "CLOUD_STORAGE_IMAGE_URI",
      "mime_type": "IMAGE_MIME"
    },
    {
      "type": "video",
      "uri": "CLOUD_STORAGE_VIDEO_URI",
      "mime_type": "VIDEO_MIME"
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "aspect_ratio": "ASPECT_RATIO",
      "resolution": "OUTPUT_RESOLUTION",
      "duration": "DURATION"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "reference_to_video"
    }
  }
}

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 interaksi yang mencakup pemikiran model dan video output.
{
  "id":"INTERACTION_ID",
  "model":"gemini-omni-flash-preview",
  "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":"thought",
      "summary":[
        {
          "type":"text",
          "text":"MODEL THOUGHTS"
        }
      ],
    },
    { 
      "type":"model_output",
      "content":[
        {
          "type":"video",
          "uri":"gs://some/output_path/123.mp4",
          "mime_type":"video/mp4" 
        }
      ]
    }
  ],
  "object":"interaction"
  "role":"model",
  "created":"2026-05-29T02:17:56Z",
  "updated":"2026-05-29T02:17:56Z",
}

Sinkron: stateful

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: String yang mewakili project ID Cloud de Confiance by S3NS Anda.
  • MODEL_ID: String yang mewakili ID model yang akan digunakan. Berikut adalah nilai yang diterima:
    • "gemini-omni-1.1-flash-preview"
  • TEXT_PROMPT: Perintah teks yang digunakan untuk memandu pembuatan video.
  • CLOUD_STORAGE_IMAGE_URI: String yang merepresentasikan bucket Cloud Storage yang berisi gambar input. Contoh: "gs://video-bucket/input/".
  • IMAGE_MIME: String yang mewakili jenis MIME gambar. Berikut adalah nilai yang diterima:
    • image/png
    • image/jpeg
    • image/webp
    • image/heic
    • image/heif
  • CLOUD_STORAGE_VIDEO_URI: String yang merepresentasikan bucket Cloud Storage yang berisi video input. Contoh: "gs://video-bucket/input/".
  • 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 merepresentasikan bucket Cloud Storage untuk menyimpan video output. Jika tidak diberikan, byte video akan ditampilkan dalam respons. Contoh: "gs://video-bucket/output/".
  • ASPECT_RATIO: Opsional: String yang mewakili rasio aspek yang diharapkan dari video output. Jika tidak diberikan, rasio aspek akan disimpulkan dari perintah. Berikut adalah nilai yang diterima:
    • "16:9"
    • "9:16"
  • OUTPUT_RESOLUTION:

    Opsional: String yang merepresentasikan resolusi output video. Jika tidak diberikan, output akan ditetapkan secara default ke 720p.

    gemini-omni-1.1-flash-preview mendukung nilai berikut:

    • "360p"
    • "720p"
    • "1080p"
    • "4k"

    gemini-omni-flash-preview hanya mendukung "720p".

  • DURATION: String yang menampilkan panjang file video yang dihasilkan. String yang diizinkan adalah bilangan bulat antara 3 dan 10, diikuti dengan "s" untuk detik. Contoh, "10s".

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": false,
  "input": [
    {
      "type": "user_input",
      "content": [
        {
          "type": "text",
          "text": "TEXT_PROMPT Use the image(s) as references to generate the video."
        },
        {
          "type": "image",
          "uri": "CLOUD_STORAGE_IMAGE_URI",
          "mime_type": "IMAGE_MIME"
        },
        {
          "type": "video",
          "uri": "CLOUD_STORAGE_VIDEO_URI",
          "mime_type": "VIDEO_MIME"
        }
      ]
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "aspect_ratio": "ASPECT_RATIO",
      "resolution": "OUTPUT_RESOLUTION",
      "duration": "DURATION"
    }
  ]
}

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 interaksi yang mencakup pemikiran model dan video output.
{
  "id":"INTERACTION_ID",
  "model":"gemini-omni-flash-preview",
  "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":"thought",
      "summary":[
        {
          "type":"text",
          "text":"MODEL THOUGHTS"
        }
      ],
    },
    { 
      "type":"model_output",
      "content":[
        {
          "type":"video",
          "uri":"gs://some/output_path/123.mp4",
          "mime_type":"video/mp4" 
        }
      ]
    }
  ],
  "object":"interaction",
  "role":"model",
  "created":"2026-05-29T02:17:56Z",
  "updated":"2026-05-29T02:17:56Z",
}
Gunakan INTERACTION_ID untuk mendapatkan video yang dihasilkan:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: String yang mewakili project ID Cloud de Confiance by S3NS 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-flash-preview",
  "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 Cloud de Confiance by S3NS project ID Anda.
  • MODEL_ID: String yang mewakili ID model yang akan digunakan. Berikut adalah nilai yang diterima:
    • "gemini-omni-1.1-flash-preview"
  • TEXT_PROMPT: Perintah teks yang digunakan untuk memandu pembuatan video.
  • CLOUD_STORAGE_IMAGE_URI: String yang merepresentasikan bucket Cloud Storage yang berisi gambar input. Contoh: "gs://video-bucket/input/".
  • IMAGE_MIME: String yang mewakili jenis MIME gambar. Berikut adalah nilai yang diterima:
    • image/png
    • image/jpeg
    • image/webp
    • image/heic
    • image/heif
  • CLOUD_STORAGE_VIDEO_URI: String yang merepresentasikan bucket Cloud Storage yang berisi video input. Contoh: "gs://video-bucket/input/".
  • 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 merepresentasikan bucket Cloud Storage untuk menyimpan video output. Jika tidak diberikan, byte video akan ditampilkan dalam respons. Contoh: "gs://video-bucket/output/".
  • ASPECT_RATIO: Opsional: String yang mewakili rasio aspek yang diharapkan dari video output. Jika tidak diberikan, rasio aspek akan disimpulkan dari perintah. Berikut adalah nilai yang diterima:
    • "16:9"
    • "9:16"
  • OUTPUT_RESOLUTION:

    Opsional: String yang merepresentasikan resolusi output video. Jika tidak diberikan, output akan ditetapkan secara default ke 720p.

    gemini-omni-1.1-flash-preview mendukung nilai berikut:

    • "360p"
    • "720p"
    • "1080p"
    • "4k"

    gemini-omni-flash-preview hanya mendukung "720p".

  • DURATION: String yang menampilkan panjang file video yang dihasilkan. String yang diizinkan adalah bilangan bulat antara 3 dan 10, diikuti dengan "s" untuk detik. Contoh, "10s".

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": "text",
          "text": "TEXT_PROMPT Use the image(s) as references to generate the video."
        },
        {
          "type": "image",
          "uri": "CLOUD_STORAGE_IMAGE_URI",
          "mime_type": "IMAGE_MIME"
        },
        {
          "type": "video",
          "uri": "CLOUD_STORAGE_VIDEO_URI",
          "mime_type": "VIDEO_MIME"
        }
      ]
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "aspect_ratio": "ASPECT_RATIO",
      "resolution": "OUTPUT_RESOLUTION",
      "duration": "DURATION"
    }
  ]
}

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 interaksi yang mencakup pemikiran model dan video output.
event: interaction.created
data: {"interaction":{"id":"INTERACTION_ID","status":"in_progress","object":"interaction","model":"gemini-omni-flash-preview"},"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":17812,"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":415},"created":"2026-08-12T21:26:20Z","updated":"2026-08-12T21:26:20Z","event_id":"EVENT_ID","object":"interaction","model":"gemini-omni-flash-preview"},"event_id":"EVENT_ID","event_type":"interaction.completed"}

event: done
data: [DONE]
Gunakan INTERACTION_ID dengan `?stream=true` untuk men-streaming interaksi yang disimpan dan video yang dihasilkan:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: String yang mewakili project ID Cloud de Confiance by S3NS 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
Respons 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-flash-preview"},"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-flash-preview"},"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 Cloud de Confiance by S3NS project ID Anda.
  • MODEL_ID: String yang mewakili ID model yang akan digunakan. Berikut adalah nilai yang diterima:
    • "gemini-omni-1.1-flash-preview"
  • TEXT_PROMPT: Perintah teks yang digunakan untuk memandu pembuatan video.
  • CLOUD_STORAGE_IMAGE_URI: String yang merepresentasikan bucket Cloud Storage yang berisi gambar input. Contoh: "gs://video-bucket/input/".
  • IMAGE_MIME: String yang mewakili jenis MIME gambar. Berikut adalah nilai yang diterima:
    • image/png
    • image/jpeg
    • image/webp
    • image/heic
    • image/heif
  • CLOUD_STORAGE_VIDEO_URI: String yang merepresentasikan bucket Cloud Storage yang berisi video input. Contoh: "gs://video-bucket/input/".
  • 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 merepresentasikan bucket Cloud Storage untuk menyimpan video output. Jika tidak diberikan, byte video akan ditampilkan dalam respons. Contoh: "gs://video-bucket/output/".
  • ASPECT_RATIO: Opsional: String yang mewakili rasio aspek yang diharapkan dari video output. Jika tidak diberikan, rasio aspek akan disimpulkan dari perintah. Berikut adalah nilai yang diterima:
    • "16:9"
    • "9:16"
  • OUTPUT_RESOLUTION:

    Opsional: String yang merepresentasikan resolusi output video. Jika tidak diberikan, output akan ditetapkan secara default ke 720p.

    gemini-omni-1.1-flash-preview mendukung nilai berikut:

    • "360p"
    • "720p"
    • "1080p"
    • "4k"

    gemini-omni-flash-preview hanya mendukung "720p".

  • DURATION: String yang menampilkan panjang file video yang dihasilkan. String yang diizinkan adalah bilangan bulat antara 3 dan 10, diikuti dengan "s" untuk detik. Contoh, "10s".

Metode HTTP dan URL:

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

Meminta isi JSON:

{
  "model": "MODEL_ID",
  "input": [
    {
      "background": true,
      "type": "text",
      "text": "TEXT_PROMPT Use the image(s) as references to
      generate the video."
    },
    {
      "type": "image",
      "uri": "CLOUD_STORAGE_IMAGE_URI",
      "mime_type": "IMAGE_MIME"
    },
    {
      "type": "video",
      "uri": "CLOUD_STORAGE_VIDEO_URI",
      "mime_type": "VIDEO_MIME"
    }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "CLOUD_STORAGE_OUTPUT_URI",
      "aspect_ratio": "ASPECT_RATIO",
      "resolution": "OUTPUT_RESOLUTION",
      "duration": "DURATION"
    }
  ],
  "generation_config": {
    "video_config": {
      "task": "reference_to_video"
    }
  }
}

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 ID interaksi, yang akan Anda gunakan untuk mendapatkan video yang Anda buat.
{
  "id":"INTERACTION_ID",
  "status":"in_progress",
  "object":"interaction"
}
Selanjutnya, gunakan INTERACTION_ID untuk mendapatkan video yang dibuat:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: String yang mewakili Cloud de Confiance by S3NS project ID 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-flash-preview",
  "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",
}

Menggunakan Veo dan gambar aset untuk membuat video

Lakukan tindakan berikut:

Konsol

  1. Di konsol Cloud de Confiance , buka halaman Agent Platform > Agent Platform Studio .

    Buka Agent Platform Studio

  2. Klik Buat media.

  3. Klik Video.

  4. Di menu Task, pilih Reference-to-video (Subject).

  5. Di menu Model, pilih model dari opsi yang tersedia.

  6. Di bagian Subject Images, klik Add.

    Dialog pemilihan file akan ditampilkan. Pilih satu hingga tiga gambar di komputer Anda untuk diupload.

  7. Opsional: Di bagian Parameters, sesuaikan setelan berikut:

    • Rasio aspek: pilih 16:9 atau 9:16.
    • Number of results: sesuaikan penggeser atau masukkan nilai antara 1 dan 4.
    • Durasi video: pilih 8, 6, atau 4 detik.
    • Resolusi output: pilih salah satu opsi berikut:
      • 720p
      • 1080p
      • 4k
  8. Opsional: Di bagian Safety, pilih salah satu setelan Person generation berikut:

    • Izinkan (Khusus Dewasa): nilai default. Hanya buat orang atau wajah dewasa. Jangan buat orang atau wajah remaja atau anak-anak.

    • Jangan izinkan: tidak membuat orang atau wajah.

  9. Opsional: Di bagian Advanced options, masukkan nilai Seed untuk mengacak pembuatan video.

  10. Di kotak Perintah, masukkan perintah teks yang menjelaskan video yang akan dibuat.

  11. Klik Run.

Python

Instal

pip install --upgrade google-genai

Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.

Tetapkan variabel lingkungan untuk menggunakan Google Gen AI SDK dengan Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

import time
from google import genai
from google.genai.types import GenerateVideosConfig, Image, VideoGenerationReferenceImage

client = genai.Client()

# TODO(developer): Update and un-comment below line
# output_gcs_uri = "gs://your-bucket/your-prefix"

operation = client.models.generate_videos(
    model="veo-3.1-generate-preview",
    prompt="A person walks in carrying a vase full of flowers and places the vase on a kitchen table.",
    config=GenerateVideosConfig(
        reference_images=[
            VideoGenerationReferenceImage(
                image=Image(
                    gcs_uri="gs://cloud-samples-data/generative-ai/image/vase.png",
                    mime_type="image/png",
                ),
                reference_type="asset",
            ),
        ],
        aspect_ratio="9:16",
        output_gcs_uri=output_gcs_uri,
    ),
)

while not operation.done:
    time.sleep(15)
    operation = client.operations.get(operation)
    print(operation)

if operation.response:
    print(operation.result.generated_videos[0].video.uri)

# Example response:
# gs://your-bucket/your-prefix

REST

Untuk mengetahui informasi selengkapnya tentang Veo API, lihat bagian berikut:

  1. Gunakan perintah berikut untuk mengirim permintaan pembuatan video. Permintaan ini memulai operasi yang berjalan lama dan menyimpan output ke bucket Cloud Storage yang Anda tentukan.

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT_ID: Cloud de Confiance by S3NS Project ID Anda.
    • MODEL_ID: String yang mewakili ID model yang akan digunakan. Model berikut didukung:
      • veo-3.1-generate-preview preview
      • veo-3.1-generate-001
      • veo-3.1-fast-generate-preview preview
      • veo-3.1-fast-generate-001
    • TEXT_PROMPT: Perintah teks yang digunakan untuk memandu pembuatan video.
    • BASE64_ENCODED_IMAGE: Gambar subjek yang dienkode base64-bytes. Anda dapat mengulangi kolom ini dan mimeType untuk menentukan hingga tiga gambar subjek.
    • IMAGE_MIME_TYPE: Jenis MIME gambar input. Hanya salah satu dari berikut ini:

      • image/jpeg
      • image/png

      Anda dapat mengulangi kolom ini dan bytesBase64Encoded untuk menentukan hingga tiga gambar subjek.

    • ASPECT_RATIO: Opsional: Rasio aspek video yang dihasilkan. Hanya salah satu dari berikut ini:

      • "16:9"
      • "9:16"

      Nilai defaultnya adalah "16:9".

    • OUTPUT_STORAGE_URI: Opsional: Bucket Cloud Storage untuk menyimpan video output. Jika tidak disediakan, video berenkode byte Base64 akan ditampilkan dalam respons. Contoh: gs://video-bucket/output/.
    • RESPONSE_COUNT: Jumlah file video yang ingin Anda buat. Nilai bilangan bulat yang diterima: 1-4.
    • VIDEO_RESOLUTION: Opsional: Resolusi video yang dihasilkan. Hanya salah satu dari berikut:

      • "720p"
      • "1080p"
      • "4k" (Khusus model Pratinjau Veo 3.1)

      Nilai defaultnya adalah "720p".

    • Parameter opsional tambahan

      Gunakan variabel opsional berikut, bergantung pada kasus penggunaan Anda. Tambahkan beberapa atau semua parameter berikut dalam objek "parameters": {}.

      "parameters": {
        "aspectRatio": "ASPECT_RATIO",
        "negativePrompt": "NEGATIVE_PROMPT",
        "personGeneration": "PERSON_SAFETY_SETTING",
        // "resolution": RESOLUTION, // Veo 3 models only
        "sampleCount": RESPONSE_COUNT,
        "seed": SEED_NUMBER
      }
      • ASPECT_RATIO: Opsional: Nilai string yang menjelaskan rasio aspek video yang dibuat. Anda dapat menggunakan nilai berikut:
        • "16:9" untuk lanskap
        • "9:16" untuk potret

        Nilai defaultnya adalah "16:9"

      • NEGATIVE_PROMPT: Opsional: Nilai string yang menjelaskan konten yang tidak ingin Anda hasilkan oleh model.
      • PERSON_SAFETY_SETTING: Opsional: Nilai string yang mengontrol setelan keamanan untuk pembuatan orang atau pembuatan wajah. Anda dapat menggunakan nilai berikut:
        • "allow_adult": Hanya mengizinkan pembuatan orang dan wajah dewasa.
        • "disallow": Tidak menghasilkan orang atau wajah.

        Nilai defaultnya adalah "allow_adult".

      • RESOLUTION: Opsional: Nilai string yang mengontrol resolusi video yang dihasilkan. Didukung oleh model Veo 3 saja. Anda dapat menggunakan nilai berikut:
        • "720p"
        • "1080p"
        • "4k" (Khusus model Pratinjau Veo 3.1)

        Nilai defaultnya adalah "720p".

      • RESPONSE_COUNT: Opsional. Nilai bilangan bulat yang menjelaskan jumlah video yang akan dibuat. Rentang nilai yang diterima adalah 1-4.
      • SEED_NUMBER: Opsional. Nilai uint32 yang digunakan model untuk membuat video deterministik. Menentukan nomor seed dengan permintaan Anda tanpa mengubah parameter lain akan memandu model untuk menghasilkan video yang sama. Rentang nilai yang diterima adalah 0-4294967295.

    Metode HTTP dan URL:

    POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning

    Meminta isi JSON:

    {
      "instances": [
        {
          "prompt": "TEXT_PROMPT",
          // The following fields can be repeated for up to three total
          // images.
          "referenceImages": [
            {
              "image": {
                "bytesBase64Encoded": "BASE64_ENCODED_IMAGE",
                "mimeType": "IMAGE_MIME_TYPE"
              },
              "referenceType": "asset"
            }
          ]
        }
      ],
      "parameters": {
        "aspectRatio":, "ASPECT_RATIO,
        "durationSeconds": 8,
        "storageUri": "OUTPUT_STORAGE_URI",
        "sampleCount": RESPONSE_COUNT,
        "resolution": "VIDEO_RESOLUTION
      }
    }
    

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

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

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning"

    PowerShell

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

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:predictLongRunning" | Select-Object -Expand Content
    Permintaan ini menampilkan nama operasi lengkap dengan ID operasi yang unik. Gunakan nama operasi lengkap ini untuk melakukan polling status permintaan pembuatan video.
    {
      "name":
      "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
    }
    

  2. Opsional: Periksa status operasi yang berjalan lama pembuatan video.

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT_ID: Project ID Cloud de Confiance by S3NS Anda.
    • MODEL_ID: ID model yang akan digunakan.
    • OPERATION_ID: ID operasi unik yang ditampilkan dalam permintaan pembuatan video asli.

    Metode HTTP dan URL:

    POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation

    Meminta isi JSON:

    {
      "operationName": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/OPERATION_ID"
    }
    

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

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

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation"

    PowerShell

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

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation" | Select-Object -Expand Content
    Permintaan ini menampilkan informasi tentang operasi, termasuk apakah operasi masih berjalan atau sudah selesai.

Langkah berikutnya