Halaman ini menjelaskan cara menghapus objek dari gambar menggunakan area mask, sebuah proses yang juga dikenal sebagai inpainting. Anda dapat memberikan masker Anda sendiri atau membiarkan Imagen membuatnya untuk Anda.
Model berikut mendukung penghapusan objek dari gambar:
Contoh penghapusan konten
Contoh berikut menggunakan inpainting dan mask gambar untuk menghapus konten dari gambar yang ada:
Input
Gambar dasar* yang akan diedit |
Area mask yang ditentukan menggunakan alat di konsol Google Cloud |
Perintah teks |
|---|---|---|
|
|
Perintah: Hapus objek yang dipilih dari gambar |
* Kredit gambar: Inside Weather di Unsplash.
Output setelah menentukan area mask di konsol Google Cloud
|
|
|
Melihat kartu model Imagen untuk Pengeditan dan Penyesuaian
Sebelum memulai
- 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.
-
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.
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.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
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 .
-
Menghapus dengan area mask yang ditentukan
Gunakan contoh berikut untuk menentukan inpainting guna menghapus konten. Dalam contoh ini, Anda menentukan gambar dasar, perintah teks, dan area mask untuk mengubah gambar dasar.
Konsol
Di konsol Google Cloud , buka halaman Vertex AI > Vertex AI Studio .
Klik Buat media.
Klik Gambar.
Dari daftar Task, pilih Inpaint-remove.
Dari daftar Model, pilih model Imagen yang akan digunakan.
Di Gambar input, klik Tambahkan, lalu pilih gambar yang sedang Anda edit untuk diupload.
Di kotak Perintah, masukkan perintah yang menjelaskan cara mengedit gambar.
Lakukan salah satu hal berikut untuk menentukan mask:
- Mengupload mask Anda sendiri:
- Buat masker di komputer Anda.
- Klik upload Impor 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.
- Mengupload mask Anda sendiri:
Klik Run.
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
Untuk mengetahui informasi selengkapnya tentang Imagen API, lihat bagian berikut:- Metode:
endpoints.predict VisionGenerativeModelInstanceVisionGenerativeModelParamsVisionGenerativeModelResult
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. Saat endpoint API regional digunakan, region dari URL endpoint menentukan tempat permintaan diproses, danLOCATIONdi jalur resource ini diabaikan jika terjadi konflik. prompt: Untuk perluasan gambar, Anda dapat memberikan string kosong untuk membuat gambar yang diedit. Jika Anda memilih untuk memberikan perintah, gunakan deskripsi area yang ditutupi untuk mendapatkan hasil terbaik. Misalnya, "langit biru", bukan "masukkan langit biru".referenceType:ReferenceImageadalah gambar yang memberikan konteks tambahan untuk pengeditan gambar. Gambar referensi mentah RGB normal (REFERENCE_TYPE_RAW) diperlukan untuk kasus penggunaan pengeditan. Maksimal satu gambar referensi mentah dapat ada dalam satu permintaan. Gambar output memiliki tinggi dan lebar yang sama dengan gambar referensi mentah. Gambar referensi mask (REFERENCE_TYPE_MASK) diperlukan untuk kasus penggunaan pengeditan yang diberi mask. Jika ada gambar referensi mentah, gambar mask harus memiliki tinggi dan lebar yang sama dengan gambar referensi mentah. Jika gambar referensi mask kosong danmaskModetidak disetel keMASK_MODE_USER_PROVIDED, mask dihitung berdasarkan gambar referensi mentah.- B64_BASE_IMAGE: Gambar dasar yang akan diedit atau di-upscale. Gambar harus ditentukan sebagai string byte berenkode base64. Batas ukuran: 10 MB.
- B64_OUTPAINTING_MASK: Gambar hitam putih yang ingin Anda gunakan sebagai lapisan mask untuk mengedit gambar asli. Masker harus memiliki resolusi yang sama dengan gambar input. Gambar output akan memiliki resolusi yang sama dengan gambar input. Gambar mask ini harus ditentukan sebagai string byte berenkode base64. Batas ukuran: 10 MB.
- MASK_DILATION - float. Persentase lebar gambar untuk memperlebar masker ini. Nilai
0.03direkomendasikan untuk perluasan gambar. Menetapkan"dilation": 0.0dapat menghasilkan batas yang jelas di titik ekstensi, atau dapat menyebabkan efek batas putih. - EDIT_STEPS - bilangan bulat. Jumlah langkah pengambilan sampel untuk model dasar. Untuk
outpainting, mulai dari
35langkah. Tingkatkan langkah jika kualitasnya tidak memenuhi persyaratan Anda. - 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": "",
"referenceImages": [
{
"referenceType": "REFERENCE_TYPE_RAW",
"referenceId": 1,
"referenceImage": {
"bytesBase64Encoded": "B64_BASE_IMAGE"
}
},
{
"referenceType": "REFERENCE_TYPE_MASK",
"referenceId": 2,
"referenceImage": {
"bytesBase64Encoded": "B64_OUTPAINTING_MASK"
},
"maskImageConfig": {
"maskMode": "MASK_MODE_USER_PROVIDED",
"dilation": MASK_DILATION
}
}
]
}
],
"parameters": {
"editConfig": {
"baseSteps": EDIT_STEPS
},
"editMode": "EDIT_MODE_OUTPAINT",
"sampleCount": EDIT_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/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"
}
]
}
Menghapus dengan deteksi masker otomatis
Gunakan contoh berikut untuk menentukan inpainting guna menghapus konten. Dalam contoh ini, Anda menentukan gambar dasar dan perintah teks. Imagen secara otomatis mendeteksi dan membuat area mask untuk mengubah gambar dasar.
Konsol
Di konsol Google Cloud , buka halaman Vertex AI > Vertex AI Studio .
Klik Buat media.
Klik Gambar.
Dari daftar Task, pilih Inpaint-remove.
Dari daftar Model, pilih model Imagen yang akan digunakan.
Di Gambar input, klik Tambahkan, lalu pilih gambar yang sedang Anda edit untuk diupload.
Di kotak Perintah, masukkan perintah yang menjelaskan cara mengedit gambar.
Di toolbar pengeditan, klik background_replaceEkstrak mask.
Pilih salah satu opsi ekstraksi mask:
Elemen latar belakang: mendeteksi elemen latar belakang dan membuat masker di sekitarnya.
Elemen latar depan: mendeteksi objek latar depan dan membuat mask di sekitarnya.
background_replace Orang: mendeteksi orang dan membuat mask di sekelilingnya.
Klik Run.
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. Saat endpoint API regional digunakan, region dari URL endpoint menentukan tempat permintaan diproses, danLOCATIONdi jalur resource ini diabaikan jika terjadi konflik. prompt: Untuk hasil terbaik, hilangkan perintah dannegativePromptsaat Anda menggunakan inpainting untuk penghapusan.- 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: Otomatis membuat mask menggunakan segmentasi latar belakang. Gunakan setelan ini untuk mengubah konten latar belakang.MASK_MODE_FOREGROUND: Otomatis membuat mask menggunakan segmentasi latar depan. Gunakan setelan ini untuk mengubah konten latar depan, seperti menghapus objek latar depan ini (penghapusan menggunakan inpainting).MASK_MODE_SEMANTIC: Secara otomatis membuat mask menggunakan segmentasi semantik berdasarkan segmentasi kelas segmentation 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 penghapusan
inpainting, mulai dari
12langkah. 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": "",
"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_REMOVAL",
"sampleCount": EDIT_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/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
Piksel yang dihasilkan oleh model yang tidak ada dalam mask dihasilkan pada resolusi model (misalnya, 1024x1024) dan tidak dijamin identik dengan input. Hal ini dapat menyebabkan sedikit perubahan pada gambar yang dihasilkan.
Untuk mempertahankan kualitas gambar yang sempurna, sebaiknya gabungkan gambar yang dibuat dengan gambar input menggunakan mask. Pencampuran biasanya diperlukan jika resolusi gambar input adalah 2K atau lebih tinggi.
Batasan penghapusan
Objek kecil yang berdekatan dengan mask juga dapat dihapus. Untuk hasil terbaik, buat masker seakurat mungkin.
Menghapus area langit yang luas dalam gambar luar ruangan dapat menyebabkan artefak yang tidak diinginkan. Untuk hasil terbaik, sebaiknya berikan perintah.
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