MediaPipe Image Generator 工作可根據文字提示生成圖片。這項工作會使用文字轉圖像模型,透過擴散技術生成圖像。
這項工作會接受文字提示做為輸入內容,以及模型可擴增並做為生成參考的選用條件圖片。如要進一步瞭解條件式文字轉圖像生成功能,請參閱「On-device diffusion plugins for conditioned text-to-image generation」。
圖片產生器也能根據模型在訓練或重新訓練期間學到的特定概念生成圖片。詳情請參閱「使用 LoRA 自訂」。
開始使用
如要開始使用這項工作,請按照目標平台的其中一份導入指南操作。這些平台專屬指南會逐步說明這項工作的基本實作方式,並提供使用預設模型和建議設定選項的程式碼範例:
任務詳細資料
本節說明這項工作的能力、輸入內容、輸出內容和設定選項。
功能
您可以使用圖片產生器實作下列功能:
- 文字轉圖像生成:使用文字提示生成圖像。
- 使用條件圖片生成圖片:使用文字提示和參考圖片生成圖片。圖像生成器使用條件圖片的方式與 ControlNet 類似。
- 使用 LoRA 權重生成圖片 - 使用自訂模型權重,透過文字提示生成特定人物、物體和風格的圖片。
工作輸入內容 | 工作輸出 |
---|---|
圖像生成器接受下列輸入內容:
|
圖像生成器會輸出下列結果:
|
設定選項
這項工作提供下列設定選項:
選項名稱 | 說明 | 值範圍 |
---|---|---|
imageGeneratorModelDirectory |
儲存模型權重的圖片生成器模型目錄。 | PATH |
loraWeightsFilePath |
設定 LoRA 權重檔案的路徑。此為選用屬性,僅適用於使用 LoRA 自訂模型的情況。 | PATH |
errorListener |
設定選用的錯誤監聽器。 | N/A |
這項工作也支援外掛程式模型,讓使用者在工作輸入內容中加入條件圖片,基礎模型可以擴增這些圖片,並做為生成內容的參考。這些條件圖片可以是臉部地標、邊緣輪廓和深度估計值,模型會將這些圖片做為額外的背景資訊,用來生成圖片。
將外掛程式模型新增至基礎模型時,請一併設定外掛程式選項。臉部地標外掛程式使用 faceConditionOptions
,Canny 邊緣外掛程式使用 edgeConditionOptions
,深度外掛程式則使用 depthConditionOptions
。
Canny 邊緣選項
在 edgeConditionOptions
中設定下列選項。
選項名稱 | 說明 | 值範圍 | 預設值 |
---|---|---|---|
threshold1 |
遲滯程序的第一個門檻。 | Float |
100 |
threshold2 |
磁滯程序的第二個門檻。 | Float |
200 |
apertureSize |
Sobel 運算子的光圈大小。一般範圍介於 3 到 7 之間。 | Integer |
3 |
l2Gradient |
是否使用 L2 範數計算圖片梯度大小,而非預設的 L1 範數。 | BOOLEAN |
False |
EdgePluginModelBaseOptions |
設定外掛程式模型路徑的 BaseOptions 物件。 |
BaseOptions 個物件 |
N/A |
如要進一步瞭解這些設定選項的運作方式,請參閱「Canny 邊緣偵測器」。
臉部特徵點選項
在 faceConditionOptions
中設定下列選項。
選項名稱 | 說明 | 值範圍 | 預設值 |
---|---|---|---|
minFaceDetectionConfidence |
臉部偵測成功所需的最低信賴分數。 | Float [0.0,1.0] |
0.5 |
minFacePresenceConfidence |
臉部特徵偵測中,臉部出現信賴分數的最低分數。 | Float [0.0,1.0] |
0.5 |
faceModelBaseOptions |
BaseOptions 物件,用於設定建立條件圖片的模型路徑。 |
BaseOptions 個物件 |
N/A |
FacePluginModelBaseOptions |
設定外掛程式模型路徑的 BaseOptions 物件。 |
BaseOptions 個物件 |
N/A |
如要進一步瞭解這些設定選項的運作方式,請參閱「臉部地標工作」。
深度選項
在 depthConditionOptions
中設定下列選項。
選項名稱 | 說明 | 值範圍 | 預設值 |
---|---|---|---|
depthModelBaseOptions |
BaseOptions 物件,用於設定建立條件圖片的模型路徑。 |
BaseOptions 個物件 |
N/A |
depthPluginModelBaseOptions |
設定外掛程式模型路徑的 BaseOptions 物件。 |
BaseOptions 個物件 |
N/A |
模型
圖像生成器需要基礎模型,也就是文字轉圖像 AI 模型,這類模型會使用擴散技術生成新圖像。本節列出的基礎模型是經過最佳化的輕量模型,可在高階智慧型手機上執行。
外掛程式模型為選用功能,可輔助基礎模型,讓使用者提供額外的條件圖片和文字提示,生成更精確的圖片。使用 LoRA 權重自訂基礎模型,可讓基礎模型學習特定概念 (例如物體、人物或風格),並將這些概念注入生成的圖片。
基礎模型
基礎模型是潛在的文字轉圖片擴散模型,可根據文字提示生成圖片。圖片產生器需要基礎模型符合 stable-diffusion-v1-5/stable-diffusion-v1-5 EMA-only
模型格式,依據下列模型:
下列基礎模型也與圖像產生器相容:
下載基礎模型後,請使用 image_generator_converter 將模型轉換為適合裝置端格式,供圖像產生器使用。
安裝必要的依附元件:
$ pip install torch typing_extensions numpy Pillow requests pytorch_lightning absl-py
執行
convert.py
指令碼:
$ python3 convert.py --ckpt_path <ckpt_path> --output_path <output_path>
外掛程式模型
本節中的外掛程式模型由 Google 開發,必須與基礎模型搭配使用。外掛程式模型可讓圖像生成器接受條件圖片和文字提示做為輸入內容,藉此控制生成圖像的結構。外掛程式模型提供的功能與 ControlNet 類似,但採用專為裝置端擴散設計的新穎架構。
外掛程式模型必須在基本選項中指定,您可能需要下載其他模型檔案。每個外掛程式對狀況圖片都有獨特要求,而狀況圖片可由圖片生成器生成。
Canny Edge 外掛程式
Canny Edge 外掛程式會接受條件圖片,勾勒出生成圖片的預期邊緣。基礎模型會使用條件圖片所隱含的邊緣,並根據文字提示生成新圖片。圖像生成器內建建立條件圖像的功能,您只需要下載外掛程式模型即可使用。
Canny Edge 外掛程式包含下列設定選項:
選項名稱 | 說明 | 值範圍 | 預設值 |
---|---|---|---|
threshold1 |
遲滯程序的第一個門檻。 | Float |
100 |
threshold2 |
磁滯程序的第二個門檻。 | Float |
200 |
apertureSize |
Sobel 運算子的光圈大小。一般範圍介於 3 到 7 之間。 | Integer |
3 |
l2Gradient |
是否使用 L2 範數計算圖片梯度大小,而非預設的 L1 範數。 | BOOLEAN |
False |
EdgePluginModelBaseOptions |
設定外掛程式模型路徑的 BaseOptions 物件。 |
BaseOptions 個物件 |
N/A |
如要進一步瞭解這些設定選項的運作方式,請參閱「Canny 邊緣偵測器」。
臉部特徵點外掛程式
Face Landmark 外掛程式會接受 MediaPipe Face Landmarker 的輸出內容做為條件圖片。Face Landmarker 可提供單一人臉的詳細臉部網格,並對應臉部特徵的存在和位置。基礎模型會使用條件圖片所隱含的臉部對應,並在網格上生成新臉部。
此外,臉部地標外掛程式也需要 Face Landmarker 模型套件,才能建立條件圖片。這個模型套件與 Face Landmarker 工作使用的套件相同。
Face Landmark 外掛程式包含下列設定選項:
選項名稱 | 說明 | 值範圍 | 預設值 |
---|---|---|---|
minFaceDetectionConfidence |
臉部偵測成功所需的最低信賴分數。 | Float [0.0,1.0] |
0.5 |
minFacePresenceConfidence |
臉部特徵偵測中,臉部出現信賴分數的最低分數。 | Float [0.0,1.0] |
0.5 |
faceModelBaseOptions |
BaseOptions 物件,用於設定建立條件圖片的模型路徑。 |
BaseOptions 個物件 |
N/A |
FacePluginModelBaseOptions |
設定外掛程式模型路徑的 BaseOptions 物件。 |
BaseOptions 個物件 |
N/A |
如要進一步瞭解這些設定選項的運作方式,請參閱「臉部地標工作」。
深度外掛程式
Depth 外掛程式會接受指定物體單眼深度的條件圖片。基礎模型會使用條件圖片推斷要生成物件的大小和深度,並根據文字提示生成新圖片。
此外,深度外掛程式也需要深度估算模型,才能建立條件圖片。
「深度」外掛程式包含下列設定選項:
選項名稱 | 說明 | 值範圍 | 預設值 |
---|---|---|---|
depthModelBaseOptions |
BaseOptions 物件,用於設定建立條件圖片的模型路徑。 |
BaseOptions 個物件 |
N/A |
depthPluginModelBaseOptions |
設定外掛程式模型路徑的 BaseOptions 物件。 |
BaseOptions 個物件 |
N/A |
使用 LoRA 自訂
使用 LoRA 自訂模型後,圖片生成器就能根據特定概念生成圖片,這些概念會在訓練期間以專屬權杖識別。訓練完成後,模型會產生新的 LoRA 權重,只要在文字提示中指定權杖,模型就能生成新概念的圖片。
如要建立 LoRA 權重,必須先使用特定物體、人物或風格的圖片訓練基礎模型,讓模型能夠辨識新概念,並在生成圖片時套用。如要建立 LoRa 權重,生成特定人物和臉孔的圖片,請只對您自己的臉孔,或已授權您這麼做的人臉使用這項解決方案。
以下是根據 DreamBooth 資料集中的茶壺圖片訓練自訂模型後,使用「monadikos teapot」權杖產生的輸出內容:
提示:鏡子旁的 monadikos 茶壺
自訂模型收到提示中的權杖,並插入從 LoRA 權重學會描繪的茶壺,然後按照提示要求,將茶壺放在鏡子旁邊。
詳情請參閱自訂指南,瞭解如何使用 Vertex AI 的 Model Garden,將 LoRA 權重套用至基礎模型,藉此自訂模型。