Membuat video dari frame pertama dan terakhir

Anda dapat membuat video Veo di Vertex AI dengan menentukan frame pertama dan terakhir video. 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.

    Go to project selector

  3. Enable the Vertex AI API.

    Enable the API

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Enable the Vertex AI API.

    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, gunakan kredensial yang Anda berikan ke gcloud CLI.

      After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

    Membuat video dari frame pertama dan terakhir

    Contoh berikut menunjukkan cara menentukan frame pertama dan terakhir video Veo:

    Konsol

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

      Media Studio

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

    3. Di panel Setelan, konfigurasikan setelan berikut:

      • Model: pilih Veo 2 veo-2.0-generate-001.
      • Rasio aspek: pilih 16:9 atau 9:16.
      • Jumlah hasil: sesuaikan penggeser atau masukkan nilai antara 1 dan 4.
      • Durasi video: pilih durasi antara 5 detik dan 8 detik.
      • Direktori output: klik Jelajahi untuk membuat atau memilih bucket Cloud Storage untuk menyimpan file yang dihasilkan.
    4. Di kotak Tulis perintah Anda, klik Upload. Di dialog yang ditampilkan, pilih gambar untuk frame pertama.

      Tambahkan frame akhir (Opsional) ditampilkan di samping gambar yang diupload.

    5. Opsional: Tambahkan frame akhir dengan mengklik Tambahkan frame akhir. Pada dialog yang ditampilkan, pilih gambar untuk frame terakhir.

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

    7. 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-2.0-generate-001",
        prompt="a hand reaches in and places a glass of milk next to the plate of cookies",
        image=Image(
            gcs_uri="gs://cloud-samples-data/generative-ai/image/cookies.png",
            mime_type="image/png",
        ),
        config=GenerateVideosConfig(
            aspect_ratio="16:9",
            last_frame=Image(
                gcs_uri="gs://cloud-samples-data/generative-ai/image/cookies-milk.png",
                mime_type="image/png",
            ),
            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 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: Google Cloud Project ID Anda.
      • TEXT_PROMPT: Perintah teks yang digunakan untuk memandu pembuatan video.
      • PATH_TO_FIRST_FRAME_IMAGE: Jalur Cloud Storage ke gambar frame pertama.
      • IMAGE_MIME_TYPE: Jenis MIME gambar input. Hanya salah satu dari berikut ini:
        • image/jpeg
        • image/png
      • PATH_TO_LAST_FRAME_IMAGE: Jalur Cloud Storage ke gambar frame terakhir.
      • 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",
          "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 khusus dewasa.
          • disallow: Tidak mengizinkan penyertaan orang atau wajah dalam gambar.
        • 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/veo-2.0-generate-001:predictLongRunning

      Isi JSON permintaan:

      {
        "instances": [
          {
            "prompt": "TEXT_PROMPT",
             "image": {
               "gcsUri": "PATH_TO_FIRST_FRAME_IMAGE,
               "mimeType": "IMAGE_MIME_TYPE"
             },
             "lastFrame:" {
               "gcsUri": "PATH_TO_LAST_FRAME_IMAGE,
               "mimeType": "IMAGE_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/veo-2.0-generate-001: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/veo-2.0-generate-001: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/veo-2.0-generate-001/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. Nilai yang tersedia:
        • veo-2.0-generate-001 (GA)
        • veo-3.0-generate-preview (Pratinjau)
      • 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