Membuat gambar deterministik

Coba pembuatan gambar (Vertex AI Studio)

Coba Imagen di Colab

Halaman ini menjelaskan cara menggunakan nomor seed 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 setiap kali Anda membuat gambar dengan Imagen, Anda akan menerima output yang dihasilkan 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

Untuk mengetahui informasi selengkapnya tentang Imagen API, lihat:

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

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 selengkap101} nya tentang parameter opsional, lihat Referensi Imagen API: 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. SynthID 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 memberikan gambar berkualitas lebih tinggi yang lebih mencerminkan maksud perintah asli. Menonaktifkan fitur ini dapat memengaruhi kualitas gambar dan kepatuhan 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: integer. Opsional. Hanya berlaku untuk file output JPEG. Tingkat detail yang dipertahankan model untuk gambar yang dibuat 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 pembuatan orang atau wajah yang diizinkan model. Nilai default bergantung pada model. Nilai yang tersedia:
      • allow_all: Mengizinkan pembuatan orang, termasuk anak-anak. Ini adalah nilai default untuk model pembuatan Imagen 4, imagen-3.0-capability-001, dan imagen-product-recontext-preview-06-30.
      • allow_adult: Hanya mengizinkan pembuatan orang dewasa, termasuk selebritas. Ini adalah nilai 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: Batas keamanan tertinggi, yang menghasilkan jumlah gambar yang difilter terbesar. 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 yang tidak pantas yang dihasilkan oleh Imagen. Nilai sebelumnya: block_few.
    • SEED_NUMBER: integer. 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 menetapkan "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 perintah, respons akan menyertakan kolom prompt tambahan dengan perintah yang ditingkatkan 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: integer. 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 menetapkan "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