圖片產生指南

圖片產生器工作

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

這項工作會接受文字提示做為輸入內容,並可選提供條件圖片,讓模型進行擴充,並用做生成內容的參考依據。如要進一步瞭解條件式文字轉圖片生成功能,請參閱「裝置端擴散外掛程式,用於條件式文字轉圖片生成功能」。

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

開始使用

請按照下列目標平台的導入指南操作,開始使用此工作。這些平台專屬指南會逐步引導您完成這項工作的基本實作方式,並提供使用預設模型的程式碼範例,以及建議的設定選項:

任務詳細資料

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

功能

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

  1. 文字轉圖像生成:使用文字提示生成圖像。
  2. 使用條件圖片生成圖像:使用文字提示和參考圖片生成圖像。圖像產生器使用條件圖片的方式與 ControlNet 類似。
  3. 使用 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 權重自訂基礎模型,可讓基礎模型學習特定概念 (例如物件、人物或風格),並將這些概念注入生成的圖片中。

基礎模型

基礎模型是隱含的文字轉圖片擴散模型,可根據文字提示產生圖片。圖片產生器會根據下列模型,要求基礎模型符合 runwayml/stable-diffusion-v1-5 EMA-only 模型格式:

以下基礎模型也與圖像產生器相容:

下載基礎模型後,請使用 image_generator_converter,將模型轉換為 Image Generator 適用的適當裝置端格式。

安裝必要的依附元件:

$ 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 外掛程式

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 邊緣偵測器」。

臉部特徵點外掛程式

兩張生成圖片的輸出結果範例:使用提供的素描臉孔條件圖片和兩個不同的提示,說明同一個條件圖片可用於產生外觀截然不同的圖片

臉部特徵點外掛程式會將 MediaPipe 臉部特徵點的輸出內容做為條件圖片。臉部地標會提供單一臉部的詳細臉部網格,可繪製臉部特徵的存在和位置。基礎模型會使用條件圖片所暗示的臉部對應,並在網格上產生新的臉部。

下載臉部地標外掛程式

臉部地標外掛程式也需要臉部地標器模型套件,才能建立條件圖片。這個模型套件與 Face Landmarker 工作所用的套件相同。

下載臉部地標模型組合

臉部標記外掛程式包含下列設定選項:

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

兩張產生的圖片示例,使用提供的條件圖片顯示汽車的一般形狀,以顯示深度外掛程式可產生圖片,為平面圖片增添深度

Depth 外掛程式會接受指定物體單眼深度的條件圖片。基礎模型會使用條件圖片推斷要產生的物件大小和深度,並根據文字提示產生新圖片。

下載 Depth 外掛程式

深度外掛程式也需要深度估算模型來建立條件圖片。

下載深度估計模型

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

選項名稱 說明 值範圍 預設值
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 權重套用至基礎模型,進而自訂模型。