Veo di Vertex AI API

Veo adalah nama model yang mendukung pembuatan video. Veo membuat video dari perintah teks atau perintah gambar yang Anda berikan. Untuk mengetahui informasi selengkapnya tentang Veo, lihat Ringkasan pembuatan video Veo.

Untuk menjelajahi model ini di konsol, lihat kartu model Video Generation di Model Garden.

Coba Veo di Vertex AI (Vertex AI Studio)

Coba Veo di Colab

Model yang Didukung

Veo API mendukung model berikut:

Permintaan HTTP

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:predictLongRunning \

-d '{
  "instances": [
    {
      "prompt": string,
      "image": {
        // Union field can be only one of the following:
        "bytesBase64Encoded": string,
        "gcsUri": string,
        // End of list of possible types for union field.
        "mimeType": string
      },
      "lastFrame": {
        // Union field can be only one of the following:
        "bytesBase64Encoded": string,
        "gcsUri": string,
        // End of list of possible types for union field.
        "mimeType": string
      },
      "video": {
        // Union field can be only one of the following:
        "bytesBase64Encoded": string,
        "gcsUri": string,
        // End of list of possible types for union field.
        "mimeType": string
      }
    }
  ],
  "parameters": {
    "aspectRatio": string,
    "durationSeconds": integer,
    "enhancePrompt": boolean,
    "generateAudio": boolean,
    "negativePrompt": string,
    "personGeneration": string,
    "resolution": string, // Veo 3 models only
    "sampleCount": integer,
    "seed": uint32,
    "storageUri": string
  }
}'
Instance

prompt

string

Diperlukan untuk teks ke video.
Opsional jika perintah gambar input diberikan (image-to-video).

String teks untuk memandu delapan detik pertama dalam video. Contoh:

  • Bidikan pelacakan cepat melalui hamparan distopia yang ramai dengan tanda neon terang, mobil terbang dan kabut, malam, suar lensa, pencahayaan volumetrik
  • Hologram neon mobil yang melaju dengan kecepatan tertinggi, kecepatan cahaya, sinematik, detail luar biasa, pencahayaan volumetrik
  • Banyak ubur-ubur tutul berdenyut di bawah air. Tubuh mereka transparan dan bercahaya di laut dalam
  • close-up ekstrem dengan kedalaman bidang yang dangkal dari genangan air di jalan. memantulkan kota Tokyo futuristik yang ramai dengan tanda-tanda neon terang, malam, suar lensa
  • Timelapse aurora menari di langit Arktik, bintang berkelap-kelip, lanskap tertutup salju
  • Seorang koboi berkuda sendirian melintasi padang rumput terbuka saat matahari terbenam yang indah, cahaya lembut, warna hangat

Kolom union image.

Opsional. Gambar untuk memandu pembuatan video, yang dapat berupa string bytesBase64Encoded yang mengenkode gambar atau URI string gcsUri ke lokasi bucket Cloud Storage.

Pembuatan video dari gambar didukung oleh model berikut:

  • veo-2.0-generate-001
  • veo-3.0-generate-preview

Kolom union lastFrame.

Opsional. Gambar bingkai pertama video untuk mengisi ruang di antaranya. lastFrame dapat berupa string bytesBase64Encoded yang mengenkode gambar atau URI string gcsUri ke lokasi bucket Cloud Storage.

lastFrame didukung oleh veo-2.0-generate-001 saja.

Kolom union video.

Opsional. Video yang dibuat Veo untuk diperpanjang durasinya, yang dapat berupa string bytesBase64Encoded yang mengenkode video atau URI string gcsUri ke lokasi bucket Cloud Storage.

video didukung oleh veo-2.0-generate-001 saja.

bytesBase64Encoded

string

String berenkode Base64 byte dari file gambar atau video.

gcsUri

string

URI string ke lokasi bucket Cloud Storage.

mimeType

string

Wajib untuk objek berikut:

Menentukan jenis MIME video atau gambar.

Untuk gambar, jenis MIME berikut diterima:

  • image/jpeg
  • image/png

Untuk video, jenis MIME berikut diterima:

  • video/mp4
Parameter
aspectRatio

string

Opsional. Menentukan rasio aspek video yang dihasilkan. Nilai berikut diterima:

  • 16:9 (nilai default)
  • 9:16 (tidak didukung oleh veo-3.0-generate-preview)
durationSeconds

integer

Wajib. Durasi file video yang ingin Anda buat.

Berikut adalah nilai yang diterima untuk setiap model:

  • veo-2.0-generate-001: 5-8. Defaultnya adalah 8.
  • veo-3.0-generate-preview: 8.
enhancePrompt

boolean

Opsional. Gunakan Gemini untuk meningkatkan kualitas perintah Anda. Nilai yang diterima adalah true atau false. Nilai defaultnya adalah true.

generateAudio

boolean

Diperlukan untuk veo-3.0-generate-preview. Buat audio untuk video. Nilai yang diterima adalah true atau false.

generateAudio tidak didukung oleh veo-2.0-generate-001.

negativePrompt

string

Opsional. String teks yang mendeskripsikan apa pun yang ingin Anda cegah agar tidak dibuat oleh model. Contoh:

  • pencahayaan di atas, warna cerah
  • orang, hewan
  • beberapa mobil, angin
personGeneration

string

Opsional. Setelan keamanan yang mengontrol apakah pembuatan wajah atau orang diizinkan. Salah satu dari berikut ini:

  • allow_adult (nilai default): mengizinkan pembuatan khusus dewasa
  • dont_allow: tidak mengizinkan penyertaan orang/wajah dalam gambar
resolution

string

Opsional. Khusus model Veo 3. Resolusi video yang dihasilkan. Nilai yang diterima adalah 720p (default) atau 1080p.

sampleCount

int

Opsional. Jumlah video output yang diminta. Nilai yang diterima adalah 1-4.

seed

uint32

Opsional. Angka yang diminta untuk membuat video yang dihasilkan menjadi deterministik. Menambahkan nomor seed dengan permintaan Anda tanpa mengubah parameter lain akan menyebabkan model menghasilkan video yang sama.

Rentang yang diterima adalah 0-4,294,967,295.

storageUri

string

Opsional. URI bucket Cloud Storage untuk menyimpan video output, dalam format gs://BUCKET_NAME/SUBDIRECTORY. Jika bucket Cloud Storage tidak disediakan, byte video berenkode base64 akan ditampilkan dalam respons.

Permintaan sampel

Gunakan permintaan berikut untuk mengirim permintaan text-to-video atau image-to-video:

Permintaan pembuatan video dari teks

REST

Untuk menguji perintah teks menggunakan Vertex AI Veo API, kirim permintaan POST ke endpoint model penayang.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Google Cloud Project ID Anda.
  • MODEL_ID: ID model yang akan digunakan. Nilai yang tersedia:
    • veo-2.0-generate-001
    • veo-3.0-generate-001
    • veo-3.0-fast-generate-001
    • veo-3.0-generate-preview (Pratinjau)
    • veo-3.0-fast-generate-preview (Pratinjau)
  • TEXT_PROMPT: Perintah teks yang digunakan untuk memandu pembuatan video.
  • OUTPUT_STORAGE_URI: Opsional: Bucket Cloud Storage untuk menyimpan video output. Jika tidak diberikan, byte video 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.
  • DURATION: Durasi file video yang ingin Anda buat. Nilai bilangan bulat yang diterima adalah 5-8.
  • 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: string. Opsional. Menentukan rasio aspek video yang dihasilkan. Nilai: 16:9 (default, lanskap) atau 9:16 (potret).
    • NEGATIVE_PROMPT: string. Opsional. String teks yang menjelaskan hal yang ingin Anda cegah agar tidak dibuat oleh model.
    • PERSON_SAFETY_SETTING: string. Opsional. Setelan keamanan yang mengontrol apakah pembuatan wajah atau orang diizinkan. Nilai:
      • allow_adult (nilai default): Izinkan pembuatan konten dewasa saja.
      • disallow: Tidak mengizinkan penyertaan orang atau wajah dalam gambar.
    • RESOLUTION: string. Opsional. Khusus model Veo 3. Resolusi video yang dihasilkan. Nilai: 720p (default) atau 1080p.
    • RESPONSE_COUNT: int. Opsional. Jumlah gambar output yang diminta. Nilai: 1-4.
    • SEED_NUMBER: uint32. Opsional. Angka untuk membuat video yang dihasilkan menjadi deterministik. Menentukan nomor seed dengan permintaan Anda tanpa mengubah parameter lain akan memandu model untuk menghasilkan video yang sama. Nilai: 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

Isi JSON permintaan:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT"
    }
  ],
  "parameters": {
    "storageUri": "OUTPUT_STORAGE_URI",
    "sampleCount": "RESPONSE_COUNT"
  }
}

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

Permintaan pembuatan video dari gambar

REST

Untuk menguji perintah teks menggunakan Vertex AI Veo API, kirim permintaan POST ke endpoint model penayang.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Google Cloud Project ID Anda.
  • MODEL_ID: ID model yang akan digunakan. Nilai yang tersedia:
    • veo-2.0-generate-001 (GA)
    • veo-3.0-generate-preview (Pratinjau)
  • TEXT_PROMPT: Perintah teks yang digunakan untuk memandu pembuatan video.
  • INPUT_IMAGE: String byte berenkode base64 yang merepresentasikan gambar input. Untuk memastikan kualitas, gambar input harus 720p atau lebih tinggi (1280 x 720 piksel) dan memiliki rasio aspek 16:9 atau 9:16. Gambar dengan rasio aspek atau ukuran lain dapat diubah ukurannya atau dipangkas di tengah selama proses upload.
  • MIME_TYPE: Jenis MIME gambar input. Hanya gambar dengan jenis MIME berikut yang didukung: image/jpeg atau image/png.
  • OUTPUT_STORAGE_URI: Opsional: Bucket Cloud Storage untuk menyimpan video output. Jika tidak diberikan, byte video 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.
  • DURATION: Durasi file video yang ingin Anda buat. Nilai bilangan bulat yang diterima adalah 5-8.
  • 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: string. Opsional. Menentukan rasio aspek video yang dihasilkan. Nilai: 16:9 (default, lanskap) atau 9:16 (potret).
    • NEGATIVE_PROMPT: string. Opsional. String teks yang menjelaskan hal yang ingin Anda cegah agar tidak dibuat oleh model.
    • PERSON_SAFETY_SETTING: string. Opsional. Setelan keamanan yang mengontrol apakah pembuatan wajah atau orang diizinkan. Nilai:
      • allow_adult (nilai default): Izinkan pembuatan konten dewasa saja.
      • disallow: Tidak mengizinkan penyertaan orang atau wajah dalam gambar.
    • RESOLUTION: string. Opsional. Khusus model Veo 3. Resolusi video yang dihasilkan. Nilai: 720p (default) atau 1080p.
    • RESPONSE_COUNT: int. Opsional. Jumlah gambar output yang diminta. Nilai: 1-4.
    • SEED_NUMBER: uint32. Opsional. Angka untuk membuat video yang dihasilkan menjadi deterministik. Menentukan nomor seed dengan permintaan Anda tanpa mengubah parameter lain akan memandu model untuk menghasilkan video yang sama. Nilai: 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

Isi JSON permintaan:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT",
      "image": {
        "bytesBase64Encoded": "INPUT_IMAGE",
        "mimeType": "MIME_TYPE"
      }
    }
  ],
  "parameters": {
    "storageUri": "OUTPUT_STORAGE_URI",
    "sampleCount": RESPONSE_COUNT
  }
}

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

Melakukan polling status operasi yang berjalan lama untuk pembuatan video

Periksa status operasi yang berjalan lama untuk pembuatan video.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Google Cloud Project ID 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

Isi JSON permintaan:

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

Isi respons (permintaan pembuatan video)

Mengirim permintaan text-to-video atau image-to-video akan menampilkan respons berikut:

{
  "name": string
}
Elemen respons Deskripsi
name Nama operasi lengkap dari operasi yang berjalan lama yang dimulai setelah permintaan pembuatan video dikirim.

Contoh respons (permintaan pembuatan video)

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

Isi respons (polling operasi yang berjalan lama)

Polling status operasi yang berjalan lama untuk pembuatan video asli akan menampilkan respons yang mirip dengan berikut ini:

{
   "name": string,
   "done": boolean,
   "response":{
      "@type":"type.googleapis.com/cloud.ai.large_models.vision.GenerateVideoResponse",
      "raiMediaFilteredCount": integer,
      "videos":[
         {
           "gcsUri": string,
           "mimeType": string
         },
         {
           "gcsUri": string,
           "mimeType": string
         },
         {
           "gcsUri": string,
           "mimeType": string
         },
         {
           "gcsUri": string,
           "mimeType": string
         },
      ]
   }
}
Elemen respons Deskripsi
bytesBase64Encoded String berenkode byte Base64 yang merepresentasikan objek video.
done Nilai boolean yang menunjukkan apakah operasi telah selesai.
encoding Jenis encoding video.
gcsUri URI Cloud Storage video yang dihasilkan.
name Nama operasi lengkap dari operasi yang berjalan lama yang dimulai setelah permintaan pembuatan video dikirim.
raiMediaFilteredCount Menampilkan jumlah video yang difilter oleh Veo karena kebijakan AI yang bertanggung jawab. Jika tidak ada video yang difilter, jumlah yang ditampilkan adalah 0.
raiMediaFilteredReasons Mencantumkan alasan video yang difilter oleh Veo karena kebijakan AI yang bertanggung jawab. Untuk mengetahui informasi selengkapnya, lihat Kategori kode filter keamanan.
response Isi respons operasi yang berjalan lama.
video Video yang dihasilkan.

Contoh respons (polling operasi yang berjalan lama)

{
   "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/OPERATION_ID",
   "done":true,
   "response":{
      "@type":"type.googleapis.com/cloud.ai.large_models.vision.GenerateVideoResponse",
      "raiMediaFilteredCount": 0,
      "videos":[
        {
          "gcsUri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_0.mp4",
          "mimeType":"video/mp4"
        },
        {
          "gcsUri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_1.mp4",
          "mimeType":"video/mp4"
        },
        {
          "gcsUri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_2.mp4",
          "mimeType":"video/mp4"
        },
        {
          "gcsUri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_3.mp4",
          "mimeType":"video/mp4"
        }
      ]
   }
}

Informasi selengkapnya

Langkah berikutnya