Halaman ini menjelaskan cara menyisipkan objek ke dalam gambar, sebuah proses yang juga dikenal sebagai inpainting. Imagen di Vertex AI memungkinkan Anda menentukan area mask untuk menyisipkan objek ke dalam gambar. Anda dapat menggunakan masker Anda sendiri, atau Anda dapat membiarkan Imagen membuat masker untuk Anda.
Contoh penyisipan konten
Dengan inpainting, Anda dapat menggunakan gambar dasar, mask gambar, dan perintah teks untuk menambahkan konten ke gambar yang ada.
Input
| Gambar dasar* yang akan diedit | Area mask yang ditentukan menggunakan alat di konsol Google Cloud | Perintah teks |
|---|---|---|
|
|
stroberi |
* Kredit gambar: Alex Lvrs di Unsplash.
Output setelah menentukan area mask di konsol Google Cloud
|
|
|
Melihat kartu model Imagen untuk Pengeditan dan Penyesuaian
Sebelum memulai
- 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.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enablepermission. Learn how to grant roles. -
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enablepermission. Learn how to grant roles. -
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.
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.
Instal Google Cloud CLI.
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
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 .
Menyisipkan dengan area mask yang ditentukan
Gunakan contoh berikut untuk mengirim permintaan inpainting menggunakan model Imagen 3.
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>Klik Upload, lalu pilih file yang akan diupload.
Klik Perbaiki.
Lakukan salah satu hal berikut:
Mengupload masker Anda sendiri:
Buat masker di komputer Anda.
Klik Upload mask, lalu pilih mask yang akan diupload.
Tentukan mask Anda: di toolbar pengeditan, gunakan alat mask (kotak, kuas, atau masked_transitions invert) untuk menentukan area yang akan ditambahi konten.
Opsional: Di panel Parameters, sesuaikan opsi berikut:
Model: model Imagen yang akan digunakan.
Jumlah hasil: jumlah hasil yang akan dibuat.
Perintah negatif: deskripsikan hal yang ingin Anda kecualikan dari gambar yang dibuat.
Pada kolom perintah, masukkan perintah untuk mengubah gambar.
Klik Generate.
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=us-central1 export GOOGLE_GENAI_USE_VERTEXAI=True
REST
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: Google Cloud Project ID Anda. -
TEXT_PROMPT: Opsional. Perintah teks untuk memandu gambar yang dihasilkan model. Untuk hasil terbaik, gunakan deskripsi area yang ditutupi dan hindari perintah satu kata. Misalnya, gunakan "corgi lucu" bukan "corgi". -
B64_BASE_IMAGE: Gambar yang sedang diedit yang dienkode base64 dan berukuran 10 MB atau kurang. Untuk mengetahui informasi selengkapnya tentang encoding base64, lihat Mengenkode dan mendekode file base64. -
B64_MASK_IMAGE: Gambar mask hitam putih berenkode base64 yang berukuran 10 MB atau kurang. -
MASK_DILATION: Opsional. Nilai float antara 0 dan 1, inklusif, yang merepresentasikan persentase lebar gambar untuk memperbesar mask. Menggunakandilationmembantu mengimbangi mask yang tidak presisi. Sebaiknya tetapkan nilai0.01. -
EDIT_STEPS: Opsional. Bilangan bulat yang mewakili jumlah langkah pengambilan sampel. Nilai yang lebih tinggi menawarkan kualitas gambar yang lebih baik, sedangkan nilai yang lebih rendah menawarkan latensi yang lebih baik.Sebaiknya coba
35langkah untuk memulai. Jika kualitas tidak memenuhi persyaratan Anda, sebaiknya naikkan nilai ke batas atas75. -
SAMPLE_COUNT: Opsional. Bilangan bulat yang menjelaskan jumlah gambar yang akan dibuat. Rentang nilai yang diterima adalah1-4. Nilai defaultnya adalah4.
Metode HTTP dan URL:
POST https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-3.0-capability-001:predict
Meminta isi JSON:
{ "instances": [ { "prompt": "TEXT_PROMPT", "referenceImages": [ { "referenceType": "REFERENCE_TYPE_RAW", "referenceId": 1, "referenceImage": { "bytesBase64Encoded": "B64_BASE_IMAGE" } }, { "referenceType": "REFERENCE_TYPE_MASK", "referenceImage": { "bytesBase64Encoded": "B64_MASK_IMAGE" }, "maskImageConfig": { "maskMode": "MASK_MODE_USER_PROVIDED", "dilation": MASK_DILATION } } ] } ], "parameters": { "editConfig": { "baseSteps": EDIT_STEPS }, "editMode": "EDIT_MODE_INPAINT_INSERTION", "sampleCount": SAMPLE_COUNT } }Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
Contoh respons berikut adalah untuk permintaan dengancurl
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/imagen-3.0-capability-001: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/imagen-3.0-capability-001:predict" | Select-Object -Expand Content"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" } ] }Menyisipkan dengan deteksi masker otomatis
Gunakan contoh berikut untuk menentukan inpainting guna menyisipkan konten. Dalam contoh ini, Anda menentukan gambar dasar dan perintah teks. Imagen secara otomatis mendeteksi dan membuat area mask untuk mengubah gambar dasar.
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>Klik Upload, lalu pilih file yang akan diupload.
Klik Perbaiki.
Di toolbar pengeditan, klik background_replaceEkstrak mask.
Pilih salah satu opsi ekstraksi mask:
Elemen latar belakang: mendeteksi elemen latar belakang dan membuat mask di sekitarnya.
Elemen latar depan: mendeteksi objek latar depan dan membuat mask di sekitarnya.
background_replace Orang: mendeteksi orang dan membuat mask di sekelilingnya.
Opsional: Di panel Parameters, sesuaikan opsi berikut:
Model: model Imagen yang akan digunakan.
Jumlah hasil: jumlah hasil yang akan dibuat.
Perintah negatif: jelaskan apa yang ingin Anda kecualikan dari gambar yang dibuat.
Pada kolom perintah, masukkan perintah untuk mengubah gambar.
Klik sendGenerate.
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=us-central1 export GOOGLE_GENAI_USE_VERTEXAI=True
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda. Google Cloud
- LOCATION: Region project Anda. Misalnya,
us-central1,europe-west2, atauasia-northeast3. Untuk mengetahui daftar region yang tersedia, lihat Lokasi AI Generatif di Vertex AI. - TEXT_PROMPT: Perintah teks memandu gambar yang dihasilkan model. Saat Anda menggunakan perintah untuk penyisipan inpainting, gunakan deskripsi area yang diberi mask untuk mendapatkan hasil terbaik. Hindari perintah satu kata. Misalnya, gunakan "corgi lucu" bukan "corgi".
- B64_BASE_IMAGE: Gambar dasar yang akan diedit atau di-upscale. Gambar harus ditentukan sebagai string byte berenkode base64. Batas ukuran: 10 MB.
- MASK_MODE - String yang menetapkan jenis pembuatan masker otomatis yang digunakan model.
Nilai yang tersedia:
MASK_MODE_BACKGROUND: Membuat mask secara otomatis menggunakan segmentasi latar belakang.MASK_MODE_FOREGROUND: Membuat mask secara otomatis menggunakan segmentasi latar depan.MASK_MODE_SEMANTIC: Secara otomatis membuat mask menggunakan segmentasi semantik berdasarkan segmentasi kelas yang Anda tentukan dalam arraymaskImageConfig.maskClasses. Contoh:"maskImageConfig": { "maskMode": "MASK_MODE_SEMANTIC", "maskClasses": [175, 176], // bicycle, car "dilation": 0.01 }
- MASK_DILATION - float. Persentase lebar gambar untuk memperlebar masker ini. Nilai
0.01direkomendasikan untuk mengompensasi mask input yang tidak sempurna. - EDIT_STEPS - bilangan bulat. Jumlah langkah pengambilan sampel untuk model dasar. Untuk
penyisipan inpainting, mulai dari
35langkah. Tingkatkan langkah ke batas atas75jika kualitas tidak memenuhi persyaratan Anda. Meningkatkan langkah juga akan meningkatkan latensi permintaan. - EDIT_IMAGE_COUNT - Jumlah gambar yang diedit. Nilai bilangan bulat yang diterima: 1-4. Nilai default: 4.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict
Meminta isi JSON:
{ "instances": [ { "prompt": "TEXT_PROMPT", "referenceImages": [ { "referenceType": "REFERENCE_TYPE_RAW", "referenceId": 1, "referenceImage": { "bytesBase64Encoded": "B64_BASE_IMAGE" } }, { "referenceType": "REFERENCE_TYPE_MASK", "referenceId": 2, "maskImageConfig": { "maskMode": "MASK_MODE", "dilation": MASK_DILATION } } ] } ], "parameters": { "editConfig": { "baseSteps": EDIT_STEPS }, "editMode": "EDIT_MODE_INPAINT_INSERTION", "sampleCount": EDIT_IMAGE_COUNT } }Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
Contoh respons berikut adalah untuk permintaan dengancurl
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/imagen-3.0-capability-001: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/imagen-3.0-capability-001:predict" | Select-Object -Expand Content"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" } ] }Batasan
Bagian berikut menjelaskan batasan fitur hapus objek Imagen.
Piksel yang dimodifikasi
Model ini menghasilkan piksel pada resolusinya sendiri (misalnya, 1024x1024), yang mungkin berbeda dengan resolusi gambar input. Artinya, gambar yang dihasilkan mungkin memiliki perubahan kecil yang tidak ada pada gambar aslinya.
Untuk mempertahankan gambar dengan sempurna, sebaiknya gabungkan gambar yang dihasilkan dengan gambar input menggunakan mask. Biasanya, jika resolusi gambar input adalah 2K atau lebih tinggi, gambar yang dihasilkan dan gambar input harus digabungkan.
Batasan penyisipan
Meskipun objek yang disisipkan biasanya cocok dengan gaya gambar dasar, beberapa kata kunci mungkin menghasilkan hasil seperti kartun, bukan output fotorealistik.
Misalnya, perintah untuk "jerapah kuning" dapat menghasilkan gambar kartun karena jerapah secara alami berwarna cokelat dan krem. Membuat gambar fotorealistik dengan warna yang tidak alami bisa jadi sulit.
Langkah berikutnya
Baca artikel tentang Imagen dan produk AI Generatif lainnya di Vertex AI:
- Panduan developer untuk mulai menggunakan Imagen 3 di Vertex AI
- Model dan alat media generatif baru, dibuat dengan dan untuk kreator
- Baru di Gemini: Gem Kustom dan peningkatan pembuatan gambar dengan Imagen 3
- Google DeepMind: Imagen 3 - Model text-to-image berkualitas tertinggi kami
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-12-16 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-12-16 UTC."],[],[]]