讀書筆記

《ComfyUI 工作流程實戰——從初學到專業,打造專屬的圖像生成工作流》

13 個主題 · 934 個要點

《ComfyUI 工作流程實戰》是一本節點式工具 ComfyUI 實戰教學書,聚焦 Stable Diffusion/FLUX 圖像生成的概念、節點功能、操作步驟與參數設定。全書分三部分:雲端入門與環境建置、經典圖像問題解法、FLUX 模型與相關工作流,對應 GPT 圖像生成背後的同源架構。

1-1 · 00:00

對於剛入門 ComfyUI 的使用者(一)

對於剛入門 ComfyUI 的使用者,安裝有足夠算力顯卡的電腦與環境設置並不容易,建議在採購 AI 硬體前先從線上平台建立基礎知識。

1-2 · 00:15

對於剛入門 ComfyUI 的使用者(二)

目前線上平台有 TensorArt(TA)、RunningHub、liblib、FAL 等,多為基礎免費並贈送登入點數與算力。使用這些平台時要注意每個平台可用的節點(Node)與模型(Model)有差異,需具備足夠節點知識才能取得好結果。

1-3 · 00:30

初期學習不建議直接載入 Yo

初期學習不建議直接載入 YouTuber 或其他教學推薦的工作流(.json)檔案,而是直接從平台新建、載入預設工作流,先學平台概念再進行設計;也可參考平台上其他使用者分享的「工作流模式」與「AI 小工具」組件學習。

1-4 · 00:45

網址

網址:https://tensor.art/,可用 Google 帳號註冊。TA 有很多專屬模型,平台贈點大方(設計 AI 小工具、模型被運作、每天發佈圖片都有點數獎勵),缺點是節點比較老舊,設計複雜工作流較困難。

1-5 · 01:00

從「帖子」轉換為工作流的實作示範

從「帖子」轉換為工作流的實作示範:點選帖子功能 → 找到喜歡的圖(範例:玻璃瓶義大利麵)→ 點「做同款」查看參數。範例參數:

1-6 · 01:15

基底模型

基底模型:HyperFlux-8-Steps(Q8)

1-7 · 01:30

兩個 Lora 與權重

兩個 Lora 與權重:Holographic Echoes Ultra e6(0.5)、Flux Pro Mix e10(0.8)

1-8 · 01:45

採樣器(Sampler)Euler

採樣器(Sampler)Euler、調度器(Scheduler)Normal、採樣步數 10、FLUX 引導 3.5

1-9 · 02:00

圖片種子

圖片種子:2511669841,圖片尺寸 768*1152

1-10 · 02:15

提示詞

提示詞:illuminated, translucent, borg cube intricate, ultra detailed. fries noodles 做法:先從模型與 Lora 的 i 小圖示查看細節,標記起來(打星星標記可得兩個點數)。

1-11 · 02:30

開啟工作流模板(一)

開啟工作流模板:跳過教學 → 選「新建工作流」→ 選「FLUX-text to image(13 Nodes)」→ 按「使用」;因基礎模型是 FLUX,用 FLUX 的「文字產生圖片」模板可模擬效果。

1-12 · 02:45

開啟工作流模板(二)

也可透過「AI 小工具」頁籤取得模板(點選 AI 小工具 → 發布 AI 小工具)。

1-13 · 03:00

TA 節點介面預設中文

TA 節點介面預設中文,但部分節點標示英文、較混亂,初學者可用右上角切換語言(複製 → Switch Locale → 簡體中文 / English (US))切為英文。

1-14 · 03:15

建置節點的實際步驟(一)

建置節點的實際步驟:雙點空白處跳出節點清單,輸入 loadlora 搜尋,找到 LoraLoaderModelOnly 節點加入;點節點上 Loraname 選擇標記過的 Lora,並設 Strength_model 為記錄的參數(如 0.8)。

1-15 · 03:30

建置節點的實際步驟(二)

右鍵節點可以 Clone 複製出第二個 LoraLoaderModelOnly,選擇另一個標記的 Lora(如 Flux Pro Mix,權重 0.5)。連接兩個節點的紫色 Model 接點,並與 Checkpoint 的 Model 輸出連接。

1-16 · 03:45

建置節點的實際步驟(三)

選 Checkpoint 的 ckpt_name 時,若使用者標記的是 Hyperflux 模型,可能因為是 Q8(量化)模型 而無法直接執行(2025年3月當時 TA 工作流尚不支援直接載入量化模型)——

1-17 · 04:00

建置節點的實際步驟(四)

這種情況下需要用「替代答案」讓它可運作:HyperFlux = FluxDev 模型 + HyperLora。

1-18 · 04:15

建置節點的實際步驟(五)

因此需再 Clone 一個 Lora 節點,設為 HyperLora,其權重較特殊、設為 0.13;前端改為 Model 連接出三個對應的 Lora,並將底模改為 FLUX-dev-fp8。

1-19 · 04:30

建置節點的實際步驟(六)

此例說明:即使線上平台好用,仍必須具備模型基礎知識,才能排解問題、自行設計工作流。接著搜尋 Empty Latent Size Picker 節點接入 KSampler 的 Latent 輸入(搜尋方式同節點搜尋),

1-20 · 04:45

建置節點的實際步驟(七)

設定 width/height(範例 768*1152)——因為原本 TABatch 與 Picker 節點不是需要的節點,要斷開替換。

1-21 · 05:00

建置節點的實際步驟(八)

最後在 KSampler 填入採樣器/調度器/步數等數值:Step 改為 10,其餘(sampler_name: euler、scheduler: simple、cfg 1.0、denoise 1.0)維持預設;並設定 Seed 與提示詞。

1-22 · 05:15

完成節點與參數設定(TA N

完成節點與參數設定(TA Node - PromptText 提示詞、TA Node - Seed 種子)後,點擊「運行」測試工作流,即可產生與帖子範例基本相同樣式的圖(義大利麵置於玻璃立方體)。

1-23 · 05:30

前述操作遠比直接「做同款」複雜

前述操作遠比直接「做同款」複雜,但透過工作流可以變更許多細微參數(如「提示詞風格」「模型取樣」「參考圖風格」等),讓結果可更細緻地微調。

1-24 · 05:45

範例(一)

範例:搜尋 Prompt,找到 PromptStyler 節點,掛在提示詞之前,可設定提示詞的風格(範例設為 Postmoderm Architecture 後現代建築),讓生成內容變成建築物;

1-25 · 06:00

範例(二)

節點含 style、log_prompt、auto_select_style、auto_refresh 等參數。

1-26 · 06:15

若前面操作卡關也不用擔心

若前面操作卡關也不用擔心,第二節會介紹節點的基本概念,第三節將離開 TensorArt 平台、轉入本地端環境配置介紹。

2-1 · 00:00

UI 面板上每一個小方塊稱為「節點」

UI 面板上每一個小方塊稱為「節點」。最基礎的模型節點是 Checkpoint,包含三個不同顏色的輸出:MODEL(紫)、CLIP(黃)、VAE(紅)。

2-2 · 00:15

節點的基本邏輯是「同色對接」

節點的基本邏輯是「同色對接」:Model 紫色只能接紫色接口、CLIP 黃色接黃色、VAE 紅色接紅色,同色接口可以相互串接(例如多個 Lora 節點的 Model 可依序串接,連續使用多個 Lora)。

2-3 · 00:30

節點連接線(Pipe)顏色對照表

節點連接線(Pipe)顏色對照表:紫色 = 模型(Model) 橘色 = 條件(Conditioning) 粉紅色 = 潛空間(Latent) 紅色 = VAE 亮黃色 = CLIP 藍色 = IMAGE 綠色 = 其他(並非什麼都能接,需實測是否能連線)

2-4 · 00:45

每個節點上有編號(ID)

每個節點上有編號(ID),代表呼叫節點的順序編號,只有在使用特殊節點時才用得到;TA 平台雖顯示 ID,但基本沒作用,可先忽略。

2-5 · 01:00

每個節點都有參數(Widget)

每個節點都有參數(Widget),例如 Lora 的強度參數是「Strength_Model」。

2-6 · 01:15

Properties / P

Properties / Properties Panel:屬性與屬性側欄,可設置節點屬性(名稱、顏色、模式等)。節點模式共四種:Always、Never、OnEvent、OnTrigger,目前除了 Always 與 Never 外,其他兩個沒有明顯功能。

2-7 · 01:30

Lock

Lock:鎖定節點,鎖定後用右鍵可以 Unlock。

2-8 · 01:45

Resize / Title

Resize / Title / Colors / Shapes:變更節點大小、名稱、顏色、形狀。

2-9 · 02:00

Collapse

Collapse(摺疊):節點被折疊後只剩標題,許多節點須展開後才能正確連接,已 Collapse 的節點按右鍵 Expand 即可展開。若不希望使用者調整某節點參數,通常會搭配 Collapse 與 Pin 把節點縮小並釘選。

2-10 · 02:15

Pin

Pin(釘選):將節點釘在畫布上後無法移動,被釘選的節點上方會有紅針標記,可右鍵 Unpin 恢復移動。

2-11 · 02:30

Bypass

Bypass(忽略):跳過節點,被跳過的節點不會被運行,例如把 Lora 節點 Bypass 後就會失去該 Lora 的效果,再按右鍵 Bypass 一次即恢復啟用。

2-12 · 02:45

Copy

Copy:拷貝節點,拷貝後在其他節點上按右鍵會出現 Paste 選項,可把 A 節點的內容和參數完全複製到 B 節點。

2-13 · 03:00

Clone

Clone(克隆):直接增加一個內容相同的節點(前面 TA 範例已用過)。

2-14 · 03:15

Convert Widget

Convert Widget To Input(轉換組件為輸入):新手最不懂的概念之一——把節點的組件(Widget,例如 Strength_model)轉為輸入接口,再按右鍵一次可變回節點中的一般參數。

2-15 · 03:30

這樣的用途(一)

這樣的用途:可以改變或增加參數控制,例如給一個 0.5 的浮點(Float 節點,含 Number 參數)接到 Lora 的 strength_model。

2-16 · 03:45

這樣的用途(二)

在 TA 平台裡,可利用這個屬性去製作 AI 小工具的輸入——例如用 TA Node - SelectParams 設定 Low/Medium/High 三種不同強度浮點值(0.0/0.5/1.0),小工具發佈後使用者選擇 Low/Medium/High,強度就對應套用。

2-17 · 04:00

FixNode(修復與重建)

FixNode(修復與重建):斷開節點所有連接,還原節點原本沒有連接的預設值,節點被搞亂時可用它還原。

2-18 · 04:15

Primitive

Primitive:因為 Widget 可以轉為輸入,所以有一個通用節點可控制各種節點的輸入,就是 Primitive,雙點取找到它加入,一開始它空空如也,顯示「connect to widget input」——因為它要你連接節點的輸入參數。

2-19 · 04:30

若把兩個 Lora 的 St

若把兩個 Lora 的 Strength_model 都用右鍵轉換過來、再連上同一個 Primitive,它會自動偵測到數值型別是 Float,兩個節點就會同步共用同樣的 Lora 強度,用於效果比對、或多個節點參數想同步時很有用。

2-20 · 04:45

Primitive 節點上會(一)

Primitive 節點上會出現「Control_after_generate」參數(Value):意思是「生成後的參數控制」,有四個選項——增加、隨機、固定、減少,方便每次生成後調整參數效果(隨機值每次生成後隨機;

2-21 · 05:00

Primitive 節點上會(二)

增加/減少則每次生成後增加或減少相對應參數)。例如可用它在每次生成後降低 Denoise、或提升 Step,用以測試比對生成結果。

2-22 · 05:15

轉接用節點

轉接用節點,用途是在變更前端節點時,能保持後端的連接。很多時候需要增刪前端節點,但後面節點不變,用 Reroute 可方便操作、不必重新連接多次。

2-23 · 05:30

直接連線三個 Node 與使

直接連線三個 Node 與使用 Reroute 兩者結果相同,但若變更來源節點,直接連線需重新連三次,用 Reroute 只需將它拉到 Reroute 即可。

2-24 · 05:45

選取多個節點後

選取多個節點後,在畫面空白處按右鍵,選擇「Add Group To Selected Nodes」可建立 Group,用於對節點進行群組式操作。

2-25 · 06:00

建立群組後

建立群組後,可用群組右下角拉大/縮小群組大小(剛建立時右下角會與節點貼齊,放大後可擴大群組範圍)。

2-26 · 06:15

對群組按右鍵會出現的項目(一)

對群組按右鍵會出現的項目:Fit Group To Nodes:若節點卡在群組邊界或大小超出群組,把群組大小回復到節點邊界。Select Nodes:選取群組中全部節點,選取後拖曳可整批移動群組節點。

2-27 · 06:30

對群組按右鍵會出現的項目(二)

Set Group Nodes to Never / Bypass Group Nodes:完全不執行或跳過此節點群組,再按一次可恢復執行。

2-28 · 06:45

對群組按右鍵會出現的項目(三)

Add Selected Nodes To Group:把群組外的節點加入群組(操作方式:1. 選取該群組外的節點 2. 到群組上按右鍵選 Add Selected Nodes To Group 3. 群組會擴大並包含新節點,例如把 KSampler 加入群組)。

2-29 · 07:00

對群組按右鍵會出現的項目(四)

Edit Group:編輯群組屬性,包括大小、顏色、釘選、以及字體尺寸(Font Size)。

2-30 · 07:15

群組的「字體尺寸」屬性用於設

群組的「字體尺寸」屬性用於設置 Group Title 大小的字級,有些工作流會看到大大的標題標示作者,就是字體尺寸設很大的結果。

2-31 · 07:30

使用 Remove 可移除整

使用 Remove 可移除整個 Group,但不包括 Group 中的節點;要連節點一起移除,須先 Select Nodes → 右鍵 → Remove,然後再對 Group Remove 一次。

2-32 · 07:45

群組右鍵選單其他項目

群組右鍵選單其他項目:Node Templates、Arrange(float left/right,排列群組)、Follow execution、Go to node、Edit Group(內含 Pin、Title、Color、Font size、Remove)。

2-33 · 08:00

把很多節點轉換為一個群組(合(一)

把很多節點轉換為一個群組(合併輸入與輸出成一個節點外觀)。這個功能在許多線上平台中不建議使用,因為不少線上平台無法處理 GroupNode 的邏輯;

2-34 · 08:15

把很多節點轉換為一個群組(合(二)

在本地環境中,由於它會合併輸入與輸出,也會對輸入參數有不同程度影響,雖然能讓節點整體看起來精簡好看,但多數時候不建議使用節點組功能。

2-35 · 08:30

操作方式(一)

操作方式:選取節點後右鍵 → Convert to Group Node,輸入群組名稱即可(例如在 TA 平台中測試會出現「tensor.art 說:Enter group name」對話框,但轉換後 TA 平台實際上無法使用——

2-36 · 08:45

操作方式(二)

生成的 Loras 節點裡 strength_model 會顯示 NaN)。

2-37 · 09:00

雖然轉換後在 TA 平台無法運行(一)

雖然轉換後在 TA 平台無法運行,右鍵仍可用兩個功能:Convert to Nodes(轉換回個別節點)、Manage Group Node(管理節點組——可看到被合併節點的個別內容,並能設定這些組件是否呈現給使用者調整,以及控制輸入輸出;

2-38 · 09:15

雖然轉換後在 TA 平台無法運行(二)

介面含 Inputs/Widgets/Outputs 分頁,可勾選 Visible、按 Save/Close)。

2-39 · 09:30

Template 範本機能

Template 範本機能,類似跨工作流的節點複製貼上功能。如果有一大堆工作流要管理,或想從預設範本抄作業到自己的工作流,只要把需要的節點(含連接)選取完成後,在空白處按右鍵選擇「Save Selected as template」,再替範本取名字,即可儲存範本。

2-40 · 09:45

範本會包括選取的工作流及其對應連接內容

範本會包括選取的工作流及其對應連接內容,可跨工作流使用範本,並能連續多次調用,但需留意所需節點及連結都必須被選取到,才能正確使用範本。

2-41 · 10:00

若已儲存過範本

若已儲存過範本,使用右鍵選擇 Node Templates 就會跳出所有已儲存的範本清單供選用。

3-1 · 00:00

除了線上版本

除了線上版本,許多人在本地端使用並配置有顯示卡的電腦,以下概述顯示卡、硬碟、記憶體三個環節:

3-2 · 00:15

顯示卡(一)

顯示卡:目前無論哪種 AI 軟體,基本要用 Nvidia 顯示卡,且至少需 30 系列以上(如 3060-3070),因為 CUDA 架構的相容性,若採用其他顯示卡/繪圖晶片會受到許多限制。

3-3 · 00:30

顯示卡(二)

若新購電腦用於 AI 製作,除了 NVidia 不作他想——許多玩家會建議用 Mac,但 Mac 僅整合記憶體有優勢,推理效能與模型相容性和 NVidia 顯示卡差很多,適合語言模型(僅注重記憶體),但不適合注重推理生圖速度的場合。

3-4 · 00:45

顯示卡(三)

顯示卡 VRAM 記憶體至少需要 12GB,8GB 記憶體在 SDXL 以下模型尚可用,但較高階模型(如 FLUX)用 8GB 會有相當多限制;

3-5 · 01:00

顯示卡(四)

若要運行 FLUX 模型並完成基本繪圖任務,以 2025 年現階段而言,RTX4070 或 4060 是比較好的選擇,VRAM 至少要有 12-16GB。

3-6 · 01:15

硬碟(SSD)

硬碟(SSD):考量繪圖模型大小及各種本地佈署的 AI 運用,SSD 至少需 2-4TB 容量,且模型「不可放置於傳統硬碟」——傳統硬碟載入速度對 AI 模型而言極慢,可用於放置生圖成品/結果,但用於訓練、放置模型基本無法使用。

3-7 · 01:30

一般記憶體(RAM)

一般記憶體(RAM):需有 32-64GB,RAM 較不影響圖片生成,但某些情況下可能影響大量圖片縮放,是透過 RAM 做為緩衝。

3-8 · 01:45

CPU

CPU 等其他硬體影響不大,多數情況下不會用 CPU 進行運算,選主流新一代 CPU 即可。

3-9 · 02:00

真正的 AIPC 是一台有

真正的 AIPC 是一台有 NVidia 顯示卡、且配置能執行 ComfyUI 的 PC,能用 GPU 執行 ComfyUI,則其他基於 Python 的 AI 環境都沒問題。

3-10 · 02:15

目前 ComfyUI 有兩個版本

目前 ComfyUI 有兩個版本:安裝版、攜帶版。攜帶版好處是設置在 Python 攜帶環境之下,可自由把環境搬移到外接硬碟、隨身碟等,不影響系統中的 Python 版本,也不用安裝任何程式。

3-12 · 02:45

安裝版本則像普通軟體安裝進系統(一)

安裝版本則像普通軟體安裝進系統,已包括 Manager 的基本介面及安裝介面,適合新手使用,但缺點是目前還不是成熟版本;

3-13 · 03:00

安裝版本則像普通軟體安裝進系統(二)

下載網址:https://www.comfy.org/download,官網提供 Windows(NVIDIA)/Mac(Apple Silicon) Beta 下載按鈕,及「Install from Github」選項。

3-14 · 03:15

安裝版本則像普通軟體安裝進系統(三)

考量安裝版本尚不成熟,本書環境安裝原則上以攜帶版為主。其他還有秋葉版(aki)等非官方版本/安裝方式,本書不介紹——非官方版本並非自己建構,若之後元件衝突等較不容易排查,建議安裝仍以官方版本為基礎。

3-15 · 03:30

若使用移動版(攜帶版)

若使用移動版(攜帶版),必須安裝 ComfyUI Manager 以便處理安裝節點、模型的許多問題;安裝它之前必須先安裝 Git,讓 Windows 可使用 Git 命令:https://git-scm.com/downloads,選擇對應作業系統版本安裝即可。

3-17 · 04:00

安裝版啟動後就等待 Web 介面出現(一)

安裝版啟動後就等待 Web 介面出現,攜帶版則會有完整的啟動訊息,啟動訊息有幾個重點:Add extra search path 訊息:導入額外路徑的內容,若將路徑設定指向預設路徑以外(例如 WebUI)的模型,可讓兩個軟體共用模型,在此可看到訊息。

3-18 · 04:15

安裝版啟動後就等待 Web 介面出現(二)

ExtraSearchPath 的資料設定在 ComfyUI 底下的 extra_model_paths.yaml 檔案,用記事本打開後可設定其數值(範例為 WebUI 的模型路徑),注意斜線方向——

3-19 · 04:30

安裝版啟動後就等待 Web 介面出現(三)

Python 架構的斜線方向與 Windows 不同(yaml 中路徑用 models/Stable-diffusion 這種正斜線寫法);

3-20 · 04:45

安裝版啟動後就等待 Web 介面出現(四)

範例欄位含 base_path、checkpoints、configs、vae、loras(可多行,如 models/Lora、models/LyCORIS)、upscale_models(可多個路徑用 | 分隔,

3-21 · 05:00

安裝版啟動後就等待 Web 介面出現(五)

如 ESRGAN/RealESRGAN/SwinIR)、embeddings、hypernetworks、controlnet。設定好存檔後,啟動路徑中就能看到這些被導入的 extrapath。

3-22 · 05:15

安裝版啟動後就等待 Web 介面出現(六)

下一階段會顯示 ComfyUI-Manager 安裝相依套件的訊息、啟動時間、Platform、Python version/executable、ComfyUI Path/Base Folder Path、User directory、

3-23 · 05:30

安裝版啟動後就等待 Web 介面出現(七)

ComfyUI-Manager config path、Log path 等,標記 ComfyUI 移動版的 Python 版本(範例 3.11.6,2023 年版本)。

3-24 · 05:45

安裝版啟動後就等待 Web 介面出現(八)

接著會有全局性質訊息,影響整個 ComfyUI 節點,會在所有節點啟動之前啟動,顯示 PreStartup、系統訊息(Checkpoint files will always be loaded safely、Total VRAM/RAM、

3-25 · 06:00

安裝版啟動後就等待 Web 介面出現(九)

pytorch version(例如 2.5.1+cu124,即移動版使用的 torch 與 CUDA 版本,若需要安裝 whl 安裝檔時此版本很重要)、xformers version、Set vram state、Device、

3-26 · 06:15

安裝版啟動後就等待 Web 介面出現(十)

Using xformers attention、ComfyUI version、ComfyUI frontend version)。

3-27 · 06:30

安裝版啟動後就等待 Web 介面出現(十一)

xformers 是使用許多節點時不可或缺的套件,除標示 xformers 版本外也標示注意力(attention)使用內容;ComfyUI 也支援 Sage attention 等方式,若非進階使用者,至少要有 xformers attention。

3-28 · 06:45

安裝版啟動後就等待 Web 介面出現(十二)

在 Windows 下安裝 xformers 需要透過特定路徑,且需與 CUDA 及 Pytorch 版本配合,不易透過 pip 直接安裝,需在 ComfyUI/update 資料夾底下按右鍵開 PowerShell,

3-29 · 07:00

安裝版啟動後就等待 Web 介面出現(十三)

輸入類似指令取得適合檔案: ..\python_embeded\python.exe -s -m pip install xformers --index-url https://download.pytorch.org/whl/cu124 (以上是

3-30 · 07:15

安裝版啟動後就等待 Web 介面出現(十四)

CUDA 12.4 版本下安裝 torch 的過程,它會到指定路徑抓取相關組件,Torch 等套件也是用這種方式更新或安裝。) 最後是節點清單,要注意安裝的節點有沒有 Import Failed。

3-31 · 07:30

安裝版啟動後就等待 Web 介面出現(十五)

目前 ComfyUI 的節點很少會有整批失敗的情形,除非少掉一些啟動的關鍵套件,若有 Import Failed 情形,可到 Github 上查找 Issues,

3-32 · 07:45

安裝版啟動後就等待 Web 介面出現(十六)

了解有無類似情況處理方式(畫面顯示大量 custom_nodes 的 Import times 清單,例如 ComfyUI-TCD、ComfyUI-NPNet、comfyui-portrait-master 系列、

3-33 · 08:00

安裝版啟動後就等待 Web 介面出現(十七)

ComfyUI-Detail-Daemon、ComfyUI_TTP_Toolset、Skimmed_CFG、ComfyUI-IC-Light-Native、ComfyUI-Adaptive-Guidance、ComfyUI-InstantID、

3-34 · 08:15

安裝版啟動後就等待 Web 介面出現(十八)

ComfyUI-ELLA 等常見自訂節點套件)。

節點清單 Import times 畫面

4-1 · 00:00

ComfyUI 推薦且常用的(一)

ComfyUI 推薦且常用的三種模型類型,支援大量模型種類(圖片甚至包括 Nvidia Sana,連語言模型 Deepseek 也支援),節點系統容易開發,學會 ComfyUI 後面就有廣大開源、閉源 AI 模型世界,可說是 AI 世界的敲門磚。

4-2 · 00:15

ComfyUI 推薦且常用的(二)

從基礎開始推薦三種模型:SD1.5:大約 4GB VRAM 即可產圖。SDXL:所需大約 6GB VRAM。

4-3 · 00:30

ComfyUI 推薦且常用的(三)

FLUX:本書第三大章有完整模型概念介紹,擁有廣泛社群支援、是目前主流模型,需至少 8GB 以上 VRAM 才有基本可用生圖能力,12-16GB 才能較穩定產圖。

4-4 · 00:45

之後章節會繼續介紹重要組件如

之後章節會繼續介紹重要組件如 Controlnet、IPAdapter、提示詞模型(WD14/Florence)等。

4-5 · 01:00

透過 ComfyUI Man(一)

透過 ComfyUI Manager 自動安裝模型:點右上角 Manager 圖示 → 打開 Manager → 點取 Model Manager,即可在裡面找到模型;

4-6 · 01:15

透過 ComfyUI Man(二)

用下拉式選單選 Type(模型種類)與 Base(基底模型),打綠色勾勾的是已安裝在電腦上的,點 Install 即自動下載模型。

4-7 · 01:30

從 Civitai 網站下載模型(一)

從 Civitai 網站下載模型:目前最大型的模型庫是 Civitai(https://civitai.com/models),進入 Models 分頁後按 Filters 展開過濾條件,依模型分類優先選擇代表性模型(例如 SDXL)。

4-8 · 01:45

從 Civitai 網站下載模型(二)

前三名常見模型中,DreamShaper 雖古老但對多種風格處理能力不錯;較真實風格則是 RealVisXL 或 JuggernautXL。以 RealVisXL 為例,點擊圖片後繼續點 Download 即可下載。

4-9 · 02:00

從 Civitai 網站下載模型(三)

模型頁面的藍色分頁代表模型相對應的歷史版本,頁面往下拉會有模型建議參數,例如高清修復基本需三步驟:Denoise 強度至少 0.5、CFG 在 1 或 2;

4-10 · 02:15

從 Civitai 網站下載模型(四)

使用 Lightning 模型時要用 DPM++SDE 採樣器,4 到 6 個 Step、CFG 1 至 2。這些生圖資訊可用於配置 ComfyUI 工作流。

4-11 · 02:30

從 Civitai 網站下載模型(五)

模型下載後,放置於 ComfyUI/Models/Checkpoints 資料夾中,並使用 LoadCheckpoint 節點載入。

4-12 · 02:45

HuggingFace(HF)

HuggingFace(HF) 也是常用模型庫,許多節點的模型都是自 HF 配置,大多數重要模型在 ComfyUI 中可透過 ComfyUI_Manager 的 Model Manager 安裝,第三章提到 FLUX 時可能有些模型需從 HF 配置。

4-13 · 03:00

中國大陸的 LIBLIB(h(一)

中國大陸的 LIBLIB(https://www.liblib.art/)也是可註冊的模型庫,台灣人註冊需透過微信(可用 Facebook 海外認證身分,透過手機版 Wechat 解決,不一定需要中國手機)。

4-14 · 03:15

中國大陸的 LIBLIB(h(二)

LIBLIB 中許多模型是付費的,新手通常上手一陣子才會付費,可用篩選條件盡量篩出免費模型,但有時仍會混有付費或不可下載的模型。

4-15 · 03:30

若使用 ComfyUI 移動版

若使用 ComfyUI 移動版,需要幾個安裝套件使用的基本指令,初次使用者可能不熟悉,特別在移動版環境中這些指令更為陌生。

4-16 · 03:45

Python 若要安裝特殊版本套件

Python 若要安裝特殊版本套件,可能要透過編譯,編譯除了耗時,也可能環境根本不適合編譯,所以通常網路上會提供編譯完成的 whl 檔案以供安裝,特別在 Windows 底下,常需尋找符合版本的 whl 檔案。

4-17 · 04:00

某些套件會安裝大量依賴

某些套件會安裝大量依賴,這些依賴可能和既有環境衝突、導致整個 ComfyUI 崩潰,因此也可選擇獨立安裝套件。

4-18 · 04:15

以換臉重要套件「insigh

以換臉重要套件「insightface」為例,實作本地安裝套件的過程(編譯版本可在換臉節點 Reactor 中找到:https://github.com/Gourieff/ComfyUI-ReActor):

4-19 · 04:30

先下載正確的 insight(一)

先下載正確的 insightface whl 版本,例如在 ComfyUI 啟動資訊裡確定 python 版本為 3.11,

4-21 · 05:00

確定要下載的安裝版本後

確定要下載的安裝版本後,拷貝到 /ComfyUI/update 資料夾底下。

4-22 · 05:15

依照之前安裝 xformers 的方式

依照之前安裝 xformers 的方式,使用指令安裝: ..\python_embeded\python.exe -s -m pip install insightface-0.7.3-cp311-cp311-win_amd64.whl

4-23 · 05:30

這樣就完成 insightf

這樣就完成 insightface 套件的安裝。

4-24 · 05:45

每個平台的 ComfyUI 都有些差異

每個平台的 ComfyUI 都有些差異,而本地的功能是相對最完整的,只是 ComfyUI 版本變更迅速。

4-25 · 06:00

本地介面左側工具列圖示(之後(一)

本地介面左側工具列圖示(之後改版可能再變更,先給概念):1. 排程結果(指針圖案,展示排程產生圖片結果) 2. 節點庫(書本圖案,節點集合列表) 3. 模型庫(方形圖案,已安裝的各種模型) 4. 工作流(資料夾圖案,

4-26 · 06:15

本地介面左側工具列圖示(之後(二)

已儲存的工作流) 5. 節點地圖(列出所有節點,方便移動到特定節點編輯) 6. 月亮(切換深色模式) 7. 齒輪(打開設定介面)。

4-27 · 06:30

比較重要的是 Queue 按鈕(一)

比較重要的是 Queue 按鈕,作用類似 TA 平台的「運行」,但因算力在本地端,可自由設定 Queue 方式不受限制,下拉後有幾種運行模式:Queue:一般排程運行。Queue (Instant):立即執行,點下去馬上開始。

4-28 · 06:45

比較重要的是 Queue 按鈕(二)

Queue (On Change):工作流變更立即執行。旁邊的數字(如 1)代表排程產生次數,數字越大工作流排程數目越多。X 與方塊圖案:X 是「停止目前排程」,方塊是「清除後面的排程」。

4-29 · 07:00

比較重要的是 Queue 按鈕(三)

例如一次下 10 個排程,用 X 只終止目前排程、剩下 9 個仍會運行;用方塊則清除後面 9 個排程、只有目前繼續運行。若要全部排程都不要(連目前執行的也不要),要先按方塊、再按 X 終止。

4-30 · 07:15

Workflow(一)

Workflow 選單:New、Open(Ctrl+O)、Browse Templates、Save(Ctrl+S)、Save As、Export、Export (API)。

4-31 · 07:30

Workflow(二)

Save/SaveAs 會出現在資料夾工作流清單中;要到其他平台使用,需用 Export 匯出為 json 檔案,日後可由 Open 簡單開啟。

4-32 · 07:45

Workflow(三)

Browse Templates:開啟本地端各種工作流範本,內建許多範本可供學習或直接載入使用(分類如 ComfyUI Examples、Basics、Flux、ControlNet、Upscaling、Video、SD3.5、SDXL、Area Composition、

4-33 · 08:00

Workflow(四)

3D、Audio 等)。

4-34 · 08:15

Edit(一)

Edit 選單:Undo、Redo、Refresh Node Definitions(快捷鍵 r,可用於更新節點的定義,例如某些節點更新後、不必重啟 ComfyUI 就能刷新)、Clear Workflow(Backspace,清除工作流)、

4-35 · 08:30

Edit(二)

Clipspace(可看 ComfyUI 之前生成、被保留在 Clip 空間的資料)、Impact: Refresh Wildcard。

4-36 · 08:45

右上角圖示

右上角圖示:ImageFeed(需安裝特定節點才會出現)、Manager(打開 ComfyUI Manager)、星星旁的兩個三角形圖示用以清理記憶體中的模型(因載入過的模型會存在 VRAM 中,按下可清理)。

4-37 · 09:00

雖然 ComfyUI 已有自動清理機制

雖然 ComfyUI 已有自動清理機制,但有些節點可能不會自動清理模型。其他書籤、分享等節點使用情況較少。

4-38 · 09:15

ComfyUI Manager(一)

ComfyUI Manager 常用功能:Custom Nodes Manager:節點管理,用以安裝與更新節點。若用它安裝,較新節點可能有安全性設定問題(需被驗證過),如不得不使用可降低安全性或透過前面提過的 git clone 從外部安裝。

4-39 · 09:30

ComfyUI Manager(二)

大多數節點可從此處完成安裝。Install Missing Custom Nodes:安裝缺失的節點,下載別人的工作流發現缺少節點時可用此指令自動尋找安裝,但有時仍找不到(原因很多,例如實際上找到了卻 Import Failed,安裝後無法正確載入)。

4-40 · 09:45

ComfyUI Manager(三)

CustomNodes In Workflow:列出目前工作流的客製化節點。ModelManager:之前介紹過的重要功能,用以搜尋及使用模型。UpdateAll:更新所有節點,注意這功能也會更新所有節點對應的依賴,節點很多時可能造成長時間安裝。

4-41 · 10:00

ComfyUI Manager(四)

Update ComfyUI:更新 ComfyUI,更新後需重新啟動。Restart:重新啟動。其他如切換 ComfyUI 版本、安裝 PIP 包、使用 Git 安裝節點、使用快照等試驗性功能較少用到,不做詳細介紹——

4-42 · 10:15

ComfyUI Manager(五)

節點開發者也大多使用指令碼引導,所以不太推薦使用 ComfyUI Manager 安裝 PIP 包或 Git。

4-43 · 10:30

基本設定

基本設定:開啟「開發者模式(API 快取)」;語言可選英文,也可調整成中文(以下先以簡體中文示範)。

4-44 · 10:45

畫面設定

畫面設定:可修改連線的線條樣式(連線繪製樣式:直角線 / 直線 / 曲線 / 隱藏),曲線最直觀但也能改為直角線,依個人偏好。

4-45 · 11:00

其他常見開關

其他常見開關:啟用 DOM 元素懸停(滑鼠與遮罩交互感知)、中鍵單擊創建新的轉接點、刪除節點時保留連線、吸附高亮節點、連線自動吸附到節點接口、啟用工具提示(延遲可設,如 500ms)、節點製作周期標籤/節點 ID 標籤/節點源標籤(顯示全部)、雙擊節點標題以編輯等。

4-46 · 11:15

節點搜索框設定

節點搜索框設定:節點建議數量(預設 5 太少,建議調高,例如 10)、顯示節點頻率、顯示節點 ID 名稱、顯示節點類別、顯示節點預覽等建議打開,以便有較多節點可快速拉取查詢;在搜索中顯示實驗性節點/已棄用節點的開關也在此。

4-47 · 11:30

線上平台是用模型選擇介面(一)

線上平台是用模型選擇介面,不用思考模型庫問題,但若使用過 A1111 的 WebUI 平台就會知道,必須在本地端儲存模型。

4-48 · 11:45

線上平台是用模型選擇介面(二)

下一章會介紹以 Model/CLIP/VAE 為基礎的工作流結構,FLUX 章節會詳細介紹更複雜內容(如 GGUF 模型、Turbo 類型等),這裡先簡單說明下載模型該放哪裡。

4-49 · 12:00

以 Civitai 為例(一)

以 Civitai 為例,篩選頁面的 Model types 分類(Checkpoint、Embedding、Hypernetwork、Aesthetic Gradient、LoRA、LyCORIS、DoRA、Controlnet、Upscaler、Motion、

4-50 · 12:15

以 Civitai 為例(二)

VAE、Poses、Wildcards、Workflows、Detection、Other)對應到 /ComfyUI/Models 底下同名的資料夾。

4-51 · 12:30

以 Civitai 為例(三)

Checkpoint 就放在 Checkpoint 資料夾,後面提到的 FLUX 模型及影片模型很多放在 Unet 或 Diffusion Models 資料夾。

4-52 · 12:45

Controlnet 放在(一)

Controlnet 放在 Controlnet 資料夾(大多數 Controlnet 可在 ComfyUI Manager 中直接找到)。Upscaler 放在 Upscale 資料夾底下。VAE 放在 VAE 資料夾。

4-53 · 13:00

Controlnet 放在(二)

Lora/LyCORIS 放在 Loras 資料夾底下。

4-54 · 13:15

其他網站上沒有的項目(如 C

其他網站上沒有的項目(如 CLIP/CLIPVISION、以及後面提到的 IPAdapter),若工作流出現紅字找不到模型,通常可在 ComfyUI Manager 中直接找到並下載,下載後會直接進入對應資料夾,不必煩惱特定模型位置。

4-55 · 13:30

多數節點會自動下載模型(一)

多數節點會自動下載模型,但少數節點需自行配置大量模型至模型庫。範例:節點 Layer_Style_Advance(https://github.com/chflame163/ComfyUI_LayerStyle_Advance)初次使用容易在執行時發生錯誤——

4-56 · 13:45

多數節點會自動下載模型(二)

遇到錯誤時,第一個要讀的是節點的 Github 說明(如 README_CN.MD),往下閱讀可看到「下載模型」說明:海外用戶請從 huggingface 下載全部模型檔並複製到 ComfyUI\models 資料夾(連結提供外掛程式需要的所有模型檔),

4-57 · 14:00

多數節點會自動下載模型(三)

或按各節點說明下載模型檔。以 Ultra 命名的節點使用 vitmatte 模型,需下載到 ComfyUI/models/vitmatte 資料夾。要在模型庫裡完成這樣的配置,才能使用帶有 Vitmatte 功能的節點。

4-58 · 14:15

網路上可下載到許多學習資源(一)

網路上可下載到許多學習資源,除 TensorArt 外還有 OpenArt、RunningHub 等各色平台,以及網友分享的工作流。

4-59 · 14:30

網路上可下載到許多學習資源(二)

除 ComfyUI 內建的 Template,新手也建議先從標準範例工作流開始,它有所有工作流的基礎實作方式:https://comfyanonymous.github.io/ComfyUI_examples/(內容包含 Hires Fix、Img2Img、

4-60 · 14:45

網路上可下載到許多學習資源(三)

Inpainting、Lora、Hypernetworks、Embeddings/Textual Inversion、Upscale Models(ESRGAN 等)、Area Composition 等範例)。

4-61 · 15:00

若下載了特定節點(一)

若下載了特定節點,每個節點也常會有範例工作流,例如下載 IPAdapter 節點,它的範例就有很多風格轉換的例子與做法(節點主頁 https://github.com/cubiq/ComfyUI_IPAdapter_plus,

4-63 · 15:30

帶入工作流後

帶入工作流後,推薦依照兩個基本步驟進行:補充缺失節點、手動配置模型。

4-64 · 15:45

下載完工作流(一)

下載完工作流,會出現許多叉叉圖案的節點框(紅框標示),這些就是缺失節點。在本機上可用 ComfyUI Manager → Install Missing Custom Nodes 去處理;

工作流缺失節點的紅框標示畫面

4-65 · 16:00

下載完工作流(二)

TA 等雲端平台較困難,必須手動替換成其他可用的節點,這需要對節點有足夠基礎知識和經驗,基礎不足便很難配置。

4-66 · 16:15

模型部分一定要手動換成自己有的

模型部分一定要手動換成自己有的,或去下載模型;若在 TA 等平台上,要依前面所說方法到平台上標記需要的模型之後載入。所有的 Model/CLIP/VAE 以及下拉式選單節點都必須點開一次,確保模型都有正確被載入。

4-67 · 16:30

補充缺失節點範例(一)

補充缺失節點範例:下載完工作流會出現許多下拉式選單節點(如 Unet Loader (GGUF)、DualCLIPLoader (GGUF)、LoraLoaderModelOnly、CLIP Text Encode)必須逐一檢查,

4-68 · 16:45

補充缺失節點範例(二)

下拉選單中選出自己實際擁有的模型檔名(GGUF 模型清單範例:FLUX1\AWPortrait-FL-Q8、FLUX1\Asian_Realistic-Q4_K_S、atomixFluxGGUF_q8 等)。

4-69 · 17:00

補充缺失節點範例(三)

即使模型你已經有了,路徑與檔名也可能與工作流原作者的不同,需要替換成自己的。以上就是從網路上取得工作流後的一個基本動作。

5-1 · 00:00

這是 ComfyUI 的導論資料

這是 ComfyUI 的導論資料,以下內容會不斷提到「基本工作流」的概念,所有後續內容都立基於基本工作流的結構。

5-2 · 00:15

開啟基本「產圖」工作流(一)

開啟基本「產圖」工作流:從工作列 Workflow → Browse Template 開始;依安裝的節點不同,Template 清單也不同,但最基本一組(ComfyUI 分類)一定包含 Image Generation、Image to Image、

5-3 · 00:30

開啟基本「產圖」工作流(二)

2 Pass Upscale 等。先打開第一個範例工作流「Image Generation」。

5-4 · 00:45

依前一章介面教學

依前一章介面教學,按下排程箭頭(Queue)就能產生圖(範例:瓶子的圖),但工作流的概念是要說明圖如何被產生出來的。

5-5 · 01:00

工作流最左方的起始節點 Lo(一)

工作流最左方的起始節點 LoadCheckPoint,是有三個 Output 接口的節點,分別是 Model、CLIP、VAE。

5-6 · 01:15

工作流最左方的起始節點 Lo(二)

ckpt_name:模型名稱,是下拉式選單項目,會從 comfyui/models/checkpoints 底下尋找模型清單;checkpoint 在此通常是指整合了這三種輸出的模型。

5-7 · 01:30

工作流最左方的起始節點 Lo(三)

模型架構裡,這三個元件通常整合在同一個檔案中,通稱「模型」,但 Checkpoint 中文意思是「檢查點」而非「模型」——

5-8 · 01:45

工作流最左方的起始節點 Lo(四)

因為在深度學習領域,模型是完整的深度學習架構,包含網路架構設計(層數、神經元數量、激活函數等),同時定義損失函數、優化器選擇及各種超參數設定,這些元素共同構成模型的完整框架。

5-9 · 02:00

工作流最左方的起始節點 Lo(五)

相對地,檢查點(CKPT/Checkpoint)是訓練過程中保存的模型狀態快照,記錄特定時間點的模型權重和偏置值,通常會定期保存——

5-10 · 02:15

工作流最左方的起始節點 Lo(六)

這種保存機制使我們能在訓練中斷時從上次狀態繼續訓練,或在模型表現不理想時回退到較好狀態,也可保留多個不同訓練階段的模型狀態以供比較分析。checkpoint 通常只包含模型的參數,不包含完整模型架構。

5-11 · 02:30

工作流最左方的起始節點 Lo(七)

因此實際應用中,載入 checkpoint 時必須先定義與原始相同的模型架構,才能將保存的參數正確載入使用——這種設計使 checkpoint 檔案相對較小,更容易管理和傳輸。

5-12 · 02:45

工作流最左方的起始節點 Lo(八)

所以概念上兩者是有差異的,只是在 ComfyUI 裡頭對 Checkpoint 的概念又不太相同——這邊 Checkpoint 泛指一種打包好的模型,包括模型(Model)、文本編碼器(CLIP)與變分自動編碼器(VAE)三個組件。

5-13 · 03:00

工作流最左方的起始節點 Lo(九)

它通常可直接用於 A1111 架構作為模型使用,但在 ComfyUI 中就必須往下解析這三個項目的功能及變化。

5-14 · 03:15

由於這三個組件使用上的差異

由於這三個組件使用上的差異,往工作流下面看,會看到 CLIP 連接的區域。

5-15 · 03:30

範例工作流節點(一)

範例工作流節點:CLIP文本編碼(有正面/負面兩個,分別接到 K採樣器的 positive/negative)、K采樣器(參數:seed、control_after_generate、steps 20、cfg 8.0、sampler_name euler、

5-16 · 03:45

範例工作流節點(二)

scheduler normal、denoise 1.00)。

5-17 · 04:00

CLIP 與正負面提示詞(一)

CLIP 與正負面提示詞:工作流連接內容相當簡單清楚,CLIP 分出上下兩個,分別為「正面」與「負面」提示詞連接給採樣器。

5-18 · 04:15

CLIP 與正負面提示詞(二)

CLIP 的作用就是把文字編碼成模型看得懂的內容,再往下丟給採樣器——CLIP 也就是大家所知的 LLM,用以把文字轉換給模型理解,可以是 GoogleT5、ChatGLM、LLAMA3 等,也有專門訓練用以理解自然語言及文字的長 CLIP,

5-19 · 04:30

CLIP 與正負面提示詞(三)

此外還有 CLIPSKIP 的跳層……

5-20 · 04:45

概念上

概念上,在某些 Checkpoint(通常是 Pony)必須設置 CLIPSKIP 才能有合理輸出結果。

5-21 · 05:00

範例正面提示詞(一)

範例正面提示詞:beautiful scenery nature glass bottle landscape, , purple galaxy bottle,;負面提示詞:text, watermark。

5-22 · 05:15

範例正面提示詞(二)

透過文本編碼器輸出的結果稱為「條件」(Conditioning),採樣器會依據條件進行採樣。

5-23 · 05:30

seed(種子)

seed(種子):設為隨機數生成的種子(如 1566802087002286),相同種子值會產生相同結果,便於重現特定生成效果,也就是「Noise Seed」,用以隨機產生噪聲。

5-24 · 05:45

control_after_

control_after_generate(生成後控制):設為 random,表示生成完成後會隨機應用控制效果,基本分為「隨機」與「固定」。

5-25 · 06:00

steps(步數)

steps(步數):設為 20 步,代表擴散模型進行去噪的迭代次數。步數越多生成細節可能更精細,但也需要更多計算時間;之後章節會介紹「Hyper/Lightning」短步數模型或縮短步數的各種方式。

5-26 · 06:15

cfg(Classifier(一)

cfg(Classifier Free Guidance):設為 8.0,是提示詞相關性的權重值。較高數值讓生成結果更緊密跟隨提示詞,但可能降低創造性;

5-27 · 06:30

cfg(Classifier(二)

實際上有很多控制 CFG 的方式,在 FLUX 模型中很多時候都是控制 CFG 為 1.0、而以 Guidance 取代。

5-28 · 06:45

sampler_name(採樣器)(一)

sampler_name(採樣器):使用 euler 採樣器,是一種在潛空間中進行採樣的演算法,不同採樣器會產生略微不同的視覺效果;

5-29 · 07:00

sampler_name(採樣器)(二)

euler 是最標準的採樣器,採樣器分為 SDE 與 ODE 兩大類,多數模型均適用 euler 這種 ODE 採樣器,而傳統 Stable Diffusion 模型中 DPMPP_SDE 是較常用的 SDE 採樣器。

5-30 · 07:15

sampler_name(採樣器)(三)

本書不會詳細說明採樣器演算法概念,但會介紹選用採樣器的一些方法。

5-31 · 07:30

scheduler(調度器)

scheduler(調度器):設為 normal,控制擴散過程中噪聲添加和移除的時間安排,除 normal 外常用方式也有 karras 或 sgm_uniform。

5-32 · 07:45

denoise(去噪強度)

denoise(去噪強度):設為 1.00,表示完全的去噪過程。數值範圍通常在 0 到 1 之間,影響最終圖像清晰度;在圖像對圖像(Image2Image)的生成過程中,denoise 代表與原圖相符的程度,去噪越高則重畫程度越高。

5-33 · 08:00

最後剩下 VAE 還有 La(一)

最後剩下 VAE 還有 Latent 兩個組件。若把 CLIP 的提示部分拉走、留下其他組件,可看到 VAE 扮演的角色,以及整個過程就是一個把 Latent 採樣的過程。

基本工作流 Checkpoint/KSampler/VAE Decode 畫面

5-34 · 08:15

最後剩下 VAE 還有 La(二)

VAE 有兩個連接口:Samples 與 VAE,其中 Samples 連接 Latent,Latent 這個潛在空間的圖象,最後經 VAE 解碼才會成為圖片。

5-35 · 08:30

產生的圖片是灰色色塊(一)

VAE 常見錯誤類型:產生的圖片是灰色色塊:通常是圖片根本沒進行採樣,可能要檢查 Ksampler 是否正確連接(如果只有 Latent 連接 Samples 就會這樣);此外採樣過程最後一步 VAE 解碼發生錯誤,狀況會是能看到採樣的生成過程、但最後解碼卻是灰色色塊——

5-36 · 08:45

產生的圖片是灰色色塊(二)

此狀況較少見,通常出現在區域採樣(Regional)失敗時,也可能選用了錯誤的、不符合模型提供的 VAE,造成 Latent 無法正確被解碼。

5-37 · 09:00

產生的圖片是混亂的雜點

產生的圖片是混亂的雜點:經過採樣、解碼後沒有正確的圖象,問題出在 Ksamplers。

5-38 · 09:15

VAEDecode 過程變得

VAEDecode 過程變得很慢(不算錯誤):顯示視窗出現「(Tiled VAE...)」提示,代表 VAE 正在進行分塊解碼,可能是產生的圖片太大、系統 VRAM 無法處理。

5-39 · 09:30

Latent 組件

Latent 組件:長度和寬度用以設定圖片大小,BatchSize 用以設定批次(批次代表同一批產生的圖片)。

5-40 · 09:45

批次(Batch)與清單(List)概念(一)

批次(Batch)與清單(List)概念:Batch=4 時是一個指令、同時並行運作產生四張圖片;ImageList 是一張一張圖片過去的,相當於下四次指令(Queue)的結果——

5-41 · 10:00

批次(Batch)與清單(List)概念(二)

批次過程中每張圖片大小相同,某些模型中批次也有自動類似對齊的性質,或使用特定節點可對齊批次。值得一提:無論 Batch 或 List=4,邏輯上和進行四次 Queue 還是不同的,因為 Queue 會逐張輸出,上述兩種設定則是一次輸出。

5-42 · 10:15

批次(Batch)與清單(List)概念(三)

關於 ImageList,可在 CLIP 上利用 Prompt 產生 PromptList 去進行 List=4 輸出,或採用四個不同的 Seed 字串進行(需透過不同節點),

5-43 · 10:30

批次(Batch)與清單(List)概念(四)

而 Batch=4 只需在 Latent 中設定 Batch_Size=4 即可。

5-44 · 10:45

Latent 中圖片的長寬等

Latent 中圖片的長寬等於輸出的長寬,然而長寬在不同模型中有「訓練數值」的概念,例如以下幾個常見模型建議的最大長寬:1、SD1.5:512

5-45 · 11:00

部分模型訓練資料解析度可能較高(一)

部分模型訓練資料解析度可能較高,有機會往上提升,例如 SDXL 也可能拉伸到 1536 長寬。之所以有這些限制,是因為基礎訓練資料大小的限制造成的——

5-46 · 11:15

部分模型訓練資料解析度可能較高(二)

若試圖突破生成建議大小,即使顯示卡有足夠記憶體可生成,生成圖片仍會有異常現象,最明顯異常就是圖案重疊,例如多手、多人等。很多新手生成圖片時會想:我只有指定一個人,為何模型都會生成兩個以上人物,那多半是因為解析度問題。

5-47 · 11:30

所謂 1024 解析度指長寬(一)

所謂 1024 解析度指長寬相乘(長×寬)=1024×1024 的正方形面積,也就是說若圖片是其他尺寸,只要小於這個總面積就可以,如 1280*768 的長寬比;

5-48 · 11:45

所謂 1024 解析度指長寬(二)

但也不能低於建議長寬太多,所以有一些特殊節點,幫你選擇模型適合的尺寸,同時將長寬輸出,成為後續圖片放大的參考數值。

5-49 · 12:00

圖片尺寸大小還有一個問題

圖片尺寸大小還有一個問題:基礎尺寸必須是 16 的倍數,所以輸入 1023,系統會自動修正成 1024,若真的要精準到更細緻的長寬分配,則需對結果進行裁切。

5-50 · 12:15

整個圖像生成過程就像畫師接受(一)

整個圖像生成過程就像畫師接受委託創作的歷程:Latent 空間像一塊灰色畫布,蘊含無限可能性,等待藝術家在上面揮灑創意。CLIP 模型扮演解讀委託需求的角色,像經紀人仔細聆聽並理解提示者想要的作品風格、主題和細節,將這些抽象需求轉化為具體創作方向。

5-51 · 12:30

整個圖像生成過程就像畫師接受(二)

在畫布上,Noise 像畫師初步揮灑的草稿,看似雜亂無章的雜點為最終傑作奠定基礎。Model 本身像一位經驗豐富的畫師,懂得如何從初步草稿中用他的概念逐步提煉出清晰輪廓和細節,所以人們總說最重要的就是底模。

5-52 · 12:45

整個圖像生成過程就像畫師接受(三)

Sampler 代表畫師創作的整個過程,像畫師手中的畫筆,透過反覆描繪、修改和調整,逐漸將模糊概念轉化為具體圖像,過程中畫師不斷評估作品、加入細節、調整色彩,直到作品逐漸成形。

5-53 · 13:00

整個圖像生成過程就像畫師接受(四)

最後,VAEDecode 就像完稿階段,畫師確認所有細節完美呈現後為作品上光、裱框,將這幅藝術品最終呈現在觀眾面前——整個過程展現了從抽象概念到具體圖像的轉化。

5-54 · 13:15

Model 的連接可連到許多組不同節點

Model 的連接可連到許多組不同節點。可先把 Model 分成 Transformer 模型與 Unet 模型兩大類,在 ComfyUI 中明顯把 Unet 的模型連接做出一個 Unet 分組。主流模型大致區分:

5-55 · 13:30

SD1

SD1.5/SDXL:前一世代,通用於 Unet 的模型。

5-56 · 13:45

SD3/SD3(一)

SD3/SD3.5/Flux:這是 Transformer 模型。這兩類模型適用的節點及模型特性差異不小,以前可以使用的 Unet 模型節點,在 Transformer 模型使用起來會發生錯誤。

5-57 · 14:00

SD3/SD3(二)

有幾樣技術如 HyperTile 等,多半情況下不會用到,比較常用到的幾項大概是:

5-58 · 14:15

FreeU_V2

FreeU_V2:用以控制圖片的光效以及增強模型的畫面品質,基本邏輯也是改變注意力(參數:b1、b2、s1、s2)。

5-59 · 14:30

PerturbedAtten

PerturbedAttentionGuidance(PAG):也是用以改變注意力,對主體強化、細節與畫面結構會有改善(參數:scale)。

5-60 · 14:45

PatchModelAddD(一)

PatchModelAddDownscale(Kohya Deep Shrink):用來調整圖片變大時的畫面變形問題(參數:block_number、downscale_factor、start_percent、end_percent、

5-61 · 15:00

PatchModelAddD(二)

downscale_after_skip、downscale_method、upscale_method)。

5-62 · 15:15

用圖片實例比較清楚 PAG

用圖片實例比較清楚 PAG 的差異和結果,基礎模型是 SD1.5。

5-63 · 15:30

從圖例(武士/劍客女性人物比(一)

從圖例(武士/劍客女性人物比較圖)可看出 PAG 的差異及對畫面影響的表現,要注意:使用 PAG 之後會讓生成時間明顯變長。

PAG 開啟前後的武士/劍客人物對照

5-64 · 15:45

從圖例(武士/劍客女性人物比(二)

對所有 Unet 模型,PAG 原則上都能提升畫面效果,但需要時間等待注意力引導完成;類似工具有 SAG(自注意力引導),但 PAG 效果通常比 SAG 更好、細節表現較佳。

5-65 · 16:00

從圖例(武士/劍客女性人物比(三)

PAG 結果也涉及畫面的採樣效果,並非每個模型都用 PAG 3.0 就會有較好結果(範例:開啟至 3.0 後畫面真實感降低不少、有對比過高的狀況),所以還是要交互測試後再選用最好的方式。

PAG 1.0-3.0 四張漸變對照

5-66 · 16:15

效果示範

效果示範:原始模型是 1024*1024 基底模型,將它變更解析度為 1704*1704,並用不同 Downscale 程度呈現畫面(對照組:沒使用此節點 vs 強度 1.5/2.0/2.5)。

PatchModelAddDownscale 四種強度對照

5-67 · 16:30

邏輯(一)

邏輯:模型在一定尺寸下訓練,所以先在模型能接受的尺寸下生成之後,在後面步數放大生成。Start/End 決定開始/結束的放大步數,提供 DownScale 與 Upscale 兩個方法,把生成中的 Latent 在過程中放大與縮小採樣。

5-68 · 16:45

邏輯(二)

Downscale_Factor 是縮小比,若要生成 1024、factor 為 3,則放大縮小時以三分之一為比例縮小。

5-69 · 17:00

原則上保持預設值情況下

原則上保持預設值情況下,此節點可將 SD1.5 模型基本拉高到 1024,人物多頭多手狀況較少,但也容易出現偽影問題及錯誤線條表現,尺寸放越大錯誤越嚴重,除非有特殊需要,使用時基本保持預設值 2.0 即可。

5-70 · 17:15

在 Unet 模型中(一)

在 Unet 模型中,Free_U 是相當常用的組件,因牽涉 Unet 模型詳細概念,解釋起來會佔大量內容,若需使用,官方建議數值:SDXL:b1:1.3, b2:1.4, s1:0.9, s2:0.2 SD1.5:b1:1.5, b2:1.6, s1:0.9,

5-71 · 17:30

在 Unet 模型中(二)

s2:0.2

5-72 · 17:45

Free_U 的 b 控制主體

Free_U 的 b 控制主體、s 控制細節,b 通常設在 1 以上、s 基本低於 1;使用 Free_U 之後,如同 PAG,主體概念會變得較為明顯(有實例對照圖)。

Free_U_V2 開啟前後對照

5-73 · 18:00

此系列對圖像主體沒有像 Fr(一)

此系列對圖像主體沒有像 Free_U 等節點那樣明顯,是對模型參數偏移的函數微調,有助於模型在不同解析度中取得較佳結果,特別是對 Transformers 類模型。

5-74 · 18:15

此系列對圖像主體沒有像 Fr(二)

根據社群實測結果,以 Flux 模型而言,在基本偏移(Base_Shift)與最大偏移(Max_shift)之間預設值給了較合理結果,若需要哪種模型只要加入適合的 ModelSampling 節點即可;若有實驗精神可試著微調 Shift 參數——

5-75 · 18:30

此系列對圖像主體沒有像 Fr(三)

基本 Shift 參數在 1024 解析度運作幾乎沒有影響,若解析度小於 1024 則影響較明顯。其他如 SD3、Auraflow 等都可用它處理模型偏移度,多數情況下使用預設值即可。

5-76 · 18:45

類似 A1111 的「模型合併」(一)

類似 A1111 的「模型合併」,用以合併模型的權重,甚至針對模型各區塊進行合併;合併後在 ComfyUI 中可直接透過工作流生圖測試,測試不同模型合併、增減參數的結果。

5-77 · 19:00

類似 A1111 的「模型合併」(二)

本書非模型開發指南,不會詳細介紹「模型合併、增減拆分、區塊比對」概念,但若要開發合併模型,ComfyUI 也有相當強大完整的內建功能。

5-78 · 19:15

LoadLoRA(一)

LoadLoRA 與 LoraLoaderModelOnly 兩節點差異:LoadLoRA 同時輸出 Model 與 CLIP(對 CLIP 也有影響),LoraLoaderModelOnly 只輸出 Model(對 CLIP 沒有影響)。

LoadLoRA 與 LoraLoaderModelOnly 節點畫面

5-79 · 19:30

LoadLoRA(二)

Lora 大部分影響主要在 Model 層面,對 CLIP 解讀影響較小,不過若 Lora 包含特定概念,需要「觸發詞」(例如某些 Lora 要特定人物名字才會召喚出該人物),建議使用 LoadLora(含 CLIP)結果較精準——

5-80 · 19:45

LoadLoRA(三)

因為它會對 CLIP 有所影響,而 LoraLoaderModelOnly 不會,僅改變模型產生的結果,CLIP 本身負責文字的解讀作業。實際控制時,以它對模型強度(Strength_model)影響較大,產生的圖像會有較明顯差異。

5-81 · 20:00

CLIP 節點組合圖示範(一)

CLIP 節點組合圖示範:CLIPTextEncodeSDXL、CLIPTextEncodeSD3、CLIPTextEncodeFlux、CLIPTextEncodeHunyuanDiT、CLIPTextEncodeControlnet、

5-82 · 20:15

CLIP 節點組合圖示範(二)

CLIPTextEncodeSDXLRefiner、CLIPTextEncodePixArtAlpha、CLIPSetLastLayer、CLIPAttentionMultiply、SetCLIPHooks、CLIPMergeSimple、CLIPSave 等。

5-83 · 20:30

CLIP 節點組合圖示範(三)

純粹由 CLIP 進出的節點不多,除了合併、儲存用途以及模型注意力(KQV)調整的項目,其他大多數是 CLIPTextEncode 的變體。

CLIP 相關節點組合總覽

5-84 · 20:45

由於每個模型的 CLIP 結構不同(一)

由於每個模型的 CLIP 結構不同,只要支援某個模型,它使用的 CLIP 都可以個別提示,或指定解析度的差異(解析度設定特別用於 SDXL 情形),但實際上很少使用解析度指定功能,而針對 T5/CLIP_I/CLIP_G 等分別提示,

5-85 · 21:00

由於每個模型的 CLIP 結構不同(二)

對畫面精確程度也沒有太明顯改善或差異。即使有很多分開提示的方式可對畫面有所微調,但實際產圖時較少做出分別提示。

5-86 · 21:15

此處只特別介紹一個節點(一)

此處只特別介紹一個節點:CLIP Set Last Layer,就是 Civitai 上常提到的 CLIP SKIP,這邊和 A1111 不同的用詞是:A1111 提到跳過 2 就是 2,而在 ComfyUI 中會變成 -2。

5-87 · 21:30

此處只特別介紹一個節點(二)

某些特定模型(例如 Pony)在 CLIP SKIP 會有很大影響,若沒有正確 SKIP 則畫面會產生問題。

5-88 · 21:45

三個節點(一)

三個節點:Conditioning (Concat)(conditioning_to + conditioning_from)、Conditioning (Combine)(conditioning_1 + conditioning_2)、

5-89 · 22:00

三個節點(二)

ConditioningAverage(conditioning_to + conditioning_from + conditioning_to_strength 參數,預設 1.00)。

5-90 · 22:15

Conditioning 這

Conditioning 這個概念是 ComfyUI 相對複雜的一環,其中最基本、卻也最多人搞混的就是這三個條件式,何謂 Combine/Concat/Average?

5-91 · 22:30

其實 Combine=合併(一)

其實 Combine=合併、Concat=連結、Average=平均,所以使用 Combine 時就是兩個條件加在一起。

5-92 · 22:45

其實 Combine=合併(二)

以「粉紅色沙發(主體/第一條件)+ 泳池(背景/第二條件)」為實例:Combine:游泳池水裝在沙發中,兩者結合(呈現出「泳池狀的沙發」融合畫面)。Concat:泳池與沙發分開,兩者獨立(呈現正常沙發放在泳池邊的畫面)。

5-93 · 23:00

其實 Combine=合併(三)

Average:上下平均,預設 1.0 只呈現沙發,需設成 0.5 才會讓沙發跟泳池「平均」同時出現在畫面上。

5-94 · 23:15

其實 Combine=合併(四)

若兩個條件是數值 2 與 3:Combine 後呈現結果是 2+3=5(疊加);Concat 之後呈現 2、3 兩個並存(不融合、各自保留);

5-95 · 23:30

其實 Combine=合併(五)

Average 之後預設是指 2(除非設定強度,強度加大後 3 才會出現在畫面上),從而產生 2 與 3 要素之間強弱差異的平均結果。範例將 Average 設為 0.6,沙發占畫面還是很大但已被縮減、泳池要素開始出現;若設為 0,泳池會直接取代沙發。

5-96 · 23:45

其實 Combine=合併(六)

通常進行 Combine 時,上面的條件會大於下面條件的作用效果,所以多個條件合併時建議把想凸顯的主體放在上面,背景等條件放下面,以免合併後主體不明顯。

5-97 · 24:00

ConditioningZeroOut

ConditioningZeroOut:作用比較像「把條件歸零」,用在不需要負面提示詞、例如 CFG=1.0 的情況下使用。

5-98 · 24:15

設定條件作用的遮罩以及區域

設定條件作用的遮罩以及區域,可在不同區域使用不同條件的效果。

5-99 · 24:30

節點(一)

節點:Conditioning (Set Area)(width/height/x/y/strength)、Conditioning (Set Area with Percentage)(以百分比設定)、ConditioningSetAreaStrength(strength)、

5-100 · 24:45

節點(二)

Conditioning (Set Mask)(conditioning+mask+strength+set_cond_area)。

5-101 · 25:00

SetArea 部分只要指定

SetArea 部分只要指定圖片生成的區域範圍條件,以下實例以 Mask 為主介紹。Conditioning Set Mask 這個節點必須搭配 Conditioning Combine 使用,以達成完整的應用條件。

5-102 · 25:15

工作流中有兩個條件

工作流中有兩個條件:「游泳池(swimming pool)」與「粉紅色沙發(a large pink sofa)」,由於這兩物品通常不容易同時存在畫面上,所以可用來凸顯模型是否有依照條件區域生成。

5-103 · 25:30

先畫一個黑白 Mask

步驟:先畫一個黑白 Mask,以指定圖片生成的區域(可用小畫家或其他繪圖軟體簡單製作),再用 Convert Image to Mask 節點把圖片轉換為遮罩(參數 channel,範例用 green)。

5-104 · 25:45

轉換為遮罩後

轉換為遮罩後,接入 Mask 接口,將 Conditioning Set Mask 節點接上沙發的 Conditioning,之後拉到 Conditioning Combine 的第一個條件,作為遮罩區域的生成設計。

5-105 · 26:00

接著進行遮罩以外區域的生成設計

接著進行遮罩以外區域的生成設計:把帶有 Swimmingpool 的條件,用 Conditioning Combine 連接、作為第二個條件,完成遮罩以外區域的生成設定。

5-106 · 26:15

最後把兩個條件連接到採樣器(

最後把兩個條件連接到採樣器(KSampler),讓它生成圖片。

5-107 · 26:30

結果觀察(一)

結果觀察:沙發並非完全卡在遮罩裡面,因為沙發形狀不可能完全等於遮罩形狀,生成的圖片模型會考慮整體合理性。若希望沙發完全在遮罩中生成、不跑到遮罩外,可設定作用範圍為 MaskBounds,只是因為模型中沒有此形狀的沙發,所以仍會出現異常。

5-108 · 26:45

結果觀察(二)

此外,條件強度也會影響結果,強度設定越低,則區域中的物品也有可能幾乎不會生成。

5-109 · 27:00

注意這些節點的「條件合併

注意這些節點的「條件合併、條件遮罩」等,大多僅適用於純文字對圖片的條件生成,並非所有 Conditioning 都適合使用,例如 Controlnet 直接使用它們往往效果不明顯或難以控制,若想在遮罩中控制 Controlnet,需要客製化節點來達成目的。

5-110 · 27:15

Controlnet(一)

Controlnet 是 SD 模型的重要概念之一,主要組合方式是「提示詞」、「圖像」、「預處理器」、「Controlnet 模型」、「Conditioning」這幾個要素,每種模型都有自己對應的 Controlnet 類型,通常基本兩種是 Canny、Depth。

5-111 · 27:30

Controlnet(二)

由於各模型使用的 Controlnet 控制程度不同以及需求差異,書中不會一次介紹各種預處理器以及控制模型,而是針對用途時逐步帶到相對應內容,此處只針對基本工作流結構做介紹。

5-112 · 27:45

圖片透過 Anyline 處

圖片透過 Anyline 處理後會變成一張線稿,成為後續 Controlnet 的參考圖,通常決定 Controlnet 的要素有:1. 參考圖的品質 2. 參考圖的解析度 3. 控制的強度 4. 控制的步數範圍。

5-113 · 28:00

基本 Controlnet 節點(一)

基本 Controlnet 節點:Apply ControlNet(輸入 positive/negative/control_net/image/vae,輸出 positive/negative;

5-114 · 28:15

基本 Controlnet 節點(二)

參數 strength 1.00、start_percent 0.000、end_percent 1.000)。

5-115 · 28:30

基本 Controlnet 節點(三)

strength 較容易理解,只要設定強度即可處理;start/end percent 較複雜——例如 10 步中,0.2 是從第二步開始,0.8 是第八步結束,之後讓模型自由擴散。

5-116 · 28:45

對圖片的影響(一)

對圖片的影響:概念上,使用越完整的 Controlnet 步數,對圖片畫質影響越大,因為控制了擴散模型的表現越多,模型越容易產生不完全的採樣與噪點,所以通常在應用了 Controlnet 之後,會再採樣一次修復,或者是提前終止 Controlnet 的使用,

5-117 · 29:00

對圖片的影響(二)

讓它在之後以沒有 Controlnet 的方式完成繪製。

5-118 · 29:15

完整範例(動漫女性角色線稿→

完整範例(動漫女性角色線稿→上色):示範一個完整的 Controlnet/Anyline 工作流,包括起始圖、預處理線稿以及取樣完成圖。

5-120 · 29:45

Controlnet 的預處理階段(二)

過程中先把參考圖片利用 Controlnet_Aux 的 Anyline 節點繪製過,作為圖片生成用的線稿,其中使用 PixelPerfect 以修正圖片尺寸,確保生成的解析度與線稿圖對應。

5-121 · 30:00

Pixel Perfect(一)

Pixel Perfect Resolution 節點:把圖片所需輸入長寬按右鍵轉為輸入接口,並把參考圖尺寸作為輸入。

5-122 · 30:15

Pixel Perfect(二)

用途是在參考圖尺寸與想產生的尺寸不同時,依想要的尺寸去變更參考圖大小,避免參考圖太小而產生的圖太大、造成控制不足問題;確定要產生的圖片尺寸後,再把解析度接口輸入到預處理器。

5-123 · 30:30

AnyLine Lineart(一)

AnyLine Lineart 節點參數:image/resolution 輸入,merge_with_lineart(如 lineart_anime)、lineart_lower_bound 0.00、lineart_upper_bound 1.00、

5-124 · 30:45

AnyLine Lineart(二)

object_min_size 25、object_connectivity 1。Anyline 是製作線稿時很常用的預處理器,因為要製作卡通圖片,將線稿模式改為 lineart_anime,可視需求改為 lineart_realistic 等不同線稿模式,

5-125 · 31:00

AnyLine Lineart(三)

預處理方式會有所差異。物件連接方式微調通常保持預設值即可。

5-126 · 31:15

Apply Controlnet 的接法(一)

Apply Controlnet 的接法:接口包括「正負面提示詞」、VAE、Image 以及 Controlnet 模型。

5-127 · 31:30

Apply Controlnet 的接法(二)

Image 是接入預處理器完成的線稿圖,Controlnet 模型則要對應模型性質(例如 SD1.5 模型要選 SD15_lineart;範例因為是 SDXL 模型,使用的是 mistoline 模型),完成條件設定後就可以接入採樣器處理。

5-128 · 31:45

有部分節點在今日新模型中沒有太大用途

有部分節點在今日新模型中沒有太大用途,僅適用於特定或舊版的 SD1.5 模型才有控制效果,例如 GLIGEN 模型僅適用 SD1.5 以下模型作為文字向量;或 SZ123 條件節點僅用於特定 3D 模型的場合。

5-129 · 32:00

VAE 解碼/編碼節點(一)

VAE 解碼/編碼節點,解碼前面已介紹過(完成圖片時使用);編碼的用途是在圖片對應產生圖片或影片的場合,透過 VAE 編碼程序,能將圖片完全編入潛空間(Latent),達成初步構圖,之後再透過模型替這樣的構圖進行去噪(Denoise),

5-130 · 32:15

VAE 解碼/編碼節點(二)

達成使用模型去影響圖片風格或要素的效果。某些效果不需透過複雜的 Controlnet,而僅透過 VAEEncode 就能做到(例如轉換圖片風格),缺點是比較沒有圖片的控制。

5-131 · 32:30

與其對應的有 Tiled 節點(一)

與其對應的有 Tiled 節點,用途是分塊處理,過大的圖片當電腦 VRAM 不足時會自動進行分塊——這是因為比起採樣,VAE 解碼往往是耗最多記憶體的環節,不過很多情況下動用到 Tiled 時,畫面往往會變得比較差,原因是解析度問題,若解析度拉過高、

5-132 · 32:45

與其對應的有 Tiled 節點(二)

用到分塊時通常也超出模型能處理的大小限制。使用 Tiled 節點時,通常決定記憶體使用的是 TiledSize,分塊大小依自己記憶體去嘗試;若進行圖片解碼,記憶體不夠也自然會採用 Tiled,不用特別配置這個節點,影片的解碼則需要……

5-133 · 33:00

用到 Tiled 節點的配置(一)

用到 Tiled 節點的配置建議參考 ComfyUI 網站範例工作流以取得較好結果。節點:VAE Decode、VAE Decode (Tiled)(參數 tile_size 512、overlap 64、temporal_size 64、

5-134 · 33:15

用到 Tiled 節點的配置(二)

temporal_overlap 8)、VAE Encode、VAE Encode (Tiled)(同樣參數)。

5-135 · 33:30

使用這節點時

使用這節點時,會在 VAEEncode 建立一個遮罩,保持遮罩以外空間不被採樣,遮罩以內空間才會被採樣,但必須配合 inpainting model 使用,否則在空間中採樣不會參考空間周邊圖像,會造成不合理結果。

5-136 · 33:45

若要強制讓一般模型有類似 i

若要強制讓一般模型有類似 inpainting 效果,必須使用 Inpainting Model Conditioning 節點,以及配上差異擴散節點,此方法在後面 FLUXFill 章節會有較完整介紹。

5-137 · 34:00

範例(一)

範例:VAEEncodeForinpainting 模型工作流結構,簡單使用 Inpainting 模型,以手繪方式產生一個遮罩,並用 VAEEncodeForInpainting 處理,讓空曠室內空間中直接產生一籃蘋果。

5-138 · 34:15

範例(二)

要注意的是,模型仍會以原有空間邊界與結構作為參考,和非 Inpainting 模型進行採樣的狀況不同——若模型並非 Inpainting 模型,則透過採樣後,原有空間及結構就會改變,將不會是原來的模樣。

5-139 · 34:30

另一個節點 Set Late

另一個節點 Set Latent Noise Mask 也是較早期用在 inpainting 的節點,目前已幾乎不使用,以上面兩個節點(VAEEncodeForInpainting / InpaintingModelConditioning)為主。

5-140 · 34:45

此系列節點組用以旋轉(一)

此系列節點組用以旋轉、切割潛空間的訊息,以產生不同方向的圖片變化,通常比較常見做法是直接操作影像,但減少 VAEDecode 的程序可以減少記憶體使用以及重複進行解碼、編碼的程序(這些程序容易造成圖片改變)。

5-141 · 35:00

此系列節點組用以旋轉(二)

實測這三個節點的效果與直接處理圖片的結果相同,所以較少被使用,比較常被使用的都是其他客製化節點的 CropImage/FlipImage 等。

Crop/Flip/Rotate Latent 效果對照

5-142 · 35:15

圖例展示 Crop/Rota(一)

圖例展示 Crop/Rotate/Flip Latent 效果:Empty Latent Image(1200x1200)→ Crop Latent(裁切為 1024x1024,

5-143 · 35:30

圖例展示 Crop/Rota(二)

x/y offset 0)→ Rotate Latent(rotation 180 degrees)→ Flip Latent(flip_method y-axis: horizontally),四張對照圖顯示裁切、旋轉 180 度、水平翻轉的結果。

5-144 · 35:45

直接放大潛空間的圖像再採樣

直接放大潛空間的圖像再採樣,這也就是 A1111 的 hiresfix 基本程序,較解碼後再使用模型進行 Upscale 更節省記憶體,但由於只是放大潛空間的圖片,會產生較多偽影。

6-1 · 00:00

在討論放大

在討論放大、修復之前,先要有 Image2Image 概念。基本而言,VAEEncode 加上一定程度的 denoise,就能完成簡單的 I2I 程序,但 denoise 越高時,模型就只能抓到圖片要素,而無法維持原本構圖。

6-2 · 00:15

示範(一)

示範:用特殊節點 KSampler Gradually Adding More Denoise (efficient) 逐步增加 Noise,呈現 I2I 過程中圖片逐漸變化為提示詞狀態的效果。

6-3 · 00:30

示範(二)

此節點來自 ComfyUI-Frame-Interpolation(Fannovel16/ComfyUI-Frame-Interpolation,github.com,原用於影片補幀)。

6-4 · 00:45

邏輯(一)

邏輯:從起始的 denoise 往上加,其他條件跟 ksampler 相同,做法是設定「start_denoise」,並在「denoise_increment」上設定增量,例如開始是 0.4、每個步驟增量 0.1,共增量 6 個步驟(Steps)。

6-5 · 01:00

邏輯(二)

範例參數:seed、control_after_generate randomize、steps 25、cfg 5.0、sampler_name dpmpp_2m、scheduler sgm_uniform、start_denoise 0.40、

6-6 · 01:15

邏輯(三)

denoise_increment 0.1、denoise_increment_steps 6。

6-7 · 01:30

範例圖(水底女孩人物照)

範例圖(水底女孩人物照):denoise 在 0.5/0.6/0.7/0.8/0.9/1.0 的六張圖結果,在 0.8 以後圖片已和原圖嚴重偏移,只剩原圖要素存在(如女孩子、水底等);因使用真實系列基本模型,0.6–0.7 最像圖片轉成真人的感覺。

denoise 0.5-1.0 六張圖結果對照

6-8 · 01:45

用兩個節點協助處理 I2I(一)

用兩個節點協助處理 I2I,有助於穩定 denoise 的圖形:一是更改圖片尺寸的節點 Image Resize(來自 cubiq/ComfyUI_essentials,github.com)。

6-9 · 02:00

用兩個節點協助處理 I2I(二)

參數:width 1024、height 1024、interpolation nearest、method keep proportion、condition always、multiple_of 16。

6-10 · 02:15

較重要的三個參數是 method

較重要的三個參數是 method、condition、multiple_of:method 分為:

6-11 · 02:30

stretch

stretch:預設參數,延伸圖片,例如長寬設 1024 時,圖片被改成 1024*1024(不保比例)。

6-12 · 02:45

keep proportion

keep proportion:保持長寬比例,設定為 1024 時,圖片以長邊為基礎、設定為 1024 解析度,並保留原圖長寬比。

6-13 · 03:00

fill/crop

fill/crop:保持原圖片大小,但進行填滿或剪裁,圖片大於它時剪裁成 1024 為主的正方形,圖片小於它時則以圖片為中心填滿 1024*1024 正方形。

6-14 · 03:15

pad(一)

pad:擴展圖片,以圖片為中心進行擴展為 1024*1024 大小。(可簡單透過它執行固定尺寸的 outpainting,減少計算圖片長寬的難度。

6-15 · 03:30

pad(二)

) 範例圖(原圖 1920*1080,設定 1024*1024):左上角起分別呈現 stretch、pad、keep proportion、fill/crop 的效果對照。condition 分為:

Image Resize 四種 method 效果對照

6-16 · 03:45

always

always:永遠調整(預設值)。

6-17 · 04:00

downscale if b(一)

downscale if bigger/upscale if smaller:如果大就縮小、小就放大,依原始圖片尺寸決定(範例:原始 1920*1080、目標 1024*1024,選「如果大就縮小」則無論如何都縮小為 1024*1024,結果與預設相同)。

6-18 · 04:15

downscale if b(二)

若選 upscale if smaller 狀況不同,會把圖片強制對齊為原始尺寸,所以沒有變更尺寸的效果。

6-19 · 04:30

if bigger area(一)

if bigger area/if smaller area:產生效果與上面多數情況相同。通常會使用 always,除非有特殊需求。

6-20 · 04:45

if bigger area(二)

multiple_of(圖片倍率):很多模型中,需要的基礎圖片是 16 的倍數,若從外面任意放入照片進行 I2I,大小長寬可能並非 16 的倍數,會發生採樣錯誤,所以用此參數修正圖片長寬為 16 的倍數。

6-21 · 05:00

另一個是 WD14

另一個是 WD14,又稱提詞器,用途是描述圖片內容、將它轉為 tags,產生一個個基本要素詞,WD14 在產生動漫人物、圖形以及使用 Unet 模型時都有不錯效果(節點來自 pythongossss/ComfyUI-WD14-Tagger)。

6-22 · 05:15

參數(一)

參數:model(有許多種,常用 moat-tagger,較新的是 eva-tagger;此節點常有更新,但安裝容易遇到問題,需要安裝 onnx-runtime)、threshold 0.35、character_threshold 0.85(這兩個數值是敏感程度,決定提詞數量,

6-23 · 05:30

參數(二)

越低則提詞數量/要素越多;character_threshold 決定圖像中有怎樣的角色,通常這個分數會設較高,以防止誤認為特定動漫角色,除非特徵非常完整)、replace_underscore(下底線取代為空白)、trailing_comma(產生的標籤是否包含逗號,

6-24 · 05:45

參數(三)

通常較少開啟)、exclude_tags(很有用,例如圖有黑白要素但希望產生結果是彩色,就把類似 black_and_white 的 tag 排除掉)。

6-25 · 06:00

範例輸出 tags(一)

範例輸出 tags:1girl, solo, long hair, breasts, looking at viewer, bangs, blue eyes, black hair, hair ornament, cleavage, bare shoulders,

6-26 · 06:15

範例輸出 tags(二)

jewelry, medium breasts, collarbone, upper body, flower, earrings, parted lips, food, hair flower, blunt bangs, water, mole, lips,

6-27 · 06:30

範例輸出 tags(三)

mole under eye, floating hair, fruit, sunlight, white flower, fish, bubble, underwater, air bubble, orange \(fruit\), submerged 等。

6-28 · 06:45

初學者往往不清楚為何生成圖片

初學者往往不清楚為何生成圖片需要 HiresFix,而不能一次生成。HiresFix 主要有兩個好處:第一是可超過原來生成的解析度、為圖片進行修復;第二是經過兩次採樣後,有增加圖片細節的效果。

6-29 · 07:00

從前面介紹已知

從前面介紹已知:當超過模型訓練的圖片大小時,人物會產生多頭、多手、多腳,或一人變兩人的異常狀況,這是因為模型若以 512/1024 等解析度訓練,就會依那樣解析度產生構圖,超過該解析度時構圖就會變得混亂。

6-30 · 07:15

但若有「參考圖」作為 VAE(一)

但若有「參考圖」作為 VAEEncode 基礎,輸入進行 Image2Image 的話,此時因為有基本構圖作為參照,在一定的 Denoise 下,它只是依據基本構圖結構去改變,所以模型訓練解析度影響就比較小,從而可以產生尺寸較大的圖片,但也有缺點,

6-31 · 07:30

但若有「參考圖」作為 VAE(二)

就像前面 UpscaleLatent 提過的,透過直接拉升畫質,可能造成重疊或偽影。

6-32 · 07:45

若之前使用 A1111 生圖

若之前使用 A1111 生圖,會發現 A1111 中有「使用模型 Upscale」以及「不使用模型」兩種 HiresFix 做法,將 Hires 拉出來,會出現 Latent(潛在空間層)與一整串模型兩種方式,後面的 Upscale by 則是圖型提升的倍率。

6-33 · 08:00

A1111 的 HiresF(一)

A1111 的 HiresFix 放大方式下拉選單非常多種:Latent 系列(Latent/antialiased/bicubic/bicubic antialiased/nearest/nearest-exact)、None、Lanczos、

6-34 · 08:15

A1111 的 HiresF(二)

Nearest、DAT x2/x3/x4、ESRGAN_4x、R-ESRGAN 4x+、R-ESRGAN 4x+ Anime6B、ScuNET GAN、ScuNET PSNR、SwinIR 4x 等,並有 Upscale by(如 2)、

6-35 · 08:30

A1111 的 HiresF(三)

Hires steps、Resize width to、Hires Distilled CFG Scale(如 3.5)等參數。

6-36 · 08:45

使用模型並將圖片放大兩倍大小

使用模型並將圖片放大兩倍大小,在 ComfyUI 中的節點順序:

6-37 · 09:00

VAE Decode

VAE Decode:原圖片解碼成一般尺寸。

6-38 · 09:15

Upscale Using Model

Upscale Using Model:使用模型 4X-ultra sharp 放大圖片(輸出 UPSCALE_MODEL)。

6-39 · 09:30

Upscale Image By

Upscale Image By:因 4X-UltraSharp 會把圖形放大四倍,所以要改變圖片比例尺寸為 0.5 倍,4*0.5 得到兩倍大小(參數 upscale_method bilinear、scale_by 0.50)。

6-40 · 09:45

VAE Encode

VAE Encode:將圖片編碼,進入上面提到的 I2I 程序。

6-41 · 10:00

VAE Decode 的結果(一)

VAE Decode 的結果直接接入 Upscale Image(Using Model)。若直接使用 Latent 放大兩倍,則不進行 VAE 解碼,直接把 Latent 放大 2 倍後,

6-42 · 10:15

VAE Decode 的結果(二)

再掛進去下一階段的採樣(節點:KSampler → Upscale Latent By(upscale_method bilinear、scale_by 2.00)→ KSampler,第二次採樣 denoise 設較低如 0.40)。

6-43 · 10:30

通常使用模型 Upscale(一)

通常使用模型 Upscale 會比較理想,因為會把解碼的圖片再處理過、降低圖片噪點後再進行採樣。同種子下比較 UpscaleUsingModel 與 UpscaleLatent 至兩倍的結果:若只對 Latent 進行 Upscale,

6-44 · 10:45

通常使用模型 Upscale(二)

會產生明顯偽影與模糊結果(範例圖:瓶子照片對照,左邊 Upscalemodel 清晰、右邊 UpscaleLatent 較模糊)。

UpscaleModel 與 UpscaleLatent 效果對照

6-45 · 11:00

與 A1111 不同

與 A1111 不同,在 ComfyUI 中不同性質的模型也可利用 HiresFix 概念,去產生各種創意組合,形同由 A 模型產生圖片後,再由 B 模型圖生圖去加強 A 模型的結果,這類工作流的交錯也是 ComfyUI 吸引人的地方。

6-46 · 11:15

圖片打算往上再提升畫質(例如(一)

圖片打算往上再提升畫質(例如需要 4K 甚至更高畫質)時,HiresFix 的單純採樣方式可能產生嚴重偽影及重疊,採用 SDUpscale 是相對常見做法,它會將原有圖形進行分塊採樣,從而讓每個區塊都增加細節。

6-47 · 11:30

圖片打算往上再提升畫質(例如(二)

需要節點:ssitu/ComfyUI_UltimateSDUpscale。

6-48 · 11:45

基本流程也類似前面 Hire(一)

基本流程也類似前面 HiresFix:先用模型提升畫質後,縮放回想要尺寸,再進行修復。但要注意 SDUpscale 也是透過採樣,所以人物臉型、產品文字等細節都會受到一些影響,即使 Denoise 很低的情況也會受影響,此外還有圖像接縫問題,

6-49 · 12:00

基本流程也類似前面 Hire(二)

Denoise 越高、接縫就越嚴重。進行此程序時由於有接縫問題,Denoise 通常設為 0.15–0.2。

6-50 · 12:15

延續流程可用相同 Model(一)

延續流程可用相同 Model、Clip、VAE 往下進行工作流,Denoise 以上參數之前已介紹過,就是一個採樣器的程序,還有放大倍率設定(Scaled by),以下是設定重點:Mode_type:有線性與猜測兩種方式,使用 Chess 較合理。

6-51 · 12:30

延續流程可用相同 Model(二)

tiled_width/tiled_height:決定採樣次數,例如 2048*2048 切成 512*512 需採樣 16 次,切成 1024*1024 則次數少很多,依模型處理圖片能力,SD1.5 基本為 512,盡量不要超過 1024 為佳。

6-52 · 12:45

延續流程可用相同 Model(三)

mask_blur 以下參數用於設定減少接縫:若 denoise 很低則接縫比較沒有調整必要,因調整這些參數會因接縫修復而增加不少採樣時間,嘗試接縫修復方式往往越修越不理想,故保持預設值就好。Tiled_Decode:用於圖片過大、記憶體不足時開啟。

6-53 · 13:00

延續流程可用相同 Model(四)

完整參數列表:denoise 0.20、mode_type Chess、tile_width 512、tile_height 512、mask_blur 8、tile_padding 32、seam_fix_mode None、

6-54 · 13:15

延續流程可用相同 Model(五)

seam_fix_denoise 1.00、seam_fix_width 64、seam_fix_mask_blur 8、seam_fix_padding 16、force_uniform_tiles true、tiled_decode false。

6-55 · 13:30

相對於 SDUpscale(一)

相對於 SDUpscale,TiledUpscale 是比 SDUpscale 更穩定的方式,它會在採樣過程中對接縫進行更細節的修補,不過相對也會耗更多時間,但因沒有接縫問題,可直接給予較高的 denoise,讓圖片構成跟 Hirefix 走相同程序,

6-56 · 13:45

相對於 SDUpscale(二)

並直接進行較高倍率放大。

6-57 · 14:00

範例

範例:直接將 512*512 圖片放大到 2048*2048,使用與 Hiresfix 相同參數,即使放大四倍,圖片也沒有明顯偽影現象。需要節點:shiimizu/ComfyUI-TiledDiffusion。

6-58 · 14:15

Tiled Diffusion(一)

Tiled Diffusion 節點是個 Model 連結,使用非常簡單,只要連接 Model 即可,它的幾種方法涉及 Unet 的推理,分塊也會影響採樣速度,預設 768*768 是 SD1.5 合理採樣分塊,

6-59 · 14:30

Tiled Diffusion(二)

其中 Batch_Size 代表一次採樣同時進行的批次。參數:method MultiDiffusion、tile_width 768、tile_height 768、tile_overlap 64、tile_batch_size 4。

6-60 · 14:45

運行過程中

運行過程中,不同於 SDUpscale,它的運作更像 HiresFix。若不希望人物的臉、產品細節被變更,可使用 Controlnet 去鎖定模型的線條表現,或使用 ControlnetTile 模型進行 Upscale,這樣較能減少變更範圍。

6-61 · 15:00

這個工作流程分三個區塊(一)

這個工作流程分三個區塊:第一個區塊是標準的 Ksampler 採樣流程,用以產生圖片初稿;第二個區塊是前面介紹過的 HiresFix,將圖片以 TiledDiffusion 方式重新放大一次,放大 Denoise 設為 0.6,

6-62 · 15:15

這個工作流程分三個區塊(二)

由 1024 解析度放大到 3072 解析度(約三倍縮放);第三個區塊則是在放大過程中,將使用模型放大後的圖片,利用 Controlnet 的 Depth 深度圖去固定原有圖片的架構,以避免於 HireFix 之後變形。

6-63 · 15:30

範例(女性人物+水果珠寶場景)

範例(女性人物+水果珠寶場景):在 HiresFix 過程中使用 Controlnet 鎖定畫面,以減少偽影、控制畫面的做法——放大前後對照顯示細節(水滴、水果反光等)大幅增加但整體構圖保持穩定,人物没有變形。

ApplyControlnet+HiresFix 完整工作流與結果

6-64 · 15:45

工作流節點分三區塊觀察(一)

工作流節點分三區塊觀察:第一區塊 Sampler(Load Checkpoint、CLIP Text Encode、Empty Latent Image、KSampler、VAE Decode);

6-65 · 16:00

工作流節點分三區塊觀察(二)

第二區塊 HiresFix(Tiled Diffusion、Load Upscale Model、Upscale Image (using Model)、Image Resize、VAE Encode、KSampler(第二次採樣));

6-66 · 16:15

工作流節點分三區塊觀察(三)

第三區塊 Controlnet(Depth Anything、Load ControlNet Model、SetUnionControlNetType、Apply ControlNet、Pixel Perfect Resolution)。

6-67 · 16:30

完整節點細節確認(0091)(一)

完整節點細節確認(0091):Sampler 區塊(Load Checkpoint SDXL/realvisXL_v40_lightning、Empty Latent Image 1024x1024、

6-68 · 16:45

完整節點細節確認(0091)(二)

KSampler steps 6/cfg 2.0/dpmpp_2m/sgm_uniform);HiresFix 區塊(Tiled Diffusion method Mixture of Diffusers、tile_width/height 1024、

6-69 · 17:00

完整節點細節確認(0091)(三)

tile_overlap 64、tile_batch_size 4;Load Upscale Model 4x-UltraSharp.pth;Image Resize 到 3072x3072 method keep proportion;

6-70 · 17:15

完整節點細節確認(0091)(四)

第二次 KSampler steps 6/cfg 2.0/denoise 0.60;VAE Decode (Tiled) tile_size 1024/overlap 64);

6-71 · 17:30

完整節點細節確認(0091)(五)

Controlnet 區塊(Depth Anything model depth_anything_vitl14.pth;Load ControlNet Model SDXL controlnet-union;

6-72 · 17:45

完整節點細節確認(0091)(六)

SetUnionControlNetType type depth;Apply ControlNet strength 1.00/start_percent 0.000/end_percent 1.000)。

6-73 · 18:00

使用 Tile 模型

使用 Tile 模型,甚至可以針對原圖進行完整的去噪+高畫質修復,但要注意:這種方法並無法把圖片進行所謂無限的放大,且使用 Tile 模型時,很多時候區域細節會損失——因原來的圖像已經把模型的表現力限制住,所以細節和原圖相像,如此就失去了再重新採樣、加強原圖細節的目的。

6-74 · 18:15

範例(一)

範例:使用 Tile 的完整工作流(Controlnet 區塊含 Depth Anything → Load ControlNet Model → SetUnionControlNetType → Apply ControlNet)。

6-75 · 18:30

範例(二)

結果觀察:出來的圖片幾乎和原圖放大的感覺相同,只是原圖有些較為粗糙的細節並沒有因此補上——印證前述限制。

6-76 · 18:45

相比之下前面的 Depth

相比之下前面的 Depth 都有清楚表現,但臉以及眼睛和原圖不同了(範例圖對照)。

ControlnetTile 使用範例與結果

6-77 · 19:00

SUPIR(一)

SUPIR 是特殊模型,與 SDXL 結合,能較大程度保持圖形原貌以及增加細節,但相對地進行 SUPIR 時需要較長時間的採樣過程。SUPIR 必須要有 xformers(需確實依第一章環境安裝方式裝好)。

6-79 · 19:30

目前 SUPIR 有 V2 版本(一)

目前 SUPIR 有 V2 版本,主要著重在 SDXL 整合,若只是要提升圖片畫質,使用舊版節點也可以。

6-80 · 19:45

目前 SUPIR 有 V2 版本(二)

SUPIR 本身性質類似一個 SDXL 的 Controlnet,只是需經歷一段編碼、解碼過程,使用此節點時可選擇兩個模型:SUPIR-v0Q:圖像復原。SUPIR-v0F:細節修正與保留。

6-81 · 20:00

目前 SUPIR 有 V2 版本(三)

若目的是「圖像復原」,V0Q 是較好選擇,可直接進行圖像修復;若是增加細節與調整,則選 V0F 模型。下載處:https://huggingface.co/Kijai/SUPIR_pruned/tree/main,下載後放入 Checkpoint 資料夾。

6-82 · 20:15

由於 SUPIR 相當佔用資源

由於 SUPIR 相當佔用資源,使用時可打開 fp8 以及 tile 等項目,例如 FP8Unet 與 FP8VAE,若記憶體仍不足也可考慮採用分塊採樣,但要注意越小的分塊會影響品質。

6-83 · 20:30

參數(一)

參數:batch_size 1、use_tiled_sampling false、sampler_tile_size 1024、sampler_tile_stride 512、fp8_unet true、fp8_vae true、sampler RestoreEDMSampler、

6-84 · 20:45

參數(二)

s_churn 5、s_noise 1.003。

6-85 · 21:00

使用此節點時

使用此節點時,S_noise 是關鍵,越大模型表現力越多,但相對離原圖像差別也越大,若高至 1.01,則會和原圖有較明顯差異。

6-86 · 21:15

範例圖(和服女性室內場景)

範例圖(和服女性室內場景):示範 SUPIR 復原/細節調整前後對照。

SUPIR 復原前後對照

7-1 · 00:00

無論 SD1

無論 SD1.5 或 SDXL,完成圖片時常有手指或臉部損壞問題,主因是手指、臉部屬於較精細部位,特別是 SD1.5 在人物全身圖時臉部更容易損壞,手指損壞則各模型都常碰到。

7-3 · 00:30

臉部修復一般透過 FaceD

臉部修復一般透過 FaceDetailer 節點處理,包含許多概念,基本以 ImpactPack 與 ComfyUI-Impact-Subpack 實現,透過 Yolo 物件偵測模型自動偵測臉部,然後進行修復。

7-4 · 00:45

接線方式(一)

接線方式:把標準工作流的 VAEDecode 圖片接出來作為 Image 輸入,並把 Model/Clip/VAE 由原圖形接出,以上修復部分都還容易連接。此外還需要一個臉部偵測模型(Yolo8),以及一個 Fliter 節點。

7-5 · 01:00

接線方式(二)

類似 A1111/SD-WebUI 中必裝的插件 ADetailer,原理相同,用以偵測臉部並進行重繪修復,也需下載 Yolo 模型——用以偵測特定物件的區域(bbox,方型範圍),範圍內都會被重繪。

7-7 · 01:30

接線方式(四)

放入 ComfyUI/models/ultralytics/ 資料夾下,並接入 bboxdector。

7-8 · 01:45

節點組

節點組:UltralyticsDetectorProvider(model_name bbox/face_yolov8m.pt)→ SEGSOrderedFilterDetailerHookProvider → FaceDetailer。

7-9 · 02:00

DetailerHook(一)

DetailerHook 連接 SEGSOrderedFilterDetailerHookProvider,主要用途是排序遮罩內容。

7-10 · 02:15

DetailerHook(二)

假使主角是老師在教室上課,或模特兒街拍,後面會有很多路人;若把所有路人、學生臉部都重繪,遮罩會逐個重繪、流程跑非常久——

7-11 · 02:30

DetailerHook(三)

為解決此問題,只要重新畫「面積最大」的那位主角的臉就好,接上此節點是最簡單準確的方式(參數 target area(=w*h)、order descending、take_start 0、take_count 1)。

7-12 · 02:45

也可用其他參數控制

也可用其他參數控制:bbox_threshold(bbox 邊界認知的信賴度,認定信賴度高低的臉是否被認知)、drop_size(決定小於多少尺寸的臉不被細化),但這些準確度較無法控制,利用遮罩內容排序去認定會相對比較可靠。

7-13 · 03:00

FaceDetailer 重(一)

FaceDetailer 重要參數(因為它實際上是基於 I2I 的重畫機制,denoise 高低會影響畫面整合性,拉高數值會導致畫面整合度較差):guide_size 384、guide_size_for bbox、max_size 1024、

7-14 · 03:15

FaceDetailer 重(二)

steps 12、cfg 3.0、sampler_name dpmpp_sde、scheduler AYS SD1、denoise 0.35、feather 5、noise_mask enabled、force_inpaint enabled、

7-15 · 03:30

FaceDetailer 重(三)

bbox_threshold 0.40、bbox_dilation 10、bbox_crop_factor 3.0、sam_detection_hint center-1、sam_dilation 0、sam_threshold 0.93、

7-16 · 03:45

FaceDetailer 重(四)

sam_bbox_expansion 0、sam_mask_hint_threshold 0.70、sam_mask_hint_use_negative False、drop_size 10、cycle 1、inpaint_model disabled、

7-17 · 04:00

FaceDetailer 重(五)

noise_mask_feather 20。

7-18 · 04:15

提示詞範例

提示詞範例:detailed face, beautiful face,。

7-19 · 04:30

常說的「換臉」多半指 Rea(一)

常說的「換臉」多半指 Reactor 節點,是個更換臉部的模型,中間透過 insightface 架構,讓人物臉部能直接依結構去更換或貼上,優點是速度較快、無須透過採樣步驟,所以更換臉部非常容易,在所有模型中都可使用,缺點是畫面整合性比較差,

7-20 · 04:45

常說的「換臉」多半指 Rea(二)

有時候臉像是貼上去的。

7-22 · 05:15

新版 reactor 使用節點(二)

安裝方式:在 ComfyUI_Manager 中搜尋 Reactor 並按 install,之後進入 ComfyUI\custom_nodes\ComfyUI-ReActor,尋找 install.bat 安裝。

7-23 · 05:30

新版 reactor 使用節點(三)

若已在前一節安裝過 facedetailer,應已有 face 相關基礎偵測模型。

7-24 · 05:45

Reactor 節點基本概念(一)

Reactor 節點基本概念:輸入圖片以及結果圖片。來源圖片(source image)是指來源臉部模型(你的臉),輸入圖片(input image)是指目標圖片,是「你要更換」的臉。

7-25 · 06:00

Reactor 節點基本概念(二)

輸出節點包括結果圖片(image)和臉部模型(face_model),常用的臉模可存成 face_model 方便日後使用。

7-26 · 06:15

input_faces_order(一)

進階 options 細節配置:input_faces_order:臉部輸入順序,假使一張圖有兩張臉時,可用此參數調整順序,預設由大到小,配合 input_faces_index 可做出前後調整(例如 order 由大到小、index 為 0,

7-27 · 06:30

input_faces_order(二)

代表「由大到小最大的那張臉」)。

7-28 · 06:45

detect_gender_input

detect_gender_input:偵測輸入圖片中的男或女臉部資料,可只更換男生或女生臉部。

7-29 · 07:00

對應 source_face

對應 source_faces_gender 的項目:若來源圖片有多個臉,可用它選擇及調整順序。

7-30 · 07:15

Faceboost(一)

Faceboost:使用 GPEN 模型加強臉部相似性,與原節點概念相同,包括 visibility 與 codeformer_weight 兩個參數,代表了臉型的控制程度,越大越與原臉型相似,越小就越像目標圖片的臉型,可保持官方 0.5 設置即可,

7-31 · 07:30

Faceboost(二)

若想更相像就必須拉高,但構圖上就會較不自然。

7-32 · 07:45

許多風格轉換工作流往往以 I(一)

許多風格轉換工作流往往以 IPAdapter 為基礎,在 SD1.5 與 SDXL 時代 IPAdapter 重要性特別明顯,然而也有一些限制,例如它是使用 ClipVision 為基礎去輸入參考圖片,所以畫質較差,通常基礎圖片為 224*224,

7-33 · 08:00

許多風格轉換工作流往往以 I(二)

此外若參考圖片中有的要素、模型也有此類要素,才能順利被導入風格,而參考圖片缺少的通常會無法導入。

7-35 · 08:30

目前常用的 IPAdapte(二)

使用此節點時,相關模型必須從 ComfyUI_Manager 下安裝,建議使用它的 install models 功能,搜尋 IPAdapter 並將所有相關模型全部裝上,以防使用時出現找不到模型的錯誤。

7-36 · 08:45

ComfyUI Manage(一)

ComfyUI Manager Menu 操作:從選單中選擇「Model Manager」進行模型安裝(選單含 Custom Nodes Manager、Install Missing Custom Nodes、Model Manager、

7-37 · 09:00

ComfyUI Manage(二)

Install via Git URL、Update All、Update ComfyUI、Switch ComfyUI、Fetch Updates、Snapshot Manager、Install PIP packages、Unload models 等)。

7-38 · 09:15

從 Model Manage(一)

從 Model Manager 搜尋 IPAdapter,可看到相關模型清單(ip-adapter_sd15.safetensors、ip-adapter_sd15_light_v11.bin、ip-adapter-plus_sd15.safetensors、

7-39 · 09:30

從 Model Manage(二)

ip-adapter-plus-face_sd15.safetensors、ip-adapter-full-face_sd15.safetensors、ip-adapter_sd15_vit-G.safetensors、

7-40 · 09:45

從 Model Manage(三)

ip-adapter-faceid_sd15.bin、ip-adapter-faceid-plusv2_sd15.bin 等),將相關模型全部下載安裝。

7-41 · 10:00

從 Model Manage(四)

也可使用它的 faceID 模型建立換臉效果,如 Reactor,透過採樣過程,可和 FaceDetailer 一次完成。

7-42 · 10:15

IPAdapter 使用主要

IPAdapter 使用主要分為幾個概念:

7-43 · 10:30

權重(Weight)(一)

權重(Weight)、起始(Start)與結束(End):與 Controlnet 相同,決定它影響的步數還有權重,另一個相同的點是權重高、畫質就差。

7-44 · 10:45

權重(Weight)(二)

為維持畫質和模型表現力,權重通常設為 0.7,開始與結束保持 0.0–0.7,若目標是風格相似,後面會再進行 HiresFix,也可拉高至 1.0 甚至更高,但通常超過 1.0 畫質會嚴重受影響。

7-45 · 11:00

Attn_Mask

Attn_Mask:作用遮罩,這裡的遮罩是指原始圖片的遮罩,決定原始圖片中哪個要素要做為 IPAdapter 的參考圖,透過它 ClipVision 會以遮罩範圍進行裁切與縮放。

7-46 · 11:15

Embed(一)

Embed:使用 Conditioning 概念去設計的 Embed,可透過 ClipVision 編碼圖片,並一次合併多張圖片進入 IPAdapter,也可設定合併的強度(Weight)。

7-47 · 11:30

Embed(二)

合併 Embed 時會有 Average 等模式,可參考之前簡介的 Conditioning Combine/Concat/Average 概念。

7-48 · 11:45

五種基礎 Embed 形式測

五種基礎 Embed 形式測試結果(A 圖是貓貓,B 圖是狗狗,用批次方式載入):假使第一個條件是貓貓、第二個條件是狗狗,大多數連結情況下貓貓會不見,而狗狗吃到貓貓要素,除了相減之外,每一個整合中狗狗都有吃到貓貓要素,最明顯特徵是狗狗的垂耳被改變了。

7-49 · 12:00

提示詞設為「寵物店」

提示詞設為「寵物店」,而 norm average 最有寵物店背景造型,也有貓貓與狗狗要素,所以就提示詞整合而言 norm average 會比 concat 好。

7-50 · 12:15

測試結果(六種合併方式對照圖)

測試結果(六種合併方式對照圖):concat(狗狗,幾乎看不到貓要素)、add(狗狗,同樣看不到貓要素)、subtract(貓與狗混合,較怪異的貓狗混合體)、average(狗狗、垂耳改變)、norm average(狗狗在寵物店場景中,背景造型最完整)。

Embed 六種合併方式對照圖

7-51 · 12:30

若使用 IPAdapterE(一)

若使用 IPAdapterEmbed 節點,可先像 Conditioning Average 那樣設定條件權重,此外還有 Min/Max 兩個 Combine 種類。

7-52 · 12:45

若使用 IPAdapterE(二)

Min 是把兩個要素都縮小,等於都不要了,出來的圖形和參考圖差別很大;Max 則是放到最大,產生結果也只剩下狗狗,提示詞都沒了。

7-53 · 13:00

若想以第一張圖(貓貓)為主(一)

若想以第一張圖(貓貓)為主、希望產生的是貓貓而非狗,除了調換連結順序外,另一個方法是降低狗的權重(例如降到 0.5 再合併)。

7-54 · 13:15

若想以第一張圖(貓貓)為主(二)

調整後除了 Concat,由於狗狗權重已降低,大部分組合都變成以貓為主——這也顯示出 Embed 的權重幾乎對 Concat 是沒有用的,若使用 Embed 的強度配置方式調整,Add/Average 或 norm Average 會比較理想。

7-55 · 13:30

與 Conditioning 相同

與 Conditioning 相同,IPAdapter 也有正面提示與負面提示,負面提示用途是排除不想要的風格,如果沒有想到不想要的負面風格,負面的部分也可以只放 Noise。

7-56 · 13:45

關於權重種類(一)

關於權重種類,直接看圖比較清楚。測試圖包括全部權重類型(共 16 種:linear、ease in、ease out、ease in-out、reverse in-out、weak input、weak output、weak middle、strong middle、

7-57 · 14:00

關於權重種類(二)

style transfer、composition、strong style transfer、style and composition、style transfer precise、composition precise),最左上角是女生在水中的參考圖,

7-58 · 14:15

關於權重種類(三)

提示詞為「pet shop(寵物店)」,觀察在整串生成過程中保持寵物店主題、代入風格的效果。

7-59 · 14:30

分析結果(一)

分析結果:weak input/weak output/style transfer/Strong style transfer/style transfer precise:提示詞要素薄弱的系列,只能勉強看出水底後面可能是店家。

7-60 · 14:45

分析結果(二)

liner/ease in/weak middle:搞人體煉成的(人物崩壞、非預期組合)。ease in-out/composition/composition precise:搞人體煉成的。

7-61 · 15:00

分析結果(三)

strong middle/reverse in-out/ease out:參考圖要素薄弱、偏提示詞效果。

7-62 · 15:15

Style

Style 是比較後期加入的權重,對於風格帶入較佳,考慮到風格的採用,其中壯 Style 帶入的顏色比較完整。

7-63 · 15:30

Composition

Composition 效果很微妙,人物長了獸耳,後面背景則融合水底要素,但只取到原圖要素,顏色和人物都與原圖不同,故其概念比較偏向要素融合,IPAdapter 有個專屬的 Composition 節點,可放入參考圖進行要素融合。

7-64 · 15:45

ease in-out

ease in-out 結果蠻有趣的,但應該很少人用,人體鍊成推薦。

7-65 · 16:00

真正以寵物店強勢帶入風格

真正以寵物店強勢帶入風格、沒有主體但顏色要素都卡進來的其實是 weak-input,很久以前就說過 weak-input 是隱藏的法寶,暴力風格轉移,若怎樣都覺得風格要素不足,weak-input 開下去。

7-66 · 16:15

沒有一個權重成功在這種簡單提

沒有一個權重成功在這種簡單提示詞下表現出「女生在水底寵物店」的場景,要製作這樣的場景不能直接使用權重,而要使用別的方式去調整。

7-67 · 16:30

因為 ClipVision

因為 ClipVision 解析度問題(基礎僅 224*224),產生了「切塊」的方法,用以切割較大圖片,並充分將要素放入圖片之中,有助於提升畫質與細節,但相對地也因為切塊,圖形細節安定性可能受影響。

7-68 · 16:45

用同一批 16 種權重測試套

用同一批 16 種權重測試套用 ClipVisionEnhancer(將圖片放進去)的結果,對照前一節單純權重版本,整體風格帶入更完整、細節更豐富。

7-69 · 17:00

ClipVisionEnha

ClipVisionEnhancer 設定:由於切塊需要處理時間,若使用完整圖片,通常切塊時間變長,效果也不見得較好,所以會將圖片縮小為 224 的倍數,作者示例以 224*3=672 為基礎切塊,故可以 672 為主做為基礎值。

7-70 · 17:15

節點組(一)

節點組:Image Resize(width/height 672、interpolation bilinear、method keep proportion、condition always、

7-71 · 17:30

節點組(二)

multiple_of 0)→ IPAdapter ClipVision Enhancer(輸入 model/ipadapter/image/image_negative/attn_mask/clip_vision;

7-72 · 17:45

節點組(三)

參數 weight 0.80、weight_type linear、combine_embeds concat、start_at 0.000、end_at 1.000、embeds_scaling V only、enhance_tiles 2、enhance_ratio 1.00)。

7-73 · 18:00

切塊邏輯把圖片分割過

切塊邏輯把圖片分割過,所以分塊+結合的結果,原圖要素會被採樣較多,但結果與原圖差異較大;不過因為經過分塊,沒有採納圖片的完整要素,而是透過模型組合這些分塊,所以沒有產生類似人體鍊成的畫面。

7-74 · 18:15

專門用於風格轉換的節點

專門用於風格轉換的節點,增加了 Style_Boost 效果,對 SDXL 必須權重拉高至 2.0 開始,SD1.5 則設定在 1 與 -1 之間,通常使用於 SDXL。比較圖展示 Boost 高低效果差異,權重都設為 1.0,僅控制 boost 權重。

7-75 · 18:30

使用此節點時(一)

使用此節點時,權重設置也須為 1.0 才會有完整圖像,低於 1.0 僅使用提示詞會造成細節錯誤,測試基礎模型是 SDXL。

7-76 · 18:45

使用此節點時(二)

Boost 數值從 0.5 到 3.6 的完整測試網格(女生水底寵物店場景):Boost 到 2.0 是一個關鍵,超過 2.0 以上才有完全的風格滲透,因為參考圖中沒有招牌,所以若完全依據參考圖要素,寵物店不應出現招牌,但 2.0 以上差異沒有很明顯,

7-77 · 19:00

使用此節點時(三)

可把 StyleBoost 固定在 2.0 以上,然後搭配 Controlnet/Hiresfix 等讓細節穩定。

StyleBoost 強度測試網格

7-78 · 19:15

使用 PreciseStyl

使用 PreciseStyleTransfer 與原有節點的 StyleTranfer/StyleTranferPrecise 結果較為接近,但經過 StyleBoost 之後,風格整合程度比這兩個節點好。

7-79 · 19:30

實作一個 IPAdapter

實作一個 IPAdapter 風格轉換+Controlnet 的簡單工作流,透過前面概念與 PreciseStyleTransfer,完成造型固定與風格轉換的實作。

7-80 · 19:45

目標

目標:產生一個「陶朱隱園」造型的寵物店,使用女孩在水底那張圖的風格作為參考圖,再用 SDXL 生成。因為只要造型且沒有細節需求,陶朱隱園部分僅使用深度圖做參考,風格部分則用 PreciseStyleTransfer。

7-81 · 20:00

工作流分三部分

工作流分三部分,先看 Controlnet 部分:

7-82 · 20:15

先將陶朱隱園照片修改尺寸(一)

先將陶朱隱園照片修改尺寸,以 16 為比例修改為 1200*1200,作為 Controlnet 參考圖,同時輸出尺寸接到下面 EmptyLatentImage 節點,作為生成圖片標準尺寸,這樣圖片長寬會和 Controlnet 完全對齊比率、尺寸相同。

7-83 · 20:30

先將陶朱隱園照片修改尺寸(二)

多數情況下,圖片設為 16 的倍數才能穩定通過採樣器。

7-84 · 20:45

用 PixelPerfect

用 PixelPerfect 節點讓解析度對齊,將圖片長寬全部對給它,一個對一個,拉出解析度後,進到下一節點 DepthAnytingV2,取出與圖片長寬相符的深度參考圖。

7-85 · 21:00

接著將深度圖放入 Contr(一)

接著將深度圖放入 Controlnet 的 Image 接口,然後載入 ControlnetUnion。

7-86 · 21:15

接著將深度圖放入 Contr(二)

Union 模型推薦在 ModelManager 下載 Promax 模型(xinsir/ControlNet++: All-in-one ControlNet,約 2.50GB,SDXL,存於 controlnet/SDXL)。

7-87 · 21:30

使用 Union 模型通常會(一)

使用 Union 模型通常會經過兩個節點:一是「選擇 UnionType」用以設定 Union 模型類型(這邊選擇 Depth),另一是「選擇 Controlnet」模型,完成後輸入 Controlnet 接點。

7-88 · 21:45

使用 Union 模型通常會(二)

接著正負面條件從下面 Conditioning 拉過來。

7-89 · 22:00

IPAdapter 部分(一)

IPAdapter 部分較簡單:設置好節點後,直接給參考圖接入 Model 即可,根據前面各種測試,StyleBoost 給到 2.2 以上、權重給到 1.0。

7-90 · 22:15

IPAdapter 部分(二)

節點:Load Image → IPAdapter Unified Loader(preset PLUS (high strength))→ IPAdapter Precise Style Transfer(weight 1.00、

7-91 · 22:30

IPAdapter 部分(三)

style_boost 2.20、combine_embeds concat、start_at 0.000、end_at 1.000、embeds_scaling V only)。

7-92 · 22:45

採樣器部分(一)

採樣器部分簡單設置:將 Empty Latent Image 的 Width/Height 從上面圖片尺寸拉下來,Model 接出去給 IPAdapter 群組,Conditioning 接出去給 Controlnet 群組,

7-93 · 23:00

採樣器部分(二)

完成 Model 與 Conditioning 的 Patch 之後,進入採樣器。節點:Load Checkpoint(SDXL/realvisxlV50_v50Light)、CLIP Text Encode(正向:a pet store in the street,

7-94 · 23:15

採樣器部分(三)

high quality, detailed;負向:blurry, noisy, messy, lowres, jpeg artifacts, ill, distorted, malformed)、KSampler(steps 6、cfg 2.0、dpmpp_2m、

7-95 · 23:30

採樣器部分(四)

sgm_uniform、denoise 1.00)、VAE Decode。

7-96 · 23:45

最終結果

最終結果:每一層有小小隻貓貓狗狗造型,同時也有水底風格的「陶朱隱園寵物店」——完整示範如何用 Controlnet(深度)鎖定造型結構、IPAdapter PreciseStyleTransfer 疊加風格,兩者互不干擾地合成新圖。

7-97 · 24:00

ICLight

ICLight 是將產品重新進行光效、以合併入圖片的工作流,設計不困難,這裡先以基礎工作流為主參考,工作流目前在 OpenArt 是公開的。

7-102 · 25:15

ICLight 的基礎是 F(一)

ICLight 的基礎是 FG(前景) 與 BG(背景)。更換背景最簡單的就是使用單純 FG,也就是直接用 SD1.5 為基礎去變換背景,會一次把背景跟光效都能帶齊,主體也會被光效影響,只是 SD1.5 背景轉換後整體細節效果比較差,

7-103 · 25:30

ICLight 的基礎是 F(二)

而 SDXL 還是比較漂亮,所以作者會走 SDXL+SD1.5 過渡 ICLight 的方法,可能還有更好更簡單的方法。還是要強調線稿轉繪是一切的基礎。

ICLight 工作流整體造型

7-104 · 25:45

Controlnet 補充知識(一)

Controlnet 補充知識:節點組(AnyLine Lineart → Apply Advanced ControlNet → Apply Advanced ControlNet(第二個)→ InvertMask、Scaled Soft Weights、

7-105 · 26:00

Controlnet 補充知識(二)

Load ControlNet Model(mistoLine_rank256)、Depth Anything V2 - Relative、

7-106 · 26:15

Controlnet 補充知識(三)

Load ControlNet++ Model (Single) (SDXL controlnet-union-sdxl-1.0diffusion, depth))。

7-107 · 26:30

Apply Advanced(一)

Apply Advanced Controlnet 有個 MaskOptional 接口,代表 Controlnet 作用的 Mask 範圍,遮罩以外地方 Controlnet 沒有作用——

7-108 · 26:45

Apply Advanced(二)

也就是可以分開遮罩範圍,例如要重畫人物、人物的手不要它變形,就在手部設置 1.0 的 LineArt 把手或臉用線稿鎖死,而其他部分僅使用深度(Depth),還有很多操作方式都可透過遮罩範圍的 Controlnet 完成,例如也可把人物去掉、

7-109 · 27:00

Apply Advanced(三)

然後填入 Lama,由於 Controlnet 只作用於背景,此時 SDXL 就會依照深度將整個空間填滿。雖然目標是重畫背景,但這邊其實不需要 Mask 接口。

7-110 · 27:15

ScaledSoftWeig(一)

ScaledSoftWeights 類似 A1111 的「My prompt is more important」,預設 0.825 代表提示詞比較重要,若調降 uncond_Multiplier 數字,往下調降則會逐漸變成 Controlnet 較重要——

7-111 · 27:30

ScaledSoftWeig(二)

因為只要維持背景基本構造、不用全部遵守深度與線稿,所以加上此節點。使用 ScaledSoftWeights 也可讓 Controlnet 的畫面相對合理、減少降低畫質現象,但在 FLUX 等 Dit 模型,此節點並不理想。

7-112 · 27:45

MASK to SEGS(一)

MASK to SEGS(Impact-Pack)節點:mask/combined True/crop_factor 3.0/bbox_fill disabled/drop_size 10/contour_fill disabled。

7-113 · 28:00

MASK to SEGS(二)

IPA 部分另外加上此節點,主要用途是合併零碎的 Mask——因為若女孩手臂、身體之間有小空白處是背景,這些背景會被獨立判定重畫,使用 Detailer 前必須將 Mask 做合併。背景的參照風格則放在 IPA 裡面。

7-114 · 28:15

完成這階段後

完成這階段後,得到第一張更換背景的圖片,由於前景和背景差異很大,這張照片人物顯得非常亮。工作流的後半,人物必須放進 ICLight 中處理。

7-115 · 28:30

節點組(一)

節點組:Load Checkpoint、CLIP Text Encode(正負)、Load Diffusion Model(iclight_sd15_fbc_unet_ldm)、ICLightApply(model/ic_model/c_concat)、

7-116 · 28:45

節點組(二)

Empty Latent Image、IC Light Apply Mask Grey(FG)、Batch Images、Join Image with Alpha(BG)、SolidMask、VAE Encode ArgMax、

7-117 · 29:00

節點組(三)

KSamplerAdvanced(Inspire 版,steps 25、cfg 5.0、dpmpp_2m、AYS SD1、add_noise enable)、VAE Decode。

7-118 · 29:15

這裡會遇到一個問題

這裡會遇到一個問題:誰要當 Image1? 若把「修改背景過後的圖」當 Image1、「原圖」當 Image2,ICLight 結果會是一種效果(範例:人物色調偏原圖色調);若反過來把「修改背景過後」的圖當 Image2、「原圖」當 Image1,結果會不同。

7-119 · 29:30

在 ICLight 的邏輯中

在 ICLight 的邏輯中,Image1 是原圖,Image2 是光遮罩,所以若把修改後的圖當作光效遮罩,則人物會偏向整體紅色、變成強烈的紅(因範例背景是紅色調房間)。

Image1 為原圖時的 ICLightBlend 結果

7-120 · 29:45

反之

反之,若把原圖當成光效遮罩,人物色調會較為緩和。四張對照圖:Original(原圖)、OriginalASFGApplyGrey、Blend50(ChangedtoBG/ICtoLayer)、BGChanged,展示不同混合設定下的效果差異。

Image2 為修改後圖時的 ICLightBlend 結果

7-121 · 30:00

透過 ImageBlend 方式(一)

透過 ImageBlend 方式,可讓人物「吃下」光效但沒有那樣偏紅,方法是將 BGChanged 作為背景,而 ICLight 修改過的結果作為前景,調整人物與光效的融合程度。

7-122 · 30:15

透過 ImageBlend 方式(二)

Blend50 後人物有吃到光效但仍保留原本顏色;30% Blend 時前景效果較弱,Blend 數字越高則前景效果越強、光效越明顯。

7-123 · 30:30

節點(一)

節點:LayerMask: MaskEdgeUltraDetail V2(method VITMatte(local)、fix_gap 0、fix_threshold 0.75、edge_erode 6、

7-124 · 30:45

節點(二)

edta_dilate 6)→ LayerUtility: ImageBlendAdvance V2(blend_mode normal、opacity 30、x_percent/y_percent 50.00、scale 1.00、rotate 0.00、

7-125 · 31:00

節點(三)

transform_method lanczos)。

7-126 · 31:15

剩餘問題

剩餘問題:雖然背景已變更,人物還是出現白色邊界,這和 ICLight 無關。原因是圖片去背的 Alpha 沒有抓到白邊,但更換背景、翻轉遮罩時卻出現白邊。

7-127 · 31:30

左右兩張圖

左右兩張圖,一張有 Controlnet、一張沒有,可看出背景明顯差別,有時候關閉 Controlnet 會比較自然。

7-128 · 31:45

關於畫面白邊

關於畫面白邊:比較有白邊感的是使用 Mask 接口、指定背景遮罩使用後,反而白邊感覺比使用原圖強烈,主要是因 Controlnet 緣故——人物周邊會有一個光線的深度和 LineArt 存在,有時候關掉 Controlnet 可能會有比較好的直接替換背景結果。

7-129 · 32:00

沒有深度圖支撐時

沒有深度圖支撐時,手臂底下完全不合理(範例:女孩手肘靠桌面,若無深度圖,桌面與手肘的空間關係錯亂)。有深度圖和 LineArt 支持,則會變成合理(至少有一個沙發可以跨,合理性較好)。

7-130 · 32:15

另一做法

另一做法:在空白處填入 Lama,然後進行 inpainting,把帶深度的 Lama 部分畫上後形成背景,再和前景合併(範例:室內場景+人物合成效果良好)。

7-131 · 32:30

Lama 方法的好處(一)

Lama 方法的好處:會有強烈的背景光效整合,因為背景本身就成為遮罩;壞處是由於只有 Lama,故 Blend 調整的範圍比較小,不過這個和原圖 Blend 的效果也不差,白邊很少,且充滿了異世界的氛圍。

7-133 · 33:00

前面已簡介 Controlnet

前面已簡介 Controlnet、IPAdapter 兩個基本議題與概念,以下進行角色設定的工作流做法,透過此工作流可簡單固定自己的角色類型並更換臉部,讓它看起來有近似的角色。

7-134 · 33:15

工作流可分幾大部分

工作流可分幾大部分:第一部分是基礎圖片;第二部分是 Controlnet/IPAdapter,過程中技巧是使用批次方式將人物造型進行「對齊」,使其依照動作產生的畫面看起來像同一個人。

7-135 · 33:30

這段將導入 EasyUse 節點組(一)

這段將導入 EasyUse 節點組,讓大家了解不同生圖環境與做法,因之前已介紹不少概念,這裡分成一個個群組解說。

7-137 · 34:00

這是一張看似簡單(一)

這是一張看似簡單、節點不多的工作流,但過程中實際經歷四次採樣,邏輯分別是:1. 產生第一張圖片;2. 以第一張圖片開啟 IPAdapter,讓第二張以後依據它對齊;3. 進行 HiresFix 修復;4. 進行臉部修復包括 FaceID 更換臉部。

7-138 · 34:15

這是一張看似簡單(二)

最後使用 ImageBatch 將圖片拼接完成。

7-139 · 34:30

利用它可以製作簡單的 AI 角色設定稿

利用它可以製作簡單的 AI 角色設定稿,即使透過對齊,人物還是有些微差異,實際使用時只要小幅修正即可。

7-141 · 35:00

在此工作流中

在此工作流中,第一張圖片內容僅用於參考和引導,第二次採樣後的圖片才是初步定稿。畫面顯示多個 OpenPose 骨架圖(五種不同姿勢)搭配人物角色設定稿拼接效果、以及一張臉部參考圖。

EasyUse 角色設定工作流總覽

7-142 · 35:15

使用右鍵將 Positive 轉為輸入(一)

使用右鍵將 Positive 轉為輸入,以同步所有輸入節點。EasyLoader 節點包括以下資訊:Ckpt_name:即 Checkpoint Loader 的模型名稱。

7-143 · 35:30

使用右鍵將 Positive 轉為輸入(二)

Vae_name:若要加入特定 VAE 才使用,否則可用 BakedVAE 預設值。Clip_skip:許多模型均預設為 -2。

7-144 · 35:45

使用右鍵將 Positive 轉為輸入(三)

Lora_name:決定要載入的 Lora,這裡採用之前提的 Hyper-SD-12Step-CFG,強度設為預設 1.0。尺寸大小設為 768*768,大約是 SD1.5 穩定大小,之後會透過 HiresFix 放大。

7-145 · 36:00

EasyUse 節點接法與普

EasyUse 節點接法與普通 ComfyUI 有差異:它把 Model/Clip/VAE 等整合在一起成為一個 Pipe,從而這個管道包括了全部資訊。

7-146 · 36:15

Pipe 連接出來後(一)

Pipe 連接出來後,直接過給 EasyControlnet,這裡使用一張 OpenPose 骨架圖,從六張中選擇一張即可。

7-147 · 36:30

Pipe 連接出來後(二)

在 EasyUse 中,因為之前的 Pipe 已包括正負面提示詞與條件,所以這裡無須連接條件,直接用 Pipe 通過給它,完成後把 Pipe 過給採樣器。

7-148 · 36:45

節點細節(一)

節點細節:FreeU_V2(b1 1.30、b2 1.40、s1 0.90、s2 0.20)、EasyLoader (Comfy)(ckpt_name henmixReal_v6b、vae_name vae-ft-mse-840000-ema-pru...、

7-149 · 37:00

節點細節(二)

clip_skip -1、lora_name hyperSDHyper-SD-12Step-cfg、lora_model_strength 0.60、lora_clip_strength 1.00、resolution 768x768)、

7-150 · 37:15

節點細節(三)

EasyKSampler (Full)(steps 12、cfg 4.0、dpmpp_sde、align_your_steps、denoise 1.00、image_output Hide、seed randomize)、

7-151 · 37:30

節點細節(四)

EasyControlnet(control_net_name control_v11p_s...、strength 1.00、scale_soft_weights 1.000)。

7-152 · 37:45

正面提示詞範例(一)

正面提示詞範例:realistic:1.3, finely detailed, quality, (masterpiece:1.2), asian:1.2, (best quality), (detailed skin:1.3), 1girl, solo,

7-153 · 38:00

正面提示詞範例(二)

long hair, brown hair, day, cloud, sky, standing, outdoors, parted lips, bag, black dress, blue sky, lips, buttons, shadow, cloudy sky,

7-154 · 38:15

正面提示詞範例(三)

shoulder bag, handbag, realistic, red lips, photorealistic;

7-155 · 38:30

正面提示詞範例(四)

負面提示詞含 3d, Drawings, abstract art, cartoons, surrealist painting, conceptual drawing, graphics, (low resolution)...。

7-156 · 38:45

這裡連接一個 Free_U

這裡連接一個 Free_U 做為模型產圖的增強,連接方式是把 Model+Free_U 的組合連接給採樣器的 Model,完成第一張圖的連接。概念是 Pipe→Controlnet→Pipe 以及 Model→Free_U→Model。

7-157 · 39:00

先處理 Pose 圖片(一)

先處理 Pose 圖片,用意是讓它能夠批次對齊。把六張動作圖片做成 Batch,注意不管是怎樣的動作圖片,因做成 Batch 的關係,大小可能被縮放或裁切成相同尺寸,所以建議一開始就選擇相同尺寸做成 Batch。

7-158 · 39:15

先處理 Pose 圖片(二)

或者也可用前面提到的 ImageResize 節點,使用 Pad 方式,把圖片擴張為相同尺寸(如 768*768),假使圖片是長方形,就會被擴充為與原圖相同的正方形。

7-159 · 39:30

批次對齊要批次幾樣東西

批次對齊要批次幾樣東西:1. Pose 批次,使用 Batch 方式處理 Pose 的批次,讓尺寸相等;2. Image 批次,讓 Pose 進入同一個 ImageBatch,所以這邊要有一個 ImageCount 節點,用以計算圖片數量。

7-160 · 39:45

OpenPose 圖片也可透(一)

OpenPose 圖片也可透過 DWPose 產生:節點組 Load Image → DWPose Estimator(detect_hand/body/face enable、resolution 768、

7-161 · 40:00

OpenPose 圖片也可透(二)

bbox_detector yolox_l.onnx、pose_estimator dw-ll_ucoco...、scale_stick_for_xinsr_cn dis...)→ Preview Image。使用此節點可偵測臉部表情、動作。

7-162 · 40:15

將第一張圖片的 Pipe 丟

將第一張圖片的 Pipe 丟進 IPAdapter 做為參考圖,並使用 Pose 圖片批次給 Controlnet。EasyUse 的接法:

7-163 · 40:30

將 Model 從前一個 K(一)

將 Model 從前一個 Ksampler 裡拉出來、維持原本模型資料,交給 IPAdapter 做為輸入,使用「EasyApplyIPAdapter」節點,作用相當於 IPAdpater Advanced,只是更簡略。

7-164 · 40:45

將 Model 從前一個 K(二)

權重可用 Weak-input,也可維持原本 linear,強度選擇 PLUS 以達成與原圖設計固定的目的。

7-165 · 41:00

接著使用 EasyUse 的

接著使用 EasyUse 的「StyleAlign」節點,主要用於對齊批次所產生的內容、確保風格能維持,只適用於 Unet 模型(如 SD1.5 或 SDXL),這裡把它跟 IPAdapter 連接,以確定衣服、人物能更加固定。

7-166 · 41:15

連接概念

連接概念:KSampler→Model→IPAdapter→Model→StyleAlign→Model→KSampler。

7-167 · 41:30

然後再 Clone 一個 E(一)

然後再 Clone 一個 EasyLoader 節點,用右鍵將正面提示詞轉為連接,並與之前的提示詞連接,另外還需用右鍵把「BatchSize」也做成連接,同時接入之前計算的 Pose 圖片數量。

7-168 · 41:45

然後再 Clone 一個 E(二)

這裡連接的概念是 ImageCount→BatchSize,如六張 Pose 圖,那數量就是 6。

7-169 · 42:00

EasyLoader

EasyLoader 的 Pipe 拉出一個 EasyControlnet,Image 則接入之前的 ImageBatch,如此六張批次圖就形成一個完整的 Pose 控制組合。這裡的接法:Pipe→EasyControlnet→Pipe→KSampler。

7-170 · 42:15

完成這次採樣後

完成這次採樣後,接著進入 HiresFix 階段。

7-171 · 42:30

完整節點參數確認(0124(一)

完整節點參數確認(0124,IPAAndBatch 群組):Easy Apply IPAdapter (Advanced)(preset PLUS (high strength)、weight 1.00、weight_type weak input、

7-172 · 42:45

完整節點參數確認(0124(二)

combine_embeds concat、start_at 0.000、end_at 1.000、embeds_scaling V only、cache_mode all、use_tiled false、

7-173 · 43:00

完整節點參數確認(0124(三)

use_batch false)→ Easy Apply StyleAlign(share_norm both、share_attn q+k、scale 1.0)→ EasyLoader (Comfy)(第二個,batch_size 連接、

7-174 · 43:15

完整節點參數確認(0124(四)

ckpt_name henmixReal_v6b、clip_skip -1、lora_name hypersdHyper-SD15-12ste...)→ EasyControlnet(control_net_name control_v11p_s...、

7-175 · 43:30

完整節點參數確認(0124(五)

strength 1.00、scale_soft_weights 1.000)→ EasyKSampler (Full)(steps 12、cfg 4.0、dpmpp_sde、align_your_steps、denoise 1.00、

7-176 · 43:45

完整節點參數確認(0124(六)

seed 751458739185284、control_after_generate fixed)。

7-177 · 44:00

將前面的 Image 接入進(一)

將前面的 Image 接入進行第三次採樣,圖形從 768*768 放大為 1536*1536。前面介紹過使用模型進行 HireFix 的做法,這裡使用 EasyUse 再呈現一次。

7-178 · 44:15

將前面的 Image 接入進(二)

使用相當簡單,只要 Pipe 和圖形接上去就好,預設值已包括前面「模型放大四倍,並縮小為 50%,使用 VAEEncode」的全套程序,這邊圖形的 Rescale 是以百分比為依據,也可以尺寸做為變更依據。

7-179 · 44:30

KSampler 可從前面 Clone

KSampler 可從前面 Clone,但要注意這邊 Denoise 要改為 0.2–0.4,因為是要進行 HiresFix。如果圖形細節變過多且產生偽影現象,可降低 Denoise 處理。完成後將 Image 送出,進行最後一次修復。

7-180 · 44:45

節點(一)

節點:HiresFix(model_name 4x-UltraShar...、rescale_after_model true、rescale_method bilinear、rescale by percentage、percent 50、crop disabled、

7-181 · 45:00

節點(二)

image_output Hide)→ EasyKSampler (Full)(steps 12、cfg 4.0、dpmpp_sde、align_your_steps、denoise 0.40、image_output Hide、seed 751458739185284、

7-182 · 45:15

節點(三)

control_after_generate fixed)。

7-183 · 45:30

最後是修復程序

最後是修復程序,先增加一個 PreDetailerFix 做為起點。

7-184 · 45:45

在 EasyUse 裡都會有

在 EasyUse 裡都會有一個 Pre... 之類的節點做為預處理,而 Detailer/KSampler 都沒有特別設定管道,只有一個 Pipe 輸入,這也是為何前面會使用 KSampler(Full)做為它的採樣節點。

7-185 · 46:00

前面已介紹過 SAM 概念(一)

前面已介紹過 SAM 概念,基本上要用文字提示去偵測區塊「bbox」,再從區塊裡把遮罩切出來「SAM」。之前用 Yolo 進行區塊偵測,這裡也再用同樣方式讓它偵測臉部,使用 face_yolo 模型,並採用 Yolo 的 pipe,讓它輸入給 bbox。

7-186 · 46:15

前面已介紹過 SAM 概念(二)

SAM 部分則用 SAMLoader 做為接口,讓它接入 SAMPipe,這就像前面介紹過的 impactpack,用以分割臉部並重繪,下面參數可不需調整。

7-187 · 46:30

接著可從 Model 節點接(一)

接著可從 Model 節點接入一個 IPAdapter 以便使用自己的臉,也同樣用 EasyUse 完成。

7-188 · 46:45

接著可從 Model 節點接(二)

關於 IPAdapter 部分,只要之前有下載過所有模型與 Lora,在此節點都能順利過關,這裡預設的 Lora 強度是 0.6,若要臉部比較相似可調高強度,但在細化之後畫質就會相對比較粗糙。

7-189 · 47:00

節點群組 FaceFix(一)

節點群組 FaceFix:UltralyticsDetector (Pipe)(model_name bbox/face_yolov8m.pt、bbox_threshold 0.50、bbox_dilation 10、bbox_crop_factor 3.0)、

7-190 · 47:15

節點群組 FaceFix(二)

SAMLoader (Pipe)(model_name sam_vit_b_01ec64.pth、device_mode AUTO、sam_detection_hint center-1、sam_dilation 0、sam_threshold 0.93、

7-191 · 47:30

節點群組 FaceFix(三)

sam_bbox_expansion 0、sam_mask_hint_threshold 0.70、sam_mask_hint_use_negative False)、PreDetailerFix(guide_size 256、

7-192 · 47:45

節點群組 FaceFix(四)

guide_size_for bbox、max_size 768、seed 729129012261806、control_after_generate randomize、steps 10、cfg 3.0、dpmpp_sde、align_your_steps、

7-193 · 48:00

節點群組 FaceFix(五)

denoise 0.40、feather 5、noise_mask enabled、force_inpaint enabled、drop_size 10、cycle 1)、DetailerFix(image_output Hide)。

7-194 · 48:15

FaceID 群組(一)

FaceID 群組:Load Image(上傳自己的臉部照片)→ Easy Apply IPAdapter (Advanced)(preset FACEID PLUS V2、lora_strength 0.60、provider CUDA、weight 1.00、

7-195 · 48:30

FaceID 群組(二)

weight_faceidv2 1.00、weight_type linear、combine_embeds concat、start_at 0.000、end_at 1.000、embeds_scaling V only、cache_mode all、

7-196 · 48:45

FaceID 群組(三)

use_batch false)。

7-197 · 49:00

最後把圖片輸出成為一個批次(一)

最後把圖片輸出成為一個批次,若要輸出單張分割動作圖片清單,這個過程可省略;要像畫面那樣做成一個批次,就必須使用此節點——先把圖片清單轉為批次,再輸出即可。

7-198 · 49:15

最後把圖片輸出成為一個批次(二)

節點內建在 KJN_Nodes 裡面,它的 num_columns 可將圖片以三欄方式排列為橫行,即可輸出如工作流圖上的結果。

7-199 · 49:30

節點群組 BatchSheet(一)

節點群組 BatchSheet:Image List To Image Batch → Image Concatenate From Batch(num_columns 3、match_image_size false、

7-200 · 49:45

節點群組 BatchSheet(二)

max_resolution 4096)。

7-201 · 50:00

上面多次提到 Control

上面多次提到 Controlnet 與 IPAdapter,那有不採用這些元件、就控制圖片來解決問題的方法嗎?這類模型也就是 GPT4 目前 IP2P、使用指令改圖的雛型。

7-202 · 50:15

ComfyUI 中有個較冷門

ComfyUI 中有個較冷門、卻很實用的模型 CosXL_Edit,基於 SDXL 架構,只要輸入參考指令,就能變更照片、圖片的場景,是個非常簡單有效的多功能模型。

7-204 · 50:45

先至 HuggingFace(二)

它是前面提到過的 GatedModel,需登入 HuggingFace 才能下載,但使用方式很簡單,載入 ComfyUI 的範例工作流即可。

7-205 · 51:00

範例

範例:提示詞僅打入「Rainy Afternoon」,中正紀念堂的照片就從晴天變成陰雨濛濛的畫面(對照圖:晴天原圖 vs 陰雨版本)。

CosXL_Edit 晴天轉陰雨對照

7-206 · 51:15

範例工作流有點類似前面提過的(一)

範例工作流有點類似前面提過的 Image To Image,只是中間群組有明顯差別——這個群組合併了幾個節點,包括 IP2P 的 CFG 控制及採樣。

7-207 · 51:30

範例工作流有點類似前面提過的(二)

IP2P 是略稱,指的是 (InstructP2P),指令式的圖片對圖片,使用指令圖生圖,主要任務是風格和場景變化,從而涵蓋了大多數任務。載入後只要給它簡單的風格提示詞,就有改變圖片的效果。

7-208 · 51:45

雙 CFG 概念(0129)(一)

雙 CFG 概念(0129):CosXL_Edit 使用多種風格提示詞(例如光線)可以營造類似 IG 濾鏡的感覺,但不只是套濾鏡,畫面細節會隨提示詞變更。使用時基本有兩個參數:圖片強度與提示詞強度,這就是所謂的「雙 CFG」。

7-209 · 52:00

雙 CFG 概念(0129)(二)

關鍵在提示詞強度:提示詞越強,原圖造型保存越差;提示詞越弱,原圖改變程度越少。圖片強度類似負面條件的強度,影響較小,但拉太高也會造成圖片無法變更,所以兩者只要調整一個參數就好。

7-210 · 52:15

雙 CFG 概念(0129)(三)

實測把第一個 CFG(Cfgtext)分別拉高為 3.0、4.5、5.5、6.0、7.0:Cfg 5.5 以後陰雨畫面越來越強烈,到 6.0/7.0 建築物造型也被改變了,所以使用此模型必須自己選定要改變圖片的強度。

7-211 · 52:30

雙 CFG 概念(0129)(四)

(對照圖:六宮格中正紀念堂由晴天逐步變成暴雨天,建築造型也逐漸走樣) 此模型特色是環境與全圖色調的變更,最常用於日夜場景轉換,不需複雜 3D 光影設置就能達成白天↔黑夜與天候切換,目前很少有模型能做到類似結果。

7-212 · 52:45

雙 CFG 概念(0129)(五)

除此之外也能進行人物配件、裝飾的添加,書中該範例工作流是用 EasyUse 實現,採用的節點是 PreSampling (Custom)。

CosXL_Edit 不同 CFG 強度六格對照

8-1 · 00:00

本部分以 FLUX 為主題

本部分以 FLUX 為主題,說明新型態模型與運作方式。Flux 基礎模型大致分為幾種樣態,之後再談混合模型、多步數與 Hyper 模型。此章連結非常多、內容瑣碎,作者建議用網頁介面開書比較容易點連結參考。

8-2 · 00:15

開篇示範圖由 FluxDev

開篇示範圖由 FluxDev-Hyper8Step-T5Q8-GGUF 的模型組合產生(紅色電話亭前的人物照)。

FLUX 開篇示範圖

8-3 · 00:30

Unet(純模型)

Unet(純模型):只有模型本身,不含 Clip 與 VAE,是一開始的標準模型。FP16 的 Unet 一般消費顯卡跑不動,所以都選 FP8。Kijai 提供的 Unet 模型:Kijai/flux-fp8。

8-4 · 00:45

Unet 整合(Checkpoint)

Unet 整合(Checkpoint):包含 Model、Clip 與 VAE,可直接使用,例如 17GB 的 Comfy-Org/flux1-dev。

8-5 · 01:00

GGUF 模型

GGUF 模型:Unet 類純模型,只是經過 GGUF 量化 → city96/FLUX.1-dev-gguf。量化選擇:12GB VRAM 選 Q8,以下選 Q4–Q6,6–8GB 可試 Q2,是對硬體彈性最高的模型。

8-6 · 01:15

NF4 整合

NF4 整合:檔名帶 NF4,多為 Unet 整合模型 → lllyasviel/flux1-dev-bnb-nf4。

8-7 · 01:30

四種之中 2 的通用性最廣((一)

四種之中 2 的通用性最廣(ComfyUI、Forge、Krita 等軟體都能用),所以新手通常優先選 2。ComfyUI 全部模型都可用,但 3、4 需要另外安裝節點:GGUF 必要節點:city96/ComfyUI-GGUF。

8-8 · 01:45

四種之中 2 的通用性最廣((二)

NF4 必要節點:comfyanonymous/ComfyUI_bitsandbytes_NF4;也可用純 Unet 的 NF4 節點 DenkingOfficial/ComfyUI_UNet_bitsandbytes_NF4,

8-9 · 02:00

四種之中 2 的通用性最廣((三)

但要自行配置 Clip 與 VAE。

8-10 · 02:15

標準 T5-Clip

Clip 三件事:標準 T5-Clip,分 FP16 與 FP8,一般消費級電腦以 FP8 為主 → t5xxl_fp8_e4m3fn.safetensors(comfyanonymous/flux_text_encoders)。

8-11 · 02:30

量化 T5-Clip-GGUF

量化 T5-Clip-GGUF,主要是 FP16 的量化,是影響 Flux 效能的一個重要量化;同樣依 VRAM 選擇:12GB 可選 Q8,其他建議至少 Q5,僅 6GB 則以 Q3 為主 → city96/t5-v1_1-xxl-encoder-gguf。

8-12 · 02:45

CLIP-L

CLIP-L:必須與 T5 並存,所以是個 DualClipLoader → clip_l.safetensors。

8-13 · 03:00

VAE

VAE:大多數電腦在 VAE 不會有效能問題(除非產製大圖),用官方版本即可 → ae.safetensors(black-forest-labs/FLUX.1-dev)。硬體非常吃緊時可用輕量 VAE(TAEF1 系列) → madebyollin/taesd。

8-14 · 03:15

初學者

初學者:單一 Load Checkpoint 節點載入 flux1-dev-fp8.safetensors(直接輸出 MODEL/CLIP/VAE)。

8-15 · 03:30

硬體不理想(10GB VRA

硬體不理想(10GB VRAM 以下)又不想思考 GGUF 配置:安裝 NF4 節點,用 CheckpointLoaderNF4 載入 flux1-dev-bnb-nf4-v2.safetensors。

8-16 · 03:45

進階(想在效能與精度取得平衡)

進階(想在效能與精度取得平衡):用 GGUF + VAE 組合,依硬體調整——12GB 兩個都選 Q8,10GB 約 Q6 至 Q4,8GB 選 Q4 以下,透過 GGUF 就能在低階硬體執行 Flux。

8-17 · 04:00

GGUF 三節點配置(0134)(一)

GGUF 三節點配置(0134):Unet Loader (GGUF)(unet_name flux1-dev-Q8_0.gguf)+ DualCLIPLoader (GGUF)(clip_name1 t5-v1_1-xxl-encoder-Q8_...、

8-18 · 04:15

GGUF 三節點配置(0134)(二)

clip_name2 SD3/clip_l.safetensors、type flux)+ Load VAE(ae.sft)。

GGUF 三節點配置畫面

8-19 · 04:30

Forge

Forge 的話則是同樣配置,也可只在 Checkpoint 放進 NF4;把兩個 Clip 和 VAE 放到 VAE 資料夾下,就可以使用 Unet 的 GGUF 模型。

8-20 · 04:45

除了純線上運行的 Pro

除了純線上運行的 Pro,Flux 基礎模型分為 Schnell 與 Dev,差別在授權許可與模型的精簡程度;對沒有商用授權需求的人來說,重要的是兩者產生的圖像差別。

8-21 · 05:00

Schnell 為 4 步模型

Schnell 為 4 步模型(基礎 Step 4 步),Dev 為 20 步模型(基礎 Step 20 步);實測 Dev 8 步也能成像,只是成像有一些問題。

8-22 · 05:15

實測發現

實測發現:短提示詞時 Schnell 比較好,長提示詞時 Dev 影像較為安定。

8-23 · 05:30

建議以電腦效能為考量

建議以電腦效能為考量:效能夠就選 Dev(長步數有很多好處、影像較安定,且許多 Lora 都是針對 Dev 訓練);效能不夠就以 Schnell 或 Merged 為主。

8-24 · 05:45

在 Civitai 上

在 Civitai 上,Schnell 模型標註為 Flux.1 S,Dev 標註為 Flux.1 D。

8-25 · 06:00

Civitai 上有不少混合模型(一)

Civitai 上有不少混合模型,混合了 Dev 與 Schnell 的權重區塊,例如 GGUF 型的 GGUF:FastFlux (Flux.1-Schnell Merged with Flux.1-Dev) — Q4_0_v2,

8-26 · 06:15

Civitai 上有不少混合模型(二)

或 Checkpoint 型的 Flux.1-Schnell Merged with Flux.1-Dev bnb-nf4 Fp8 4 steps — All in one Fp8。

8-27 · 06:30

Checkpoint(FP8)

Checkpoint(FP8):通常 17–20GB。

8-28 · 06:45

UNET(FP8)

UNET(FP8):約 11GB;UNET(NF4):約 6GB。

8-29 · 07:00

Unet(FP16)

Unet(FP16):本身就 20GB,通常不建議 4090 以下的顯卡使用。

8-30 · 07:15

混合模型因權重區塊不同

混合模型因權重區塊不同,很難確定何者較佳,看個人喜好與需求;另外還有混合 Lora 的類型。原則上進階使用者都會喜歡使用 Unet/GGUF 模型,因為實際上大家的 T5 都一樣,大多是使用 FP8-T5,比較少使用 FP16-T5。

8-31 · 07:30

Unet-bnb-nf4

Unet-bnb-nf4:指 nf4、只有 Unet 的模型,要自己配置 Clip/VAE。

8-32 · 07:45

All-in-one FP8

All-in-one FP8:FP8-Checkpoint 模型。

8-33 · 08:00

T5XXXLFP8

T5XXXLFP8:合併了 FP8-T5 的 Checkpoint 模型,本身模型要看旁邊的標註(例如標 FP16,則是 FP16 的 Unet + FP8 的 T5)。

8-34 · 08:15

FP16

FP16:不知道有沒有合併,要看其他標註。

8-35 · 08:30

一個「字節跳動」的 FluxLora

一個「字節跳動」的 FluxLora,雖然是 Lora,8Step 與 16Step 代表 Dev 的 8 與 16 步,可縮減採樣步長,但 Lora 強度必須設定成 0.125。

8-36 · 08:45

連結

連結:Hyper-FLUX.1-dev-8steps-lora.safetensors、Hyper-FLUX.1-dev-16steps-lora.safetensors(ByteDance/Hyper-SD)。

8-37 · 09:00

回到第一章 TensorAr(一)

回到第一章 TensorArt 的例子:一般模型結合 HyperFlux 這個 Lora 就會成為一個 Hyper 模型,這也是可以把 Hyper 模型拆開成「模型 + Lora」的原因。

8-38 · 09:15

回到第一章 TensorAr(二)

因為權重的關係,兩者出圖結果不可能 100% 相同,但基本上能達到類似結果。

8-39 · 09:30

另外還有一個 Rank1 的(一)

另外還有一個 Rank1 的 8Step-Lora,Lora 強度可設為一般的 1.0,容量很小只有 9.38MB,

8-40 · 09:45

另外還有一個 Rank1 的(二)

效果也相當不錯 → Hyper-FLUX.1-dev-8steps-lora_rank1.safetensors(bdsqlsz/Hyper-Flux1-dev)。

8-41 · 10:00

比較圖(四宮格

比較圖(四宮格,同一名粉紅禮服人物在遊戲中心持 FLUX 牌):Lora16Step / Lora8Step / Dev20Step / Rank18Step 四種構圖結果對照。

Lora16Step/Lora8Step/Dev20Step/Rank18Step 四宮格對照

8-42 · 10:15

Hyper 模型(一)

Hyper 模型:因為 HyperFlux 的 Lora 可縮短 Flux-Dev 步數,所以出現了類似 CreArt-Hyper-Flux-Dev-bnb-nf4–8 steps-Unet 這樣的模型;

8-43 · 10:30

Hyper 模型(二)

命名意思就是「合併了字節跳動 8StepLora 的 Flux-NF4-Dev 的 Unet 模型」。這是很之前的版本,目前主流模型已經較少提供 NF4。

8-44 · 10:45

Turbo 模型(一)

Turbo 模型:阿里智能團隊出的縮減步數模型,也是 FLUX-DEV 主流模型之一。缺點是細節會受到影響,優點是構圖表現比較好、結果穩定度較高。後面示例中會用到不少 Turbo 模型的範例。

8-46 · 11:15

Turbo 模型(三)

使用時強度設定為 1.0。看到標示 Turbo 的模型就是合併了這個 Lora,採樣步數為 8–10 步。

9-1 · 00:00

學會模型種類後開始搭建基礎工作流

學會模型種類後開始搭建基礎工作流,這裡用前面「基礎模型介紹」提到的 GGUF 模型為例,示範兩種基礎工作流的搭建方式。

9-2 · 00:15

因為 GGUF 模型分為三個 Node(一)

因為 GGUF 模型分為三個 Node,可以把它合併成一個 GroupNode:在 ComfyUI 按右鍵,把兩個 GGUF 模型和 VAE 選擇起來,

9-3 · 00:30

因為 GGUF 模型分為三個 Node(二)

按下 convert to group node 就完成群組合併(合併後節點名稱 GGUFCheckPoint,一次輸出 CLIP/VAE/MODEL,欄位含 clip_name1、clip_name2、type=flux、vae_name、

9-4 · 00:45

因為 GGUF 模型分為三個 Node(三)

unet_name)。如果是在雲端操作,就不建議這樣合併。

9-5 · 01:00

第一種:透過 Guider 建構(一)

合併完後建構兩種不同的工作流:第一種:透過 Guider 建構——官方的標準工作流,未來製作微調 Sigmas 的進階工作流會用到(作者說另外會開一篇文章說明)。

9-6 · 01:15

第一種:透過 Guider 建構(二)

工作流節點鏈:GGUFCheckpoint → Empty Latent Size Picker / ModelSamplingFlux → Primitive(提示詞)

9-7 · 01:30

第一種:透過 Guider 建構(三)

→ CLIPTextEncodeFlux → BasicGuider / BasicScheduler / RandomNoise → SamplerCustomAdvanced → VAE Decode → Save Image。

9-8 · 01:45

第二種(一)

第二種:透過 Ksampler 建構——類似 SD1.5/SDXL 的建構方式:GGUFCheckpoint → Empty Latent Size Picker + ModelSamplingFlux → Primitive → CLIPTextEncodeFlux + CLIP

9-9 · 02:00

第二種(二)

Text Encode (Prompt) → KSampler → VAE Decode → Save Image。

9-10 · 02:15

兩個工作流都用到一個客製化

兩個工作流都用到一個客製化 Node:cubiq/ComfyUI_essentials(github)。

9-11 · 02:30

作者的建構習慣(0140)

作者的建構習慣(0140):「我通常是從後面準備回來的」——先放 KSampler 和 SamplerCustomAdvanced 兩個 Node,然後把對應的節點往前拉,這樣 ComfyUI 就會自動叫出相對應的 Node 給你。

9-12 · 02:45

先從第二個(ComfyUI

先從第二個(ComfyUI 標準工作流)講起:ModelSampler 與 LatentSize。

9-13 · 03:00

這個組合實際上是兩個 Node(一)

這個組合實際上是兩個 Node:Empty Latent Size Picker(ComfyUI Essentials;

9-14 · 03:15

這個組合實際上是兩個 Node(二)

resolution 1024x1024 (1.0)、batch_size 1、width_override 0、height_override 0)與 ModelSamplingFlux(model 輸入、max_shift 1.15、

9-15 · 03:30

這個組合實際上是兩個 Node(三)

base_shift 0.50、width 1024、height 1024)。

9-16 · 03:45

複習第一章概念(一)

複習第一章概念:在 Node 上按右鍵選 Convert Widget to Input——能填入的內容叫 Widget(組件),可以接入的節點叫 Input。

9-17 · 04:00

複習第一章概念(二)

這裡把 ModelSamplingFlux 的 Width/Height 轉成 input,就能和 EmptyLatentSizePicker 接起來。

9-18 · 04:15

EmptyLatentSiz(一)

EmptyLatentSizePicker 很實用:用 resolution 選內建尺寸,而當你填入 width_override / height_override 後,填入的長寬會取代上面選的長寬;

9-19 · 04:30

EmptyLatentSiz(二)

兩個節點接起來後,就不用每次因圖片長寬調整而手動改 ModelSamplingFlux 的長寬。

9-20 · 04:45

ModelSamplingF

ModelSamplingFlux 的 Max 與 Base 建議維持預設就好(它的調整又是一篇專文,一般出圖預設值就夠)。

9-21 · 05:00

工作流中的正面提示詞範例(一)

工作流中的正面提示詞範例(Primitive STRING):phone photo of three Asian girl in school dressing in strapless school uniform holding a sign

9-22 · 05:15

工作流中的正面提示詞範例(二)

reading 'FLUX' in a park in the morning。

9-23 · 05:30

CLIPTextEncode(一)

CLIPTextEncodeFlux 原本長這樣:有 clip_l 與 t5xxl 兩個文字框,加上一個 guidance 3.5。

9-24 · 05:45

CLIPTextEncode(二)

這裡把兩個文字框縮水成輸入後,用 Primitive 拉出一個文字節點——這個做法不見得需要,你也可以分開敘述 T5 與 Clip。

9-25 · 06:00

Guidance 是 Flu

Guidance 是 Flux 的引導值,根據實驗:設定越高,照片的美肌度越強(=真實度越差);設定越低,照片越逼真,但會犧牲手指與四肢的精確度。

9-26 · 06:15

指導值的意義

指導值的意義:「較低的指導基本上允許模型進入更廣泛的範圍,以換取較低的即時依從性」——指導值越低,與提示詞細節的關聯性越差,而模型的聯想力就越強。

9-27 · 06:30

不管正面或負面提示詞都可以用

不管正面或負面提示詞都可以用 Guidance 引導,但在 CFG 1.0 下這是沒有意義的。

9-28 · 06:45

對照實驗(一)

對照實驗:負面提示詞 longhair + Guidance 10 → 沒作用;負面提示詞 longhair + Guidance 10 + CFG 6 + SkimmedCFG → 就有一點用了,可以發現有一個女生的頭髮變短了、另一個頭髮變少了,

9-29 · 07:00

對照實驗(二)

但沒有剪短(作者說之後還會有一篇介紹如何使用 CFG)。

9-30 · 07:15

結論

結論:使用 KSampler 時負面提示詞空白就好;講究一點的會把正負面提示詞做成 CLIP Text Encode (Prompt) → ConditioningZeroOut 的接法,但對結果毫無影響。

9-31 · 07:30

基本設定

基本設定:Steps 20(Dev)、CFG 1.0、Sampler = euler、Scheduler = beta、denoise 1.00,問題不大。

9-32 · 07:45

若使用 Schnell 或其他混合模型

若使用 Schnell 或其他混合模型,大約是 Step 4–8,或 10–12,詳細要看模型的指南,多跑步數是沒用的。

9-33 · 08:00

Dev 模型 8 步就可以成像

Dev 模型 8 步就可以成像,只是成像狀況不太好(肢體、文字會模糊,細節不佳)。

9-34 · 08:15

採樣器 + 排程器組合實測方向(一)

採樣器 + 排程器組合實測方向:euler + beta / simple:通用、高速,適用所有 Lora。euler + ddim_uniform:構圖較好,部分 Lora 會壞圖。

9-35 · 08:30

採樣器 + 排程器組合實測方向(二)

deis + ddim_uniform:構圖較好,但需要高步長,部分 Lora 會壞圖。

9-36 · 08:45

接下來是比較進階的工作流配置方式

接下來是比較進階的工作流配置方式:SamplerCustomAdvanced。

9-37 · 09:00

了解前面以 KSampler

了解前面以 KSampler 為主的工作流後,接著練習把它換成 SamplerCustomAdvanced 為主的工作流。它是官方的標準工作流,也是進階工作流建構方式,後面只要提到 Sigmas 幾乎都脫離不了它。

9-38 · 09:15

做法(一)

做法:先把之前工作流拿掉 KSampler/負面提示詞,然後放入 SamplerCustomAdvanced;此節點五個輸入欄位:noise、guider、sampler、sigmas、latent_image,輸出為 output、denoised_output。

9-39 · 09:30

做法(二)

Noise 是噪聲、Sampler 是採樣器、latent_image 都很清楚,重點是 Guider 與 Sigmas 兩個要接上對應節點才能運作。

9-40 · 09:45

這樣接完的工作流還不能用(一)

這樣接完的工作流還不能用,要接上構成 SamplerCustomAdvanced 所需的節點群組:Sigmas 對應的是 Scheduler 的輸出,決定 Steps 與 Denoise。

9-41 · 10:00

這樣接完的工作流還不能用(二)

Guider 實際上就是 CFG;在 Flux 中因為 CFG=1.0,所以通常直接使用 BasicGuider。

9-42 · 10:15

這樣接完的工作流還不能用(三)

若想要工作流看起來跟 KSampler 相同的樣子(支援真正 CFG 調整),就要改用 CFGGuider——

9-43 · 10:30

這樣接完的工作流還不能用(四)

紅色的這 5 個 Node(RandomNoise、CFGGuider、KSamplerSelect、BasicScheduler、SamplerCustomAdvanced)與藍色的 KSampler 這 1 個 Node,實際上是做完全相同的事情。

9-44 · 10:45

這樣接完的工作流還不能用(五)

因為 Flux 這裡沒必要使用 CFG,所以連接時改回 BasicGuider;連接時注意有兩個 Model 接點,要分別接給 Guider 與 Scheduler 才能運作。最後把 ModelSamplingFlux 的紅色節點連接回原來的群組,完成整條工作流。

10-1 · 00:00

這篇主要是給大家 CFG 的概念與影響

這篇主要是給大家 CFG 的概念與影響,是 Flux 進階做法;細節提升的同時,人物/背景安定性與執行步數等都會受到影響,需自行調整到喜歡的狀態。

10-2 · 00:15

先建立基本 GGUF 工作流

先建立基本 GGUF 工作流(加上 HyperLora 示例,Hyper 使用 16 步的 Lora,搭配 DDIM_uniform + euler 採樣),提示詞範例:一位 19 歲台灣女孩、雙馬尾、彩色削肩上衣,坐在捷運車廂內(英文提示詞見截圖 0148)。

10-3 · 00:30

在 Lora 後面加入新節點(一)

在 Lora 後面加入新節點 Skimmed_CFG(model→MODEL、Skimming_CFG 預設 1.0、full_skim_negative false、disable_flipping_filter false),

10-4 · 00:45

在 Lora 後面加入新節點(二)

並將 KSampler 的 CFG 改為 4.0(其餘:steps 16、sampler euler、scheduler ddim_uniform、denoise 1.00)。

10-5 · 01:00

節點來源

節點來源:Extraltodeus/Skimmed_CFG(A powerful anti-burn allowing much higher CFG scales for latent diffusion models,github.com)。

10-6 · 01:15

加入 Skimmed CFG 後

加入 Skimmed CFG 後,畫面細節有明顯提升(女孩腹部出現肌肉紋理、車廂背景多了乘客與座位花紋),但因為 CFG 提升,生成時間也拉長——CFG 本質上是「用時間換取更多細節」。

10-7 · 01:30

DetailDaemon

DetailDaemon 是來自 SD-WebUI 的節點,也可以直接用在 Forge(Forge 使用相當簡單),先從 Forge 示範。

10-8 · 01:45

節點來源

節點來源:muerrilla/sd-webui-detail-daemon(Extension for A1111's Stable Diffusion Webui,Controls amount of detail)。

10-9 · 02:00

安裝方式

安裝方式:Forge → Extensions → Available 頁籤 → 搜尋關鍵字 Daemon → 勾選 Install → 重啟 Forge;安裝完成後,在生成介面會多出 Detail Daemon 選項可展開設定。

10-10 · 02:15

各參數說明(抄自 Comfy(一)

各參數說明(抄自 ComfyUI 版本說明,並補充解讀):detail_amount:生成過程中調整細節的主要值。正值會降低 sigma,減少每一步去除的雜色,從而增加細節;Flux 模型建議 0.1–1.0,SDXL 模型建議小於 0.25。

10-11 · 02:30

各參數說明(抄自 Comfy(二)

也可用負值來減少細節/簡化圖像,精煉模型或短步數模型此值要設較大才有明顯效果。start:希望何時開始調整,類似 Controlnet 的「從哪個步數開始」,百分比範圍 0–1.0(0 是第一步,1.0 是最後一步)。

10-12 · 02:45

各參數說明(抄自 Comfy(三)

推薦值 0.1–0.5,通常設 0.1 或 0.2。end:希望何時結束調整,百分比範圍 0–1.0。推薦值 0.5–0.9,通常設 0.8 或 0.9。bias:在生成過程中向前或向後移動中間步驟的 detail_amount,通常設 0.5。

10-13 · 03:00

各參數說明(抄自 Comfy(四)

exponent:更改調整的曲率。0 表示無曲率,1 表示平滑彎曲,對生成結果影響較大——Forge 中若設成無曲率,畫面構圖會受影響,但設為 1.0 細節不明顯;為避免結果偏離原圖太多,可設 0.3–0.5。

10-14 · 03:15

各參數說明(抄自 Comfy(五)

start_offset / end_offset:在生成過程開始/結束時,以特定值開始/結束 detail_amount。fade:將整個調整曲線減少一個特定值。以上三者(start_offset、end_offset、fade)原則上設為 0 就好。

10-15 · 03:30

各參數說明(抄自 Comfy(六)

Smooth:是否希望調整曲線平滑,和 exponent 不同,偏向消除結果構圖的鋸齒或細節粗糙處。Mode:Forge 只支援 Both,不用管它。

10-16 · 03:45

效果比較實測(一)

效果比較實測(提示詞:25 歲台灣女性、雙馬尾、無肩帶漢服風上衣、廚房料理義大利麵場景):關閉 Detail Daemon 時,畫面較平淡。

10-17 · 04:00

效果比較實測(二)

開啟並套用參數後(detail_amount 0.6、start 0.1、end 0.9、bias 0.5),畫面細節明顯增加,且沒有增加生成時間,也不用另外掛 Lora。

10-18 · 04:15

效果比較實測(三)

若把 exponent 關閉(設 0),構圖會改變——因為新增細節的曲線變直了;有趣的是原本提示詞其實寫的是「無肩帶漢服(strapless multicolored classical Hanfu)」,構圖改變後反而忠實呈現出無肩帶的造型(作者原本亂寫的提示詞細節被找回來)。

10-19 · 04:30

ComfyUI 版 DetailDaemon(一)

ComfyUI 版 DetailDaemon:原理相同,但 ComfyUI 的變化較多。節點來源:Jonseed/ComfyUI-Detail-Daemon(A port of muerrilla's

10-20 · 04:45

ComfyUI 版 DetailDaemon(二)

sd-webui-Detail-Daemon as a node for ComfyUI, to adjust sigmas that control detail),

10-21 · 05:00

ComfyUI 版 DetailDaemon(三)

可在 ComfyUI Manager 的 NodeManager 中搜尋 Detail-Daemon 安裝。

10-22 · 05:15

ComfyUI 版 DetailDaemon(四)

官方 FLUX 工作流除了 Forge 提過的參數外,還多了一個直接對 Sigma 控制的方式,以及一個簡易版 Sampler(效果不如 Detail Daemon Sampler 多樣,可直接跳過)。

10-23 · 05:30

ComfyUI 版 DetailDaemon(五)

官方比較用工作流節點很多(含 Lying Sigmas、Default Sigmas 等多組對照),為方便先把 Lying Sigmas 部分移除,只留上下兩組節點,並把 FLUX 節點換成自己的工作流來測試。

10-24 · 05:45

ComfyUI 版 DetailDaemon(六)

ComfyUI 的圖表節點必須與 Sampler 完全相同才會顯示正確圖表,懂原理後圖表節點其實可以直接移除,不影響實際使用。

10-25 · 06:00

ComfyUI 版 DetailDaemon(七)

測試方法:用 WASNode 隨機抽選房間提示詞與房間種類 → 丟入原本工作流 → 用 ImageNote 節點合併圖片標註,以便對照是哪個工作流的成果。

10-26 · 06:15

ComfyUI 版 DetailDaemon(八)

範例對照(三種房間結果:Original / Multiply / 其他 Sigma 處理方式),依前面 Forge 的比較經驗可知,構圖改變的關鍵原因在 Exponent 參數。

10-27 · 06:30

ComfyUI 版 DetailDaemon(九)

ComfyUI 的圖表節點必須與 Sampler 相同才能顯示正確圖表,可用共通節點處理,但懂原理後其實不太需要圖表節點,實際使用時可移除。

10-28 · 06:45

節點欄位(一)

節點欄位:sampler、detail_amount 0.50、start 0.10、end 0.90、bias 0.50、exponent 0.00、start_offset 0、end_offset 0、fade 0、smooth false、

10-29 · 07:00

節點欄位(二)

cfg_scale_override 0.0。旁邊會顯示一張「Detail Adjustment Schedule」曲線圖,直觀呈現各步驟(Steps)對應的 Sigma 乘數變化。

10-30 · 07:15

測試房間提示詞範例(一)

測試房間提示詞範例:a small bedroom designed by Isamu Noguchi, shoji screen walls, tatami mat floors, bamboo ceilings, sliding paper doors,

10-31 · 07:30

測試房間提示詞範例(二)

Akari light sculptures, low-profile furniture, neutral tones with subtle patterns, soft filtered light,

10-32 · 07:45

測試房間提示詞範例(三)

對照組(Original / Daemon / Multiply)顯示不同效果。

10-33 · 08:00

過程中發現 「Multipl(一)

過程中發現 「Multiply Sigmas (stateless)」節點居然把整張圖變成線稿風格,可見它會嚴重影響出圖穩定性;查看其說明,該節點只有一個參數 Factor:在每個步驟中把 Sigma(雜訊水準)乘以此值——

10-34 · 08:15

過程中發現 「Multipl(二)

例如第一步 sigma 為 1,factor 0.95 會使 sigma 變 0.95;若某階躍 sigma 為 0.7,factor 0.95 會使它變 0.665。

10-35 · 08:30

過程中發現 「Multipl(三)

建議把此因數保持在 0.95–0.99 之間,較低的值會增加細節,但也可能越來越多地改變圖像構圖或引入雜色顆粒;設為 1.0 會有效禁用該節點。

10-36 · 08:45

過程中發現 「Multipl(四)

實測:預設值 0.960 已經很高,結果變成線稿、且明顯改變原始構圖,可見這個方法不太理想,建構工作流時此類需要頻繁微調的節點應做出取捨。

10-37 · 09:00

稍微把 exponent 拉高為 0

稍微把 exponent 拉高為 0.3,讓曲線平滑後再抽選一次測試,這次 Daemon 版與原圖差距明顯縮小很多,證明前面關閉 exponent 才是造成構圖劇烈改變的主因,而非 Detail Daemon 本身的問題。

10-38 · 09:15

確認核心參數行為後(一)

確認核心參數行為後,把工作流做清理:移除所有「圖表節點」與拿來抽抽樂測試的節點,並補上原本工作流沒有的 ModelSampling 節點,

10-39 · 09:30

確認核心參數行為後(二)

得到一個乾淨簡單的最終工作流(GGUFLoader → DualCLIPLoader(GGUF) → ModelSamplingFlux → CLIPTextEncodeFlux → Primitive →

10-40 · 09:45

確認核心參數行為後(三)

RandomNoise/KSamplerSelect/BasicScheduler → Detail Daemon Sampler → SamplerCustomAdvanced → VAE Decode)。

Detail Daemon 清理完成後的最終工作流

10-41 · 10:00

SDXL 一般類型

給大家的小提示:SDXL 一般類型:依官方建議,將 Detail 強度設為 0.25 左右。

10-42 · 10:15

混元、SD3 等 DiT 類模型

混元、SD3 等 DiT 類模型:Detail 強度要設更低,混元 0.1 就可能破壞構圖,需視自己需求調整。

10-43 · 10:30

若有 Controlnet 需求

若有 Controlnet 需求,接入 CFGGuider 即可搭配使用。

10-44 · 10:45

不建議在 Hires 階段使用

不建議在 Hires 階段使用 Detail Daemon,會出現細節去噪失敗的嚴重雜訊。

11-1 · 00:00

在 FLUX 中有幾個標準的

在 FLUX 中有幾個標準的 Controlnet 是一開始就有的,若本機安裝,都可以從 ComfyUI Manager 中找到;線上平台使用時基本上也會內建這些 Controlnet 模型。

11-2 · 00:15

FLUX 的 Control

FLUX 的 Controlnet 和之前介紹過的概念相同,要經過一道預先處理(前處理器,如 OpenPose/Canny/Depth 偵測)後,才能拉進工作流,以下以一個 OpenPose 簡單工作流示範 Union 的操作方式。

11-3 · 00:30

Controlnet 模型安裝(一)

Controlnet 模型安裝:本機運作時,在 ModelManager 下搜尋 Union,可找到相關模型清冊,

11-4 · 00:45

Controlnet 模型安裝(二)

建議安裝黃色螢光筆畫的 FP8 版本(範例:Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro (fp8 e4m3fn) by Kijai,3.30GB)。

11-5 · 01:00

安裝後解說整組節點(0161)(一)

安裝後解說整組節點(0161):LoadImage → DWPose Estimator → Preview Image → SetUnionControlNetType → Apply ControlNet,

Controlnet Union 節點連接畫面

11-6 · 01:15

安裝後解說整組節點(0161)(二)

另外接一個 Load ControlNet Model 提供模型。參考圖片是要抽取的動作(Pose),用前一章提過的 DWPose 節點從圖中提取姿勢骨架。

11-7 · 01:30

安裝後解說整組節點(0161)(三)

產生動作圖片後,將動作圖片接入 Apply ControlNet 節點;FLUX 這邊比較特別,必須額外接上 VAE 節點才能被正確處理。

11-8 · 01:45

安裝後解說整組節點(0161)(四)

Controlnet 部分依順序接:載入模型(Load ControlNet Model)→ 設置模型類型(SetUnionControlNetType,type 可選 Auto,

11-9 · 02:00

安裝後解說整組節點(0161)(五)

但 Openpose 一般都設成 Pose)→ 接入 Apply ControlNet(strength 0.70、start_percent 0.000、end_percent 1.000)。

11-10 · 02:15

安裝後解說整組節點(0161)(六)

FLUX 的 Controlnet 中,Openpose 的控制度是相對較差的一個,其他控制度也沒有 SD1.5/SDXL 來得好;若混合其他模型或 Lora,更會影響控制的差異——強度設為 0.7 以上時,圖形容易損壞。

11-11 · 02:30

安裝後解說整組節點(0161)(七)

許多工作流會配上提示詞來加強控制,以確保 OpenPose 能較準確被使用;若像範例工作流那樣比較依賴抽選圖片,則需多跑幾次動作才會比較穩定。因此在 FLUX 中,有些工作流會採取「清理或合併提示詞」的方式,或接入前面提過的 HiresFix 方法。

11-12 · 02:45

另一個做法是 FLUXTool 的做法

另一個做法是 FLUXTool 的做法,控制程度和前面的 ControlnetUnion 差不多,但操作方法不同;示範工作流是「二合一」設計,綜合前幾章概念,並教學如何用「條件式」控制不同的輸出與輸入。

11-13 · 03:00

範例工作流下載

範例工作流下載:github.com/dseditor/ComfyuiWorkflows → Flux/FluxTools【CannyDepthSwitch】.json。

11-14 · 03:15

此工作流包含兩個 Lora

此工作流包含兩個 Lora,透過開關分開使用:開關關閉時啟用 Canny 的 Lora 與圖片,開關開啟時啟用 Depth 的 Lora 與圖片。

11-15 · 03:30

需要的兩個 FLUXTool

需要的兩個 FLUXTool Lora(皆需登入 HuggingFace 才能下載):Canny:black-forest-labs/FLUX.1-Canny-dev-lora Depth:black-forest-labs/FLUX.1-Depth-dev-lora

11-16 · 03:45

模型部分(0163)(一)

模型部分(0163):使用前面提過的所有概念——GGUF 載入,並以 8Step 的 TurboLora 為主(Flux\Turbo-flux-8step.safeten...,strength_model 1.00),

11-17 · 04:00

模型部分(0163)(二)

搭配 ModelSamplingFlux(max_shift 1.15、base_shift 0.50)、DualCLIPLoader (GGUF)(clip1 t5xxl-Q8、clip2 vit-L-14 detail、type flux)、

11-18 · 04:15

模型部分(0163)(三)

Load VAE(ae.safetensors),再用 Image Resize(essentials 節點,1024×1024、interpolation nearest、method keep proportion)把圖片長寬修改為 1024。

11-19 · 04:30

模型部分(0163)(四)

圖片解析度會交給 Controlnet 前處理器,先讓它畫出符合圖片解析度的 Controlnet 圖片。

11-20 · 04:45

開關控制工作流(0164)(一)

開關控制工作流(0164):重點在這裡。畫面中 Depth 模型產生的圖片與 DepthLora 模型都連接到 on_true 項目,所以只要打開上方的 Boolean 運算子(True(Depth)False(Canny))並設定為 True,

Depth/Canny Boolean 開關控制工作流畫面

11-21 · 05:00

開關控制工作流(0164)(二)

則模型與圖片就會依照 Depth 輸出給後面的工作流程,而 Canny 的輸出則不會被使用。範例先設定為 False,所以開啟的是 Canny 的圖片與模型。

11-22 · 05:15

兩組(Depth/Canny(一)

兩組(Depth/Canny)個別使用 LoraLoaderModelOnly 載入對應 Lora(strength_model 1.00)、Simple Condition(essentials 節點,

11-23 · 05:30

兩組(Depth/Canny(二)

evaluate/on_true/on_false)做布林切換;Canny 使用 AnyLine Lineart 節點取得線稿(comfyui_controlnet_aux,merge_with_lineart=lineart_standard、

11-24 · 05:45

兩組(Depth/Canny(三)

lineart_lower/upper_bound 0.00/1.00、object_min_size 36、object_connectivity 1),

11-25 · 06:00

兩組(Depth/Canny(四)

Depth 則使用 Depth Anything V2 - Relative(depth_anything_v2_vitl.pth)。

11-26 · 06:15

與一般 Controlnet 不同(一)

與一般 Controlnet 不同,FLUXTool Lora 的方式是把 Controlnet「注入條件」中,所以必須使用 InstructPixToPixConditioning(IP2P)這個節點——

11-27 · 06:30

與一般 Controlnet 不同(二)

也就是說 Controlnet 的圖片變成了 IP2P 的「條件」,不是用 Controlnet 模型,而是將圖片注入條件式,再讓掛載過 Lora 的模型去解讀注入條件的圖片。

11-28 · 06:45

同時為了加強條件的效果

同時為了加強條件的效果,也要拉高 Guidance(FluxGuidance 節點),約 15–30 的指導值會有較好效果,範例先設為 15。

11-29 · 07:00

測試提示詞

測試提示詞:a photograph of a vivid-colored cat in the rain,參考圖也是一隻對應的貓,為了展現 Controlnet 差異,先採用同樣的 Seed。

11-30 · 07:15

Canny 強度設 1

Canny 強度設 1.0 的結果(0166):貓咪符合原本線條稿,但雨水顯得不太自然——因為 Canny 強度 1.0 情況下嚴格遵循線條,原圖是以繪畫風格為主,所以連雨水都被畫成線條。

Canny 強度 1.0 貓咪雨天採樣結果

11-31 · 07:30

切換為 Depth

切換為 Depth、強度同樣 1.0(0166–0167):把開關設為 True,讓 Depth 的圖片與 Lora 傳送到後面的採樣器與引導圖片;結果貓咪自然許多——在這個範例中,DepthLora 與圖片是比較好的控制方式。

11-32 · 07:45

FLUX 專屬的另一個 Co

FLUX 專屬的另一個 Controlnet,用途是提升模糊的畫質。

11-33 · 08:00

所需模型(一)

所需模型:jasperai/Flux.1-dev-Controlnet-Upscaler 的 diffusion_pytorch_model.safetensors,放到 ComfyUI 的 Controlnet 資料夾底下。提詞器可用 Florence2(或其他提詞器)。

11-34 · 08:15

所需模型(二)

8StepLora 建議使用,本工作流以 8Step 為基準設計。

11-35 · 08:30

參考工作流

參考工作流:dseditor/ComfyuiWorkflows → Flux/【Flux】Upscaler.png。

11-36 · 08:45

使用後整張臉變得清楚了

使用後整張臉變得清楚了,但仍須看得更清楚一些(細節有限)。

11-37 · 09:00

優缺點(一)

優缺點:優點:會自動猜測、使模糊照片變清楚,對古老、失焦的照片有良好效果,且能一定程度保持原圖樣式。缺點:① 因為對原圖的遵循度高,採樣過程中不會自動補充多餘的細節,連帶放大之後材質、皮膚細節不理想。

11-38 · 09:15

優缺點(二)

② 當圖片大小達到 1080P 以上,即會超出 12GB 記憶體,連帶採樣速度相當慢,需 24GB 以上記憶體才能採樣更大圖案。③ 雖僅有小幅度,人物造型臉型仍會有變更。

11-39 · 09:30

最適合使用場合

最適合使用場合:拍得模糊、模糊到看不出細節的圖片,用它進行初步採樣修復相當有優勢,之後再用 tile/SUPIR 或其他方式進行放大修復,即可在較低記憶體下達成大圖修復效果。建議使用 8StepLora,修復效果較快且好。

11-40 · 09:45

修復實測(0169–0170)(一)

修復實測(0169–0170):用一張 AI 畫的 512×768 低解析度但畫面清楚的圖片,以 2 倍為基準放大修復(這次只放大到 1024,速度快很多),

ControlNet 0.7 與 VAEEncode 0.4 修復結果對照

11-41 · 10:00

修復實測(0169–0170)(二)

對照 ControlNet 0.7 與 VAEEncode 0.4 兩種強度:ControlNet 0.7 狀態下,放大臉部像是化了妝,但衣服、地板材質細節都喪失了,可能是 8Step Lora 的影響,也可能是修復時為了讓畫面 noise 消失所導致。

11-42 · 10:15

修復實測(0169–0170)(三)

結論:基本清楚的圖片若要用這個方法,需降低 Controlnet 的影響效果、或盡量維持圖片原貌,使用高步數而非 8step;無論如何,這方法對模糊圖片效果很不錯,而且越模糊、效果越好。

12-1 · 00:00

Fluxtools 與傳統

Fluxtools 與傳統 SD 模型概念不同,採用的方向大致有三種:

12-2 · 00:15

採用 Differentia

採用 Differential Diffusion + InpaintModelConditioning,而不是傳統的 VAE Encode (for Inpainting)。

12-3 · 00:30

採用 InstructPix

採用 InstructPixToPixConditioning 取代 Apply ControlNet,不用預處理圖像,透過引導取得深度與線稿。

12-4 · 00:45

混合 InstructPix

混合 InstructPixToPix 概念與 IPAdapter,變成走 StyleModel 與 ClipVisionEncode。

12-5 · 01:00

這幾個概念會是未來圖像模型發展的方向

這幾個概念會是未來圖像模型發展的方向,但不代表傳統 IPA 與 Controlnet 會被淘汰,而是將有更加直觀的方式去控制圖像。

12-6 · 01:15

FluxFill 比較簡單

FluxFill 比較簡單,FP8 版本模型可下載(也有網友量化好的版本:SporkySporkness/FLUX.1-Fill-dev-GGUF)。

12-7 · 01:30

先打開官方的 Inpaint

先打開官方的 Inpainting 基礎工作流。

12-8 · 01:45

將 FluxFill 與傳統

將 FluxFill 與傳統的 InpaintingModel 做比較,對照工作流是官方的 InpaintingExample,使用模型 Jugger_inpaint_v8。原圖是一張 IKEA 沙發(官方網站展示品的寫實作品)。

12-9 · 02:00

FluxFill 核心節點群(一)

FluxFill 核心節點群:Load Diffusion Model(flux1-fill-dev.safetensors)→ Differential Diffusion(model)→ FluxGuidance(guidance 30.0,

12-10 · 02:15

FluxFill 核心節點群(二)

搭配)→ InpaintModelConditioning(positive/negative/vae/pixels/mask、noise_mask false)。

12-11 · 02:30

差異擴散(Different

差異擴散(Differential Diffusion)與 InpaintModelConditioning 搭配超高的 FluxGuidance,實測中越拉高 FluxGuidance,產生的圖像效果和原圖差異越大。

12-12 · 02:45

InpaintModelCo

InpaintModelConditioning 會重新處理過的 Latent,注意這裡的 Noise_mask 是 False——如果打算使用一般模型作為差異擴散,這裡的 Noise_mask 必須設為 True。

12-13 · 03:00

Outpaint 的邏輯也相同

Outpaint 的邏輯也相同,差異只是多做了 PadImageForOutpainting 節點。

12-14 · 03:15

材質轉換測試(0173)(一)

材質轉換測試(0173):提示詞 marble vivid-color ground(大理石彩色地板)。

12-15 · 03:30

材質轉換測試(0173)(二)

傳統 InpaintingModel 無法依提示詞變更地板樣式;換成 FLUX-Fill 模型(為節省記憶體採用 Q8 GGUF)後,提示詞順利產生大理石彩色地板,能改變地板材質。

FLUX-Fill 材質轉換測試結果(大理石地板)

12-16 · 03:45

無中生有測試(一)

無中生有測試:提示詞 a beautiful asian woman wearing strapless dress sitting on sofa,直接讓 FluxFill 在空白處生成人物——

12-17 · 04:00

無中生有測試(二)

基本人物肢體合理(0174),放大看細節、臉部也 OK,可再用放大修復處理更細節的部分。完成一次「無中生有」示範。

12-18 · 04:15

使用官方預設工作流

使用官方預設工作流,將想擴圖的房間概念描述出來:beautiful room full of flowers(希望擴圖處房間有花)。原圖大小 1280 寬度,若擴太多且沒有參考,結果通常不合理。

12-19 · 04:30

把左右長寬各加 200

把左右長寬各加 200,得到稍微合理的結果——普通擴圖如果拉伸幅度太大、又沒有足夠參考,都容易出現不合理情形。

12-20 · 04:45

FluxGuidance 對(一)

FluxGuidance 對 Outpaint/Inpaint 的影響相同:都是控制與原圖的差異性,數值越大則越接近提示詞、並偏離原圖(0176:FluxGuidance=25;

12-21 · 05:00

FluxGuidance 對(二)

0177:FluxGuidance=40 時提示詞強度變大,擴圖邊緣出現類似「邊框」的違和感)。

12-22 · 05:15

FluxFill 之後

FluxFill 之後,這是 Fluxtool 系列第二篇,除了 Redux 本身,也順便介紹用 Redux 原理製作的節點 ReduxAdvanced。

12-23 · 05:30

Redux 原理(一)

Redux 原理(參考 kaibioinfo/ComfyUI_AdvancedRefluxControl 說明,簡化翻譯):Redux 分兩步工作。

12-24 · 05:45

Redux 原理(二)

首先有一個 Clip Vision 模型,將輸入圖像裁剪為方形縱橫比,並縮小到 384×384 圖元,再分割成 27×27 個小塊,每塊都投影到 CLIP 空間中。

12-25 · 06:00

Redux 原理(三)

Redux 本身只是一個非常小的線性函數,把這些裁切圖像塊投射到 T5 潛在空間中;生成的 Token 會添加到你的 T5 提示符中。直觀地說,Redux 正在把你的條件輸入圖像翻譯成「一個提示」,該提示會添加在你自己提示的末尾。

12-26 · 06:15

Redux 原理(四)

Redux 之所以在最終提示中佔主導地位,是因為使用者提示通常很短(255 或 512 個 Token),而 Redux 會向 Prompt 額外添加 729 個新 token(可能是原始提示的 3 倍),且 Redux 提示符可能包含比使用者編寫的單詞更多的資訊。

12-27 · 06:30

Redux 原理(五)

重點兩個資訊:CLIPVision 與 Token。CLIPVision 意味著參照圖像不會太大且基本為正方形,Redux 標準策略是取畫面中心裁切為正方形(約 384×384)作為 CLIPVision;

12-28 · 06:45

Redux 原理(六)

由於圖片輸入了大量 Token,提示詞本身的 Token 影響力便會很低。

12-29 · 07:00

標準工作流測試(一)

標準工作流測試:啟動前需配置兩個模型 + FLUX 模型組合:sigclip_vision_patch14_384.safetensors → 放在 ComfyUI/models/clip_vision 底下。

12-30 · 07:15

標準工作流測試(二)

flux1-redux-dev.safetensors → 放在 ComfyUI/models/style_models 底下。

12-31 · 07:30

測試提示詞

測試提示詞:photo of a 22-year-old asian-woman in vivid color flower garden。結果並沒有太多「Photo」寫實的感覺,但圖片基本架構被保存下來;參考畫面明顯從中間被「切割」(即前述的中心裁正方形效應)。

12-32 · 07:45

更換基底模型為寫實模型後

更換基底模型為寫實模型後,馬上有比較寫實的效果(0179);換成另一個寫實模型結果又不同。

更換寫實基底模型前後對照

12-33 · 08:00

進階玩法

進階玩法:用 Conditioning 串接多個圖形,它會自動將這些圖片進行配置——範例示範一張房間配置圖,把三張參考圖(空間、傢俱、風格參考)透過 Redux 條件串接自動組合成新房間場景(0180)。原理很簡單,只是把三個圖串連起來,解析圖片後串接起來。

Redux 三張參考圖串接組合房間場景

12-34 · 08:15

接著介紹進階節點 Redux(一)

接著介紹進階節點 ReduxAdvanced(來源:kaibioinfo/ComfyUI_AdvancedRefluxControl),此節點沒有任何依賴需要安裝,

12-35 · 08:30

接著介紹進階節點 Redux(二)

安裝後會得到基本的兩個節點:CLIP Vision Encode 與 Apply Style Model(欄位:conditioning、style_model、clip_vision_output)。

12-36 · 08:45

除此之外還有 StyleMo(一)

除此之外還有 StyleModelApplySimple 節點(conditioning、style_model、clip_vision_output → CONDITIONING,image_strength 預設 medium),概念很簡單,

12-37 · 09:00

除此之外還有 StyleMo(二)

可直接取代原本的 ApplyStyleModel;圖片的強度預設為 medium。拿同一個工作流把模型換回 FLUX-Dev-Q8 測試,提示詞與原圖架構取得平衡、人物也比較有照片感。

12-38 · 09:15

除此之外還有 StyleMo(三)

若將強度改為 High,結果會很接近原圖,但比較沒有提示詞的拍照感覺——由此可清楚看出強度高低的使用時機。

12-39 · 09:30

外觀長得有點像 IPAdap(一)

外觀長得有點像 IPAdapter 的節點,輸入:conditioning、style_model、clip_vision、image、mask;輸出:CONDITIONING、IMAGE、MASK。

12-40 · 09:45

外觀長得有點像 IPAdap(二)

參數:downsampling_factor、downsampling_function、mode、weight、autocrop_margin。

12-41 · 10:00

各參數中文說明(一)

各參數中文說明:downsampling_factor:最重要的參數,決定圖像對生成結果的影響程度。實際上 StyleModelApplySimple 節點的 strength 值只是把這個值從 1(最強)改為 5(最弱),

12-42 · 10:15

各參數中文說明(二)

medium 就是 downsampling_factor=3,最高可達 9。實測結果:5 以上原圖參照效果就很差了。

12-43 · 10:30

各參數中文說明(三)

downsampling_function:調整圖像大小的函數,預設 area,bicubic 和 nearest_exact 也是可玩選項,所選函數可能大幅改變結果,值得實驗。

12-44 · 10:45

各參數中文說明(四)

Mode(影像裁剪方式):center crop (square):Redux 預設操作,把圖像裁剪為方形、調整為 384×384,會去掉圖形周邊只留中間。

12-45 · 11:00

各參數中文說明(五)

Keep aspect ratio:為原圖添加填充使其變方形,會自動調整 Mask(沒有則生成一個),最終圖像大小仍調整為 384×384——若圖片偏向長方形,雖然圖片要素都會被納入,但 CLIP 的畫質會降低很多。

12-46 · 11:15

各參數中文說明(六)

Autocrop with Mask:以 Mask 為中心裁剪圖像,只保留遮罩區域和邊距;邊距由 autocrop_margin 指定,相對於圖像總大小(例如 0.1 代表在 Mask 每側 10% 上進行裁剪)。

12-47 · 11:30

各參數中文說明(七)

Weight:按給定值的平方縮小 Redux Token,與許多人用來減少 Redux 影響的「conditioning average」方法效果非常相似,是另一種降低 Redux 影響的方式,但大多數情況下降採樣效果更好;也可嘗試兩者組合(下採樣 AND 權重)。

12-48 · 11:45

各參數中文說明(八)

Autocrop_margin:僅當選擇 Autocrop with Mask 模式時才使用。Output 會輸出裁剪與調整大小後的 Image 及其 Mask,僅用於測試——可搭配 Image Preview 節點查看裁剪後的 Image 和 Mask。

12-49 · 12:00

實測示範(0184)(一)

實測示範(0184):把遮罩塗在參考圖旁邊花朵的部分,讓它只裁切圖片中的花朵當參考圖(參數標記例:2 代表 downscale=2,autocrop 代表切割遮罩,area 代表縮放方式,1 代表權重為 1);

12-50 · 12:15

實測示範(0184)(二)

再測試「採用全圖」情境時,記得要去掉 mask 連結,否則會抓到空遮罩而失效。

12-51 · 12:30

繼續調整 downscale 至 4

繼續調整 downscale 至 4、5 並比較 keep/crop 兩種 mode:downscale 調整為 4、改成 keep 模式,效果差異都不算明顯;真正比較有差別的還是 downscale 和 mask 這兩個參數。

12-52 · 12:45

剛接觸 Redux+Fill

剛接觸 Redux+Fill 這個概念時,如果不是照抄網路上現成工作流,而是依據前兩篇文章概念自己想,要把「衣服遷移」到主角身上,大概會想出以下工作流做法。

12-53 · 13:00

工作流大概分三部分(一)

工作流大概分三部分:一是手繪遮罩、一是 FLUXFill、一是 StyleModel——先略過手繪遮罩;依照之前概念,要讓衣服細節被保留,必須把 DownSampling_Factor 降低,

12-54 · 13:15

工作流大概分三部分(二)

所以 ReduxAdvanced 就這樣設定(範例:downsampling_factor 1、downsampling_function bilinear、mode keep aspect ratio、weight 1.00、autocrop_margin 0.10)。

12-55 · 13:30

調整完後

調整完後,把 Redux 的衣服圖片丟到遮罩裡;同時因為強度為 1,所以提示詞完全留白——邏輯上,需要填補的空間會透過 fill 模型的 inpainting,以及 Redux 對衣服型態的固定資訊,填上這件衣服。

12-56 · 13:45

實測結果卻和預期有落差

實測結果卻和預期有落差:雖然裙子有很好的細節,但上半身與參考衣服完全不同——模型知道要填入衣服,但填入的對應位置不是原本想要的位置(即 Redux 只提供「這是什麼衣服」的風格資訊,不保證精確的部位對應)。

12-57 · 14:00

節點非常少(一)

節點非常少,是換裝類工作流中節點數最少的一種。核心流程:Load Diffusion Model(GGUF) + DualCLIPLoader(GGUF) + ReduxAdvanced(接目標服裝圖 ClothesImage)

12-58 · 14:15

節點非常少(二)

+ Add Mask For IC-Lora(把服裝圖與人物圖片、對應遮罩拼接在一起:first_image/first_mask/second_image/second_mask,並設定 target_width/height、

12-59 · 14:30

節點非常少(三)

tile_width/height)+ LayerMask: PersonMaskUltraV2(可針對 face/hair/body/clothes/accessories/background 分別 enable/disable,

12-60 · 14:45

節點非常少(四)

調整 detail_method VITMatte、detail_erode、detail_dilate、black_point、white_point、process_detail、invert、

12-61 · 15:00

節點非常少(五)

max_megapixels)+ Load Style Model + Load CLIP Vision + KSampler + VAE Decode + Image Crop(裁切回目標人物範圍)+ Expand Mask + Save Image。

12-62 · 15:15

先直接看結果

先直接看結果:換裝成功,人物穿上目標紅色蕾絲洋裝、細節與原服裝款式高度一致(0188)。

換裝結果:紅色蕾絲洋裝

12-63 · 15:30

細節

細節:這邊遮罩若沒選到 Body,衣服會是短袖;若將遮罩擴展 Body,衣服會完全蓋住袖子,相似度可高達 90%(0189)。

遮罩擴展 Body 後的長袖換裝結果

12-64 · 15:45

整套衣服為何能正式穿上去(一)

整套衣服為何能正式穿上去、且與原圖差很多?撇開自動抓遮罩的 LayerMask 不管,關鍵在 Add Mask For IC-Lora(輸入 first_image/first_mask/second_image/second_mask,

12-65 · 16:00

整套衣服為何能正式穿上去(二)

輸出 IMAGE+MASK,並可設定 target_width/height、patch_mode、output_length、patch_color)+ Image Crop 兩個節點——

12-66 · 16:15

整套衣服為何能正式穿上去(三)

它們的作用是把服裝圖與人物圖片左右拼接成一張大圖,拼接後左邊是服裝、右邊是人物,遮罩則設在右邊人物身上要換裝的區域。

12-67 · 16:30

若把最後的 Crop 去掉

若把最後的 Crop 去掉,可以看到完整拼接圖:左邊服裝、右邊人物(套用遮罩紫色區域),這就揭曉了原理——

12-68 · 16:45

謎底(一)

謎底:FLUX 有類似「上下文」的概念存在,當兩張圖並排時,右邊的圖會直接參照左邊的圖。在沒有 Redux+Fill 之前,這種上下文推理必須透過特殊 Lora 訓練(即 IC-Lora);

12-69 · 17:00

謎底(二)

有了 Redux+Fill 之後,就可以暫時不用訓練 ICLora,透過 Redux+Fill 把遮罩設置在右邊人物衣服上、左邊擺設目標衣服,從而完成左右圖的推理。

12-70 · 17:15

延伸閱讀(上下文與 Tran

延伸閱讀(上下文與 Transformers 模型):論文 [2410.23775] In-Context LoRA for Diffusion Transformers (arxiv.org)。

12-71 · 17:30

論文核心概念(一)

論文核心概念:文字到圖像模型可以從包含多個面板的單一提示,產生「連貫的多面板圖像」;因此可以用「合併圖像提示」簡化架構,而不必要求每張圖像只專注於各自的文字標記——這使得可以重複使用原本的文字到圖像架構,而無需做任何結構修改。

12-72 · 17:45

論文核心概念(二)

簡單說就是「你給我上下文,就能推理出一致性的圖片」。傳統 IC-Lora 做法是拿「連貫的多面板圖片」+「連貫的多面板文字標記」去訓練一整組 Lora,例如三張連續圖(小花跳舞/小花唱歌/小花說話)合成一張,訓練提示詞描述:「一個穿裙子的女孩小花,[圖1]小花跳舞、

12-73 · 18:00

論文核心概念(三)

[圖2]小花唱歌、[圖3]小花說話」——類似 LLM,給上文,圖形就會接寫下文,構成連續一致的圖片。

12-74 · 18:15

結合本節概念可以歸納(一)

結合本節概念可以歸納:① Redux 是向量,用以把圖片轉為 Token 送入 T5。② Fill 是推理填補空間,即 Inpainting 模型。③ IC 做上下文推理。以換裝為例(小明穿上西裝):1. Redux 描述西裝樣子放入 T5。

12-75 · 18:30

結合本節概念可以歸納(二)

2. Fill 將西裝放到小明身上,用遮罩推理西裝的模樣。3. IC 提供「上文」西裝樣式,模型接寫下文。結果:小明穿上了「Fill 的遮罩範圍」+「Redux 的樣式」,樣式遵守「上文」圖片給的西裝。

12-76 · 18:45

由於 Transformer

由於 Transformers 支援圖像中的上下文推理,類似的一致性邏輯也大量出現在影音模型中;但正如 LLM 接寫上下文不可能 100% 正確遵守上文,同樣地由於遮罩不同、T5 對原圖解讀的強度差異(可參考前面 Redux 強度說明),都會影響最終結果。

12-77 · 19:00

進入相對複雜的概念

進入相對複雜的概念,直接以工作流說明,可完成基本的換裝與換臉工作,幫助設計自己的模特兒。

12-78 · 19:15

範例工作流

範例工作流:github.com/dseditor/ComfyuiWorkflows → Flux/ACELora/【ACE】LoraLoopClothesAndFace.png。

12-79 · 19:30

需要取得兩個 Lora

需要取得兩個 Lora:ACE++Subject 與 ACE++Portrait,這兩個 FLUXLora 是針對 FLUXFill 訓練的。

12-80 · 19:45

整體工作流分為多個群組區塊((一)

整體工作流分為多個群組區塊(0192):FLUXFill(UnetLoader GGUF、Differential Diffusion、LoraLoaderModelOnly、ModelSwitch、DualCLIPLoader GGUF、Load VAE)、

Redux+ACE+Loop 整體工作流群組區塊畫面

12-81 · 20:00

整體工作流分為多個群組區塊((二)

ModelSwitch/FluxGuidance/Sampler、CondSwitch(Load Style Model、CLIP Text Encode Positive/Negative、CLIP Vision Encode、

12-82 · 20:15

整體工作流分為多個群組區塊((三)

Load CLIP Vision)、MaskSwitch(LayerMask: PersonMaskUltraV2 系列)、Loop(For Loop Start/End、CR Data Bus In/Out、Any Index Switch、

12-83 · 20:30

整體工作流分為多個群組區塊((四)

Comfyroll 相關節點)。

12-84 · 20:45

此工作流用到較複雜的概念

此工作流用到較複雜的概念——Loop 與 Bus。若只是想做較簡單的搭建(例如直接展開兩次採樣的流程)也可以,但為了理解 Loop 相關概念,這裡特意引入以便記憶學習。

12-85 · 21:00

補充說明

補充說明:第二階段的換臉其實也可以用 FaceDetailer 節點達成,切割衣服也可透過 ImpactPack+DeepFasion,所以此工作流並非唯一解法,只要概念清楚,節點無法使用或結果不理想時,有很多方式可以替代。

12-86 · 21:15

工作流需要三張圖片

工作流需要三張圖片:1. 要修改的模特兒圖片、2. 臉部圖片、3. 衣服圖片——對應畫面中綠色、紫色、粉色三區。

12-87 · 21:30

決定先後順序

決定先後順序:依前面提過的「條件邏輯」,先思考一開始要先換臉還是換衣服;若先換臉,要準備臉部的四個條件節點:

12-88 · 21:45

Lora

Lora(接在模型上,如 LoraLoaderModelOnly 載入 FLUXACE\comfyui_portrait_l...,strength_model 1.00)

12-89 · 22:00

FaceImage

FaceImage(臉部參考圖,接在 FirstImage)

12-90 · 22:15

Condition

Condition(根據 Lora 產生的條件,提示詞範例:this is a pair of images: the left side highlights a girl is sleeping, the right girl has this face.)

12-91 · 22:30

Mask(一)

Mask(臉部遮罩,用 LayerMask: PersonMaskUltra V2(Advance) 只勾選 face=enabled,其餘 hair/body/clothes/accessories/background 皆 disabled;

12-92 · 22:45

Mask(二)

confidence 0.40、detail_method VITMatte、detail_erode/dilate 6、black_point 0.01、white_point 0.99、process_detail true、device cuda、

12-93 · 23:00

Mask(三)

max_megapixels 2.0)

12-94 · 23:15

四節點中最難安裝的是 Per

四節點中最難安裝的是 PersonMaskUltra,需參考第一章提過的 LayerStyle 安裝方式,把模型從 HuggingFace 下載後裝在正確位置;若出現其他錯誤(如 Mediapipe/Vitmatte 相關),基本都是模型未放置在正確位置造成的。

12-95 · 23:30

準備好四個節點後(一)

準備好四個節點後,依序連接輸出到第一道 Bus 節點(來自 ComfyRoll_CustomNodes,github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes,非常古老但工具集豐富;

12-96 · 23:45

準備好四個節點後(二)

節點 CR Data Bus In:pipe、any1–any4 → pipe、show_help)。

CR Data Bus In 節點畫面

12-97 · 24:00

ClothesImage

衣服的四個節點(0194):ClothesImage(衣服圖片,例如內衣照片)

12-98 · 24:15

Mask

Mask(用 LayerMask: PersonMaskUltra V2(Advance),只勾選 clothes=enabled,切割原圖衣服範圍的遮罩)

12-99 · 24:30

Conditioning(一)

Conditioning:這邊必須使用 Redux 盡量維持衣服的形式,可用 image_strength = Highest 減少衣服的變化值,

12-100 · 24:45

Conditioning(二)

並在條件文字中針對衣服格式的對照進行描述(範例提示詞:The pair of images highlights a clothing and its styling on a model;

12-101 · 25:00

Conditioning(三)

the left side highlights a girl is dressing the clothes, the right side is the clothes.)

12-102 · 25:15

Lora

Lora(LoraLoaderModelOnly 載入 FLUXACE\comfyui_subject_l...,strength_model 1.00) 四個節點依序連接到第二個 Bus 節點,這樣就得到兩個 Bus(臉部一個、衣服一個)。

12-103 · 25:30

AnyIndex 節點(一)

AnyIndex 節點(EasyUse 提供):第一個 Bus 的 Pipe 接 Value0、第二個 Bus 的 Pipe 接 Value1。

12-104 · 25:45

AnyIndex 節點(二)

AnyIndex 的邏輯是,在 Loop 執行時,它會依序執行給定的 Index 參數——所以會依序送上下兩個條件,完成上面的 Pipe 之後,再執行下面的 Pipe。

12-105 · 26:00

把完成後的數值先給一個 Da

把完成後的數值先給一個 DataBusOut 節點,讓上面 Pipe 的數值得到輸出,包括遮罩、模型、條件與圖片。這樣就構成了工作流的基本架構。

12-106 · 26:15

模型設定

模型設定:因為這是 FluxFill 模型,且工作流要用 TurboLora 加速,所以模型接入 TurboLora,再接入差異擴散(Differential Diffusion)。

12-107 · 26:30

圖片準備小技巧

圖片準備小技巧:因為衣服是內衣類型,比較好的方式是把內衣先換成外衣,可先用 AI 產生人物穿著內衣的照片,讓它直接進行替換(避免內衣本身版型過於複雜)。

12-108 · 26:45

建立 Loop 流程(0196)(一)

建立 Loop 流程(0196):核心模型節點串接 Unet Loader (GGUF) → Differential Diffusion → LoraLoaderModelOnly(TurboLora)→ DualCLIPLoader (GGUF)

Loop 流程核心模型節點串接畫面

12-109 · 27:00

建立 Loop 流程(0196)(二)

→ Load VAE;Clip 輸出接給設定的兩個條件,Model 往下接給兩個 Lora,VAE 只需接一個。

12-110 · 27:15

建立 Loop 流程(0196)(三)

For Loop Start(initial_value1、initial_value2、total=2)→ flow/index/value1/value2 → For Loop End。

For Loop Start/End 節點畫面

12-111 · 27:30

建立 Loop 流程(0196)(四)

把初始圖片接入 initial_value1,將 Flow 對接,把 index 接到下面的 index 接口,就形成一個基本 Loop,以「起始圖片為數值」並依照 Index「索引值」去執行迴圈。

12-112 · 27:45

建立 Loop 流程(0196)(五)

使用 Loop 時,要把第一個輸入結果與第一個輸出結果做為迴圈銜接,第二個接第二個,依序執行,這邊目前只需要一組輸出與輸入。

12-113 · 28:00

建立 Loop 流程(0196)(六)

依照前一篇「萬物遷移」的概念,架構是圖片對圖片、填補空缺接寫上下文的繪製,所以這裡必須建立一個圖片對圖片的 Inpainting 遮罩,起始 Value1 的圖片數值要輸入到上面的 ICMask 節點。

12-114 · 28:15

LayerUtility(一)

LayerUtility: IC Mask 節點(0197):first_image=Value1(合併的圖片)、first_mask=(合併的重繪遮罩)、second_image=ImageBus(icmask_data)、

LayerUtility IC Mask 節點設定畫面

12-115 · 28:30

LayerUtility(二)

second_mask=MaskBus(裁剪與放大資訊)、patch_mode auto、output_length 2048、patch_color #FFFFFF;

12-116 · 28:45

LayerUtility(三)

下方接續 LayerUtility: IC Mask Crop Back(image=完成圖、icmask_data=完成圖裁剪放大 → 輸出 InitValue1Out)。

12-117 · 29:00

LayerUtility(四)

起始圖片和起始遮罩分別用前面 Bus 輸出的 Pipe 接入,Value1 從 Loop 拉出給 Image1 作輸入,這樣就完成 Inpainting 圖片與遮罩,可以拉給 InpaintModel 的節點。

12-118 · 29:15

接著把合併遮罩進行擴張(Ex

接著把合併遮罩進行擴張(Expand Mask,grow 30、blur 0)並二元化、黑白處理(ToBinaryMask,threshold 20)——這些處理主要讓衣服、臉部遮罩有擴張區域參考,並和其他區域做出明顯區分,以免遮罩過小導致衣服轉換不完全。

12-119 · 29:30

條件部分前面說明過(一)

條件部分前面說明過,FLUX 這邊會把條件進行零化(ConditioningZeroOut)。串接:Expand Mask → FluxGuidance(guidance 50.0,

12-120 · 29:45

條件部分前面說明過(二)

ConditioningBUS)→ InpaintModelConditioning(positive/negative/vae/pixels/mask,搭配 ConditioningZeroOut)→ KSampler(steps 12、cfg 1.0、

12-121 · 30:00

條件部分前面說明過(三)

sampler euler、scheduler normal、denoise 1.00)→ VAE Decode。上下節點組合併起來看,所有 Bus 就接續完畢了。

12-122 · 30:15

工作流收尾(一)

工作流收尾:將圖片完成 Inpainting 後,解碼圖片給 ICMask,並依照裁剪資料裁剪完成,再回到 Loop——不可以直接 VAEDecode 回到 Loop,不然會得到一張很怪的圖。

12-123 · 30:30

工作流收尾(二)

最後把 Loop 結果輸出,For Loop End 節點中標示的 Value1 就是工作流的結果(flow→value1、initial_value1→value2)。

12-124 · 30:45

執行邏輯總結

執行邏輯總結:執行之後,模型會依照 Index 的 BUS 內容去執行——一開始執行換臉的四個輸入,接著執行換衣服的四個輸入,然後把 Loop 完成的結果呈現在 Value1,這就是整個工作流的效果。

12-125 · 31:00

成果示範(0199)

成果示範(0199):輸入原圖(綠框)+ 臉部參考圖(紫框)+ 衣服參考圖(粉框)三張圖,經過 Loop 依序換臉、換衣後,得到融合了指定臉型與指定服裝款式的最終人物圖。

13-1 · 00:00

與前面介紹過的 Upscal

與前面介紹過的 Upscaler 及 Controlnet 不同,TTPToolset 是一整套用以提升畫質的節點組(github.com/TTPlanetPig/Comfyui_TTP_Toolset)。

13-2 · 00:15

這個節點組比之前的 Upsc

這個節點組比之前的 Upscaler 又有不同之處:它透過分塊處理的邏輯,讓每個區塊都能有更好表現,重點是放大後材質會更加精細完善。

13-3 · 00:30

對於用 ChatGPT 產生的圖像而言

對於用 ChatGPT 產生的圖像而言,TTP 會讓原本低解析度的圖像變得清晰細緻,可讓圖像材質達到輸出標準,雖原有圖像會有些許變更,但變更幅度不至於差異太大。

13-4 · 00:45

但這類分塊放大往往生成時間會拉得很長

但這類分塊放大往往生成時間會拉得很長,所以必須配上另一組節點:Teacache(github.com/welltop-cn/ComfyUI-TeaCache)。

13-5 · 01:00

Teacache 是阿里的技術

Teacache 是阿里的技術,用以加快本地模型生成,原理是變更採樣的步長;目前它與前面介紹的 DetailDaemon 是衝突的,但由於 TTP 本身就能加入不少材質細節,故設計工作流時也不需要使用 DetailDaemon。

13-6 · 01:15

範例工作流

範例工作流:github.com/dseditor/ComfyuiWorkflows → Flux/【FLUX】SimpleTTP.png。

13-7 · 01:30

模型區塊(一)

節點組分成幾個區塊:模型區塊:Unet Loader (GGUF)(atomixFluxGGUF_q8.gguf)→ TeaCache(model_type flux、rel_l1_thresh 0.40、max_skip_steps 3,不需要準備任何設定,

13-8 · 01:45

模型區塊(二)

用預設值直接放上去就好)→ LoraLoaderModelOnly(Flux\Turbo-flux-8st...,strength_model 1.00),把模型→Teacache→Lora 三個節點串接起來,完成模型的基本配置;

13-9 · 02:00

模型區塊(三)

另外接 Load VAE(FLUX1\ae.sft)與 DualCLIPLoader (GGUF)(clip1 t5xxl-Q8、clip2 ViT-L-14-TEXT-detail-impr...、type flux)。

13-10 · 02:15

採樣區塊(一)

採樣區塊:照前面章節作法把 SamplerCustomAdvanced 所有節點接續完成;因使用 TurboLora,步數設為 8 步;由於是分塊放大邏輯,Denoise 建議設為 0.3–0.4(若圖片變化過多、和原圖差距太大,也可降為 0.2)。

13-11 · 02:30

採樣區塊(二)

條件內容先留空白或不設定,Latent 部分也先不設定(留給後段 TTP 分塊處理)。

13-12 · 02:45

TTP 節點組(一)

TTP 節點組(0203):Load Upscale Model(4x_NMKD)→ Upscale Image (using Model) → Upscale Image By(bilinear、scale_by 0.50)——

TTP 節點組分塊放大工作流畫面

13-13 · 03:00

TTP 節點組(二)

先用四倍模型放大、再縮小為 0.5,相當於先放大兩倍;放大後的圖片再分給兩個節點:一個指定分塊尺寸(TTP_Tile_image_size:width_factor 2、height_factor 3、overlap_rate 0.05),

13-14 · 03:15

TTP 節點組(三)

另一個指定分塊批次(TTP_Image_Tile_Batch:tile_width/height、overlap、temporal_size/overlap、padding)——

13-15 · 03:30

TTP 節點組(四)

這裡的參數有點類似 SDUpscale 中的指定分塊,但分成兩個節點,且兩者都使用「放大後的圖片」做參考去接續分塊。

13-16 · 03:45

TTP 節點組(五)

分塊完成後才接入 VAE Encode,產生 Latent;再接續 VAE Decode (Tiled) → TTP_Image_Assy(把分塊圖片重新組合;

13-17 · 04:00

TTP 節點組(六)

tiles/positions/original_size/grid_size/padding=128)得到「真正的完成照片」。上圖中黃色是圖片編碼前的節點,紅色是圖片解碼後的節點,順序是把圖片分塊再組合(Image_Assay)。

13-18 · 04:15

提詞區塊(一)

提詞區塊:缺一個條件輸入,使用 Florence2 解決(kijai/ComfyUI-Florence2,是一個輕量提詞器,在許多工作流都很常用)。這裡因為 Denoise 很低,不提詞也可以,但材質上會有些差異。

13-19 · 04:30

提詞區塊(二)

節點下載後輸入 Florence2 即可找到,接上模型(DownloadAndLoadFlorence2Model:gokaygokay/Florence-2-Flux-Large、precision fp16、

13-20 · 04:45

提詞區塊(三)

attention sdpa)後選擇 Detailed_caption 任務(Florence2Run:fill_mask true、max_new_tokens 1024、num_beams 3),簡單說明圖片內容即可,完成後把提示詞接入條件。

13-21 · 05:00

成果比較

成果比較:用一張 GPT 產生的低解析度廚房裝潢海報測試,經過 TTP 處理後不只是放大,材質與紋理都有明顯加強,可見高解析度畫質下 TTP 確實能提升畫面、使其符合解析度需求;放大細節比對,同樣尺寸下細節明顯增加許多。

TTP 放大前後材質細節對照