Membuat video dengan Veo di Vertex AI dari gambar

Anda dapat menggunakan Veo di Vertex AI untuk membuat video baru dari perintah gambar dan teks. Antarmuka yang didukung mencakup konsol dan Vertex AI API. Google Cloud

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

Sebelum memulai

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  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 (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Enable the Vertex AI API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. 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 (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Enable the Vertex AI API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  6. Siapkan autentikasi untuk lingkungan Anda.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    REST

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

      Menginstal Google Cloud CLI. Setelah penginstalan, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:

      gcloud init

      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 .

    Membuat video dari gambar

    Contoh input Contoh output
    1. Gambar input1
      File PNG input gajah rajutan
    2. Perintah teks: gajah bergerak secara alami

    Video output gajah yang dibuat dengan merajut

    1 Gambar yang dibuat menggunakan Imagen di Vertex AI dari perintah: Gajah rajutan dengan pola rumit berjalan di sabana

    Anda dapat membuat video baru hanya menggunakan gambar sebagai input, atau gambar dan teks deskriptif sebagai input. Contoh berikut menunjukkan petunjuk dasar untuk membuat video dari gambar dan teks.

    Konsol

    1. Di Google Cloud konsol, buka halaman Vertex AI Studio > Media Studio.

      Media Studio

    2. Klik Video.

    3. Opsional: Di panel Setelan, konfigurasikan setelan berikut:

      • Model: pilih model dari opsi yang tersedia.

      • Rasio aspek: pilih 16:9 atau 9:16.

      • Jumlah hasil: sesuaikan penggeser atau masukkan nilai antara 1 dan 4.

      • Durasi video: pilih durasi video yang diinginkan dari menu.

      • Direktori output: klik Jelajahi untuk membuat atau memilih bucket Cloud Storage untuk menyimpan file output.

    4. Opsional: Di bagian Safety, pilih salah satu setelan Pembuatan orang berikut:

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

      • Jangan izinkan: tidak membuat orang atau wajah.

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

    6. Di kotak Tulis perintah Anda, klik Upload.

    7. Pilih gambar lokal yang akan diupload, lalu klik Pilih.

    8. Di kotak Write your prompt, masukkan perintah teks yang menjelaskan video yang akan dibuat.

    9. Klik Buat.

    Python

    Instal

    pip install --upgrade google-genai

    Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.

    Tetapkan variabel lingkungan untuk menggunakan 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_VERTEXAI=True

    import time
    from google import genai
    from google.genai.types import GenerateVideosConfig, Image
    
    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.0-generate-preview",
        prompt="Extreme close-up of a cluster of vibrant wildflowers swaying gently in a sun-drenched meadow.",
        image=Image(
            gcs_uri="gs://cloud-samples-data/generative-ai/image/flowers.png",
            mime_type="image/png",
        ),
        config=GenerateVideosConfig(
            aspect_ratio="16:9",
            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

    Setelah Anda menyiapkan lingkungan, Anda dapat menggunakan REST untuk menguji perintah teks. Contoh berikut mengirim permintaan ke endpoint model penayang.

    Untuk mengetahui informasi selengkapnya tentang Veo API, lihat Veo API di Vertex AI.

    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: String yang merepresentasikan Google Cloud project ID Anda.
      • MODEL_ID: String yang merepresentasikan ID model yang akan digunakan. Berikut adalah nilai yang diterima:
        • 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 berenkode base64 yang merepresentasikan gambar input. Untuk kualitas terbaik, sebaiknya gunakan gambar input dengan resolusi 720p (1280 x 720 piksel) atau lebih tinggi, dan memiliki rasio aspek 16:9 atau 9:16. Gambar dengan rasio aspek atau ukuran lain dapat diubah ukurannya atau dipangkas di tengah saat gambar diupload.
      • MIME_TYPE: String yang merepresentasikan jenis MIME gambar input. Hanya gambar dengan jenis MIME berikut yang didukung:
        • "image/jpeg"
        • "image/png"
      • OUTPUT_STORAGE_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/".
      • RESPONSE_COUNT: Jumlah file video yang akan dibuat. Rentang nilai yang diterima adalah 1-4.
      • DURATION: Bilangan bulat yang merepresentasikan durasi file video yang dihasilkan. Berikut adalah nilai yang diterima untuk setiap model:
        • Model Veo 2: 5-8. Defaultnya adalah 8.
        • Model Veo 3: 4, 6, atau 8. Defaultnya adalah 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: Opsional: Nilai string yang menjelaskan rasio aspek video yang dihasilkan. 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 buat 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 gambar 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"

          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

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

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

      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.

    Langkah berikutnya