Halaman ini menjelaskan cara menggunakan outpainting untuk memperluas konten gambar ke area yang lebih besar atau area dengan dimensi yang berbeda.
Model berikut mendukung outpainting:
Contoh outpainting
Outpainting adalah metode pengeditan berbasis mask yang memperluas konten gambar dasar agar sesuai dengan kanvas mask yang lebih besar atau berukuran berbeda.
Sumber gambar: Kari Shea di Unsplash. |
|
|
Melihat kartu model Imagen for Editing and Customization
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, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). 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, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). 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.
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 .
Memperluas konten gambar
Gunakan contoh kode berikut untuk memperluas konten gambar yang sudah ada.
Konsol
Di konsol Google Cloud , buka halaman Vertex AI > Vertex AI Studio .
Klik Buat media.
Klik Gambar.
Dari daftar Task, pilih Outpaint.
Dari daftar Model, pilih model Imagen yang akan digunakan.
Di Gambar input, klik Tambahkan dan pilih gambar yang sedang Anda edit untuk diupload.
Di kotak Perintah, masukkan perintah yang menjelaskan cara mengedit gambar.
Di menu rasio aspek, pilih rasio aspek:
- crop_square Persegi
- crop_16_9 16:9
- crop_9_16 9:16
- crop_landscape 4:3
- crop_portrait 3:4
- fullscreen Kustom
Di toolbar pengeditan, pilih penempatan gambar Anda:
- Rata kiri:
- Penyejajaran tengah horizontal:
- Ratakan kanan:
- Sejajarkan atas:
- Perataan tengah vertikal:
- Sejajarkan bawah:
Klik Run.
REST
Untuk mengetahui informasi selengkapnya tentang Imagen API, lihat referensi berikut:- Metode:
endpoints.predict VisionGenerativeModelInstanceVisionGenerativeModelParamsVisionGenerativeModelResult
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Google Cloud Anda.
- 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, wilayah dari URL endpoint menentukan tempat permintaan diproses, danLOCATIONdi jalur resource ini diabaikan jika bertentangan. prompt: Untuk outpainting 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 dengan mask. Jika gambar referensi mentah ada, 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 mendilatasi masker ini. Nilai
0.03direkomendasikan untuk outpainting. 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"
}
]
}
Batasan
Jika gambar yang diperluas berukuran 200% atau lebih dari ukuran gambar asli, model mungkin menghasilkan detail yang terdistorsi. Sebagai praktik terbaik, sebaiknya tambahkan langkah pasca-pemrosesan untuk menjalankan alpha blending pada gambar yang diperluas.
Kode berikut adalah contoh pasca-pemrosesan:
parameters = {
"editConfig": {
"outpaintingConfig": {
"blendingMode": "alpha-blending",
"blendingFactor": 0.01,
},
},
}
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 pembuatan gambar yang lebih baik dengan Imagen 3
- Google DeepMind: Imagen 3 - Model text-to-image berkualitas tertinggi kami