Mengedit gambar

Dengan Imagen, Anda dapat mengedit gambar dalam hitungan detik, menggunakan perintah teks, mask, dan gambar yang ada untuk memandu pengeditan.

Melihat kartu model Imagen untuk Pengeditan dan Penyesuaian

Versi model yang didukung

Imagen API mendukung model berikut:

  • imagen-3.0-capability-001

Untuk mengetahui informasi selengkapnya tentang fitur yang didukung model, lihat Model Imagen.

Permintaan HTTP

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/imagen-3.0-capability-001:predict \

-d '{
  "instances": [
    {
      "referenceImages": [
        {
          "referenceType": "REFERENCE_TYPE_RAW",
          "referenceId": 1,
          "referenceImage": {
            "bytesBase64Encoded": string
          }
        },
        {
          "referenceType": "REFERENCE_TYPE_MASK",
          "referenceId": 2,
          "referenceImage": {
            "bytesBase64Encoded": string
          },
          "maskImageConfig": {
            "maskMode": "MASK_MODE_USER_PROVIDED"
          }
        }
      ],
      "prompt": string
    }
  ],
  "parameters": {
    "addWatermark": boolean,
    "baseSteps": integer,
    "editMode": string,
    "guidanceScale": integer,
    "includeRaiReason": boolean,
    "includeSafetyAttributes": boolean,
    "language": string,
    "negativePrompt": string,
    "outputOptions": {
      "mimeType": string,
      "compressionQuality": integer
    },
    "personGeneration": string,
    "safetySetting": string,
    "sampleCount": integer,
    "seed": integer,
    "storageUri": string
  }
}'

Instance

Instance
prompt

string

Opsional. Perintah teks untuk gambar. Jika prompt tidak ditentukan, model akan mengisi konten dari konteks gambar.

referenceImages

Daftar objek ReferenceImage.

Wajib. Untuk pengeditan mask, tepat dua gambar referensi harus ditentukan, satu dengan REFERENCE_TYPE_RAW, dan satu dengan REFERENCE_TYPE_MASK.

Objek referenceImages

Objek referenceImages menjelaskan aset gambar yang akan diedit oleh Imagen.

Parameter
referenceType

string

Wajib. Jenis gambar referensi. Salah satu dari berikut ini:

  • REFERENCE_TYPE_RAW: Gambar dasar yang akan diedit.
  • REFERENCE_TYPE_MASK: Gambar mask, yang nilai bukan nolnya menunjukkan tempat untuk mengedit gambar dasar.
referenceId

integer

Wajib. ID unik untuk gambar referensi. Tidak digunakan untuk pengeditan yang ditutup-tutupi.

referenceImage.bytesBase64Encoded

string

Wajib. Byte gambar berenkode Base64. Menerima file PNG, JPEG, GIF, dan BMP. Ukuran maksimum adalah 20 MB setelah ditranskode ke PNG. Jika Anda memberikan gambar mask, dimensi gambar tersebut harus sama dengan gambar dasar.

maskImageConfig.maskMode

string

Wajib jika referenceType adalah REFERENCE_TYPE_MASK. Harus salah satu dari berikut ini

  • MASK_MODE_USER_PROVIDED: Gunakan mask dari referenceImage.bytesBase64Encoded.
  • MASK_MODE_BACKGROUND: Menggunakan mask yang dibuat otomatis dari segmentasi latar belakang.
  • MASK_MODE_FOREGROUND: Menggunakan mask yang dibuat otomatis dari segmentasi latar depan.
  • MASK_MODE_SEMANTIC: Menggunakan mask yang dibuat otomatis dari segmentasi semantik dengan class mask yang diberikan.
maskImageConfig.dilation

float

Opsional. Rentang: [0, 1]. Persentase lebar gambar untuk memperlebar (memperbesar) masker. Hal ini dapat membantu mengompensasi mask yang tidak presisi. Untuk hasil terbaik, kami merekomendasikan setelan maskImageConfig.maskMode berikut, kami merekomendasikan nilai yang tercantum:

  • EDIT_MODE_INPAINT_INSERTION: 0.01
  • EDIT_MODE_INPAINT_REMOVAL: 0.01
  • EDIT_MODE_BGSWAP: 0.0
  • EDIT_MODE_OUTPAINT: 0.01-0.03
maskImageConfig.maskClasses

list[integer]

Opsional. Class mask untuk mode MASK_MODE_SEMANTIC.

Parameter

Parameter
addWatermark

bool

Opsional. Menambahkan watermark tak terlihat ke gambar yang dihasilkan.

Nilai defaultnya adalah true.

baseSteps

integer

Opsional. Jumlah langkah pengambilan sampel. Nilai yang lebih tinggi memiliki kualitas gambar yang lebih baik, sedangkan nilai yang lebih rendah memiliki latensi yang lebih baik. Nilai defaultnya adalah 75.

Untuk area mask yang lebih kecil atau untuk mode penghapusan atau penyisipan, gunakan langkah 16 - 35 untuk mengurangi latensi sekaligus memberikan tingkat kualitas yang serupa.

editMode

string

Diperlukan untuk pengeditan mask.

Enum dengan salah satu nilai berikut:

  • EDIT_MODE_INPAINT_REMOVAL: Menghapus objek dan mengisi latar belakang gambar di area mask.
  • EDIT_MODE_INPAINT_INSERTION: Menambahkan objek dari prompt tertentu.
  • EDIT_MODE_BGSWAP: Menambahkan konten latar belakang di area masker, sambil mempertahankan konten objek di area yang tidak diberi masker. Berguna untuk pengeditan produk.
  • EDIT_MODE_OUTPAINT: Memperluas gambar ke area masker. Tidak seperti EDIT_MODE_BGSWAP, ini akan membuat penyelesaian objek untuk objek parsial di batas gambar.
guidanceScale

integer

Opsional. Mengontrol seberapa besar model mematuhi perintah teks. Nilai besar meningkatkan output dan keselarasan perintah, tetapi dapat mengurangi kualitas gambar.

Rentang yang diterima: 0 - 500

Default: 60 untuk mode penyisipan, 75 untuk remove, bgswap, outpaint.

includeRaiReason

boolean

Opsional. Apakah akan menyertakan alasan keamanan untuk gambar yang difilter dalam respons. Nilai defaultnya adalah false.

includeSafetyAttributes

boolean

Opsional. Apakah akan melaporkan skor keamanan setiap gambar dalam respons. Nilai defaultnya adalah false.

language

string

Opsional. Kode bahasa yang sesuai dengan bahasa perintah teks Anda. Nilai-nilai berikut didukung:

  • "auto": Deteksi otomatis. Jika Imagen mendeteksi bahasa yang didukung, perintah dan perintah negatif opsional akan diterjemahkan ke dalam bahasa Inggris. Jika bahasa yang terdeteksi tidak didukung, Imagen menggunakan teks input apa adanya, yang dapat menghasilkan output yang tidak terduga. Tidak ada kode error yang ditampilkan.
  • "en": Inggris (jika tidak ditentukan, nilai default)
  • "zh" atau "zh-CN": China (Aksara Sederhana)
  • "zh-TW": China (tradisional)
  • "hi": Hindi
  • "ja": Jepang
  • "ko": Korea
  • "pt": Portugis
  • "es": Spanyol

language hanya didukung oleh imagen-3.0-capability-001.

negativePrompt

string

Opsional. Deskripsi tentang hal yang harus dihindari dalam gambar yang dihasilkan.

outputOptions

outputOptions

Opsional. Mendeskripsikan format gambar output dalam objek outputOptions.

personGeneration

string

Opsional. Izinkan pembuatan gambar orang oleh model. Nilai berikut didukung:

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

Untuk pengeditan berbasis mask, personGeneration ditetapkan secara default ke allow_adult. Untuk pengeditan tanpa mask, personGeneration secara default adalah allow_adult.

sampleCount

integer

Opsional. Jumlah gambar yang akan dibuat. Nilai defaultnya adalah 4.

seed

Uint32

Opsional. Seed acak untuk pembuatan gambar. Opsi ini tidak tersedia jika addWatermark ditetapkan ke true.

safetySetting

string

Opsional. Menambahkan tingkat filter ke pemfilteran keamanan. Nilai berikut didukung:

  • "block_low_and_above": Tingkat pemfilteran terkuat, pemblokiran paling ketat. Nilai yang tidak digunakan lagi: "block_most".
  • "block_medium_and_above": Memblokir beberapa perintah dan respons yang bermasalah. Nilai yang tidak digunakan lagi: "block_some".
  • "block_only_high": Mengurangi jumlah permintaan yang diblokir karena filter keamanan. Dapat meningkatkan konten tidak pantas yang dihasilkan oleh Imagen. Nilai yang 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".

safetySetting hanya didukung oleh imagen-3.0-capability-001.

storageUri

string

Opsional. URI Cloud Storage untuk menyimpan gambar yang dihasilkan.

Objek opsi output

Objek outputOptions menjelaskan output gambar.

Parameter
outputOptions.mimeType

string

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

integer

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

Permintaan sampel

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. Menggunakan dilation membantu mengimbangi mask yang tidak presisi. Sebaiknya tetapkan nilai 0.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 35 langkah untuk memulai. Jika kualitas tidak memenuhi persyaratan Anda, sebaiknya naikkan nilai ke batas atas 75.

  • SAMPLE_COUNT: Opsional. Bilangan bulat yang menjelaskan jumlah gambar yang akan dibuat. Rentang nilai yang diterima adalah 1-4. Nilai defaultnya adalah 4.

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:

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

ID Kelas

Gunakan ID class objek berikut untuk membuat masker gambar secara otomatis berdasarkan objek tertentu.

ID Kelas (class_id) Objek
0 ransel
1 payung
2 tas
3 seri
4 koper
5 case
6 bird
7 cat
8 dog
9 kuda
10 domba
11 sapi
12 gajah
13 beruang
14 zebra
15 jerapah
16 hewan (lainnya)
17 microwave
18 radiator
19 oven
20 pemanggang roti
21 tangki penyimpanan
22 sabuk konveyor
23 wastafel
24 kulkas
25 mesin cuci pengering
26 kipas
27 mesin pencuci piring
28 toilet
29 bak mandi
30 pancuran
31 tunnel
32 jembatan
33 dermaga
34 tenda
35 gedung
36 bilangan bulat terbesar
37 laptop
38 keyboard
39 tikus
40 remote
41 ponsel
42 televisi
43 floor
44 tahap
45 pisang
46 apel
47 sandwich
48 jeruk
49 brokoli
50 wortel
51 hot dog
52 piza
53 donat
54 kue
55 buah (lainnya)
56 makanan (lainnya)
57 kursi (lainnya)
58 kursi berlengan
59 kursi putar
60 tinja
61 slot
62 sofa
63 tempat sampah
64 tanaman dalam pot
65 nakas
66 bed
67 tabel
68 meja biliar
69 barel
70 meja
71 ottoman
72 lemari pakaian
73 crib
74 keranjang
75 laci
76 bookshelf
77 penghitung (lainnya)
78 meja kamar mandi
79 meja dapur
80 pintu
81 cahaya (lainnya)
82 lampu
83 sconce
84 lampu gantung
85 cermin
86 papan tulis virtual
87 rak
88 tangga
89 eskalator
90 lemari
91 perapian
92 kompor
93 mesin arcade
94 kerikil
95 platform
96 lapangan bermain
97 kereta api
98 jalan
99 salju
100 trotoar
101 landasan pacu
102 medan
103 buku
104 box
105 jam
106 vas
107 gunting
108 mainan (lainnya)
109 boneka beruang
110 pengering rambut
111 sikat gigi
112 melukis
113 poster
114 papan buletin
115 botol
116 cangkir
117 gelas anggur
118 pisau
119 garpu
120 sendok
121 mangkuk
122 baki
123 penghisap asap dapur
124 pelat
125 pengguna
126 pengendara (lainnya)
127 pesepeda
128 pengendara sepeda motor
129 makalah
130 lampu jalan
131 penghalang jalan
132 kotak surat
133 kamera cctv
134 kotak sambungan
135 rambu lalu lintas
136 lampu lalu lintas
137 hidran pemadam api
138 meteran parkir
139 bangku
140 rak sepeda
141 papan reklame
142 sky
143 tiang
144 pagar
145 pegangan tangga
146 pagar pembatas jalan
147 bukit gunung
148 rock
149 frisbee
150 ski
151 papan seluncur salju
152 bola olahraga
153 layang-layang
154 stik bisbol
155 sarung tangan bisbol
156 skateboard
157 papan selancar
158 raket tenis
159 net
160 base
161 patung
162 kolom
163 air mancur
164 awning
165 pakaian
166 banner
167 flag
168 selimut
169 tirai (lainnya)
170 tirai shower
171 bantal
172 handuk
173 keset karpet
174 vegetasi
175 sepeda
176 car
177 bajaj
178 sepeda motor
179 pesawat terbang
180 bus
181 kereta api
182 truk
183 cuplikan
184 kapal
185 objek beroda lambat
186 danau sungai
187 laut
188 air (lainnya)
189 kolam renang
190 Waterfall
191 dinding
192 jendela
193 tirai jendela

Langkah berikutnya