Membuat video dengan Veo di Vertex AI dari perintah teks

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

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 teks

    Contoh berikut menunjukkan cara menggunakan perintah teks untuk membuat video:

    Konsol

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

      Media Studio

    2. Klik Veo. Halaman Veo Media Studio akan ditampilkan.

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

      • Model: pilih model dari opsi yang tersedia.

        Untuk mengetahui informasi selengkapnya tentang model yang tersedia, lihat Model Veo.

      • Jumlah hasil: sesuaikan penggeser atau masukkan nilai. Nilai maksimum bergantung pada model yang Anda pilih.

      • Durasi video: pilih durasi antara 5 detik dan 8 detik.

      • 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. Dengan memberikan nilai seed, Anda akan mendapatkan output yang sama dengan perintah teks yang sama.

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

    7. Klik Buat.

    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"
        • "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: 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
        • Model Veo 3: 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"
          }
        ],
        "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.

    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
    
    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-001",
        prompt="a cat reading a book",
        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

    Langkah berikutnya