編輯圖片

Imagen 可讓您使用文字提示、遮罩和現有圖片引導編輯,在幾秒內完成圖片編輯。

查看「Imagen for Editing and Customization」模型資訊卡

支援的模型版本

Imagen API 支援下列模型:

  • imagen-3.0-capability-001

如要進一步瞭解模型支援的功能,請參閱 Imagen 模型

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
  }
}'

執行個體

執行個體
prompt

string

(選用步驟) 圖片的文字提示。如果未指定 prompt,模型會根據圖片內容填入內容。

referenceImages

ReferenceImage 物件清單。

這是必要旗標,如要編輯遮罩,必須指定兩個參考圖片,一個包含 REFERENCE_TYPE_RAW,另一個包含 REFERENCE_TYPE_MASK

referenceImages 個物件

referenceImages 物件會說明 Imagen 要編輯的圖片素材資源。

參數
referenceType

string

這是必要旗標,參考圖片的類型。可使用下列其中一個值:

  • REFERENCE_TYPE_RAW:要編輯的基礎圖片。
  • REFERENCE_TYPE_MASK:遮罩圖片,非零值表示要編輯基礎圖片的位置。
referenceId

integer

這是必要旗標,參考圖片的專屬 ID。不會用於遮蓋編輯。

referenceImage.bytesBase64Encoded

string

這是必要旗標,Base64 編碼的圖片位元組。接受 PNG、JPEG、GIF 和 BMP 檔案。轉碼為 PNG 後,大小上限為 20 MB。 如果提供遮罩圖片,尺寸必須與基本圖片相同。

maskImageConfig.maskMode

string

如果 referenceTypeREFERENCE_TYPE_MASK,則為必要屬性。必須是下列其中一個項目:

  • MASK_MODE_USER_PROVIDED:使用 referenceImage.bytesBase64Encoded 中的遮罩。
  • MASK_MODE_BACKGROUND:使用背景分割功能自動生成的遮罩。
  • MASK_MODE_FOREGROUND:使用前景區隔自動生成的遮罩。
  • MASK_MODE_SEMANTIC:使用語意分割自動生成的遮罩,並提供遮罩類別。
maskImageConfig.dilation

float

(選用步驟) 範圍:[0, 1]。遮罩擴張 (成長) 的圖片寬度百分比。這有助於補償不精確的遮罩。 為獲得最佳結果,建議您採用下列 maskImageConfig.maskMode 設定,並使用所列值:

  • EDIT_MODE_INPAINT_INSERTION0.01
  • EDIT_MODE_INPAINT_REMOVAL0.01
  • EDIT_MODE_BGSWAP0.0
  • EDIT_MODE_OUTPAINT0.01-0.03
maskImageConfig.maskClasses

list[integer]

(選用步驟) MASK_MODE_SEMANTIC 模式的遮罩類別

參數

參數
addWatermark

bool

(選用步驟) 在生成的圖片中加入隱形浮水印。

預設值為 true

baseSteps

integer

(選用步驟) 取樣步數。值越高,影像品質越好;值越低,延遲時間越短。預設值為 75

如果是較小的遮罩區域,或是要使用移除或插入模式,請使用 16 - 35 步驟,在延遲時間縮短的同時,維持類似的品質。

editMode

string

編輯遮罩時必須提供。

列舉,值為下列其中之一:

  • EDIT_MODE_INPAINT_REMOVAL:移除物件並填滿遮罩區域的圖片背景。
  • EDIT_MODE_INPAINT_INSERTION:根據指定提示新增物件。
  • EDIT_MODE_BGSWAP:在遮罩區域中新增背景內容,同時保留未遮罩區域中的物件內容。方便編輯產品。
  • EDIT_MODE_OUTPAINT:將圖片擴展至遮罩區域。與 EDIT_MODE_BGSWAP 不同,這項功能會在圖片邊界產生部分物件的物件完成結果。
guidanceScale

integer

(選用步驟) 控制模型遵循文字提示的程度。 數值越大,輸出結果越符合提示,但可能會影響圖片品質。

可接受的範圍:0 - 500

預設值:插入模式為 60,移除、背景更換、外繪模式為 75

includeRaiReason

boolean

(選用步驟) 是否要在回覆中加入遭篩除圖片的安全理由。預設值為 false

includeSafetyAttributes

boolean

(選用步驟) 是否要在回應中回報每張圖片的安全分數。預設值為 false

language

string

(選用步驟) 與文字提示語言對應的語言代碼。支援的值如下:

  • "auto":自動偵測。如果 Imagen 偵測到支援的語言,系統會將提示和選填的負面提示翻譯成英文。如果系統偵測到的語言不支援,Imagen 會直接使用輸入文字,這可能會導致輸出結果不符預期。不會傳回任何錯誤代碼。
  • "en":英文 (如省略,則為預設值)
  • "zh""zh-CN":中文 (簡體)
  • "zh-TW":中文 (繁體)
  • "hi":北印度文
  • "ja":日文
  • "ko":韓文
  • "pt":葡萄牙文
  • "es":西班牙文

language 僅支援 imagen-3.0-capability-001

negativePrompt

string

(選用步驟) 描述要避免在生成圖片中出現的內容。

outputOptions

outputOptions

(選用步驟) 在 outputOptions 物件中說明輸出圖片格式。

personGeneration

string

(選用步驟) 允許模型生成人物。支援的值如下:

  • "dont_allow":禁止在圖片中加入人物或臉部。
  • "allow_adult":只允許生成成人內容。
  • "allow_all":允許生成所有年齡層的人物。

以遮罩為基礎的編輯作業 personGeneration 預設為 allow_adult。如要編輯無遮罩圖片,personGeneration 預設為 allow_adult

sampleCount

integer

(選用步驟) 要生成的圖片數量。預設值為 4。

seed

Uint32

(選用步驟) 生成圖片的隨機種子。如果 addWatermark 設為 true,就無法使用這項功能。

safetySetting

string

(選用步驟) 為安全篩選功能新增篩選等級。支援的值如下:

  • "block_low_and_above":最強的篩選層級,封鎖最嚴格。已淘汰的值:"block_most"
  • "block_medium_and_above":封鎖部分有問題的提示和回覆。已淘汰的值: "block_some"
  • "block_only_high":減少因安全篩選器而遭到封鎖的要求數量。Imagen 生成的內容可能令人反感。已淘汰的值: "block_few"
  • "block_none":封鎖極少數有問題的提示和回覆。這項功能僅開放部分帳戶使用。先前欄位值:"block_fewest"

預設值為 "block_medium_and_above"

safetySetting 僅支援 imagen-3.0-capability-001

storageUri

string

(選用步驟) 儲存生成圖片的 Cloud Storage URI。

輸出選項物件

outputOptions 物件會說明圖片輸出內容。

參數
outputOptions.mimeType

string

(選用步驟) 輸出內容應儲存的圖片格式。支援的值如下:

  • "image/png":另存為 PNG 圖片
  • "image/jpeg":儲存為 JPEG 圖片

預設值為 "image/png"

outputOptions.compressionQuality

integer

(選用步驟) 如果輸出類型為 "image/jpeg",則為壓縮程度。可接受的值為 0100。預設值為 75

要求範例

REST

使用任何要求資料之前,請先替換以下項目:

  • REGION:專案所在的區域。如要進一步瞭解支援的區域,請參閱「Vertex AI 的生成式 AI 服務地區」。
  • PROJECT_ID:您的 Google Cloud 專案 ID。
  • TEXT_PROMPT: 選用。文字提示,用來引導模型生成圖片。為獲得最佳效果,請使用遮蓋區域的說明,並避免使用單字提示。舉例來說,請使用「一隻可愛的柯基犬」,而不是「柯基犬」。
  • B64_BASE_IMAGE: 經過編輯的圖片 (大小上限為 10 MB,並採用 Base64 編碼)。如要進一步瞭解 base64 編碼,請參閱「Base64 編碼及解碼檔案」。
  • B64_MASK_IMAGE: 大小為 10 MB 以下的黑白遮罩圖片,採用 Base64 編碼。
  • MASK_DILATION: 選用。介於 0 和 1 之間的浮點值 (含 0 和 1),代表遮罩要擴大的圖片寬度百分比。使用 dilation 有助於補償不精確的遮罩。建議將這個值設為 0.01
  • EDIT_STEPS: 選用。代表取樣步數的整數。值越高,影像品質越好;值越低,延遲時間越短。

    建議您先嘗試35步驟。如果品質不符合需求,建議將值調高至上限 75

  • SAMPLE_COUNT: 選用。整數,用來描述要生成的圖片數量。可接受的值範圍為 14,預設值為 4

HTTP 方法和網址:

POST https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-3.0-capability-001:predict

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
  }
}

如要傳送要求,請選擇以下其中一個選項:

curl

將要求內文儲存在名為 request.json 的檔案中,然後執行下列指令:

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

將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:

$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。回應會傳回兩個預測物件,其中包含以 base64 編碼產生的圖片位元組。
{
  "predictions": [
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    },
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    }
  ]
}

課程 ID

使用下列物件類別 ID,根據特定物件自動建立圖片遮罩。

課程 ID (class_id) 物件
0 後背包
1 雨傘
2 包包
3 領帶
4 手提箱
5 客服案件
6 bird
7 cat
8 dog
9
10 綿羊
11 母牛
12 大象
13
14 斑馬
15 長頸鹿
16 動物 (其他)
17 微波爐
18 散熱器
19 烤箱
20 烤麵包機
21 儲存槽
22 輸送帶
23 接收器
24 冰箱
25 洗衣烘乾機
26 風扇
27 洗碗機
28 馬桶
29 浴缸
30 shower (蓮蓬頭)
31 通道
32 橋梁
33 碼頭
34 帳篷
35 建築物
36 ceiling
37 筆記型電腦
38 鍵盤
39 老鼠
40 遠端
41 手機
42 電視機
43 floor
44 在此流程的各個階段
45 香蕉
46 apple
47 三明治
48 orange
49 花椰菜
50 紅蘿蔔
51 熱狗
52 披薩
53 甜甜圈
54 蛋糕
55 水果 (其他)
56 食物 (其他)
57 椅子 (其他)
58 扶手椅
59 旋轉椅
60 椅凳
61 帳戶名額
62 沙發
63 垃圾桶
64 盆栽
65 nightstand (床頭櫃)
66 bed
67 資料表
68 撞球桌
69 槍管
70 辦公桌
71 腳凳
72 衣櫃
73 嬰兒床
74 籃子
75 抽屜櫃
76 書架
77 計數器 (其他)
78 浴室檯面
79 廚房中島
80
81 light (other)
82 燈具
83 壁燈
84 吊燈
85 鏡像
86 透過行動裝置在 Meet 設備裝置上
87 專區
88 樓梯
89 電扶梯
90 櫃子
91 壁爐
92 火爐
93 大型電玩機台
94 碎石
95 platform
96 playingfield
97 鐵路
98 道路
99 snow
100 人行道鋪面
101 跑道
102 地形
103
104 box
105 時鐘
106 花瓶
107 剪刀
108 玩物 (其他)
109 泰迪熊
110 吹風機
111 牙刷
112 繪畫
113 海報
114 公布欄
115 瓶子
116 杯子
117 葡萄酒杯
118 刀子
119 分支
120 湯匙
121
122 tray
123 抽油煙機
124 盤子
125 使用者圖示
126 rider (other)
127 自行車騎士
128 機車騎士
129 報告
130 路燈
131 路障
132 信箱
133 監視器
134 接線盒
135 交通標誌
136 紅綠燈
137 消防栓
138 停車收費計時器
139 長椅
140 自行車架
141 看板
142 Sky
143 pole
144 籬笆
145 欄杆扶手
146 護欄
147 山丘
148 搖滾
149 飛盤
150 滑雪板
151 滑雪板
152 運動用球
153 風箏
154 球棒
155 棒球手套
156 滑板
157 衝浪板
158 網球拍
159
160 base
161 雕塑
162
163 噴泉
164 遮篷
165 服飾
166 橫幅
167 旗標
168 毯子
169 窗簾 (其他)
170 浴簾
171 pillow
172 毛巾
173 地毯地墊
174 植被
175 腳踏車
176 car
177 autorickshaw
178 機車
179 飛機
180 公車
181 火車
182 卡車
183 預告
184 船隻
185 緩慢移動的輪狀物體
186 河湖
187
188 水 (其他)
189 游泳池
190 瀑布
191
192 window
193 百葉窗簾

後續步驟