圖片產生指南

MediaPipe 圖片產生器工作可讓您根據文字提示產生圖片。這項工作會使用文字轉圖片模型,以擴散技術產生圖片。

該工作接受文字提示做為輸入內容,以及選用條件圖片,讓模型可擴增並做為生成的參考。如要進一步瞭解如何產生有條件的文字轉圖片生成作業,請參閱用於產生條件式文字轉圖片的裝置端擴散外掛程式

圖片產生器也可以根據在訓練或重新訓練期間提供給模型的特定概念產生圖片。詳情請參閱「使用 LoRA 自訂」一文。

開始使用

如要開始使用這項工作,請按照目標平台適用的任一實作指南操作。下列平台專屬指南將逐步引導您瞭解這項工作的基本實作方式,並提供使用預設模型的程式碼範例和建議的設定選項:

任務詳細資料

本節說明這項工作的功能、輸入、輸出和設定選項。

功能

您可以使用圖片產生器來實作下列項目:

  1. 產生文字轉圖片:利用文字提示產生圖片。
  2. 使用條件圖片產生圖片:運用文字提示和參考圖片產生圖片。圖片產生器會以類似 ControlNet 的方式使用條件映像檔。
  3. 使用 LoRA 權重產生圖片:使用自訂模型權重以文字提示產生特定人物、物件和樣式的圖片。
工作輸入內容 工作輸出內容
圖片產生器接受下列輸入內容:
  • 文字提示
  • 種子輪
  • 生成式疊代次數
  • 選用:條件圖片
圖片產生器會輸出下列結果:
  • 根據輸入內容產生圖片。
  • 選用:產生映像檔的疊代快照。

設定選項

這項工作有以下設定選項:

選項名稱 說明 值範圍
imageGeneratorModelDirectory 儲存模型權重的圖片產生器模型目錄。 PATH
loraWeightsFilePath 設定 LoRA 權重檔案的路徑。此為選用屬性,僅適用於使用 LoRA 自訂模型的情況。 PATH
errorListener 設定選用的錯誤事件監聽器。 N/A

此工作也支援外掛程式模型,讓使用者在工作輸入中加入條件圖片,讓基礎模型增強和做為生成的參考。這些條件圖片可以是臉孔地標、邊緣外框和深度預估值,讓模型做為產生圖片的額外背景資料和資訊使用。

在基礎模型中新增外掛程式模型時,請一併設定外掛程式選項。臉孔地標外掛程式會使用 faceConditionOptions,Canny Edge 外掛程式使用 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 Edge 偵測工具」一文。

臉部位置標記選項

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 權重自訂基礎模型,是選擇用來教導特定概念 (例如物件、人物或樣式) 的基礎模型,並將這些模型插入產生的圖片。

基礎模型

基礎模型是潛在的文字到圖片擴散模型,可透過文字提示產生圖片。圖片產生器要求基礎模型必須和 runwayml/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 開發,必須搭配基礎模型使用。外掛程式模型可讓 Image Generator 接受條件圖片以及文字提示做為輸入內容,進而控制產生的圖片結構。這個外掛程式模型提供與 ControlNet 類似的功能,並採用專門用於裝置端擴散的創新架構。

外掛程式模型必須在基本選項中指定,可能需要您下載其他模型檔案。每個外掛程式都有獨特的條件映像檔需求,可由 Image Generator 產生。

Canny Edge 外掛程式

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 Edge 偵測工具」一文。

臉部地標外掛程式

臉孔地標外掛程式接受 MediaPipe 臉部位置標記的輸出內容,做為條件圖片。臉部地標記提供單一臉孔的詳細臉部網格,可指出臉部特徵的所在地和位置。基礎模型會使用條件圖片隱含的臉部對應,然後在網格上產生新的表面。

下載臉孔地標外掛程式

臉孔地標外掛程式也需要「臉孔地標工具」模型套件建立條件圖片。這個模型套裝組合與臉部地標工作使用的套裝組合相同。

下載臉孔地標模型套件

臉孔地標外掛程式包含下列設定選項:

選項名稱 說明 值範圍 預設值
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

如要進一步瞭解這些設定選項的運作方式,請參閱臉部地標工作

深度外掛程式

深度外掛程式接受指定物件的單色深度的條件圖片。基礎模型會使用條件圖片來推斷待產生物件的尺寸和深度,並根據文字提示產生新的圖片。

下載深度外掛程式

深度外掛程式也需要深度估算模型才能建立條件映像檔。

下載深度估算模型

深度外掛程式包含下列設定選項:

選項名稱 說明 值範圍 預設值
depthModelBaseOptions BaseOptions 物件,可為建立條件圖片的模型設定路徑。 BaseOptions 個物件 N/A
depthPluginModelBaseOptions 設定外掛程式模型路徑的 BaseOptions 物件。 BaseOptions 個物件 N/A

使用 LoRA 自訂

使用 LoRA 自訂模型,可讓圖片產生器根據特定概念產生圖片,這些概念會在訓練期間以專屬符記識別。在訓練後採用新的 LoRA 權重後,在文字提示中指定符記時,模型即可產生新概念的圖片。

建立 LoRA 權重時,需要訓練特定物件、人物或樣式的圖片基礎模型,才能讓模型識別新概念,並在產生圖片時套用。如果您是為了產生特定人物和臉孔圖片而建立 LoRa 權重,請僅在您的臉部或已授予您授權者的臉孔上使用這項解決方案。

以下是使用權杖「monadikos Teapot」在 DreamBooth 資料集茶壺圖片訓練的自訂模型輸出內容:

提示:黑鏡旁的 Monadikos 茶壺

自訂模型會在提示中接收權杖,並插入了學習器從 LoRA 權重學習的茶壺,並按照提示中的要求,將圖片放在鏡子旁。

搭配使用 LoRA 與 Vertex AI

詳情請參閱自訂指南,該指南使用 Vertex AI 中的 Model Garden 來將 LoRA 權重套用至基礎模型,藉此自訂模型。