Membuat gambar menggunakan perintah teks dengan Imagen di Vertex AI

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

Model berikut mendukung pembuatan gambar dari perintah teks:

Untuk mengetahui informasi selengkapnya tentang cara menulis perintah teks untuk pembuatan dan pengeditan gambar, lihat panduan permintaan.

Melihat kartu model Imagen untuk Pembuatan Gambar

Coba pembuatan gambar (Vertex AI Studio)

Coba Imagen di Colab

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  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 role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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

  5. 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 role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

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

  8. Siapkan autentikasi untuk lingkungan Anda.

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

    Konsol

    Saat menggunakan konsol Google Cloud untuk mengakses layanan Google Cloud 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. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

    3. Jika Anda menggunakan shell lokal, buat kredensial autentikasi lokal untuk akun pengguna Anda:

      gcloud auth application-default login

      Anda tidak perlu melakukan langkah ini jika menggunakan Cloud Shell.

      Jika error autentikasi ditampilkan, dan Anda menggunakan penyedia identitas (IdP) eksternal, konfirmasi bahwa Anda telah login ke gcloud CLI dengan identitas gabungan Anda.

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

    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.

      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 gambar dengan teks

Anda dapat membuat gambar baru menggunakan teks deskriptif sebagai input. Contoh berikut menunjukkan petunjuk dasar untuk membuat gambar.

Konsol

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

<a href="https://console.cloud.google.com/vertex-ai/studio/media/generate;tab=image" class="button button-primary"
target="console" track-name="consoleLink" track-type="task">Go to Media
Studio</a>
  1. Klik Imagen. Halaman pembuatan gambar Imagen Media Studio akan ditampilkan.

  2. Opsional: Di panel Settings, konfigurasi setelan berikut:

    • Model: Pilih model dari opsi yang tersedia.

      Untuk mengetahui informasi selengkapnya tentang model yang tersedia, lihat Model Imagen

    • Rasio aspek: Pilih rasio aspek dari opsi yang tersedia.

    • Number of results: Sesuaikan penggeser atau masukkan nilai antara 1 dan 4.

    • Resolusi output: Pilih resolusi dari opsi yang tersedia.

  3. Opsional: Di bagian Advanced options, pilih Region untuk membuat gambar Anda.

  4. Di kotak Tulis perintah Anda, masukkan perintah teks yang mendeskripsikan gambar yang akan dibuat. Misalnya, ilustrasi cat air perahu kecil di atas air pada pagi hari.

    Untuk mengetahui informasi selengkapnya tentang cara menulis perintah yang efektif, lihat Panduan perintah dan atribut gambar.

  5. Klik Generate.

Watermark digital otomatis ditambahkan ke gambar yang dihasilkan. Anda tidak dapat menonaktifkan watermark digital untuk pembuatan gambar menggunakan konsol Google Cloud .

Anda dapat memilih gambar untuk dilihat di jendela Detail gambar. Gambar dengan watermark berisi badge Watermark digital.

Contoh gambar yang dibuat dengan watermark menggunakan teks Tampilan
Detail gambar dari gambar dengan watermark yang dibuat dengan Imagen 2 dari perintah: ilustrasi cat air dengan warna redup berisi perahu merah kecil di atas air pada pagi hari.

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

Dalam contoh ini, Anda memanggil metode generate_images pada ImageGenerationModel dan menyimpan gambar yang dihasilkan secara lokal. Kemudian, Anda dapat memilih menggunakan metode show() di notebook untuk menampilkan gambar yang dihasilkan. Untuk mengetahui informasi selengkapnya tentang versi dan fitur model, lihat Model Imagen.

from google import genai
from google.genai.types import GenerateImagesConfig

client = genai.Client()

# TODO(developer): Update and un-comment below line
# output_file = "output-image.png"

image = client.models.generate_images(
    model="imagen-4.0-generate-001",
    prompt="A dog reading a newspaper",
    config=GenerateImagesConfig(
        image_size="2K",
    ),
)

image.generated_images[0].image.save(output_file)

print(f"Created output image using {len(image.generated_images[0].image.image_bytes)} bytes")
# Example response:
# Created output image using 1234567 bytes

REST

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

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • REGION: Region tempat project Anda berada. Untuk mengetahui informasi selengkapnya tentang region yang didukung, lihat Lokasi AI Generatif di Vertex AI.
  • PROJECT_ID: Project ID Anda. Google Cloud
  • MODEL_VERSION: Versi model Imagen yang akan digunakan. Untuk mengetahui informasi selengkapnya tentang model yang tersedia, lihat Model Imagen.

  • TEXT_PROMPT: Perintah teks yang memandu gambar yang dihasilkan model. Kolom ini wajib diisi untuk pembuatan dan pengeditan.
  • IMAGE_COUNT: Jumlah gambar yang akan dibuat. Rentang nilai yang diterima adalah 1 hingga 4.
  • Parameter opsional tambahan

    Gunakan variabel opsional berikut bergantung pada kasus penggunaan Anda. Tambahkan beberapa atau semua parameter berikut dalam objek "parameters": {}. Daftar ini menampilkan parameter opsional umum dan tidak dimaksudkan untuk menjadi lengkap. Untuk mengetahui informasi selengkapnya tentang parameter opsional, lihat Referensi API Imagen: Membuat gambar.

    "parameters": {
      "sampleCount": IMAGE_COUNT,
      "addWatermark": ADD_WATERMARK,
      "aspectRatio": "ASPECT_RATIO",
      "enhancePrompt": ENABLE_PROMPT_REWRITING,
      "includeRaiReason": INCLUDE_RAI_REASON,
      "includeSafetyAttributes": INCLUDE_SAFETY_ATTRIBUTES,
      "outputOptions": {
        "mimeType": "MIME_TYPE",
        "compressionQuality": COMPRESSION_QUALITY
      },
      "personGeneration": "PERSON_SETTING",
      "safetySetting": "SAFETY_SETTING",
      "seed": SEED_NUMBER,
      "storageUri": "OUTPUT_STORAGE_URI"
    }
    
    • ADD_WATERMARK: boolean. Opsional. Apakah akan mengaktifkan watermark untuk gambar yang dihasilkan. Setiap gambar yang dihasilkan saat kolom disetel ke true berisi SynthID digital yang dapat Anda gunakan untuk memverifikasi gambar yang diberi watermark. Jika Anda menghapus kolom ini, nilai default true akan digunakan; Anda harus menetapkan nilai ke false untuk menonaktifkan fitur ini. Anda dapat menggunakan kolom seed untuk mendapatkan output deterministik hanya jika kolom ini disetel ke false.
    • ASPECT_RATIO: string. Opsional. Parameter mode pembuatan yang mengontrol rasio aspek. Nilai rasio yang didukung dan penggunaan yang dimaksudkan:
      • 1:1 (default, persegi)
      • 3:4 (Iklan, media sosial)
      • 4:3 (TV, fotografi)
      • 16:9 (lanskap)
      • 9:16 (potret)
    • ENABLE_PROMPT_REWRITING: boolean. Opsional. Parameter untuk menggunakan fitur penulisan ulang perintah berbasis LLM untuk menghasilkan gambar berkualitas lebih tinggi yang lebih mencerminkan maksud perintah asli. Menonaktifkan fitur ini dapat memengaruhi kualitas gambar dan kepatuhan terhadap perintah. Nilai default: true.
    • INCLUDE_RAI_REASON: boolean. Opsional. Apakah akan mengaktifkan kode alasan yang difilter Responsible AI dalam respons dengan input atau output yang diblokir. Nilai default: true.
    • INCLUDE_SAFETY_ATTRIBUTES: boolean. Opsional. Apakah akan mengaktifkan skor Responsible AI yang dibulatkan untuk daftar atribut keamanan dalam respons untuk input dan output yang tidak difilter. Kategori atribut keselamatan: "Death, Harm & Tragedy", "Firearms & Weapons", "Hate", "Health", "Illicit Drugs", "Politics", "Porn", "Religion & Belief", "Toxic", "Violence", "Vulgarity", "War & Conflict". Nilai default: false.
    • MIME_TYPE: string. Opsional. Jenis MIME konten gambar. Nilai yang tersedia:
      • image/jpeg
      • image/gif
      • image/png
      • image/webp
      • image/bmp
      • image/tiff
      • image/vnd.microsoft.icon
    • COMPRESSION_QUALITY: bilangan bulat. Opsional. Hanya berlaku untuk file output JPEG. Tingkat detail yang dipertahankan model untuk gambar yang dihasilkan dalam format file JPEG. Nilai: 0 hingga 100, dengan angka yang lebih tinggi berarti kompresi yang lebih besar. Default: 75.
    • PERSON_SETTING: string. Opsional. Setelan keamanan yang mengontrol jenis generasi wajah atau orang yang diizinkan oleh model. Nilai defaultnya bergantung pada model. Nilai yang tersedia:
      • allow_all: Izinkan pembuatan gambar orang, termasuk anak di bawah umur. Ini adalah nilai default untuk model pembuatan Imagen 4, imagen-3.0-capability-001, dan imagen-product-recontext-preview-06-30.
      • allow_adult: Mengizinkan pembuatan gambar orang dewasa saja, termasuk selebritas. Ini adalah setelan default untuk semua model lainnya.
      • dont_allow: Menonaktifkan penyertaan orang atau wajah dalam gambar yang dihasilkan.
    • SAFETY_SETTING: string. Opsional. Setelan yang mengontrol batas filter keamanan untuk gambar yang dihasilkan. Nilai yang tersedia:
      • block_low_and_above: Nilai minimum keamanan tertinggi, sehingga menghasilkan jumlah gambar yang dihasilkan paling banyak yang difilter. Nilai sebelumnya: block_most.
      • block_medium_and_above (default): Batas keamanan sedang yang menyeimbangkan pemfilteran untuk konten yang berpotensi berbahaya dan aman. Nilai sebelumnya: block_some.
      • block_only_high: Batas keamanan yang mengurangi jumlah permintaan yang diblokir karena filter keamanan. Setelan ini dapat meningkatkan konten tidak pantas yang dihasilkan oleh Imagen. Nilai sebelumnya: block_few.
    • SEED_NUMBER: bilangan bulat. Opsional. Bilangan bulat non-negatif yang Anda berikan untuk membuat gambar output menjadi deterministik. Memberikan nomor seed yang sama akan selalu menghasilkan gambar output yang sama. Jika model yang Anda gunakan mendukung watermark digital, Anda harus menyetel "addWatermark": false untuk menggunakan kolom ini. Nilai bilangan bulat yang diterima: 1 - 2147483647.
    • OUTPUT_STORAGE_URI: string. Opsional. Bucket Cloud Storage untuk menyimpan gambar output. Jika tidak diberikan, byte gambar berenkode base64 akan ditampilkan dalam respons. Contoh nilai: gs://image-bucket/output/.

Metode HTTP dan URL:

POST https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/MODEL_VERSION:predict

Meminta isi JSON:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT"
    }
  ],
  "parameters": {
    "sampleCount": IMAGE_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://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/MODEL_VERSION:predict"

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://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/MODEL_VERSION:predict" | Select-Object -Expand Content
Contoh respons berikut adalah untuk permintaan dengan "sampleCount": 2. Respons ini menampilkan dua objek prediksi, dengan byte gambar yang dihasilkan berenkode base64.
{
  "predictions": [
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    },
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    }
  ]
}

Jika Anda menggunakan model yang mendukung peningkatan kualitas perintah, respons akan menyertakan kolom prompt tambahan dengan perintah yang ditingkatkan kualitasnya yang digunakan untuk pembuatan:

{
  "predictions": [
    {
      "mimeType": "MIME_TYPE",
      "prompt": "ENHANCED_PROMPT_1",
      "bytesBase64Encoded": "BASE64_IMG_BYTES_1"
    },
    {
      "mimeType": "MIME_TYPE",
      "prompt": "ENHANCED_PROMPT_2",
      "bytesBase64Encoded": "BASE64_IMG_BYTES_2"
    }
  ]
}

Langkah berikutnya

Baca artikel tentang Imagen dan produk AI Generatif lainnya di Vertex AI: