跳轉到內容

AI 藝術生成手冊/穩定擴散中的節點提示

來自華夏公益教科書,開放世界開放書籍
ComfyUI 中 SDXL 的通用節點程式設計

這種在 ComfyUI 中使用的“程式語言”可能會讓那些以前不熟悉它的使用者感到不知所措,尤其與其他本地 UI(例如 Auto1111、Foooocus、Oomost 等)相比,但如果我們咬緊牙關克服它,這將變得很容易。

如您所見,有一些方形塊,它們使用多條彩色線相互連線。在這種情況下,方形塊被稱為“節點”或“塊圖”,多條彩色線被稱為“”或“管道”。

成功安裝 ComfyUI後,我們學習如何在 ComfyUI 中進行控制。

操作 預期結果
左鍵單擊任何空白區域,然後將其拖動到任何您喜歡的位置。 整個畫布將根據您的拖動方向移動。
左鍵單擊任何節點,然後將其拖動到任何您喜歡的位置。 所選節點將根據您的拖動方向移動。
右鍵單擊 任何空白區域 選單欄將出現“新增節點”。
右鍵單擊 任何節點 選單欄將出現以編輯所選節點的屬性。
雙擊空白區域 要新增的“節點”的搜尋欄。
將滑鼠懸停在節點的右下角,直到游標變成這樣。Chess dwt45 按下並拖動後,它將調整所選節點的大小。

節點的解剖結構

[編輯 | 編輯原始碼]

每個節點都有這 3 個特徵
輸入資料型別(紅色):資料透過這些管道流入節點。請注意,線顏色與輸入資料型別相匹配。
輸出資料型別(藍色):資料透過這些管道流出節點。請注意,線顏色與輸出資料型別相匹配。
控制引數(綠色):在本節點內執行的計算結果在很大程度上受控制引數內的設定值影響。

基本上,它的工作原理是整個節點(如左側所示)基本上是一個大“黑盒”,它將資料流入節點,並執行抽象以及複雜計算(基於其節點內的控制引數)。計算完成後,資料將輸出到下一個節點以進行其他處理。

節點程式設計

[編輯 | 編輯原始碼]

要學習節點程式設計,我們可以透過單擊右側的“清除”按鈕來清除整個工作流程。如文字到影像工作原理圖所示,我們可以重新建立工作流程。 .

節點程式設計 - 新增新節點

[編輯 | 編輯原始碼]

要新增新節點,我們可以雙擊畫布上的任何空白區域,並使用搜索功能更容易地搜尋所需的塊圖。

我們添加了以下幾個重要的塊圖。

塊圖名稱 影像
載入檢查點 [擴散模型] 載入儲存在Comfyui\ComfyUI_windows_portable\ComfyUI\models\checkpoints中的首選 AI 影像模型。從“載入檢查點”中,我們可以看到它至少需要 3 個其他輸出才能連線,即“模型”、“CLIP”和“VAE”。
CLIP 文字編碼 (對比語言-影像預訓練) [文字編碼器] 它是一個學習神經網路(由 OpenAI 釋出),瞭解影像和文字標題之間的關係。目前,我們需要建立兩個,一個是用於“正”提示,另一個是用於“”提示。
VAE 影像解碼器 Variational AutoEncoder) [影像解碼器] 它是一種生成神經網路模型,學習壓縮和重建畫素,同時還學習該資料的機率表示。
空潛在影像 這是用來設定最終輸出尺寸以及每次生成的影像批次數量。
K 取樣器 在這種情況下,“K”指的是影像解碼過程中取樣過程中的步驟數或迭代次數。它們可以被視為“排程程式”,允許擴散模型以多少步執行。
儲存影像 這是輸出影像載入的地方。

節點程式設計 - 連線節點

[編輯 | 編輯原始碼]
ComfyUI Node Step 1

我們可以透過管道開始連線塊圖。

注意:無論哪種方式都可以,但如果您想將多個節點連線到一個節點,建議的方法是從塊圖輸入(左側)連線到塊圖輸出(右側),以最大限度地減少以後可能出現的錯誤和問題。看 連線 CLIP 到 K 取樣器部分

讓我們從載入檢查點塊圖和K 取樣器塊圖開始。單擊模型輸出(帶淡紫色圓圈),您會注意到只有模型輸入突出顯示,而其餘部分呈灰色(表示不可連線)。

另一個需要注意的點是,要注意輸入和輸出資料型別的顏色(只有顏色相同的才能連線在一起)。


現在,載入檢查點應透過模型管道連線到K 取樣器


CLIP需要連線。如上所述,CLIP與文字編碼器相關,因此,我們可以連線兩個 CLIP 塊圖。 .

但是,在我們開始連線它們之前,首先將塊圖重新命名為更合適的名稱,以避免混淆。右鍵單擊塊圖,然後單擊“屬性面板”。應為 S&R 提供標題、模式、顏色和節點名稱,更改兩個標題節點名稱(用於 S&R)以更具自解釋性的名稱,例如POSITIVE CLIP(作為示例)。

注意:我們希望區分哪些塊圖用於正提示,哪些塊圖用於負提示。

載入檢查點CLIP輸出連線到正負塊圖的clip輸入(見黃色管道)。最後,將CLIPCONDITIONING輸出連線到K 取樣器的輸入(見橙色管道),分別對應塊圖的名稱。

您現在應該已經有了左側螢幕截圖中所示的連線。


注意:將輸出資料型別 CONDITIONING 連線到輸入資料型別正或負可能會出現潛在的錯誤,因此請反轉順序,從輸入正/負連線到輸出 CONDITIONING。


正如我們現在在載入檢查點塊圖中看到的那樣,VAE塊圖仍然未連線。

我們可以單擊VAE輸出資料型別(紅色管道)以檢視它可以連線到哪些,只有VAE 解碼塊圖的vae輸入突出顯示。


VAE 解碼圖塊中,對取樣器輸入資料型別(粉紅色管道)重複相同的操作,以連線到K 取樣器潛在輸出資料型別。


最後,對VAE 解碼影像輸出資料型別(藍色管道)重複相同操作,將其連線到儲存影像框圖中的影像輸入資料型別。


您應該獲得與以下類似的圖表,並且只保留K-Sampler空潛影像框圖之間的一個連線,以使其功能正常。

Almost finished nodes connections
幾乎完成節點連線







空潛影像中的潛伏連線到KSamplerlatent_image以完成工作流程。

恭喜,您已完成基本的文字到影像工作流程,並對所有這些工作原理有了更深入的瞭解。


節點程式設計 - 生成影像

[編輯 | 編輯原始碼]

嘗試點選側邊欄右側的“排隊提示”。您可能一開始沒有注意到,但KSampler 節點突然變成了綠色,然後出現了一個綠色的條形,開始橫向移動。

這意味著 AI 藝術模型正在工作。


要了解每個設定的含義,請訪問AI 藝術生成手冊/Stable Diffusion 設定瞭解更多資訊。

改進 ComfyUI

[編輯 | 編輯原始碼]

將提示名稱儲存為影像輸出檔名

[編輯 | 編輯原始碼]

當我們生成影像時,預設情況下會獲得ComfyUI_0001.png等通用名稱,但您知道只需幾個額外的步驟,我們就可以在 ComfyUI 中將提示儲存為檔名嗎?

以下是我們非常輕鬆地做到這一點的方法。

Naming prompts as filenames
將提示命名為檔名

正向 CLIP框圖上,右鍵單擊框圖以搜尋用於 S&R 的節點名稱的名稱。

使用您之前鍵入的值(在本例中為“正向 CLIP”),並在儲存影像框圖內的filename_prefix中鍵入以下內容

%Positive_CLIP.text% ,請參考左側圖片以瞭解清楚。

從現在開始,如果儲存影像框圖未以任何方式更改,您將看到儲存的影像的檔名更改為。

有關更多自定義名稱的資訊,此處是我們可以更改 ComfyUI 輸出檔案(尤其是提示名稱)的自定義名稱的頁面。

提高影像生成質量

[編輯 | 編輯原始碼]

SDXL 及更高版本在 1024 x 1024 畫素影像上進行訓練,因此低於該解析度的影像會導致影像質量低下,如此處實驗所示


因此,在空潛影像框圖上,您可以將寬度和高度都調整到1024 畫素,以獲得更美觀的影像生成。



參考資料

[編輯 | 編輯原始碼]

[1] https://www.youtube.com/watch?v=RVwIz63bxN4 - KSamplers

[2] https://www.reddit.com/r/StableDiffusion/comments/174g0s9/prompt_in_file_name_in_comfyui/ - 將檔名新增到提示中

華夏公益教科書