Membuat gambar deterministik

Mencoba pembuatan gambar (Vertex AI Studio)

Coba Imagen di Colab

Halaman ini menjelaskan cara menggunakan angka awal di Imagen di Vertex AI untuk membuat gambar deterministik.

Nomor seed adalah angka yang Anda tambahkan ke permintaan untuk membuat gambar yang dihasilkan non-deterministik menjadi deterministik. Deterministik berarti bahwa setiap kali Anda membuat gambar dengan Imagen, Anda akan menerima output yang sama setiap kali.

Misalnya, Anda dapat memberikan perintah, menetapkan jumlah hasil ke 1, dan menggunakan nomor seed untuk mendapatkan gambar yang sama setiap kali Anda menggunakan nilai input yang sama. Jika Anda mengirim permintaan yang sama dengan jumlah hasil yang ditetapkan ke 8, Anda akan mendapatkan delapan gambar yang sama.

Menggunakan seed untuk membuat gambar

Lakukan tindakan berikut:

REST

Nomor seed adalah kolom opsional dalam objek parameters dari isi permintaan JSON.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Google Cloud Project ID Anda.
  • MODEL_VERSION: Versi model Imagen yang akan digunakan. Untuk mengetahui informasi selengkapnya tentang model yang tersedia, lihat Model Imagen.

  • LOCATION: Region project Anda. Misalnya, us-central1, europe-west2, atau asia-northeast3. Untuk mengetahui daftar region yang tersedia, lihat Lokasi AI Generatif di Vertex AI.
  • TEXT_PROMPT: Perintah teks yang memandu gambar yang dihasilkan model. Kolom ini wajib diisi untuk pembuatan dan pengeditan.
  • IMAGE_COUNT: Jumlah gambar yang dihasilkan. Nilai bilangan bulat yang diterima: 1-8 (imagegeneration@002), 1-4 (semua versi model lainnya). Nilai default: 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. Gambar apa pun 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 ditetapkan 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 guna 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 keamanan: "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 orang atau pembuatan wajah yang diizinkan oleh model. Nilai yang tersedia:
      • allow_adult (default): Mengizinkan pembuatan gambar khusus dewasa, kecuali pembuatan gambar selebritas. Pembuatan gambar selebritas tidak diizinkan untuk setelan apa pun.
      • 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 dibuat 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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION:predict

Isi JSON permintaan:

{
  "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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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"
    }
  ]
}

  1. Ganti kode berikut:

    • 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.
{
  "instances": [
    ...
  ],
  "parameters": {
    "sampleCount": IMAGE_COUNT,
    "seed": SEED_NUMBER,
    // required for model version 006 and greater only when using a seed number
    "addWatermark": false
  }
}

Langkah berikutnya