Buat gambar

Imagen API memungkinkan Anda membuat gambar berkualitas tinggi dalam hitungan detik, menggunakan perintah teks untuk memandu pembuatan. Anda juga dapat meningkatkan resolusi gambar menggunakan Imagen API.

Melihat kartu model Imagen untuk Pembuatan

Model yang Didukung

Model Kode
Pembuatan Gambar imagen-3.0-generate-002
imagen-3.0-generate-001
imagen-3.0-fast-generate-001
imagegeneration@006
imagegeneration@005
imagegeneration@002

Untuk mengetahui informasi selengkapnya tentang cara setiap model mendukung fitur, lihat Pembuatan versi model.

Contoh sintaksis

Sintaksis untuk membuat gambar dari perintah teks.

Sintaks

Sintaksis untuk membuat gambar.

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \

https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_VERSION}:predict \
-d '{
  "instances": [
    {
      "prompt": "..."
    }
  ],
  "parameters": {
    "sampleCount": ...
  }
}'

Python

generation_model = ImageGenerationModel.from_pretrained("imagen-3.0-generate-001")

response = generation_model.generate_images(
    prompt="...",
    negative_prompt="...",
    aspect_ratio=...,
)
response.images[0].show()

Daftar parameter

Lihat contoh untuk mengetahui detail penerapan.

Buat gambar

REST

Parameter
prompt

Wajib: string

Perintah teks untuk gambar.

Model imagen-3.0-generate-002 mendukung hingga 480 token.

Model imagen-3.0-generate-001 mendukung hingga 480 token.

Model imagen-3.0-fast-generate-001 mendukung hingga 480 token.

Model imagegeneration@006 mendukung hingga 128 token.

Model imagegeneration@005 mendukung hingga 128 token.

Model imagegeneration@002 mendukung hingga 64 token.

sampleCount

Wajib: int

Jumlah gambar yang akan dibuat. Nilai defaultnya adalah 4.

Model imagen-3.0-generate-002 mendukung nilai 1 hingga 4.

Model imagen-3.0-generate-001 mendukung nilai 1 hingga 4.

Model imagen-3.0-fast-generate-001 mendukung nilai 1 hingga 4.

Model imagegeneration@006 mendukung nilai 1 hingga 4.

Model imagegeneration@005 mendukung nilai 1 hingga 4.

Model imagegeneration@002 mendukung nilai 1 hingga 8.

seed

Opsional: Uint32

Seed acak untuk pembuatan gambar. Ini tidak tersedia jika addWatermark ditetapkan ke true.

enhancePrompt

Opsional: boolean

Parameter opsional untuk menggunakan fitur penulisan ulang perintah berbasis LLM guna memberikan gambar berkualitas lebih tinggi yang lebih mencerminkan intent perintah asli. Menonaktifkan fitur ini dapat memengaruhi kualitas gambar dan kepatuhan perintah.

imagen-3.0-generate-002 mendukung kolom ini. Nilai default: true.

imagen-3.0-generate-001 tidak mendukung kolom ini.

imagen-3.0-fast-generate-001 tidak mendukung kolom ini.

imagegeneration@006 tidak mendukung kolom ini.

imagegeneration@005 tidak mendukung kolom ini.

imagegeneration@002 tidak mendukung kolom ini.

negativePrompt

Opsional: string

Deskripsi tentang hal yang tidak disarankan dalam gambar yang dihasilkan.

imagen-3.0-generate-002 tidak mendukung kolom ini.

Model imagen-3.0-generate-001 mendukung hingga 480 token.

Model imagen-3.0-fast-generate-001 mendukung hingga 480 token.

Model imagegeneration@006 mendukung hingga 128 token.

Model imagegeneration@005 mendukung hingga 128 token.

Model imagegeneration@002 mendukung hingga 64 token.

aspectRatio

Opsional: string

Rasio aspek untuk gambar. Nilai defaultnya adalah "1:1".

Model imagen-3.0-generate-002 mendukung "1:1", "9:16", "16:9", "3:4", atau "4:3".

Model imagen-3.0-generate-001 mendukung "1:1", "9:16", "16:9", "3:4", atau "4:3".

Model imagen-3.0-fast-generate-001 mendukung "1:1", "9:16", "16:9", "3:4", atau "4:3".

Model imagegeneration@006 mendukung "1:1", "9:16", "16:9", "3:4", atau "4:3".

Model imagegeneration@005 mendukung "1:1" atau "9:16".

Model imagegeneration@002 mendukung "1:1".

outputOptions

Opsional: outputOptions

Menjelaskan format gambar output dalam objek outputOptions.

sampleImageStyle

Opsional: string (khusus imagegeneration@002)

Menjelaskan gaya untuk gambar yang dihasilkan. Nilai berikut didukung:

  • "photograph"
  • "digital_art"
  • "landscape"
  • "sketch"
  • "watercolor"
  • "cyberpunk"
  • "pop_art"
personGeneration

Opsional: string (khusus imagen-3.0-generate-002, imagen-3.0-generate-001, imagen-3.0-fast-generate-001, dan imagegeneration@006)

Mengizinkan pembuatan orang berdasarkan model. Nilai berikut didukung:

  • "dont_allow": Tidak mengizinkan penyertaan orang atau wajah dalam gambar.
  • "allow_adult": Hanya mengizinkan pembuatan orang dewasa.
  • "allow_all": Mengizinkan pembuatan orang dari segala usia.

Nilai defaultnya adalah "allow_adult".

safetySetting

Opsional: string (khusus imagen-3.0-generate-002, imagen-3.0-generate-001, imagen-3.0-fast-generate-001, dan imagegeneration@006)

Menambahkan tingkat filter ke pemfilteran keamanan. Nilai berikut didukung:

  • "block_low_and_above": Tingkat pemfilteran terkuat, pemblokiran paling ketat. Nilai tidak digunakan lagi: "block_most".
  • "block_medium_and_above": Memblokir beberapa perintah dan respons yang bermasalah. Nilai tidak digunakan lagi: "block_some".
  • "block_only_high": Mengurangi jumlah permintaan yang diblokir karena filter keamanan. Dapat meningkatkan konten yang tidak pantas yang dihasilkan oleh Imagen. Nilai tidak digunakan lagi: "block_few".
  • "block_none": Memblokir sangat sedikit perintah dan respons yang bermasalah. Akses ke fitur ini dibatasi. Nilai kolom sebelumnya: "block_fewest".

Nilai defaultnya adalah "block_medium_and_above".

addWatermark

Opsional: bool

Menambahkan watermark tak terlihat ke gambar yang dihasilkan. Nilai defaultnya adalah false untuk model imagegeneration@002 dan imagegeneration@005, serta true untuk model imagen-3.0-generate-002, imagen-3.0-generate-001, imagen-3.0-fast-generate-001, imagegeneration@006, dan imagegeneration@006.

storageUri

Opsional: string

URI Cloud Storage untuk menyimpan gambar yang dihasilkan.

Objek opsi output

Objek outputOptions menjelaskan output gambar.

Parameter
outputOptions.mimeType

Opsional: string

Format gambar yang akan digunakan untuk menyimpan output. Nilai berikut didukung:

  • "image/png": Menyimpan sebagai gambar PNG
  • "image/jpeg": Simpan sebagai gambar JPEG

Nilai defaultnya adalah "image/png".

outputOptions.compressionQuality

Opsional: int

Tingkat kompresi jika jenis output adalah "image/jpeg". Nilai yang diterima adalah 0 hingga 100. Nilai defaultnya adalah 75.

Respons

Isi respons dari permintaan REST.

Parameter
predictions

Array objek VisionGenerativeModelResult, satu untuk setiap sampleCount yang diminta. Jika ada gambar yang difilter oleh Responsible AI, gambar tersebut tidak akan disertakan, kecuali jika includeRaiReason ditetapkan ke true.

Objek hasil model generatif Vision

Informasi tentang hasil model.

Parameter
bytesBase64Encoded

Gambar yang dihasilkan dan dienkode base64. Tidak ada jika gambar output tidak lulus filter Responsible AI.

mimeType

Jenis gambar yang dihasilkan. Tidak ada jika gambar output tidak lulus filter Responsible AI.

raiFilteredReason

Alasan filter responsible AI. Hanya ditampilkan jika includeRaiReason diaktifkan dan gambar ini difilter keluar.

safetyAttributes.categories

Nama atribut keamanan. Hanya ditampilkan jika includeSafetyAttributes diaktifkan, dan gambar output lulus filter Responsible AI.

safetyAttributes.scores

Skor atribut keamanan. Hanya ditampilkan jika includeSafetyAttributes diaktifkan, dan gambar output lulus filter Responsible AI.

Python

Parameter
prompt

Wajib: string

Perintah teks untuk gambar.

Model imagen-3.0-generate-001 mendukung hingga 480 token.

Model imagen-3.0-fast-generate-001 mendukung hingga 480 token.

Model imagegeneration@006 mendukung hingga 128 token.

Model imagegeneration@005 mendukung hingga 128 token.

Model imagegeneration@002 mendukung hingga 64 token.

number_of_images

Wajib: int

Jumlah gambar yang akan dibuat. Nilai default adalah 1.

Model imagen-3.0-generate-001 mendukung nilai 1 hingga 8.

Model imagen-3.0-fast-generate-001 mendukung nilai 1 hingga 8.

Model imagegeneration@006 mendukung nilai 1 hingga 4.

Model imagegeneration@005 mendukung nilai 1 hingga 4.

Model imagegeneration@002 mendukung nilai 1 hingga 8.

seed

Opsional: int

Seed acak untuk pembuatan gambar. Ini tidak tersedia jika addWatermark ditetapkan ke true.

negative_prompt

Opsional: string

Deskripsi tentang hal yang tidak disarankan dalam gambar yang dihasilkan.

Model imagen-3.0-generate-001 mendukung hingga 480 token.

Model imagen-3.0-fast-generate-001 mendukung hingga 480 token.

Model imagegeneration@006 mendukung hingga 128 token.

Model imagegeneration@005 mendukung hingga 128 token.

Model imagegeneration@002 mendukung hingga 64 token.

aspect_ratio

Opsional: string

Rasio aspek untuk gambar. Nilai defaultnya adalah "1:1".

Model imagen-3.0-generate-001 mendukung "1:1", "9:16", "16:9", "3:4", atau "4:3".

Model imagen-3.0-fast-generate-001 mendukung "1:1", "9:16", "16:9", "3:4", atau "4:3".

Model imagegeneration@006 mendukung "1:1", "9:16", "16:9", "3:4", atau "4:3".

output_mime_type

Opsional: string (khusus imagen-3.0-generate-001, imagen-3.0-fast-generate-001, dan imagegeneration@006)

Format gambar yang akan digunakan untuk menyimpan output. Nilai berikut didukung:

  • "image/png": Menyimpan sebagai gambar PNG
  • "image/jpeg": Simpan sebagai gambar JPEG

Nilai defaultnya adalah "image/png".

compression_quality

Opsional: int

Tingkat kompresi jika jenis mime output adalah "image/jpeg". Nilai defaultnya adalah 75.

language

Opsional: string

Bahasa perintah teks untuk gambar. Nilai berikut didukung:

  • "en": Inggris
  • "hi": Hindi
  • "ja": Jepang
  • "ko": Korea
  • "auto": Deteksi bahasa otomatis

Nilai defaultnya adalah "auto".

output_gcs_uri

Opsional: string

URI Cloud Storage untuk menyimpan gambar yang dihasilkan.

add_watermark

Opsional: bool

Tambahkan watermark ke gambar yang dihasilkan. Nilai defaultnya adalah false untuk model imagegeneration@002 dan imagegeneration@005, serta true untuk model imagen-3.0-fast-generate-001, imagen-3.0-generate-001, dan imagegeneration@006.

safety_filter_level

Opsional: string

Menambahkan tingkat filter ke pemfilteran keamanan. Nilai berikut didukung:

  • "block_low_and_above": Tingkat pemfilteran terkuat, yang menghasilkan pemblokiran paling ketat. Nilai tidak digunakan lagi: "block_most".
  • "block_medium_and_above": Memblokir beberapa perintah dan respons yang bermasalah. Nilai tidak digunakan lagi: "block_some".
  • "block_only_high": Memblokir lebih sedikit perintah dan respons yang bermasalah. Nilai tidak digunakan lagi: "block_few".
  • "block_none": Memblokir sangat sedikit perintah dan respons yang bermasalah. Nilai tidak digunakan lagi: "block_fewest".

Nilai defaultnya adalah "block_medium_and_above".

person_generation

Opsional: string (khusus imagen-3.0-generate-001, imagen-3.0-fast-generate-001, dan imagegeneration@006)

Mengizinkan pembuatan orang berdasarkan model. Nilai berikut didukung:

  • "dont_allow": Memblokir pembuatan orang
  • "allow_adult": Membuat orang dewasa, tetapi tidak membuat anak-anak
  • "allow_all": Membuat orang dewasa dan anak-anak

Nilai defaultnya adalah "allow_adult".

Meningkatkan skala gambar

REST

Parameter
mode

Wajib: string

Harus ditetapkan ke "upscale" untuk permintaan penskalaan.

upscaleConfig

Wajib: UpscaleConfig

Objek UpscaleConfig.

outputOptions

Opsional: OutputOptions

Menjelaskan format gambar output dalam objek outputOptions.

storageUri

Opsional: string

URI Cloud Storage untuk tempat menyimpan gambar yang dihasilkan.

Meningkatkan kualitas objek konfigurasi

Parameter
upscaleConfig.upscaleFactor

Wajib: string

Faktor peningkatan kualitas. Nilai yang didukung adalah "x2" dan "x4".

Respons

Isi respons dari permintaan REST.

Parameter
predictions

Array objek VisionGenerativeModelResult, satu untuk setiap sampleCount yang diminta. Jika ada gambar yang difilter oleh Responsible AI, gambar tersebut tidak akan disertakan, kecuali jika includeRaiReason ditetapkan ke true.

Contoh

Contoh berikut menunjukkan cara menggunakan model Imagen untuk membuat gambar.

Buat gambar

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Google Cloud Project ID Anda.
  • MODEL_VERSION: Versi model imagegeneration yang akan digunakan. Nilai yang tersedia:
    • Gambar 3:
      • imagen-3.0-generate-002 (model terbaru)
      • imagen-3.0-generate-001
      • imagen-3.0-fast-generate-001 - Versi model latensi rendah.
    • Versi model default:
      • imagegeneration - Menggunakan versi model default v.006. Sebagai praktik terbaik, Anda harus selalu menentukan versi model, terutama di lingkungan produksi.

    Untuk mengetahui informasi selengkapnya tentang versi dan fitur model, lihat versi model.

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

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 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"
    }
  ]
}

Python

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.

Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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


import vertexai
from vertexai.preview.vision_models import ImageGenerationModel

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# output_file = "input-image.png"
# prompt = "" # The text prompt describing what you want to see.

vertexai.init(project=PROJECT_ID, location="us-central1")

model = ImageGenerationModel.from_pretrained("imagen-3.0-generate-001")

images = model.generate_images(
    prompt=prompt,
    # Optional parameters
    number_of_images=1,
    language="en",
    # You can't use a seed value and watermark at the same time.
    # add_watermark=False,
    # seed=100,
    aspect_ratio="1:1",
    safety_filter_level="block_some",
    person_generation="allow_adult",
)

images[0].save(location=output_file, include_generation_parameters=False)

# Optional. View the generated image in a notebook.
# images[0].show()

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

Meningkatkan skala gambar

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • 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.
  • PROJECT_ID: Google Cloud Project ID Anda.
  • B64_BASE_IMAGE: Gambar dasar yang akan diedit atau ditingkatkan resolusinya. Gambar harus ditentukan sebagai string byte berenkode base64. Batas ukuran: 10 MB.
  • IMAGE_SOURCE: Lokasi Cloud Storage gambar yang ingin Anda edit atau tingkatkan resolusinya. Contoh: gs://output-bucket/source-photos/photo.png.
  • UPSCALE_FACTOR: Opsional. Faktor yang akan digunakan untuk meningkatkan skala gambar. Jika tidak ditentukan, faktor peningkatan akan ditentukan dari sisi yang lebih panjang dari gambar input dan sampleImageSize. Nilai yang tersedia: x2 atau x4 .

Metode HTTP dan URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagegeneration@002:predict

Isi JSON permintaan:

{
  "instances": [
    {
      "prompt": "",
      "image": {
        // use one of the following to specify the image to upscale
        "bytesBase64Encoded": "B64_BASE_IMAGE"
        "gcsUri": "IMAGE_SOURCE"
        // end of base image input options
      },
    }
  ],
  "parameters": {
    "sampleCount": 1,
    "mode": "upscale",
    "upscaleConfig": {
      "upscaleFactor": "UPSCALE_FACTOR"
    }
  }
}

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/imagegeneration@002: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/imagegeneration@002:predict" | Select-Object -Expand Content

Anda akan melihat respons JSON yang mirip dengan berikut ini:

{
  "predictions": [
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "iVBOR..[base64-encoded-upscaled-image]...YII="
    }
  ]
}

Langkah selanjutnya