「受控自訂」功能可讓您根據來源圖片或來源圖片信號 (Canny Edge 或塗鴉) 建立新圖片。本頁說明如何傳送兩種受控自訂要求:
Imagen 3 受控自訂 (正式版功能)
Imagen 2 受控自訂功能 - Canny 邊緣或塗鴉來源圖片信號 (預覽功能)
下列模型支援受控自訂:
用途
Imagen 3 Controlled Customization 提供自由風格的提示詞,可能會讓您覺得模型的功能超出訓練範圍。以下各節將說明 Imagen 3 Controlled Customization 的應用實例和範例。
模型已根據我們提供的用途進行訓練,因此我們預期您在使用 Imagen 3 受控自訂功能時,會獲得良好的結果。如果要求模型以非預期的方式回覆,我們預期不會得到良好的結果。
預定用途範例
Imagen 3 Controlled Customization 經過訓練,可處理下列應用實例,並產生良好結果:
生成圖片,並遵循提示和 Canny Edge 控制圖片。
根據提示詞和塗鴉圖片生成圖片。
為人物相片套用風格,同時保留臉部表情。
不當用途範例
Imagen 3 Controlled Customization 未接受下列應用實例的訓練,因此會產生品質不佳的結果:
根據提示中指定的風格生成圖片。
根據參考圖像的特定樣式,透過文字生成圖片,並使用控制圖片在某種程度上控制圖像構圖。
根據參考圖像提供的特定樣式,以文字生成圖片,並使用控制塗鴉,在某種程度上控制圖像構圖。
根據文字生成圖片,並遵循參考圖像提供的特定樣式,同時使用控制圖片,在某種程度上控制圖像構圖。圖片中的人有特定臉部表情。
為兩張以上的人物相片套用風格,並保留臉部表情。
將寵物的相片轉換為手繪風格,保留或指定圖片的構圖 (例如水彩)。
事前準備
- 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
-
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.-
為環境設定驗證機制。
選取這個頁面上的分頁,瞭解如何使用範例:
控制台
使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,無須設定驗證。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。
撰寫自訂提示
使用 Imagen 3 自訂功能時,提示可能會影響生成的圖片品質。您可以參考下列提示範本,撰寫自訂提示。您可能需要傳送多個要求,才能取得目標輸出內容。
| 用途 | 參考圖片 | 提示範本 | 範例 |
|---|---|---|---|
| 控管自訂項目 | 手繪地圖 (1) | 生成符合scribble map [1] 說明內容的圖片:${STYLE_PROMPT} ${PROMPT}。 | 生成符合 scribble map [1] 的圖片,以符合說明:圖片應為印象派油畫風格,筆觸輕鬆。這類圖片具有自然光線的氛圍,且筆觸明顯。車輛的側面圖。車輛停在潮濕且會反射光線的路面上,水窪中映照著城市燈光。 |
| 控管自訂項目 | Canny 控制圖片 (1) | 生成圖片,使其與 edge map [1] 相符,以符合說明:${STYLE_PROMPT} ${PROMPT} | 生成符合 edge map [1] 的圖片,與說明相符: 圖片應為印象派油畫風格,筆觸輕鬆。這類作品的氛圍自然明亮,筆觸清晰可見。車輛的側面圖。車輛停在潮濕且會反射光線的路面,水窪中映照著城市燈光。 |
| 使用 FaceMesh 輸入內容,為人物圖片套用風格 |
主體圖像 (1-3) FaceMesh 控制圖像 (1) |
Create an image about SUBJECT_DESCRIPTION [1] in the pose of the CONTROL_IMAGE [2] to match the description: a portrait of SUBJECT_DESCRIPTION [1] ${PROMPT} | 以control image [2]的姿勢繪製「a woman with short hair [1]」的圖片,符合以下描述:a woman with short hair [1]的肖像照,採用 3D 卡通風格,背景模糊。可愛的角色,面帶微笑,面向鏡頭,柔和的色調,高畫質,4K,傑作,細節豐富,皮膚紋理,紋理對應,柔和的陰影,柔和逼真的光線,鮮豔的色彩 |
| 使用 FaceMesh 輸入內容,為人物圖片套用風格 |
主體圖像 (1-3) FaceMesh 控制圖像 (1) |
建立一張${STYLE_PROMPT}圖片,內容為SUBJECT_DESCRIPTION [1]擺出CONTROL_IMAGE [2]的姿勢,與以下說明相符:SUBJECT_DESCRIPTION [1]的肖像照${PROMPT} | 以 3D 卡通風格繪製 a woman with short hair [1] 的圖片,姿勢要與 control image [2] 相同,並符合以下描述:a woman with short hair [1] 的肖像照,以 3D 卡通風格呈現,背景模糊。可愛又討喜的角色,面帶微笑,面向鏡頭,色調柔和,高畫質 4K 傑作,細節豐富,皮膚材質、材質對應、柔和陰影、柔和寫實光線、繽紛色彩 |
傳送 Imagen 3 受控自訂要求
請使用下列範例傳送 Imagen 3 受控自訂要求:
REST
如要進一步瞭解 Imagen API,請參閱下列內容:
- 方法:
endpoints.predict VisionGenerativeModelInstanceVisionGenerativeModelParamsVisionGenerativeModelResult
使用任何要求資料之前,請先修改下列項目的值:
- PROJECT_ID:您的 Google Cloud 專案 ID。
- LOCATION:專案的區域。例如
us-central1、europe-west2或asia-northeast3。如需可用區域的清單,請參閱「Vertex AI 生成式 AI 服務地區」。使用地區 API 端點時,系統會根據端點網址中的區域,決定要求處理位置,並忽略資源路徑中發生衝突的LOCATION。 - TEXT_PROMPT:文字提示會引導模型生成圖片。如要使用 Imagen 3 受控自訂功能,請以 [$referenceId] 格式加入您提供的控制參考圖像
referenceId。例如:- 生成圖片,使其與塗鴉地圖 [1] 相符,並與說明相符: [image description]。
- BASE64_CONTROL_IMAGE:基本控制圖片 (草圖)。圖片必須指定為 base64 編碼的位元組字串。
CONTROL_TYPE_SCRIBBLE:預期的塗鴉控制項圖片應為黑底白線。
適用於CONTROL_TYPE_CANNY:預期的 Canny 邊緣控制圖片具有黑色背景和白色 Canny 邊緣。
- CONTROL_TYPE:控制信號的類型。使用
CONTROL_TYPE_CANNY進行 Canny 邊緣偵測。使用CONTROL_TYPE_SCRIBBLE塗鴉。 enableControlImageComputation:如果您提供自己的控制圖片,請設為false。在這種情況下,B64_BASE_IMAGE應為控制訊號圖片。如要讓 Imagen 從參考圖像計算控制圖片,請設為true。在這種情況下,B64_BASE_IMAGE應為原始 RGB 圖片。- IMAGE_COUNT:生成的圖像數量。 接受的整數值:1 到 4。預設值:4。
HTTP 方法和網址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict
JSON 要求內文:
{
"instances": [
{
"prompt": "TEXT_PROMPT",
"referenceImages": [
{
"referenceType": "REFERENCE_TYPE_CONTROL",
"referenceId": 1,
"referenceImage": {
"bytesBase64Encoded": "BASE64_CONTROL_IMAGE"
},
"controlImageConfig": {
"controlType": "CONTROL_TYPE",
"enableControlImageComputation": false
}
}
]
}
],
"parameters": {
"sampleCount": IMAGE_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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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://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。回應會傳回兩個預測物件,其中包含以 base64 編碼的生成圖片位元組。
{
"predictions": [
{
"bytesBase64Encoded": "BASE64_IMG_BYTES",
"mimeType": "image/png"
},
{
"mimeType": "image/png",
"bytesBase64Encoded": "BASE64_IMG_BYTES"
}
]
}
Python
塗鴉
Canny 邊緣
傳送 Imagen 2 受控自訂要求
| 輸入圖像 | 其他參數 | 輸出圖片 |
|---|---|---|
|
提示:「數位藝術版」 負面提示:「黑白」 導覽圖片類型:標準 RGB 控制條件:canny edge Imagen Control 比例:0.95 |
|
(已套用 Canny 邊緣偵測)。 |
提示:「數位藝術版」 負面提示:「黑白」 引導圖片類型:canny edge Imagen Control 比例:0.95 |
|
請使用下列範例傳送 Imagen 2 受控自訂要求:
REST
如要進一步瞭解 Imagen API,請參閱下列資源:
- 方法:
endpoints.predict VisionGenerativeModelInstanceVisionGenerativeModelParamsVisionGenerativeModelResult
使用任何要求資料之前,請先修改下列項目的值:
- PROJECT_ID:您的 Google Cloud 專案 ID。
- TEXT_PROMPT:文字提示,引導模型生成圖片。生成和編輯時都必須填寫這個欄位。
- B64_BASE_IMAGE:要編輯或放大畫質的基本圖片。圖片必須指定為 base64 編碼的位元組字串。大小限制:10 MB。
- EDIT_IMAGE_COUNT:編輯過的圖片數量。預設值: 4。
- NEGATIVE_PROMPT:用於生成圖片的負面提示。例如: 「animals」(移除動物)、「blurry」(讓圖片更清晰)、「text」(移除文字) 或 「cropped」(移除裁剪過的圖片)。
-
CONDITION:
string。提供的控制項圖片信號類型。值:cannyEdges或scribble。 -
CONTROL_SCALE:
float。控制圖片訊號的強度。值:0.0-1.0。預設值為0.95。建議範圍:0.9-1.0。 -
SAMPLING_STEPS:
integer。取樣步數。值:1-30。預設值:16。 -
COMPUTE_CONDITION_MAP:
boolean。是否要從基本輸入圖片計算條件地圖。設為false時,服務會預期輸入圖片為塗鴉或 Canny 邊緣,並直接提供給模型。如果設為true,服務會將輸入圖片視為 RGB 圖片,並根據conditionName從輸入圖片計算 Canny 邊緣或塗鴉資訊。接著,這項服務會將處理後的條件對應提供給模型,以進行圖片編輯。提供塗鴉圖片時,圖片應為黑色背景,並以白色線條描繪要生成的物件。預設值:false。
HTTP 方法和網址:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/imagen-2.0-edit-preview-0627:predict
JSON 要求內文:
{
"instances": [
{
"prompt": "TEXT_PROMPT",
"image": {
"bytesBase64Encoded": "B64_BASE_IMAGE"
}
}
],
"parameters": {
"sampleCount": EDIT_IMAGE_COUNT,
"negativePrompt": "NEGATIVE_PROMPT",
"controlPluginConfig": {
"conditions": [
{
"conditionName": "CONDITION",
"controlScale": CONTROL_SCALE,
"samplingSteps": SAMPLING_STEPS,
"computeConditionMap": COMPUTE_CONDITION_MAP
}
]
}
}
}
如要傳送要求,請選擇以下其中一個選項:
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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/imagen-2.0-edit-preview-0627: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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/imagen-2.0-edit-preview-0627:predict" | Select-Object -Expand Content
"sampleCount": 2。回應會傳回兩個預測物件,其中包含以 base64 編碼的生成圖片位元組。
{
"predictions": [
{
"bytesBase64Encoded": "BASE64_IMG_BYTES",
"mimeType": "image/png"
},
{
"mimeType": "image/png",
"bytesBase64Encoded": "BASE64_IMG_BYTES"
}
]
}
產品使用量累進區間
如要查看與 Vertex AI 上的 Imagen 相關聯的使用標準和內容限制,請參閱使用指南。
模型版本
你可以使用多種圖片生成模型。詳情請參閱「Imagen 模型」。
後續步驟
閱讀有關 Imagen 和其他 Vertex AI 生成式 AI 產品的文章:
- 開發人員指南:開始在 Vertex AI 使用 Imagen 3
- 專為創作者打造的全新生成式媒體模型和工具
- Gemini 新功能:自訂 Gem 和 Imagen 3 強化圖像生成功能
- Google DeepMind:Imagen 3 - 品質最高的文字轉圖像模型