Menyesuaikan gambar

Imagen API memungkinkan Anda membuat gambar berkualitas tinggi dalam hitungan detik, menggunakan perintah teks dan gambar referensi untuk memandu pembuatan subjek atau gaya.

Melihat kartu model Imagen untuk Pengeditan dan Penyesuaian

Model yang Didukung

Model Kode
Penyesuaian menggunakan gambar referensi (few-shot) imagen-3.0-capability-001

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

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

Contoh sintaksis

Sintaksis untuk menyesuaikan gambar dari perintah teks dan gambar referensi.

Sintaks

Sintaksis untuk menyesuaikan 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/imagen-3.0-capability-001:predict \
-d '{
    "instances": [
      {
        // Use [1] to refer to the reference images with referenceId=1
        // [2] to refer to the reference images with referenceId=2,
        // following the same format for all reference IDs that you provide.
        "prompt": "${TEXT_PROMPT}",
        "referenceImages": [
          // A list of at most 4 reference image objects.
          [...]
        ]
      }
    ],
    "parameters": {
        [...]
    }
}'

Contoh isi permintaan:

Permintaan ini ditujukan untuk penyesuaian orang dengan gambar kontrol jaring wajah dan tiga gambar referensi.

{
  "instances": [
    {
      "prompt": "Create an image about a man with short hair [1] in the pose of
       control image [2] to match the description: A pencil style sketch of a
       full-body portrait of a man with short hair [1] with hatch-cross drawing,
       hatch drawing of portrait with 6B and graphite pencils, white background,
       pencil drawing, high quality, pencil stroke, looking at camera, natural
       human eyes",
      "referenceImages": [
        {
          "referenceType": "REFERENCE_TYPE_CONTROL",
          "referenceId": 2,
          "referenceImage": {
            "bytesBase64Encoded": "${IMAGE_BYTES_1}"
          },
          "controlImageConfig": {
            "controlType": "CONTROL_TYPE_FACE_MESH",
            "enableControlImageComputation": true
          }
        },
        {
          "referenceType": "REFERENCE_TYPE_SUBJECT",
          "referenceId": 1,
          "referenceImage": {
            "bytesBase64Encoded": "${IMAGE_BYTES_2}"
          },
          "subjectImageConfig": {
            "subjectDescription": "a man with short hair",
            "subjectType": "SUBJECT_TYPE_PERSON"
          }
        },
        {
          "referenceType": "REFERENCE_TYPE_SUBJECT",
          "referenceId": 1,
          "referenceImage": {
            "bytesBase64Encoded": "${IMAGE_BYTES_3}"
          },
          "subjectImageConfig": {
            "subjectDescription": "a man with short hair",
            "subjectType": "SUBJECT_TYPE_PERSON"
          }
        },
        {
          "referenceType": "REFERENCE_TYPE_SUBJECT",
          "referenceId": 1,
          "referenceImage": {
            "bytesBase64Encoded": "${IMAGE_BYTES_4}"
          },
          "subjectImageConfig": {
            "subjectDescription": "a man with short hair",
            "subjectType": "SUBJECT_TYPE_PERSON"
          }
        }
      ]
    }
  ],
  "parameters": {
    "negativePrompt": "wrinkles, noise, Low quality, dirty, low res, multi face,
      rough texture, messy, messy background, color background, photo realistic,
      photo, super realistic, signature, autograph, sign, text, characters,
      alphabet, letter",
    "seed": 1,
    "language": "en",
    "sampleCount": 4
  }
}

Daftar parameter

Lihat contoh untuk mengetahui detail implementasi.

Menyesuaikan gambar

REST

Parameter
referenceType Enumerasi yang diperlukan:
  • REFERENCE_TYPE_RAW
    • Gambar referensi mentah diperlukan untuk kasus penggunaan pengeditan.
    • Gambar referensi mentah tidak diperlukan untuk kasus penggunaan lainnya.
    • Maksimal satu gambar referensi mentah ada dalam satu permintaan.
    • Gambar output memiliki ukuran yang sama dengan gambar input referensi mentah.
  • REFERENCE_TYPE_MASK
    • Gambar referensi mask diperlukan untuk kasus penggunaan pengeditan dengan mask.
    • Gambar referensi masker tidak diperlukan untuk kasus penggunaan lainnya.
    • Jika ada gambar referensi mentah, gambar mask harus berukuran sama dengan gambar referensi mentah.
    • Pengguna dapat memberikan maskernya sendiri, atau membiarkan Imagen menghitung masker untuknya dari gambar referensi yang diberikan.
    • Jika gambar referensi mask kosong dan maskMode tidak disetel ke MASK_MODE_USER_PROVIDED, mask dihitung berdasarkan gambar referensi mentah.
  • REFERENCE_TYPE_CONTROL
    • Jika gambar referensi mentah ada, gambar kontrol harus berukuran sama dengan gambar referensi mentah.
    • Jika gambar referensi kontrol kosong dan enableControlImageComputation disetel ke true, gambar kontrol dihitung berdasarkan gambar referensi mentah.
  • REFERENCE_TYPE_SUBJECT
    • Pengguna dapat memberikan beberapa gambar referensi dengan ID referensi yang sama. Misalnya, beberapa gambar untuk subjek yang sama dapat memiliki ID referensi yang sama. Tindakan ini berpotensi meningkatkan kualitas output.
  • REFERENCE_TYPE_STYLE
referenceId Wajib integer

ID referensi. Gunakan ID referensi ini dalam perintah. Misalnya, gunakan [1] untuk merujuk ke gambar referensi dengan referenceId=1, [2] untuk merujuk ke gambar referensi dengan referenceId=2.
referenceImage.bytesBase64Encoded Wajib string

String Base64 untuk gambar referensi yang dienkode.
maskImageConfig.maskMode Enumerasi opsional:
  • MASK_MODE_USER_PROVIDED, jika gambar referensi adalah gambar mask.
  • MASK_MODE_BACKGROUND, untuk membuat mask secara otomatis menggunakan segmentasi latar belakang.
  • MASK_MODE_FOREGROUND, untuk membuat mask secara otomatis menggunakan segmentasi latar depan.
  • MASK_MODE_SEMANTIC, untuk membuat mask secara otomatis menggunakan segmentasi semantik, dan class mask yang diberikan.

Ditentukan saat referenceType ditetapkan sebagai REFERENCE_TYPE_MASK.
maskImageConfig.dilation
Opsional float. Rentang: [0, 1]

Persentase lebar gambar untuk memperlebar mask ini.

Ditentukan saat referenceType ditetapkan sebagai REFERENCE_TYPE_MASK.
maskImageConfig.maskClasses
Opsional list[Integer].

Menyamarkan kelas untuk mode MASK_MODE_SEMANTIC.

Ditentukan saat referenceType ditetapkan sebagai REFERENCE_TYPE_MASK.
controlImageConfig.controlType
Enumerasi yang diperlukan:
  • CONTROL_TYPE_FACE_MESH untuk mesh wajah (penyesuaian orang).
  • CONTROL_TYPE_CANNY untuk tepi Canny.
  • CONTROL_TYPE_SCRIBBLE untuk mencoret-coret.

Ditentukan saat referenceType ditetapkan sebagai REFERENCE_TYPE_CONTROL.
controlImageConfig.enableControlImageComputation
Opsional bool.
Default: false.

  • Tetapkan ke false jika Anda memberikan gambar kontrol Anda sendiri.
  • Setel ke true jika Anda ingin Imagen menghitung gambar kontrol dari gambar referensi.

Ditentukan saat referenceType ditetapkan sebagai REFERENCE_TYPE_CONTROL.
language

Opsional: string (imagen-3.0-capability-001, imagen-3.0.generate-001, dan imagegeneration@006 saja)

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 akan 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)
  • es: Spanyol
  • hi: Hindi
  • ja: Jepang
  • ko: Korea
  • pt: Portugis
  • zh-TW: China (tradisional)
  • zh atau zh-CN: China (Aksara Sederhana)
subjectImageConfig.subjectDescription
Wajib string.

Deskripsi singkat subjek dalam gambar. Misalnya, seorang wanita dengan rambut cokelat pendek.

Ditentukan saat referenceType ditetapkan sebagai REFERENCE_TYPE_SUBJECT.
subjectImageConfig.subjectType
Enumerasi yang diperlukan:
  • SUBJECT_TYPE_PERSON: Jenis subjek orang.
  • SUBJECT_TYPE_ANIMAL: Jenis subjek hewan.
  • SUBJECT_TYPE_PRODUCT: Jenis subjek produk.
  • SUBJECT_TYPE_DEFAULT: Jenis subjek default.

Ditentukan saat referenceType ditetapkan sebagai REFERENCE_TYPE_SUBJECT.
styleImageConfig.styleDescription
Opsional string.
Deskripsi singkat untuk gaya.

Ditentukan saat referenceType ditetapkan sebagai REFERENCE_TYPE_STYLE.

Respons

Isi respons dari permintaan REST.

Parameter
predictions

Array objek VisionGenerativeModelResult, satu untuk setiap sampleCount yang diminta. Jika ada gambar yang difilter oleh AI yang bertanggung jawab, gambar tersebut tidak disertakan.

Objek hasil model generatif visi

Informasi tentang hasil model.

Parameter
bytesBase64Encoded

Gambar yang dihasilkan berenkode base64. Tidak ada jika gambar output tidak lulus filter AI yang bertanggung jawab.

mimeType

Jenis gambar yang dibuat. Tidak ada jika gambar output tidak lulus filter AI yang bertanggung jawab.

Contoh

Contoh berikut menunjukkan cara menggunakan model Imagen untuk menyesuaikan gambar.

Menyesuaikan gambar

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Google Cloud Project ID Anda.
  • 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 memandu gambar yang dihasilkan model. Untuk menggunakan Penyesuaian Imagen 3, sertakan referenceId dari gambar atau gambar referensi yang Anda berikan dalam format [$referenceId]. Contoh:
    • Perintah teks berikut ditujukan untuk permintaan yang memiliki dua gambar referensi dengan "referenceId": 1. Kedua gambar memiliki deskripsi opsional "subjectDescription": "man with short hair": Buat gambar tentang seorang pria dengan rambut pendek agar sesuai dengan deskripsi: Sketsa gaya pensil potret seluruh tubuh man with short hair [1] dengan gambar garis silang, gambar garis potret dengan pensil grafit dan 6B, latar belakang putih, gambar pensil, kualitas tinggi, goresan pensil, melihat ke kamera, mata manusia alami
  • "referenceId": ID gambar referensi, atau ID untuk serangkaian gambar referensi yang sesuai dengan subjek atau gaya yang sama. Dalam contoh ini, dua gambar referensi adalah orang yang sama, sehingga memiliki referenceId (1) yang sama.
  • BASE64_REFERENCE_IMAGE: Gambar referensi untuk memandu pembuatan gambar. Gambar harus ditentukan sebagai string byte berenkode base64.
  • SUBJECT_DESCRIPTION: Opsional. Deskripsi teks gambar referensi yang kemudian dapat Anda gunakan di kolom prompt. Contoh:
          "prompt": "a full-body portrait of a man with short hair [1] with hatch-cross
          drawing",
          [...],
          "subjectDescription": "man with short hair"
        
  • IMAGE_COUNT: Jumlah gambar yang dihasilkan. 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

Isi JSON permintaan:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT",
      "referenceImages": [
        {
          "referenceType": "REFERENCE_TYPE_SUBJECT",
          "referenceId": 1,
          "referenceImage": {
            "bytesBase64Encoded": "BASE64_REFERENCE_IMAGE"
          },
          "subjectImageConfig": {
            "subjectDescription": "SUBJECT_DESCRIPTION",
            "subjectType": "SUBJECT_TYPE_PERSON"
          }
        },
        {
          "referenceType": "REFERENCE_TYPE_SUBJECT",
          "referenceId": 1,
          "referenceImage": {
            "bytesBase64Encoded": "BASE64_REFERENCE_IMAGE"
          },
          "subjectImageConfig": {
            "subjectDescription": "SUBJECT_DESCRIPTION",
            "subjectType": "SUBJECT_TYPE_PERSON"
          }
        }
      ]
    }
  ],
  "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/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
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 burung
7 kucing
8 anjing
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 mem-build
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 tempat tidur
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 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 mobil
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