Imagen 3 Customization 的主體自訂功能可根據您提供的文字提示詞和參考圖像,生成新圖像。您提供的參考圖像有助於引導生成新圖像。
以下機型支援自訂主體:
用途
Imagen 3 Customization 提供自由風格的提示,可能會讓人覺得它能做的不只訓練內容。以下各節將說明 Imagen 3 Customization 的預期用途,以及非預期用途的範例 (僅列舉部分)。
建議您針對預期用途使用 Imagen 3 自訂功能,因為我們已針對這些用途訓練模型,預期可獲得良好結果。反之,雖然您可以要求模型執行預期用途以外的工作,但我們不保證能獲得良好結果。
預定用途
以下是 Imagen 3 Customization 主體自訂功能的用途:
- 為人物相片套用風格
- 為人物相片套用風格,並保留人物的臉部表情
- (成功率低) 將沙發或餅乾等產品放置在不同場景,並從不同角度拍攝。
- 生成產品變體,但不保留確切詳細資料
- 為人物相片套用風格,同時保留臉部表情
不當用途示例
以下僅列舉部分用途,Imagen 3 自訂模型未經過訓練,因此無法產生令人滿意的結果:
- 將兩位以上的人物置於不同場景,同時保留其身分
- 將兩位以上的人物置於不同場景,同時保留其身分,並使用範例圖片做為風格輸入,指定輸出圖片的風格。
- 為兩人以上的相片套用風格,同時保留人物特徵
- 將寵物放進不同場景,同時保留寵物身分
- 將寵物相片套用風格,轉換成繪圖
- 將寵物相片轉換成手繪風格,同時保留或指定圖片風格 (例如水彩)
- 將寵物和人物分別放入不同場景,同時保留兩者的身分。
- 將寵物和一或多人的相片套用風格,變成手繪風
- 將兩項產品放在不同場景,並以不同角度呈現
- 將產品 (例如餅乾或沙發) 放入不同場景,並從不同角度呈現,同時遵循特定圖片風格 (例如具有特定顏色、光線風格或動畫的擬真風格)
- 將產品放入不同場景,同時保留控制圖片指定的特定場景組成
- 將兩項產品放入不同場景,並從不同角度呈現,使用特定圖片做為輸入內容 (例如具有特定顏色、光線風格或動畫的擬真圖片)
- 將兩項產品放入不同場景,同時保留控制圖片指定的特定場景組成
主旨自訂範例
以下各節說明 Imagen 3 Customization 主體自訂功能支援的情況:
自訂人物
| 輸入內容範例 | 輸出內容範例 |
|---|---|
|
|
1 參考輸入圖片,使用 Imagen 3 圖像生成功能,根據提示生成:portrait of a woman in paris. she's wearing black pants and a white shirt。
產品自訂
| 輸入內容範例 | 輸出內容範例 |
|---|---|
|
|
查看 Imagen for Editing and 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, 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.-
為環境設定驗證機制。
請根據您打算如何使用本頁範例,選取對應的分頁標籤:
控制台
使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,不需要設定驗證。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。
若您採用的是外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。
自訂主旨
使用 Imagen 3 自訂功能時,你可以提供主題類型的參考圖像。具體來說,Imagen 3 Customization 的少樣本提示支援下列主體:產品、人物和寵物。您選擇的主題會影響生成要求的形式。
使用 Imagen 3 自訂功能時,提示可能會影響生成的圖片品質。以下章節說明建議使用的提示詞範本和範例,可供傳送自訂要求。
自訂人物
下表列出建議的提示範本,可做為撰寫個人化提示的起點:
| 用途 | 參考圖片 | 提示詞範本 | 範例 |
|---|---|---|---|
| 使用臉部網格輸入內容,為人物圖片套用風格 |
主體圖片 (1) 臉部網格控制圖片 (1) |
使用 facemesh from the control image [2] 生成 SUBJECT_DESCRIPTION [1] 的圖片。${PROMPT} | 使用facemesh from the control image [2]生成the person [1]的圖片。拍攝對象應面向正前方,表情自然。背景應為 ... |
| 不輸入臉部網格,直接套用人物圖片風格 | 主體圖像 (1 到 4 張) | 根據以下說明製作與「SUBJECT_DESCRIPTION [1]」相關的圖片:SUBJECT_DESCRIPTION [1]的肖像照${PROMPT} | 請根據以下說明製作「a woman with short hair[1]」的圖片:a woman with short hair[1]的肖像照,3D 卡通風格,背景模糊。可愛迷人的角色、笑臉、看著鏡頭、柔和色調、高畫質、4K、傑作、超級細節、皮膚紋理、紋理對應、柔和陰影、柔和寫實的光線、鮮豔色彩 |
| 不輸入臉部網格,直接套用人物圖片風格 | 主體圖片 (1-4) | 生成STYLE_DESCRIPTION [2]圖片,主題為SUBJECT_DESCRIPTION [1],符合以下描述:SUBJECT_DESCRIPTION [1]的肖像,STYLE_PROMPT | 請根據說明建立3d-cartoon style [2]圖片:以 3D 卡通風格繪製a woman with short hair [1]的肖像,並模糊背景。a woman with short hair [1]可愛迷人的角色,面帶微笑,看著鏡頭, 柔和色調,高畫質,4K,傑作,超級細節,皮膚 紋理,紋理對應,柔和陰影,柔和寫實的光線,鮮豔 色彩 |
| 以臉部網格輸入內容將人物圖片風格化 |
主體圖片 (1-3) 臉部網格控制圖片 (1) |
根據以下說明,生成一張 SUBJECT_DESCRIPTION [1] 擺出CONTROL_IMAGE [2]姿勢的圖片:SUBJECT_DESCRIPTION [1] 的肖像${PROMPT} | 以「control image [2]」的姿勢製作「a woman with short hair [1]」的圖片,並符合以下描述:以 3D 卡通風格繪製「a woman with short hair [1]」的肖像,背景模糊。可愛的角色,面帶微笑。請參閱 相機、柔和色調、高畫質、4K、傑作、超級細節、 皮膚紋理、紋理對應、柔和陰影、柔和寫實光線、 鮮豔色彩 |
| 使用臉部網格輸入內容,為人物圖片套用風格 |
主體圖片 (1-3) 臉部網格控制圖片 (1) |
製作 STYLE_DESCRIPTION [3] 圖片,內容為SUBJECT_DESCRIPTION [1],姿勢為CONTROL_IMAGE [2],並符合說明:SUBJECT_DESCRIPTION [1] 的肖像 ${PROMPT} | 請根據以下說明 ,製作 3d-cartoon style [3] 圖片:a woman with short hair [1]的肖像照,a woman with short hair [1] 擺出 control image [2] 的姿勢,採用 3D 卡通風格,背景模糊。可愛的微笑臉龐,相機、粉彩色調、高畫質、4K、傑作、超級細節、皮膚紋理、紋理對應、柔和陰影、柔和寫實光線、鮮豔色彩 |
建議參考圖像中的臉部具有下列特徵:
- 置中顯示,且至少占據整張圖片的一半
- 在正面檢視畫面中,可朝所有方向旋轉 (側滾、俯仰和偏擺)
- 未被太陽眼鏡或口罩等物品遮擋
使用下列範例傳送自訂要求,並提供人物參考圖像,引導圖像生成。你可以傳送這類要求,並視需要附上臉部網格控制圖片,進一步引導圖像生成。
REST
如要進一步瞭解 Imagen API,請參閱下列內容:
- 方法:
endpoints.predict VisionGenerativeModelInstanceVisionGenerativeModelParamsVisionGenerativeModelResult
這個範例說明如何指定臉部網格控制區域來引導生成作業,但您也可以省略控制參照物件 ("referenceType": "REFERENCE_TYPE_CONTROL"),Imagen 會自動偵測臉部網格控制區域。
使用任何要求資料之前,請先修改下列項目的值:
- PROJECT_ID:您的 Google Cloud 專案 ID。
- LOCATION:專案的區域。例如:
us-central1、europe-west2或asia-northeast3。如需可用區域的清單,請參閱「Vertex AI 的生成式 AI 服務地區」。使用區域 API 端點時,系統會根據端點網址中的區域,決定要求處理位置,並忽略資源路徑中衝突的LOCATION。 - TEXT_PROMPT:文字提示詞會引導模型生成圖片。如要使用 Imagen 3 自訂功能,請以 [$referenceId] 格式加入您提供的參考圖像
referenceId。例如:- 以下文字提示詞是針對有兩張參考圖像的要求,並使用
"referenceId": 1。兩張圖片都有選填的說明"subjectDescription": "man with short hair"。此外,還有以"referenceId": 2指定的控制臉部網格圖像: 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, 高畫質, pencil stroke, looking at camera, natural human eyes
- 以下文字提示詞是針對有兩張參考圖像的要求,並使用
"referenceId":參考圖像的 ID,或對應至相同主體或樣式的一系列參考圖像 ID。在這個範例中,兩張參考圖像都是同一個人,因此共用相同的referenceId(1),而控制臉部網格圖像則有不同的referenceId(2)。生成的圖像會遵循從參考圖像擷取的臉部網格結構,並改善臉部外觀。僅支援一個臉部網格控制項。- BASE64_REFERENCE_IMAGE:引導圖像生成的參考圖像。圖片必須指定為 Base64 編碼的位元組字串。
- SUBJECT_DESCRIPTION:選用。參考圖像的文字說明,然後在
prompt欄位中使用。例如:"prompt": "a full-body portrait of a man with short hair [1] with hatch-cross drawing", [...], "subjectDescription": "man with short hair" - 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_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"
}
},
{
"referenceType": "REFERENCE_TYPE_CONTROL",
"referenceId": 2,
"referenceImage": {
"bytesBase64Encoded": "BASE64_REFERENCE_IMAGE"
},
"controlImageConfig": {
"controlType": "CONTROL_TYPE_FACE_MESH",
"enableControlImageComputation": true
}
}
]
}
],
"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"
}
]
}
產品自訂
下表列出建議的提示詞範本,可做為撰寫產品自訂提示詞的起點:
| 參考圖片 | 提示詞範本 | 範例 |
|---|---|---|
| 主體圖片 (1-4) | 根據說明「${PROMPT}」生成與「SUBJECT_DESCRIPTION [1]」相關的圖片: |
請根據以下描述生成圖片:Luxe Elixir hair oil, golden liquid in glass bottle [1] 以高調風格拍攝女性的手,並以純白色背景為襯,Luxe Elixir hair oil, golden liquid in glass bottle [1]的特寫畫面。女子的手部光線充足,焦點集中在瓶子上,淺景深模糊了背景,突顯產品。光線柔和,採用漫射光源,在瓶子和手周圍營造出微光。整體構圖簡潔優雅,突顯產品的奢華魅力。 |
| 主體圖像 (1 到 4 張) | 生成 SUBJECT_DESCRIPTION 的圖片,但 ${PROMPT} |
生成Seiko watch [1]的圖片,但要藍色。 |
使用下列範例傳送自訂要求,並提供產品參考圖像,引導圖像生成作業。
控制台
-
在 Google Cloud 控制台中,依序前往「Vertex AI」 >「Vertex AI Studio」
頁面。
前往 Vertex AI Studio - 在「Parameters」窗格的「Model」部分,選取「Imagen 3」(如果尚未選取)。
- 選用。選擇 1:1 (預設) 以外的「顯示比例」。
- 選用。變更「結果數量」。
- 選用。提供負面提示,引導模型避免生成特定內容。
- 選用。變更任何「進階選項」。
- 在「文字提示」欄位 (「撰寫提示...」) 中,按一下「新增參考資料」。
- 在「新增參照」窗格中,選擇「參照類型」: Subject - product。
- 在「參考圖像」部分,按一下「上傳」
- 選擇本機儲存的圖片,然後按一下「開啟」。
- 選用。提供參考圖像的說明。
- 按一下「完成」。
- 選用。如要新增更多參考圖像,請按一下「新增圖片」,然後上傳其他圖片。
- 新增所有參考圖像後,按一下「新增參考」。
您在該窗格中新增的所有參考圖像,都會有相同的參考編號。新增文字提示詞時,請使用這個參考號碼。
- 在「文字提示詞」欄位 (「輸入提示詞...」) 中,新增文字提示詞,並加入參考圖像的參考編號。例如:
- 明亮的白色房間,玻璃桌上放著 product [1]
- animal [1]站在廣闊的空地上,遠處是森林
- film noir style [2]城市街道上person [1]的黑白肖像
REST
如要進一步瞭解 imagen-3.0-capability-001 模型要求,請參閱 imagen-3.0-capability-001 模型 API 參考資料。
使用任何要求資料之前,請先修改下列項目的值:
- PROJECT_ID:您的 Google Cloud 專案 ID。
- LOCATION:專案的區域。例如:
us-central1、europe-west2或asia-northeast3。如需可用區域的清單,請參閱「Vertex AI 的生成式 AI 服務地區」。使用區域 API 端點時,系統會根據端點網址中的區域,決定要求處理位置,並忽略資源路徑中衝突的LOCATION。 - TEXT_PROMPT:文字提示詞會引導模型生成圖片。如要使用 Imagen 3 自訂功能,請以 [$referenceId] 格式加入您提供的參考圖像
referenceId。例如:- 根據Luxe Elixir hair oil, golden liquid in glass bottle [1]建立圖片,符合以下描述:以高調風格近拍女性的手, Luxe Elixir hair oil, golden liquid in glass bottle [1] 背景為純白色。女人的手部光線充足,焦點清晰對準瓶子,淺景深模糊背景,凸顯產品。
"referenceId":參考圖像的 ID,或對應至相同主體或樣式的一系列參考圖像 ID。在這個範例中,兩張參考圖像都是同一項產品,因此共用相同的referenceId(1)。- BASE64_REFERENCE_IMAGE:用於引導圖像生成的參考圖像。圖片必須指定為以 Base64 編碼的位元組字串。
- SUBJECT_DESCRIPTION:選用。參考圖像的文字說明,然後在
prompt欄位中使用。例如:"prompt": "Luxe Elixir hair oil, golden liquid in glass bottle [1] against a pure white background.", [...], "subjectDescription": "Luxe Elixir hair oil, golden liquid in glass bottle" - 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_SUBJECT",
"referenceId": 1,
"referenceImage": {
"bytesBase64Encoded": "BASE64_REFERENCE_IMAGE"
},
"subjectImageConfig": {
"subjectType": "SUBJECT_TYPE_PRODUCT",
"subjectDescription": "SUBJECT_DESCRIPTION"
}
},
{
"referenceType": "REFERENCE_TYPE_SUBJECT",
"referenceId": 1,
"referenceImage": {
"bytesBase64Encoded": "BASE64_REFERENCE_IMAGE"
},
"subjectImageConfig": {
"subjectType": "SUBJECT_TYPE_PRODUCT",
"subjectDescription": "SUBJECT_DESCRIPTION"
}
}
]
}
],
"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"
}
]
}
產品使用量累進區間
如要查看與 Vertex AI 上的 Imagen 相關聯的使用標準和內容限制,請參閱使用指南。
模型版本
您可以使用多種圖像生成模型。詳情請參閱「Imagen 模型」。
後續步驟
閱讀有關 Imagen 和其他 Vertex AI 生成式 AI 產品的文章:
- 開發人員指南:開始在 Vertex AI 使用 Imagen 3
- 專為創作者打造的全新生成式媒體模型和工具
- Gemini 新功能:自訂 Gem 和 Imagen 3 圖像生成功能升級
- Google DeepMind:Imagen 3 - 品質最高的文字轉圖像模型