1-1 · 00:00
對於剛入門 ComfyUI 的使用者(一)
對於剛入門 ComfyUI 的使用者,安裝有足夠算力顯卡的電腦與環境設置並不容易,建議在採購 AI 硬體前先從線上平台建立基礎知識。
讀書筆記
核心論點 · THESIS
《ComfyUI 工作流程實戰》是一本節點式工具 ComfyUI 實戰教學書,聚焦 Stable Diffusion/FLUX 圖像生成的概念、節點功能、操作步驟與參數設定。全書分三部分:雲端入門與環境建置、經典圖像問題解法、FLUX 模型與相關工作流,對應 GPT 圖像生成背後的同源架構。
目錄 · CONTENTS
1-1 · 00:00
對於剛入門 ComfyUI 的使用者,安裝有足夠算力顯卡的電腦與環境設置並不容易,建議在採購 AI 硬體前先從線上平台建立基礎知識。
1-2 · 00:15
目前線上平台有 TensorArt(TA)、RunningHub、liblib、FAL 等,多為基礎免費並贈送登入點數與算力。使用這些平台時要注意每個平台可用的節點(Node)與模型(Model)有差異,需具備足夠節點知識才能取得好結果。
1-3 · 00:30
初期學習不建議直接載入 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 與權重:Holographic Echoes Ultra e6(0.5)、Flux Pro Mix e10(0.8)
1-8 · 01:45
採樣器(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 節點介面預設中文,但部分節點標示英文、較混亂,初學者可用右上角切換語言(複製 → 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 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 面板上每一個小方塊稱為「節點」。最基礎的模型節點是 Checkpoint,包含三個不同顏色的輸出:MODEL(紫)、CLIP(黃)、VAE(紅)。
2-2 · 00:15
節點的基本邏輯是「同色對接」:Model 紫色只能接紫色接口、CLIP 黃色接黃色、VAE 紅色接紅色,同色接口可以相互串接(例如多個 Lora 節點的 Model 可依序串接,連續使用多個 Lora)。
2-3 · 00:30
節點連接線(Pipe)顏色對照表:紫色 = 模型(Model) 橘色 = 條件(Conditioning) 粉紅色 = 潛空間(Latent) 紅色 = VAE 亮黃色 = CLIP 藍色 = IMAGE 綠色 = 其他(並非什麼都能接,需實測是否能連線)
2-4 · 00:45
每個節點上有編號(ID),代表呼叫節點的順序編號,只有在使用特殊節點時才用得到;TA 平台雖顯示 ID,但基本沒作用,可先忽略。
2-5 · 01:00
每個節點都有參數(Widget),例如 Lora 的強度參數是「Strength_Model」。
2-6 · 01:15
Properties / Properties Panel:屬性與屬性側欄,可設置節點屬性(名稱、顏色、模式等)。節點模式共四種:Always、Never、OnEvent、OnTrigger,目前除了 Always 與 Never 外,其他兩個沒有明顯功能。
2-7 · 01:30
Lock:鎖定節點,鎖定後用右鍵可以 Unlock。
2-8 · 01:45
Resize / Title / Colors / Shapes:變更節點大小、名稱、顏色、形狀。
2-9 · 02:00
Collapse(摺疊):節點被折疊後只剩標題,許多節點須展開後才能正確連接,已 Collapse 的節點按右鍵 Expand 即可展開。若不希望使用者調整某節點參數,通常會搭配 Collapse 與 Pin 把節點縮小並釘選。
2-10 · 02:15
Pin(釘選):將節點釘在畫布上後無法移動,被釘選的節點上方會有紅針標記,可右鍵 Unpin 恢復移動。
2-11 · 02:30
Bypass(忽略):跳過節點,被跳過的節點不會被運行,例如把 Lora 節點 Bypass 後就會失去該 Lora 的效果,再按右鍵 Bypass 一次即恢復啟用。
2-12 · 02:45
Copy:拷貝節點,拷貝後在其他節點上按右鍵會出現 Paste 選項,可把 A 節點的內容和參數完全複製到 B 節點。
2-13 · 03:00
Clone(克隆):直接增加一個內容相同的節點(前面 TA 範例已用過)。
2-14 · 03:15
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(修復與重建):斷開節點所有連接,還原節點原本沒有連接的預設值,節點被搞亂時可用它還原。
2-18 · 04:15
Primitive:因為 Widget 可以轉為輸入,所以有一個通用節點可控制各種節點的輸入,就是 Primitive,雙點取找到它加入,一開始它空空如也,顯示「connect to widget input」——因為它要你連接節點的輸入參數。
2-19 · 04:30
若把兩個 Lora 的 Strength_model 都用右鍵轉換過來、再連上同一個 Primitive,它會自動偵測到數值型別是 Float,兩個節點就會同步共用同樣的 Lora 強度,用於效果比對、或多個節點參數想同步時很有用。
2-20 · 04:45
Primitive 節點上會出現「Control_after_generate」參數(Value):意思是「生成後的參數控制」,有四個選項——增加、隨機、固定、減少,方便每次生成後調整參數效果(隨機值每次生成後隨機;
2-21 · 05:00
增加/減少則每次生成後增加或減少相對應參數)。例如可用它在每次生成後降低 Denoise、或提升 Step,用以測試比對生成結果。
2-22 · 05:15
轉接用節點,用途是在變更前端節點時,能保持後端的連接。很多時候需要增刪前端節點,但後面節點不變,用 Reroute 可方便操作、不必重新連接多次。
2-23 · 05:30
直接連線三個 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 可移除整個 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 平台無法運行,右鍵仍可用兩個功能:Convert to Nodes(轉換回個別節點)、Manage Group Node(管理節點組——可看到被合併節點的個別內容,並能設定這些組件是否呈現給使用者調整,以及控制輸入輸出;
2-38 · 09:15
介面含 Inputs/Widgets/Outputs 分頁,可勾選 Visible、按 Save/Close)。
2-39 · 09:30
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):考量繪圖模型大小及各種本地佈署的 AI 運用,SSD 至少需 2-4TB 容量,且模型「不可放置於傳統硬碟」——傳統硬碟載入速度對 AI 模型而言極慢,可用於放置生圖成品/結果,但用於訓練、放置模型基本無法使用。
3-7 · 01:30
一般記憶體(RAM):需有 32-64GB,RAM 較不影響圖片生成,但某些情況下可能影響大量圖片縮放,是透過 RAM 做為緩衝。
3-8 · 01:45
CPU 等其他硬體影響不大,多數情況下不會用 CPU 進行運算,選主流新一代 CPU 即可。
3-9 · 02:00
真正的 AIPC 是一台有 NVidia 顯示卡、且配置能執行 ComfyUI 的 PC,能用 GPU 執行 ComfyUI,則其他基於 Python 的 AI 環境都沒問題。
3-10 · 02:15
目前 ComfyUI 有兩個版本:安裝版、攜帶版。攜帶版好處是設置在 Python 攜帶環境之下,可自由把環境搬移到外接硬碟、隨身碟等,不影響系統中的 Python 版本,也不用安裝任何程式。
3-11 · 02:30
攜帶版下載網址:https://github.com/comfyanonymous/ComfyUI/releases,下載最新版本的 Nvidia.7z 即可(範例 v0.3.26,ComfyUI_windows_portable_nvidia.7z,約 1.61GB)。
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-16 · 03:45
安裝完 Git 後,到 ComfyUI/custom_nodes 資料夾底下,打開 PowerShell,執行: git clone https://github.com/ltdrdata/ComfyUI-Manager
3-17 · 04:00
安裝版啟動後就等待 Web 介面出現,攜帶版則會有完整的啟動訊息,啟動訊息有幾個重點:Add extra search path 訊息:導入額外路徑的內容,若將路徑設定指向預設路徑以外(例如 WebUI)的模型,可讓兩個軟體共用模型,在此可看到訊息。
3-18 · 04:15
ExtraSearchPath 的資料設定在 ComfyUI 底下的 extra_model_paths.yaml 檔案,用記事本打開後可設定其數值(範例為 WebUI 的模型路徑),注意斜線方向——
3-19 · 04:30
Python 架構的斜線方向與 Windows 不同(yaml 中路徑用 models/Stable-diffusion 這種正斜線寫法);
3-20 · 04:45
範例欄位含 base_path、checkpoints、configs、vae、loras(可多行,如 models/Lora、models/LyCORIS)、upscale_models(可多個路徑用 | 分隔,
3-21 · 05:00
如 ESRGAN/RealESRGAN/SwinIR)、embeddings、hypernetworks、controlnet。設定好存檔後,啟動路徑中就能看到這些被導入的 extrapath。
3-22 · 05:15
下一階段會顯示 ComfyUI-Manager 安裝相依套件的訊息、啟動時間、Platform、Python version/executable、ComfyUI Path/Base Folder Path、User directory、
3-23 · 05:30
ComfyUI-Manager config path、Log path 等,標記 ComfyUI 移動版的 Python 版本(範例 3.11.6,2023 年版本)。
3-24 · 05:45
接著會有全局性質訊息,影響整個 ComfyUI 節點,會在所有節點啟動之前啟動,顯示 PreStartup、系統訊息(Checkpoint files will always be loaded safely、Total VRAM/RAM、
3-25 · 06:00
pytorch version(例如 2.5.1+cu124,即移動版使用的 torch 與 CUDA 版本,若需要安裝 whl 安裝檔時此版本很重要)、xformers version、Set vram state、Device、
3-26 · 06:15
Using xformers attention、ComfyUI version、ComfyUI frontend version)。
3-27 · 06:30
xformers 是使用許多節點時不可或缺的套件,除標示 xformers 版本外也標示注意力(attention)使用內容;ComfyUI 也支援 Sage attention 等方式,若非進階使用者,至少要有 xformers attention。
3-28 · 06:45
在 Windows 下安裝 xformers 需要透過特定路徑,且需與 CUDA 及 Pytorch 版本配合,不易透過 pip 直接安裝,需在 ComfyUI/update 資料夾底下按右鍵開 PowerShell,
3-29 · 07:00
輸入類似指令取得適合檔案: ..\python_embeded\python.exe -s -m pip install xformers --index-url https://download.pytorch.org/whl/cu124 (以上是
3-30 · 07:15
CUDA 12.4 版本下安裝 torch 的過程,它會到指定路徑抓取相關組件,Torch 等套件也是用這種方式更新或安裝。) 最後是節點清單,要注意安裝的節點有沒有 Import Failed。
3-31 · 07:30
目前 ComfyUI 的節點很少會有整批失敗的情形,除非少掉一些啟動的關鍵套件,若有 Import Failed 情形,可到 Github 上查找 Issues,
3-32 · 07:45
了解有無類似情況處理方式(畫面顯示大量 custom_nodes 的 Import times 清單,例如 ComfyUI-TCD、ComfyUI-NPNet、comfyui-portrait-master 系列、
3-33 · 08:00
ComfyUI-Detail-Daemon、ComfyUI_TTP_Toolset、Skimmed_CFG、ComfyUI-IC-Light-Native、ComfyUI-Adaptive-Guidance、ComfyUI-InstantID、
3-34 · 08:15
ComfyUI-ELLA 等常見自訂節點套件)。

4-1 · 00:00
ComfyUI 推薦且常用的三種模型類型,支援大量模型種類(圖片甚至包括 Nvidia Sana,連語言模型 Deepseek 也支援),節點系統容易開發,學會 ComfyUI 後面就有廣大開源、閉源 AI 模型世界,可說是 AI 世界的敲門磚。
4-2 · 00:15
從基礎開始推薦三種模型:SD1.5:大約 4GB VRAM 即可產圖。SDXL:所需大約 6GB VRAM。
4-3 · 00:30
FLUX:本書第三大章有完整模型概念介紹,擁有廣泛社群支援、是目前主流模型,需至少 8GB 以上 VRAM 才有基本可用生圖能力,12-16GB 才能較穩定產圖。
4-4 · 00:45
之後章節會繼續介紹重要組件如 Controlnet、IPAdapter、提示詞模型(WD14/Florence)等。
4-5 · 01:00
透過 ComfyUI Manager 自動安裝模型:點右上角 Manager 圖示 → 打開 Manager → 點取 Model Manager,即可在裡面找到模型;
4-6 · 01:15
用下拉式選單選 Type(模型種類)與 Base(基底模型),打綠色勾勾的是已安裝在電腦上的,點 Install 即自動下載模型。
4-7 · 01:30
從 Civitai 網站下載模型:目前最大型的模型庫是 Civitai(https://civitai.com/models),進入 Models 分頁後按 Filters 展開過濾條件,依模型分類優先選擇代表性模型(例如 SDXL)。
4-8 · 01:45
前三名常見模型中,DreamShaper 雖古老但對多種風格處理能力不錯;較真實風格則是 RealVisXL 或 JuggernautXL。以 RealVisXL 為例,點擊圖片後繼續點 Download 即可下載。
4-9 · 02:00
模型頁面的藍色分頁代表模型相對應的歷史版本,頁面往下拉會有模型建議參數,例如高清修復基本需三步驟:Denoise 強度至少 0.5、CFG 在 1 或 2;
4-10 · 02:15
使用 Lightning 模型時要用 DPM++SDE 採樣器,4 到 6 個 Step、CFG 1 至 2。這些生圖資訊可用於配置 ComfyUI 工作流。
4-11 · 02:30
模型下載後,放置於 ComfyUI/Models/Checkpoints 資料夾中,並使用 LoadCheckpoint 節點載入。
4-12 · 02:45
HuggingFace(HF) 也是常用模型庫,許多節點的模型都是自 HF 配置,大多數重要模型在 ComfyUI 中可透過 ComfyUI_Manager 的 Model Manager 安裝,第三章提到 FLUX 時可能有些模型需從 HF 配置。
4-13 · 03:00
中國大陸的 LIBLIB(https://www.liblib.art/)也是可註冊的模型庫,台灣人註冊需透過微信(可用 Facebook 海外認證身分,透過手機版 Wechat 解決,不一定需要中國手機)。
4-14 · 03:15
LIBLIB 中許多模型是付費的,新手通常上手一陣子才會付費,可用篩選條件盡量篩出免費模型,但有時仍會混有付費或不可下載的模型。
4-15 · 03:30
若使用 ComfyUI 移動版,需要幾個安裝套件使用的基本指令,初次使用者可能不熟悉,特別在移動版環境中這些指令更為陌生。
4-16 · 03:45
Python 若要安裝特殊版本套件,可能要透過編譯,編譯除了耗時,也可能環境根本不適合編譯,所以通常網路上會提供編譯完成的 whl 檔案以供安裝,特別在 Windows 底下,常需尋找符合版本的 whl 檔案。
4-17 · 04:00
某些套件會安裝大量依賴,這些依賴可能和既有環境衝突、導致整個 ComfyUI 崩潰,因此也可選擇獨立安裝套件。
4-18 · 04:15
以換臉重要套件「insightface」為例,實作本地安裝套件的過程(編譯版本可在換臉節點 Reactor 中找到:https://github.com/Gourieff/ComfyUI-ReActor):
4-19 · 04:30
先下載正確的 insightface whl 版本,例如在 ComfyUI 啟動資訊裡確定 python 版本為 3.11,
4-20 · 04:45
則安裝版本為:https://github.com/Gourieff/Assets/raw/main/Insightface/insightface-0.7.3-cp311-cp311-win_amd64.whl
4-21 · 05:00
確定要下載的安裝版本後,拷貝到 /ComfyUI/update 資料夾底下。
4-22 · 05:15
依照之前安裝 xformers 的方式,使用指令安裝: ..\python_embeded\python.exe -s -m pip install insightface-0.7.3-cp311-cp311-win_amd64.whl
4-23 · 05:30
這樣就完成 insightface 套件的安裝。
4-24 · 05:45
每個平台的 ComfyUI 都有些差異,而本地的功能是相對最完整的,只是 ComfyUI 版本變更迅速。
4-25 · 06:00
本地介面左側工具列圖示(之後改版可能再變更,先給概念):1. 排程結果(指針圖案,展示排程產生圖片結果) 2. 節點庫(書本圖案,節點集合列表) 3. 模型庫(方形圖案,已安裝的各種模型) 4. 工作流(資料夾圖案,
4-26 · 06:15
已儲存的工作流) 5. 節點地圖(列出所有節點,方便移動到特定節點編輯) 6. 月亮(切換深色模式) 7. 齒輪(打開設定介面)。
4-27 · 06:30
比較重要的是 Queue 按鈕,作用類似 TA 平台的「運行」,但因算力在本地端,可自由設定 Queue 方式不受限制,下拉後有幾種運行模式:Queue:一般排程運行。Queue (Instant):立即執行,點下去馬上開始。
4-28 · 06:45
Queue (On Change):工作流變更立即執行。旁邊的數字(如 1)代表排程產生次數,數字越大工作流排程數目越多。X 與方塊圖案:X 是「停止目前排程」,方塊是「清除後面的排程」。
4-29 · 07:00
例如一次下 10 個排程,用 X 只終止目前排程、剩下 9 個仍會運行;用方塊則清除後面 9 個排程、只有目前繼續運行。若要全部排程都不要(連目前執行的也不要),要先按方塊、再按 X 終止。
4-30 · 07:15
Workflow 選單:New、Open(Ctrl+O)、Browse Templates、Save(Ctrl+S)、Save As、Export、Export (API)。
4-31 · 07:30
Save/SaveAs 會出現在資料夾工作流清單中;要到其他平台使用,需用 Export 匯出為 json 檔案,日後可由 Open 簡單開啟。
4-32 · 07:45
Browse Templates:開啟本地端各種工作流範本,內建許多範本可供學習或直接載入使用(分類如 ComfyUI Examples、Basics、Flux、ControlNet、Upscaling、Video、SD3.5、SDXL、Area Composition、
4-33 · 08:00
3D、Audio 等)。
4-34 · 08:15
Edit 選單:Undo、Redo、Refresh Node Definitions(快捷鍵 r,可用於更新節點的定義,例如某些節點更新後、不必重啟 ComfyUI 就能刷新)、Clear Workflow(Backspace,清除工作流)、
4-35 · 08:30
Clipspace(可看 ComfyUI 之前生成、被保留在 Clip 空間的資料)、Impact: Refresh Wildcard。
4-36 · 08:45
右上角圖示:ImageFeed(需安裝特定節點才會出現)、Manager(打開 ComfyUI Manager)、星星旁的兩個三角形圖示用以清理記憶體中的模型(因載入過的模型會存在 VRAM 中,按下可清理)。
4-37 · 09:00
雖然 ComfyUI 已有自動清理機制,但有些節點可能不會自動清理模型。其他書籤、分享等節點使用情況較少。
4-38 · 09:15
ComfyUI Manager 常用功能:Custom Nodes Manager:節點管理,用以安裝與更新節點。若用它安裝,較新節點可能有安全性設定問題(需被驗證過),如不得不使用可降低安全性或透過前面提過的 git clone 從外部安裝。
4-39 · 09:30
大多數節點可從此處完成安裝。Install Missing Custom Nodes:安裝缺失的節點,下載別人的工作流發現缺少節點時可用此指令自動尋找安裝,但有時仍找不到(原因很多,例如實際上找到了卻 Import Failed,安裝後無法正確載入)。
4-40 · 09:45
CustomNodes In Workflow:列出目前工作流的客製化節點。ModelManager:之前介紹過的重要功能,用以搜尋及使用模型。UpdateAll:更新所有節點,注意這功能也會更新所有節點對應的依賴,節點很多時可能造成長時間安裝。
4-41 · 10:00
Update ComfyUI:更新 ComfyUI,更新後需重新啟動。Restart:重新啟動。其他如切換 ComfyUI 版本、安裝 PIP 包、使用 Git 安裝節點、使用快照等試驗性功能較少用到,不做詳細介紹——
4-42 · 10:15
節點開發者也大多使用指令碼引導,所以不太推薦使用 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 為例,篩選頁面的 Model types 分類(Checkpoint、Embedding、Hypernetwork、Aesthetic Gradient、LoRA、LyCORIS、DoRA、Controlnet、Upscaler、Motion、
4-50 · 12:15
VAE、Poses、Wildcards、Workflows、Detection、Other)對應到 /ComfyUI/Models 底下同名的資料夾。
4-51 · 12:30
Checkpoint 就放在 Checkpoint 資料夾,後面提到的 FLUX 模型及影片模型很多放在 Unet 或 Diffusion Models 資料夾。
4-52 · 12:45
Controlnet 放在 Controlnet 資料夾(大多數 Controlnet 可在 ComfyUI Manager 中直接找到)。Upscaler 放在 Upscale 資料夾底下。VAE 放在 VAE 資料夾。
4-53 · 13:00
Lora/LyCORIS 放在 Loras 資料夾底下。
4-54 · 13:15
其他網站上沒有的項目(如 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-62 · 15:15
範例在 https://github.com/cubiq/ComfyUI_IPAdapter_plus/tree/main/examples)。
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 的導論資料,以下內容會不斷提到「基本工作流」的概念,所有後續內容都立基於基本工作流的結構。
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
工作流最左方的起始節點 LoadCheckPoint,是有三個 Output 接口的節點,分別是 Model、CLIP、VAE。
5-6 · 01:15
ckpt_name:模型名稱,是下拉式選單項目,會從 comfyui/models/checkpoints 底下尋找模型清單;checkpoint 在此通常是指整合了這三種輸出的模型。
5-7 · 01:30
模型架構裡,這三個元件通常整合在同一個檔案中,通稱「模型」,但 Checkpoint 中文意思是「檢查點」而非「模型」——
5-8 · 01:45
因為在深度學習領域,模型是完整的深度學習架構,包含網路架構設計(層數、神經元數量、激活函數等),同時定義損失函數、優化器選擇及各種超參數設定,這些元素共同構成模型的完整框架。
5-9 · 02:00
相對地,檢查點(CKPT/Checkpoint)是訓練過程中保存的模型狀態快照,記錄特定時間點的模型權重和偏置值,通常會定期保存——
5-10 · 02:15
這種保存機制使我們能在訓練中斷時從上次狀態繼續訓練,或在模型表現不理想時回退到較好狀態,也可保留多個不同訓練階段的模型狀態以供比較分析。checkpoint 通常只包含模型的參數,不包含完整模型架構。
5-11 · 02:30
因此實際應用中,載入 checkpoint 時必須先定義與原始相同的模型架構,才能將保存的參數正確載入使用——這種設計使 checkpoint 檔案相對較小,更容易管理和傳輸。
5-12 · 02:45
所以概念上兩者是有差異的,只是在 ComfyUI 裡頭對 Checkpoint 的概念又不太相同——這邊 Checkpoint 泛指一種打包好的模型,包括模型(Model)、文本編碼器(CLIP)與變分自動編碼器(VAE)三個組件。
5-13 · 03:00
它通常可直接用於 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 分出上下兩個,分別為「正面」與「負面」提示詞連接給採樣器。
5-18 · 04:15
CLIP 的作用就是把文字編碼成模型看得懂的內容,再往下丟給採樣器——CLIP 也就是大家所知的 LLM,用以把文字轉換給模型理解,可以是 GoogleT5、ChatGLM、LLAMA3 等,也有專門訓練用以理解自然語言及文字的長 CLIP,
5-19 · 04:30
此外還有 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(種子):設為隨機數生成的種子(如 1566802087002286),相同種子值會產生相同結果,便於重現特定生成效果,也就是「Noise Seed」,用以隨機產生噪聲。
5-24 · 05:45
control_after_generate(生成後控制):設為 random,表示生成完成後會隨機應用控制效果,基本分為「隨機」與「固定」。
5-25 · 06:00
steps(步數):設為 20 步,代表擴散模型進行去噪的迭代次數。步數越多生成細節可能更精細,但也需要更多計算時間;之後章節會介紹「Hyper/Lightning」短步數模型或縮短步數的各種方式。
5-26 · 06:15
cfg(Classifier Free Guidance):設為 8.0,是提示詞相關性的權重值。較高數值讓生成結果更緊密跟隨提示詞,但可能降低創造性;
5-27 · 06:30
實際上有很多控制 CFG 的方式,在 FLUX 模型中很多時候都是控制 CFG 為 1.0、而以 Guidance 取代。
5-28 · 06:45
sampler_name(採樣器):使用 euler 採樣器,是一種在潛空間中進行採樣的演算法,不同採樣器會產生略微不同的視覺效果;
5-29 · 07:00
euler 是最標準的採樣器,採樣器分為 SDE 與 ODE 兩大類,多數模型均適用 euler 這種 ODE 採樣器,而傳統 Stable Diffusion 模型中 DPMPP_SDE 是較常用的 SDE 採樣器。
5-30 · 07:15
本書不會詳細說明採樣器演算法概念,但會介紹選用採樣器的一些方法。
5-31 · 07:30
scheduler(調度器):設為 normal,控制擴散過程中噪聲添加和移除的時間安排,除 normal 外常用方式也有 karras 或 sgm_uniform。
5-32 · 07:45
denoise(去噪強度):設為 1.00,表示完全的去噪過程。數值範圍通常在 0 到 1 之間,影響最終圖像清晰度;在圖像對圖像(Image2Image)的生成過程中,denoise 代表與原圖相符的程度,去噪越高則重畫程度越高。
5-33 · 08:00
最後剩下 VAE 還有 Latent 兩個組件。若把 CLIP 的提示部分拉走、留下其他組件,可看到 VAE 扮演的角色,以及整個過程就是一個把 Latent 採樣的過程。

5-34 · 08:15
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 過程變得很慢(不算錯誤):顯示視窗出現「(Tiled VAE...)」提示,代表 VAE 正在進行分塊解碼,可能是產生的圖片太大、系統 VRAM 無法處理。
5-39 · 09:30
Latent 組件:長度和寬度用以設定圖片大小,BatchSize 用以設定批次(批次代表同一批產生的圖片)。
5-40 · 09:45
批次(Batch)與清單(List)概念:Batch=4 時是一個指令、同時並行運作產生四張圖片;ImageList 是一張一張圖片過去的,相當於下四次指令(Queue)的結果——
5-41 · 10:00
批次過程中每張圖片大小相同,某些模型中批次也有自動類似對齊的性質,或使用特定節點可對齊批次。值得一提:無論 Batch 或 List=4,邏輯上和進行四次 Queue 還是不同的,因為 Queue 會逐張輸出,上述兩種設定則是一次輸出。
5-42 · 10:15
關於 ImageList,可在 CLIP 上利用 Prompt 產生 PromptList 去進行 List=4 輸出,或採用四個不同的 Seed 字串進行(需透過不同節點),
5-43 · 10:30
而 Batch=4 只需在 Latent 中設定 Batch_Size=4 即可。
5-44 · 10:45
Latent 中圖片的長寬等於輸出的長寬,然而長寬在不同模型中有「訓練數值」的概念,例如以下幾個常見模型建議的最大長寬:1、SD1.5:512
5-45 · 11:00
部分模型訓練資料解析度可能較高,有機會往上提升,例如 SDXL 也可能拉伸到 1536 長寬。之所以有這些限制,是因為基礎訓練資料大小的限制造成的——
5-46 · 11:15
若試圖突破生成建議大小,即使顯示卡有足夠記憶體可生成,生成圖片仍會有異常現象,最明顯異常就是圖案重疊,例如多手、多人等。很多新手生成圖片時會想:我只有指定一個人,為何模型都會生成兩個以上人物,那多半是因為解析度問題。
5-47 · 11:30
所謂 1024 解析度指長寬相乘(長×寬)=1024×1024 的正方形面積,也就是說若圖片是其他尺寸,只要小於這個總面積就可以,如 1280*768 的長寬比;
5-48 · 11:45
但也不能低於建議長寬太多,所以有一些特殊節點,幫你選擇模型適合的尺寸,同時將長寬輸出,成為後續圖片放大的參考數值。
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 分成 Transformer 模型與 Unet 模型兩大類,在 ComfyUI 中明顯把 Unet 的模型連接做出一個 Unet 分組。主流模型大致區分:
5-55 · 13:30
SD1.5/SDXL:前一世代,通用於 Unet 的模型。
5-56 · 13:45
SD3/SD3.5/Flux:這是 Transformer 模型。這兩類模型適用的節點及模型特性差異不小,以前可以使用的 Unet 模型節點,在 Transformer 模型使用起來會發生錯誤。
5-57 · 14:00
有幾樣技術如 HyperTile 等,多半情況下不會用到,比較常用到的幾項大概是:
5-58 · 14:15
FreeU_V2:用以控制圖片的光效以及增強模型的畫面品質,基本邏輯也是改變注意力(參數:b1、b2、s1、s2)。
5-59 · 14:30
PerturbedAttentionGuidance(PAG):也是用以改變注意力,對主體強化、細節與畫面結構會有改善(參數:scale)。
5-60 · 14:45
PatchModelAddDownscale(Kohya Deep Shrink):用來調整圖片變大時的畫面變形問題(參數:block_number、downscale_factor、start_percent、end_percent、
5-61 · 15:00
downscale_after_skip、downscale_method、upscale_method)。
5-62 · 15:15
用圖片實例比較清楚 PAG 的差異和結果,基礎模型是 SD1.5。
5-63 · 15:30
從圖例(武士/劍客女性人物比較圖)可看出 PAG 的差異及對畫面影響的表現,要注意:使用 PAG 之後會讓生成時間明顯變長。

5-64 · 15:45
對所有 Unet 模型,PAG 原則上都能提升畫面效果,但需要時間等待注意力引導完成;類似工具有 SAG(自注意力引導),但 PAG 效果通常比 SAG 更好、細節表現較佳。
5-65 · 16:00
PAG 結果也涉及畫面的採樣效果,並非每個模型都用 PAG 3.0 就會有較好結果(範例:開啟至 3.0 後畫面真實感降低不少、有對比過高的狀況),所以還是要交互測試後再選用最好的方式。

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

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 模型中,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
s2:0.2
5-72 · 17:45
Free_U 的 b 控制主體、s 控制細節,b 通常設在 1 以上、s 基本低於 1;使用 Free_U 之後,如同 PAG,主體概念會變得較為明顯(有實例對照圖)。

5-73 · 18:00
此系列對圖像主體沒有像 Free_U 等節點那樣明顯,是對模型參數偏移的函數微調,有助於模型在不同解析度中取得較佳結果,特別是對 Transformers 類模型。
5-74 · 18:15
根據社群實測結果,以 Flux 模型而言,在基本偏移(Base_Shift)與最大偏移(Max_shift)之間預設值給了較合理結果,若需要哪種模型只要加入適合的 ModelSampling 節點即可;若有實驗精神可試著微調 Shift 參數——
5-75 · 18:30
基本 Shift 參數在 1024 解析度運作幾乎沒有影響,若解析度小於 1024 則影響較明顯。其他如 SD3、Auraflow 等都可用它處理模型偏移度,多數情況下使用預設值即可。
5-76 · 18:45
類似 A1111 的「模型合併」,用以合併模型的權重,甚至針對模型各區塊進行合併;合併後在 ComfyUI 中可直接透過工作流生圖測試,測試不同模型合併、增減參數的結果。
5-77 · 19:00
本書非模型開發指南,不會詳細介紹「模型合併、增減拆分、區塊比對」概念,但若要開發合併模型,ComfyUI 也有相當強大完整的內建功能。
5-78 · 19:15
LoadLoRA 與 LoraLoaderModelOnly 兩節點差異:LoadLoRA 同時輸出 Model 與 CLIP(對 CLIP 也有影響),LoraLoaderModelOnly 只輸出 Model(對 CLIP 沒有影響)。

5-79 · 19:30
Lora 大部分影響主要在 Model 層面,對 CLIP 解讀影響較小,不過若 Lora 包含特定概念,需要「觸發詞」(例如某些 Lora 要特定人物名字才會召喚出該人物),建議使用 LoadLora(含 CLIP)結果較精準——
5-80 · 19:45
因為它會對 CLIP 有所影響,而 LoraLoaderModelOnly 不會,僅改變模型產生的結果,CLIP 本身負責文字的解讀作業。實際控制時,以它對模型強度(Strength_model)影響較大,產生的圖像會有較明顯差異。
5-81 · 20:00
CLIP 節點組合圖示範:CLIPTextEncodeSDXL、CLIPTextEncodeSD3、CLIPTextEncodeFlux、CLIPTextEncodeHunyuanDiT、CLIPTextEncodeControlnet、
5-82 · 20:15
CLIPTextEncodeSDXLRefiner、CLIPTextEncodePixArtAlpha、CLIPSetLastLayer、CLIPAttentionMultiply、SetCLIPHooks、CLIPMergeSimple、CLIPSave 等。
5-83 · 20:30
純粹由 CLIP 進出的節點不多,除了合併、儲存用途以及模型注意力(KQV)調整的項目,其他大多數是 CLIPTextEncode 的變體。

5-84 · 20:45
由於每個模型的 CLIP 結構不同,只要支援某個模型,它使用的 CLIP 都可以個別提示,或指定解析度的差異(解析度設定特別用於 SDXL 情形),但實際上很少使用解析度指定功能,而針對 T5/CLIP_I/CLIP_G 等分別提示,
5-85 · 21:00
對畫面精確程度也沒有太明顯改善或差異。即使有很多分開提示的方式可對畫面有所微調,但實際產圖時較少做出分別提示。
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 這個概念是 ComfyUI 相對複雜的一環,其中最基本、卻也最多人搞混的就是這三個條件式,何謂 Combine/Concat/Average?
5-91 · 22:30
其實 Combine=合併、Concat=連結、Average=平均,所以使用 Combine 時就是兩個條件加在一起。
5-92 · 22:45
以「粉紅色沙發(主體/第一條件)+ 泳池(背景/第二條件)」為實例:Combine:游泳池水裝在沙發中,兩者結合(呈現出「泳池狀的沙發」融合畫面)。Concat:泳池與沙發分開,兩者獨立(呈現正常沙發放在泳池邊的畫面)。
5-93 · 23:00
Average:上下平均,預設 1.0 只呈現沙發,需設成 0.5 才會讓沙發跟泳池「平均」同時出現在畫面上。
5-94 · 23:15
若兩個條件是數值 2 與 3:Combine 後呈現結果是 2+3=5(疊加);Concat 之後呈現 2、3 兩個並存(不融合、各自保留);
5-95 · 23:30
Average 之後預設是指 2(除非設定強度,強度加大後 3 才會出現在畫面上),從而產生 2 與 3 要素之間強弱差異的平均結果。範例將 Average 設為 0.6,沙發占畫面還是很大但已被縮減、泳池要素開始出現;若設為 0,泳池會直接取代沙發。
5-96 · 23:45
通常進行 Combine 時,上面的條件會大於下面條件的作用效果,所以多個條件合併時建議把想凸顯的主體放在上面,背景等條件放下面,以免合併後主體不明顯。
5-97 · 24:00
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 部分只要指定圖片生成的區域範圍條件,以下實例以 Mask 為主介紹。Conditioning Set Mask 這個節點必須搭配 Conditioning Combine 使用,以達成完整的應用條件。
5-102 · 25:15
工作流中有兩個條件:「游泳池(swimming pool)」與「粉紅色沙發(a large pink sofa)」,由於這兩物品通常不容易同時存在畫面上,所以可用來凸顯模型是否有依照條件區域生成。
5-103 · 25:30
步驟:先畫一個黑白 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 是 SD 模型的重要概念之一,主要組合方式是「提示詞」、「圖像」、「預處理器」、「Controlnet 模型」、「Conditioning」這幾個要素,每種模型都有自己對應的 Controlnet 類型,通常基本兩種是 Canny、Depth。
5-111 · 27:30
由於各模型使用的 Controlnet 控制程度不同以及需求差異,書中不會一次介紹各種預處理器以及控制模型,而是針對用途時逐步帶到相對應內容,此處只針對基本工作流結構做介紹。
5-112 · 27:45
圖片透過 Anyline 處理後會變成一張線稿,成為後續 Controlnet 的參考圖,通常決定 Controlnet 的要素有:1. 參考圖的品質 2. 參考圖的解析度 3. 控制的強度 4. 控制的步數範圍。
5-113 · 28:00
基本 Controlnet 節點:Apply ControlNet(輸入 positive/negative/control_net/image/vae,輸出 positive/negative;
5-114 · 28:15
參數 strength 1.00、start_percent 0.000、end_percent 1.000)。
5-115 · 28:30
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-119 · 29:30
Controlnet 的預處理階段,需要一個節點叫「Controlnet_Aux」(https://github.com/Fannovel16/comfyui_controlnet_aux),包括多種預處理器以及圖片尺寸的修改。
5-120 · 29:45
過程中先把參考圖片利用 Controlnet_Aux 的 Anyline 節點繪製過,作為圖片生成用的線稿,其中使用 PixelPerfect 以修正圖片尺寸,確保生成的解析度與線稿圖對應。
5-121 · 30:00
Pixel Perfect Resolution 節點:把圖片所需輸入長寬按右鍵轉為輸入接口,並把參考圖尺寸作為輸入。
5-122 · 30:15
用途是在參考圖尺寸與想產生的尺寸不同時,依想要的尺寸去變更參考圖大小,避免參考圖太小而產生的圖太大、造成控制不足問題;確定要產生的圖片尺寸後,再把解析度接口輸入到預處理器。
5-123 · 30:30
AnyLine Lineart 節點參數:image/resolution 輸入,merge_with_lineart(如 lineart_anime)、lineart_lower_bound 0.00、lineart_upper_bound 1.00、
5-124 · 30:45
object_min_size 25、object_connectivity 1。Anyline 是製作線稿時很常用的預處理器,因為要製作卡通圖片,將線稿模式改為 lineart_anime,可視需求改為 lineart_realistic 等不同線稿模式,
5-125 · 31:00
預處理方式會有所差異。物件連接方式微調通常保持預設值即可。
5-126 · 31:15
Apply Controlnet 的接法:接口包括「正負面提示詞」、VAE、Image 以及 Controlnet 模型。
5-127 · 31:30
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 編碼程序,能將圖片完全編入潛空間(Latent),達成初步構圖,之後再透過模型替這樣的構圖進行去噪(Denoise),
5-130 · 32:15
達成使用模型去影響圖片風格或要素的效果。某些效果不需透過複雜的 Controlnet,而僅透過 VAEEncode 就能做到(例如轉換圖片風格),缺點是比較沒有圖片的控制。
5-131 · 32:30
與其對應的有 Tiled 節點,用途是分塊處理,過大的圖片當電腦 VRAM 不足時會自動進行分塊——這是因為比起採樣,VAE 解碼往往是耗最多記憶體的環節,不過很多情況下動用到 Tiled 時,畫面往往會變得比較差,原因是解析度問題,若解析度拉過高、
5-132 · 32:45
用到分塊時通常也超出模型能處理的大小限制。使用 Tiled 節點時,通常決定記憶體使用的是 TiledSize,分塊大小依自己記憶體去嘗試;若進行圖片解碼,記憶體不夠也自然會採用 Tiled,不用特別配置這個節點,影片的解碼則需要……
5-133 · 33:00
用到 Tiled 節點的配置建議參考 ComfyUI 網站範例工作流以取得較好結果。節點:VAE Decode、VAE Decode (Tiled)(參數 tile_size 512、overlap 64、temporal_size 64、
5-134 · 33:15
temporal_overlap 8)、VAE Encode、VAE Encode (Tiled)(同樣參數)。
5-135 · 33:30
使用這節點時,會在 VAEEncode 建立一個遮罩,保持遮罩以外空間不被採樣,遮罩以內空間才會被採樣,但必須配合 inpainting model 使用,否則在空間中採樣不會參考空間周邊圖像,會造成不合理結果。
5-136 · 33:45
若要強制讓一般模型有類似 inpainting 效果,必須使用 Inpainting Model Conditioning 節點,以及配上差異擴散節點,此方法在後面 FLUXFill 章節會有較完整介紹。
5-137 · 34:00
範例:VAEEncodeForinpainting 模型工作流結構,簡單使用 Inpainting 模型,以手繪方式產生一個遮罩,並用 VAEEncodeForInpainting 處理,讓空曠室內空間中直接產生一籃蘋果。
5-138 · 34:15
要注意的是,模型仍會以原有空間邊界與結構作為參考,和非 Inpainting 模型進行採樣的狀況不同——若模型並非 Inpainting 模型,則透過採樣後,原有空間及結構就會改變,將不會是原來的模樣。
5-139 · 34:30
另一個節點 Set Latent Noise Mask 也是較早期用在 inpainting 的節點,目前已幾乎不使用,以上面兩個節點(VAEEncodeForInpainting / InpaintingModelConditioning)為主。
5-140 · 34:45
此系列節點組用以旋轉、切割潛空間的訊息,以產生不同方向的圖片變化,通常比較常見做法是直接操作影像,但減少 VAEDecode 的程序可以減少記憶體使用以及重複進行解碼、編碼的程序(這些程序容易造成圖片改變)。
5-141 · 35:00
實測這三個節點的效果與直接處理圖片的結果相同,所以較少被使用,比較常被使用的都是其他客製化節點的 CropImage/FlipImage 等。

5-142 · 35:15
圖例展示 Crop/Rotate/Flip Latent 效果:Empty Latent Image(1200x1200)→ Crop Latent(裁切為 1024x1024,
5-143 · 35:30
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 最像圖片轉成真人的感覺。

6-8 · 01:45
用兩個節點協助處理 I2I,有助於穩定 denoise 的圖形:一是更改圖片尺寸的節點 Image Resize(來自 cubiq/ComfyUI_essentials,github.com)。
6-9 · 02:00
參數:width 1024、height 1024、interpolation nearest、method keep proportion、condition always、multiple_of 16。
6-10 · 02:15
較重要的三個參數是 method、condition、multiple_of:method 分為:
6-11 · 02:30
stretch:預設參數,延伸圖片,例如長寬設 1024 時,圖片被改成 1024*1024(不保比例)。
6-12 · 02:45
keep proportion:保持長寬比例,設定為 1024 時,圖片以長邊為基礎、設定為 1024 解析度,並保留原圖長寬比。
6-13 · 03:00
fill/crop:保持原圖片大小,但進行填滿或剪裁,圖片大於它時剪裁成 1024 為主的正方形,圖片小於它時則以圖片為中心填滿 1024*1024 正方形。
6-14 · 03:15
pad:擴展圖片,以圖片為中心進行擴展為 1024*1024 大小。(可簡單透過它執行固定尺寸的 outpainting,減少計算圖片長寬的難度。
6-15 · 03:30
) 範例圖(原圖 1920*1080,設定 1024*1024):左上角起分別呈現 stretch、pad、keep proportion、fill/crop 的效果對照。condition 分為:

6-16 · 03:45
always:永遠調整(預設值)。
6-17 · 04:00
downscale if bigger/upscale if smaller:如果大就縮小、小就放大,依原始圖片尺寸決定(範例:原始 1920*1080、目標 1024*1024,選「如果大就縮小」則無論如何都縮小為 1024*1024,結果與預設相同)。
6-18 · 04:15
若選 upscale if smaller 狀況不同,會把圖片強制對齊為原始尺寸,所以沒有變更尺寸的效果。
6-19 · 04:30
if bigger area/if smaller area:產生效果與上面多數情況相同。通常會使用 always,除非有特殊需求。
6-20 · 04:45
multiple_of(圖片倍率):很多模型中,需要的基礎圖片是 16 的倍數,若從外面任意放入照片進行 I2I,大小長寬可能並非 16 的倍數,會發生採樣錯誤,所以用此參數修正圖片長寬為 16 的倍數。
6-21 · 05:00
另一個是 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:1girl, solo, long hair, breasts, looking at viewer, bangs, blue eyes, black hair, hair ornament, cleavage, bare shoulders,
6-26 · 06:15
jewelry, medium breasts, collarbone, upper body, flower, earrings, parted lips, food, hair flower, blunt bangs, water, mole, lips,
6-27 · 06:30
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
但若有「參考圖」作為 VAEEncode 基礎,輸入進行 Image2Image 的話,此時因為有基本構圖作為參照,在一定的 Denoise 下,它只是依據基本構圖結構去改變,所以模型訓練解析度影響就比較小,從而可以產生尺寸較大的圖片,但也有缺點,
6-31 · 07:30
就像前面 UpscaleLatent 提過的,透過直接拉升畫質,可能造成重疊或偽影。
6-32 · 07:45
若之前使用 A1111 生圖,會發現 A1111 中有「使用模型 Upscale」以及「不使用模型」兩種 HiresFix 做法,將 Hires 拉出來,會出現 Latent(潛在空間層)與一整串模型兩種方式,後面的 Upscale by 則是圖型提升的倍率。
6-33 · 08:00
A1111 的 HiresFix 放大方式下拉選單非常多種:Latent 系列(Latent/antialiased/bicubic/bicubic antialiased/nearest/nearest-exact)、None、Lanczos、
6-34 · 08:15
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
Hires steps、Resize width to、Hires Distilled CFG Scale(如 3.5)等參數。
6-36 · 08:45
使用模型並將圖片放大兩倍大小,在 ComfyUI 中的節點順序:
6-37 · 09:00
VAE Decode:原圖片解碼成一般尺寸。
6-38 · 09:15
Upscale Using Model:使用模型 4X-ultra sharp 放大圖片(輸出 UPSCALE_MODEL)。
6-39 · 09:30
Upscale Image By:因 4X-UltraSharp 會把圖形放大四倍,所以要改變圖片比例尺寸為 0.5 倍,4*0.5 得到兩倍大小(參數 upscale_method bilinear、scale_by 0.50)。
6-40 · 09:45
VAE Encode:將圖片編碼,進入上面提到的 I2I 程序。
6-41 · 10:00
VAE Decode 的結果直接接入 Upscale Image(Using Model)。若直接使用 Latent 放大兩倍,則不進行 VAE 解碼,直接把 Latent 放大 2 倍後,
6-42 · 10:15
再掛進去下一階段的採樣(節點:KSampler → Upscale Latent By(upscale_method bilinear、scale_by 2.00)→ KSampler,第二次採樣 denoise 設較低如 0.40)。
6-43 · 10:30
通常使用模型 Upscale 會比較理想,因為會把解碼的圖片再處理過、降低圖片噪點後再進行採樣。同種子下比較 UpscaleUsingModel 與 UpscaleLatent 至兩倍的結果:若只對 Latent 進行 Upscale,
6-44 · 10:45
會產生明顯偽影與模糊結果(範例圖:瓶子照片對照,左邊 Upscalemodel 清晰、右邊 UpscaleLatent 較模糊)。

6-45 · 11:00
與 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
基本流程也類似前面 HiresFix:先用模型提升畫質後,縮放回想要尺寸,再進行修復。但要注意 SDUpscale 也是透過採樣,所以人物臉型、產品文字等細節都會受到一些影響,即使 Denoise 很低的情況也會受影響,此外還有圖像接縫問題,
6-49 · 12:00
Denoise 越高、接縫就越嚴重。進行此程序時由於有接縫問題,Denoise 通常設為 0.15–0.2。
6-50 · 12:15
延續流程可用相同 Model、Clip、VAE 往下進行工作流,Denoise 以上參數之前已介紹過,就是一個採樣器的程序,還有放大倍率設定(Scaled by),以下是設定重點:Mode_type:有線性與猜測兩種方式,使用 Chess 較合理。
6-51 · 12:30
tiled_width/tiled_height:決定採樣次數,例如 2048*2048 切成 512*512 需採樣 16 次,切成 1024*1024 則次數少很多,依模型處理圖片能力,SD1.5 基本為 512,盡量不要超過 1024 為佳。
6-52 · 12:45
mask_blur 以下參數用於設定減少接縫:若 denoise 很低則接縫比較沒有調整必要,因調整這些參數會因接縫修復而增加不少採樣時間,嘗試接縫修復方式往往越修越不理想,故保持預設值就好。Tiled_Decode:用於圖片過大、記憶體不足時開啟。
6-53 · 13:00
完整參數列表: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
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,TiledUpscale 是比 SDUpscale 更穩定的方式,它會在採樣過程中對接縫進行更細節的修補,不過相對也會耗更多時間,但因沒有接縫問題,可直接給予較高的 denoise,讓圖片構成跟 Hirefix 走相同程序,
6-56 · 13:45
並直接進行較高倍率放大。
6-57 · 14:00
範例:直接將 512*512 圖片放大到 2048*2048,使用與 Hiresfix 相同參數,即使放大四倍,圖片也沒有明顯偽影現象。需要節點:shiimizu/ComfyUI-TiledDiffusion。
6-58 · 14:15
Tiled Diffusion 節點是個 Model 連結,使用非常簡單,只要連接 Model 即可,它的幾種方法涉及 Unet 的推理,分塊也會影響採樣速度,預設 768*768 是 SD1.5 合理採樣分塊,
6-59 · 14:30
其中 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 鎖定畫面,以減少偽影、控制畫面的做法——放大前後對照顯示細節(水滴、水果反光等)大幅增加但整體構圖保持穩定,人物没有變形。

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):Sampler 區塊(Load Checkpoint SDXL/realvisXL_v40_lightning、Empty Latent Image 1024x1024、
6-68 · 16:45
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
tile_overlap 64、tile_batch_size 4;Load Upscale Model 4x-UltraSharp.pth;Image Resize 到 3072x3072 method keep proportion;
6-70 · 17:15
第二次 KSampler steps 6/cfg 2.0/denoise 0.60;VAE Decode (Tiled) tile_size 1024/overlap 64);
6-71 · 17:30
Controlnet 區塊(Depth Anything model depth_anything_vitl14.pth;Load ControlNet Model SDXL controlnet-union;
6-72 · 17:45
SetUnionControlNetType type depth;Apply ControlNet strength 1.00/start_percent 0.000/end_percent 1.000)。
6-73 · 18:00
使用 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 都有清楚表現,但臉以及眼睛和原圖不同了(範例圖對照)。

6-77 · 19:00
SUPIR 是特殊模型,與 SDXL 結合,能較大程度保持圖形原貌以及增加細節,但相對地進行 SUPIR 時需要較長時間的採樣過程。SUPIR 必須要有 xformers(需確實依第一章環境安裝方式裝好)。
6-78 · 19:15
6-79 · 19:30
目前 SUPIR 有 V2 版本,主要著重在 SDXL 整合,若只是要提升圖片畫質,使用舊版節點也可以。
6-80 · 19:45
SUPIR 本身性質類似一個 SDXL 的 Controlnet,只是需經歷一段編碼、解碼過程,使用此節點時可選擇兩個模型:SUPIR-v0Q:圖像復原。SUPIR-v0F:細節修正與保留。
6-81 · 20:00
若目的是「圖像復原」,V0Q 是較好選擇,可直接進行圖像修復;若是增加細節與調整,則選 V0F 模型。下載處:https://huggingface.co/Kijai/SUPIR_pruned/tree/main,下載後放入 Checkpoint 資料夾。
6-82 · 20:15
由於 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 復原/細節調整前後對照。

7-1 · 00:00
無論 SD1.5 或 SDXL,完成圖片時常有手指或臉部損壞問題,主因是手指、臉部屬於較精細部位,特別是 SD1.5 在人物全身圖時臉部更容易損壞,手指損壞則各模型都常碰到。
7-2 · 00:15
修復需要節點:https://github.com/ltdrdata/ComfyUI-Impact-Subpack,以及主要的 https://github.com/ltdrdata/ComfyUI-Impact-Pack。
7-3 · 00:30
臉部修復一般透過 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-6 · 01:15
使用此節點時,須先準備 face_yolo8m.pt 模型(與 adetailer 使用相同模型,可從 https://huggingface.co/Bingsu/adetailer/tree/main 下載),
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 連接 SEGSOrderedFilterDetailerHookProvider,主要用途是排序遮罩內容。
7-10 · 02:15
假使主角是老師在教室上課,或模特兒街拍,後面會有很多路人;若把所有路人、學生臉部都重繪,遮罩會逐個重繪、流程跑非常久——
7-11 · 02:30
為解決此問題,只要重新畫「面積最大」的那位主角的臉就好,接上此節點是最簡單準確的方式(參數 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 重要參數(因為它實際上是基於 I2I 的重畫機制,denoise 高低會影響畫面整合性,拉高數值會導致畫面整合度較差):guide_size 384、guide_size_for bbox、max_size 1024、
7-14 · 03:15
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
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
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
noise_mask_feather 20。
7-18 · 04:15
提示詞範例:detailed face, beautiful face,。
7-19 · 04:30
常說的「換臉」多半指 Reactor 節點,是個更換臉部的模型,中間透過 insightface 架構,讓人物臉部能直接依結構去更換或貼上,優點是速度較快、無須透過採樣步驟,所以更換臉部非常容易,在所有模型中都可使用,缺點是畫面整合性比較差,
7-20 · 04:45
有時候臉像是貼上去的。
7-21 · 05:00
新版 reactor 使用節點:https://github.com/Gourieff/ComfyUI-ReActor。
7-22 · 05:15
安裝方式:在 ComfyUI_Manager 中搜尋 Reactor 並按 install,之後進入 ComfyUI\custom_nodes\ComfyUI-ReActor,尋找 install.bat 安裝。
7-23 · 05:30
若已在前一節安裝過 facedetailer,應已有 face 相關基礎偵測模型。
7-24 · 05:45
Reactor 節點基本概念:輸入圖片以及結果圖片。來源圖片(source image)是指來源臉部模型(你的臉),輸入圖片(input image)是指目標圖片,是「你要更換」的臉。
7-25 · 06:00
輸出節點包括結果圖片(image)和臉部模型(face_model),常用的臉模可存成 face_model 方便日後使用。
7-26 · 06:15
進階 options 細節配置:input_faces_order:臉部輸入順序,假使一張圖有兩張臉時,可用此參數調整順序,預設由大到小,配合 input_faces_index 可做出前後調整(例如 order 由大到小、index 為 0,
7-27 · 06:30
代表「由大到小最大的那張臉」)。
7-28 · 06:45
detect_gender_input:偵測輸入圖片中的男或女臉部資料,可只更換男生或女生臉部。
7-29 · 07:00
對應 source_faces_gender 的項目:若來源圖片有多個臉,可用它選擇及調整順序。
7-30 · 07:15
Faceboost:使用 GPEN 模型加強臉部相似性,與原節點概念相同,包括 visibility 與 codeformer_weight 兩個參數,代表了臉型的控制程度,越大越與原臉型相似,越小就越像目標圖片的臉型,可保持官方 0.5 設置即可,
7-31 · 07:30
若想更相像就必須拉高,但構圖上就會較不自然。
7-32 · 07:45
許多風格轉換工作流往往以 IPAdapter 為基礎,在 SD1.5 與 SDXL 時代 IPAdapter 重要性特別明顯,然而也有一些限制,例如它是使用 ClipVision 為基礎去輸入參考圖片,所以畫質較差,通常基礎圖片為 224*224,
7-33 · 08:00
此外若參考圖片中有的要素、模型也有此類要素,才能順利被導入風格,而參考圖片缺少的通常會無法導入。
7-34 · 08:15
目前常用的 IPAdapter 節點:https://github.com/cubiq/ComfyUI_IPAdapter_plus。
7-35 · 08:30
使用此節點時,相關模型必須從 ComfyUI_Manager 下安裝,建議使用它的 install models 功能,搜尋 IPAdapter 並將所有相關模型全部裝上,以防使用時出現找不到模型的錯誤。
7-36 · 08:45
ComfyUI Manager Menu 操作:從選單中選擇「Model Manager」進行模型安裝(選單含 Custom Nodes Manager、Install Missing Custom Nodes、Model Manager、
7-37 · 09:00
Install via Git URL、Update All、Update ComfyUI、Switch ComfyUI、Fetch Updates、Snapshot Manager、Install PIP packages、Unload models 等)。
7-38 · 09:15
從 Model Manager 搜尋 IPAdapter,可看到相關模型清單(ip-adapter_sd15.safetensors、ip-adapter_sd15_light_v11.bin、ip-adapter-plus_sd15.safetensors、
7-39 · 09:30
ip-adapter-plus-face_sd15.safetensors、ip-adapter-full-face_sd15.safetensors、ip-adapter_sd15_vit-G.safetensors、
7-40 · 09:45
ip-adapter-faceid_sd15.bin、ip-adapter-faceid-plusv2_sd15.bin 等),將相關模型全部下載安裝。
7-41 · 10:00
也可使用它的 faceID 模型建立換臉效果,如 Reactor,透過採樣過程,可和 FaceDetailer 一次完成。
7-42 · 10:15
IPAdapter 使用主要分為幾個概念:
7-43 · 10:30
權重(Weight)、起始(Start)與結束(End):與 Controlnet 相同,決定它影響的步數還有權重,另一個相同的點是權重高、畫質就差。
7-44 · 10:45
為維持畫質和模型表現力,權重通常設為 0.7,開始與結束保持 0.0–0.7,若目標是風格相似,後面會再進行 HiresFix,也可拉高至 1.0 甚至更高,但通常超過 1.0 畫質會嚴重受影響。
7-45 · 11:00
Attn_Mask:作用遮罩,這裡的遮罩是指原始圖片的遮罩,決定原始圖片中哪個要素要做為 IPAdapter 的參考圖,透過它 ClipVision 會以遮罩範圍進行裁切與縮放。
7-46 · 11:15
Embed:使用 Conditioning 概念去設計的 Embed,可透過 ClipVision 編碼圖片,並一次合併多張圖片進入 IPAdapter,也可設定合併的強度(Weight)。
7-47 · 11:30
合併 Embed 時會有 Average 等模式,可參考之前簡介的 Conditioning Combine/Concat/Average 概念。
7-48 · 11:45
五種基礎 Embed 形式測試結果(A 圖是貓貓,B 圖是狗狗,用批次方式載入):假使第一個條件是貓貓、第二個條件是狗狗,大多數連結情況下貓貓會不見,而狗狗吃到貓貓要素,除了相減之外,每一個整合中狗狗都有吃到貓貓要素,最明顯特徵是狗狗的垂耳被改變了。
7-49 · 12:00
提示詞設為「寵物店」,而 norm average 最有寵物店背景造型,也有貓貓與狗狗要素,所以就提示詞整合而言 norm average 會比 concat 好。
7-50 · 12:15
測試結果(六種合併方式對照圖):concat(狗狗,幾乎看不到貓要素)、add(狗狗,同樣看不到貓要素)、subtract(貓與狗混合,較怪異的貓狗混合體)、average(狗狗、垂耳改變)、norm average(狗狗在寵物店場景中,背景造型最完整)。

7-51 · 12:30
若使用 IPAdapterEmbed 節點,可先像 Conditioning Average 那樣設定條件權重,此外還有 Min/Max 兩個 Combine 種類。
7-52 · 12:45
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 相同,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 帶入的顏色比較完整。
7-63 · 15:30
Composition 效果很微妙,人物長了獸耳,後面背景則融合水底要素,但只取到原圖要素,顏色和人物都與原圖不同,故其概念比較偏向要素融合,IPAdapter 有個專屬的 Composition 節點,可放入參考圖進行要素融合。
7-64 · 15:45
ease in-out 結果蠻有趣的,但應該很少人用,人體鍊成推薦。
7-65 · 16:00
真正以寵物店強勢帶入風格、沒有主體但顏色要素都卡進來的其實是 weak-input,很久以前就說過 weak-input 是隱藏的法寶,暴力風格轉移,若怎樣都覺得風格要素不足,weak-input 開下去。
7-66 · 16:15
沒有一個權重成功在這種簡單提示詞下表現出「女生在水底寵物店」的場景,要製作這樣的場景不能直接使用權重,而要使用別的方式去調整。
7-67 · 16:30
因為 ClipVision 解析度問題(基礎僅 224*224),產生了「切塊」的方法,用以切割較大圖片,並充分將要素放入圖片之中,有助於提升畫質與細節,但相對地也因為切塊,圖形細節安定性可能受影響。
7-68 · 16:45
用同一批 16 種權重測試套用 ClipVisionEnhancer(將圖片放進去)的結果,對照前一節單純權重版本,整體風格帶入更完整、細節更豐富。
7-69 · 17:00
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 等讓細節穩定。

7-78 · 19:15
使用 PreciseStyleTransfer 與原有節點的 StyleTranfer/StyleTranferPrecise 結果較為接近,但經過 StyleBoost 之後,風格整合程度比這兩個節點好。
7-79 · 19:30
實作一個 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 節點讓解析度對齊,將圖片長寬全部對給它,一個對一個,拉出解析度後,進到下一節點 DepthAnytingV2,取出與圖片長寬相符的深度參考圖。
7-85 · 21:00
接著將深度圖放入 Controlnet 的 Image 接口,然後載入 ControlnetUnion。
7-86 · 21:15
Union 模型推薦在 ModelManager 下載 Promax 模型(xinsir/ControlNet++: All-in-one ControlNet,約 2.50GB,SDXL,存於 controlnet/SDXL)。
7-87 · 21:30
使用 Union 模型通常會經過兩個節點:一是「選擇 UnionType」用以設定 Union 模型類型(這邊選擇 Depth),另一是「選擇 Controlnet」模型,完成後輸入 Controlnet 接點。
7-88 · 21:45
接著正負面條件從下面 Conditioning 拉過來。
7-89 · 22:00
IPAdapter 部分較簡單:設置好節點後,直接給參考圖接入 Model 即可,根據前面各種測試,StyleBoost 給到 2.2 以上、權重給到 1.0。
7-90 · 22:15
節點:Load Image → IPAdapter Unified Loader(preset PLUS (high strength))→ IPAdapter Precise Style Transfer(weight 1.00、
7-91 · 22:30
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 是將產品重新進行光效、以合併入圖片的工作流,設計不困難,這裡先以基礎工作流為主參考,工作流目前在 OpenArt 是公開的。
7-98 · 24:15
使用 ICLight 需要以下節點:https://github.com/huchenlei/ComfyUI-IC-Light-Native(原生 ICLight 節點,
7-99 · 24:30
也是目前主流節點) LayerStyle 節點:https://github.com/chflame163/ComfyUI_LayerStyle_Advance 、
7-100 · 24:45
https://github.com/chflame163/ComfyUI_LayerStyle(Advanced 與原始的 LayerStyle 節點,其中 Advanced 安裝較複雜) ImpactPack(前面換臉課程有提到安裝方式) ACN,
7-101 · 25:00
可使用 Mask 的 Controlnet:https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet
7-102 · 25:15
ICLight 的基礎是 FG(前景) 與 BG(背景)。更換背景最簡單的就是使用單純 FG,也就是直接用 SD1.5 為基礎去變換背景,會一次把背景跟光效都能帶齊,主體也會被光效影響,只是 SD1.5 背景轉換後整體細節效果比較差,
7-103 · 25:30
而 SDXL 還是比較漂亮,所以作者會走 SDXL+SD1.5 過渡 ICLight 的方法,可能還有更好更簡單的方法。還是要強調線稿轉繪是一切的基礎。

7-104 · 25:45
Controlnet 補充知識:節點組(AnyLine Lineart → Apply Advanced ControlNet → Apply Advanced ControlNet(第二個)→ InvertMask、Scaled Soft Weights、
7-105 · 26:00
Load ControlNet Model(mistoLine_rank256)、Depth Anything V2 - Relative、
7-106 · 26:15
Load ControlNet++ Model (Single) (SDXL controlnet-union-sdxl-1.0diffusion, depth))。
7-107 · 26:30
Apply Advanced Controlnet 有個 MaskOptional 接口,代表 Controlnet 作用的 Mask 範圍,遮罩以外地方 Controlnet 沒有作用——
7-108 · 26:45
也就是可以分開遮罩範圍,例如要重畫人物、人物的手不要它變形,就在手部設置 1.0 的 LineArt 把手或臉用線稿鎖死,而其他部分僅使用深度(Depth),還有很多操作方式都可透過遮罩範圍的 Controlnet 完成,例如也可把人物去掉、
7-109 · 27:00
然後填入 Lama,由於 Controlnet 只作用於背景,此時 SDXL 就會依照深度將整個空間填滿。雖然目標是重畫背景,但這邊其實不需要 Mask 接口。
7-110 · 27:15
ScaledSoftWeights 類似 A1111 的「My prompt is more important」,預設 0.825 代表提示詞比較重要,若調降 uncond_Multiplier 數字,往下調降則會逐漸變成 Controlnet 較重要——
7-111 · 27:30
因為只要維持背景基本構造、不用全部遵守深度與線稿,所以加上此節點。使用 ScaledSoftWeights 也可讓 Controlnet 的畫面相對合理、減少降低畫質現象,但在 FLUX 等 Dit 模型,此節點並不理想。
7-112 · 27:45
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
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 的邏輯中,Image1 是原圖,Image2 是光遮罩,所以若把修改後的圖當作光效遮罩,則人物會偏向整體紅色、變成強烈的紅(因範例背景是紅色調房間)。

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

7-121 · 30:00
透過 ImageBlend 方式,可讓人物「吃下」光效但沒有那樣偏紅,方法是將 BGChanged 作為背景,而 ICLight 修改過的結果作為前景,調整人物與光效的融合程度。
7-122 · 30:15
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,故 Blend 調整的範圍比較小,不過這個和原圖 Blend 的效果也不差,白邊很少,且充滿了異世界的氛圍。
7-132 · 32:45
範例工作流下載:https://github.com/dseditor/ComfyuiWorkflows/blob/main/BackgroundChanger/LamaIClight.json
7-133 · 33:00
前面已簡介 Controlnet、IPAdapter 兩個基本議題與概念,以下進行角色設定的工作流做法,透過此工作流可簡單固定自己的角色類型並更換臉部,讓它看起來有近似的角色。
7-134 · 33:15
工作流可分幾大部分:第一部分是基礎圖片;第二部分是 Controlnet/IPAdapter,過程中技巧是使用批次方式將人物造型進行「對齊」,使其依照動作產生的畫面看起來像同一個人。
7-135 · 33:30
這段將導入 EasyUse 節點組,讓大家了解不同生圖環境與做法,因之前已介紹不少概念,這裡分成一個個群組解說。
7-136 · 33:45
參考工作流:https://github.com/dseditor/ComfyuiWorkflows/blob/main/SpecialUsage/EasyUSeOpenpose.png
7-137 · 34:00
這是一張看似簡單、節點不多的工作流,但過程中實際經歷四次採樣,邏輯分別是:1. 產生第一張圖片;2. 以第一張圖片開啟 IPAdapter,讓第二張以後依據它對齊;3. 進行 HiresFix 修復;4. 進行臉部修復包括 FaceID 更換臉部。
7-138 · 34:15
最後使用 ImageBatch 將圖片拼接完成。
7-139 · 34:30
利用它可以製作簡單的 AI 角色設定稿,即使透過對齊,人物還是有些微差異,實際使用時只要小幅修正即可。
7-140 · 34:45
主要節點:https://github.com/yolain/ComfyUI-Easy-Use。使用的 Checkpoint:https://civitai.com/models/20282/henmixreal (版本 V6B,屬於半寫實感模型)。
7-141 · 35:00
在此工作流中,第一張圖片內容僅用於參考和引導,第二次採樣後的圖片才是初步定稿。畫面顯示多個 OpenPose 骨架圖(五種不同姿勢)搭配人物角色設定稿拼接效果、以及一張臉部參考圖。

7-142 · 35:15
使用右鍵將 Positive 轉為輸入,以同步所有輸入節點。EasyLoader 節點包括以下資訊:Ckpt_name:即 Checkpoint Loader 的模型名稱。
7-143 · 35:30
Vae_name:若要加入特定 VAE 才使用,否則可用 BakedVAE 預設值。Clip_skip:許多模型均預設為 -2。
7-144 · 35:45
Lora_name:決定要載入的 Lora,這裡採用之前提的 Hyper-SD-12Step-CFG,強度設為預設 1.0。尺寸大小設為 768*768,大約是 SD1.5 穩定大小,之後會透過 HiresFix 放大。
7-145 · 36:00
EasyUse 節點接法與普通 ComfyUI 有差異:它把 Model/Clip/VAE 等整合在一起成為一個 Pipe,從而這個管道包括了全部資訊。
7-146 · 36:15
Pipe 連接出來後,直接過給 EasyControlnet,這裡使用一張 OpenPose 骨架圖,從六張中選擇一張即可。
7-147 · 36:30
在 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 做為模型產圖的增強,連接方式是把 Model+Free_U 的組合連接給採樣器的 Model,完成第一張圖的連接。概念是 Pipe→Controlnet→Pipe 以及 Model→Free_U→Model。
7-157 · 39:00
先處理 Pose 圖片,用意是讓它能夠批次對齊。把六張動作圖片做成 Batch,注意不管是怎樣的動作圖片,因做成 Batch 的關係,大小可能被縮放或裁切成相同尺寸,所以建議一開始就選擇相同尺寸做成 Batch。
7-158 · 39:15
或者也可用前面提到的 ImageResize 節點,使用 Pad 方式,把圖片擴張為相同尺寸(如 768*768),假使圖片是長方形,就會被擴充為與原圖相同的正方形。
7-159 · 39:30
批次對齊要批次幾樣東西:1. Pose 批次,使用 Batch 方式處理 Pose 的批次,讓尺寸相等;2. Image 批次,讓 Pose 進入同一個 ImageBatch,所以這邊要有一個 ImageCount 節點,用以計算圖片數量。
7-160 · 39:45
OpenPose 圖片也可透過 DWPose 產生:節點組 Load Image → DWPose Estimator(detect_hand/body/face enable、resolution 768、
7-161 · 40:00
bbox_detector yolox_l.onnx、pose_estimator dw-ll_ucoco...、scale_stick_for_xinsr_cn dis...)→ Preview Image。使用此節點可偵測臉部表情、動作。
7-162 · 40:15
將第一張圖片的 Pipe 丟進 IPAdapter 做為參考圖,並使用 Pose 圖片批次給 Controlnet。EasyUse 的接法:
7-163 · 40:30
將 Model 從前一個 Ksampler 裡拉出來、維持原本模型資料,交給 IPAdapter 做為輸入,使用「EasyApplyIPAdapter」節點,作用相當於 IPAdpater Advanced,只是更簡略。
7-164 · 40:45
權重可用 Weak-input,也可維持原本 linear,強度選擇 PLUS 以達成與原圖設計固定的目的。
7-165 · 41:00
接著使用 EasyUse 的「StyleAlign」節點,主要用於對齊批次所產生的內容、確保風格能維持,只適用於 Unet 模型(如 SD1.5 或 SDXL),這裡把它跟 IPAdapter 連接,以確定衣服、人物能更加固定。
7-166 · 41:15
連接概念:KSampler→Model→IPAdapter→Model→StyleAlign→Model→KSampler。
7-167 · 41:30
然後再 Clone 一個 EasyLoader 節點,用右鍵將正面提示詞轉為連接,並與之前的提示詞連接,另外還需用右鍵把「BatchSize」也做成連接,同時接入之前計算的 Pose 圖片數量。
7-168 · 41:45
這裡連接的概念是 ImageCount→BatchSize,如六張 Pose 圖,那數量就是 6。
7-169 · 42:00
EasyLoader 的 Pipe 拉出一個 EasyControlnet,Image 則接入之前的 ImageBatch,如此六張批次圖就形成一個完整的 Pose 控制組合。這裡的接法:Pipe→EasyControlnet→Pipe→KSampler。
7-170 · 42:15
完成這次採樣後,接著進入 HiresFix 階段。
7-171 · 42:30
完整節點參數確認(0124,IPAAndBatch 群組):Easy Apply IPAdapter (Advanced)(preset PLUS (high strength)、weight 1.00、weight_type weak input、
7-172 · 42:45
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
use_batch false)→ Easy Apply StyleAlign(share_norm both、share_attn q+k、scale 1.0)→ EasyLoader (Comfy)(第二個,batch_size 連接、
7-174 · 43:15
ckpt_name henmixReal_v6b、clip_skip -1、lora_name hypersdHyper-SD15-12ste...)→ EasyControlnet(control_net_name control_v11p_s...、
7-175 · 43:30
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
seed 751458739185284、control_after_generate fixed)。
7-177 · 44:00
將前面的 Image 接入進行第三次採樣,圖形從 768*768 放大為 1536*1536。前面介紹過使用模型進行 HireFix 的做法,這裡使用 EasyUse 再呈現一次。
7-178 · 44:15
使用相當簡單,只要 Pipe 和圖形接上去就好,預設值已包括前面「模型放大四倍,並縮小為 50%,使用 VAEEncode」的全套程序,這邊圖形的 Rescale 是以百分比為依據,也可以尺寸做為變更依據。
7-179 · 44:30
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 裡都會有一個 Pre... 之類的節點做為預處理,而 Detailer/KSampler 都沒有特別設定管道,只有一個 Pipe 輸入,這也是為何前面會使用 KSampler(Full)做為它的採樣節點。
7-185 · 46:00
前面已介紹過 SAM 概念,基本上要用文字提示去偵測區塊「bbox」,再從區塊裡把遮罩切出來「SAM」。之前用 Yolo 進行區塊偵測,這裡也再用同樣方式讓它偵測臉部,使用 face_yolo 模型,並採用 Yolo 的 pipe,讓它輸入給 bbox。
7-186 · 46:15
SAM 部分則用 SAMLoader 做為接口,讓它接入 SAMPipe,這就像前面介紹過的 impactpack,用以分割臉部並重繪,下面參數可不需調整。
7-187 · 46:30
接著可從 Model 節點接入一個 IPAdapter 以便使用自己的臉,也同樣用 EasyUse 完成。
7-188 · 46:45
關於 IPAdapter 部分,只要之前有下載過所有模型與 Lora,在此節點都能順利過關,這裡預設的 Lora 強度是 0.6,若要臉部比較相似可調高強度,但在細化之後畫質就會相對比較粗糙。
7-189 · 47:00
節點群組 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
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
sam_bbox_expansion 0、sam_mask_hint_threshold 0.70、sam_mask_hint_use_negative False)、PreDetailerFix(guide_size 256、
7-192 · 47:45
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
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 群組:Load Image(上傳自己的臉部照片)→ Easy Apply IPAdapter (Advanced)(preset FACEID PLUS V2、lora_strength 0.60、provider CUDA、weight 1.00、
7-195 · 48:30
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
use_batch false)。
7-197 · 49:00
最後把圖片輸出成為一個批次,若要輸出單張分割動作圖片清單,這個過程可省略;要像畫面那樣做成一個批次,就必須使用此節點——先把圖片清單轉為批次,再輸出即可。
7-198 · 49:15
節點內建在 KJN_Nodes 裡面,它的 num_columns 可將圖片以三欄方式排列為橫行,即可輸出如工作流圖上的結果。
7-199 · 49:30
節點群組 BatchSheet:Image List To Image Batch → Image Concatenate From Batch(num_columns 3、match_image_size false、
7-200 · 49:45
max_resolution 4096)。
7-201 · 50:00
上面多次提到 Controlnet 與 IPAdapter,那有不採用這些元件、就控制圖片來解決問題的方法嗎?這類模型也就是 GPT4 目前 IP2P、使用指令改圖的雛型。
7-202 · 50:15
ComfyUI 中有個較冷門、卻很實用的模型 CosXL_Edit,基於 SDXL 架構,只要輸入參考指令,就能變更照片、圖片的場景,是個非常簡單有效的多功能模型。
7-203 · 50:30
先至 HuggingFace 取得 CosXL_Edit 模型:https://huggingface.co/stabilityai/cosxl/blob/main/cosxl_edit.safetensors 。
7-204 · 50:45
它是前面提到過的 GatedModel,需登入 HuggingFace 才能下載,但使用方式很簡單,載入 ComfyUI 的範例工作流即可。
7-205 · 51:00
範例:提示詞僅打入「Rainy Afternoon」,中正紀念堂的照片就從晴天變成陰雨濛濛的畫面(對照圖:晴天原圖 vs 陰雨版本)。

7-206 · 51:15
範例工作流有點類似前面提過的 Image To Image,只是中間群組有明顯差別——這個群組合併了幾個節點,包括 IP2P 的 CFG 控制及採樣。
7-207 · 51:30
IP2P 是略稱,指的是 (InstructP2P),指令式的圖片對圖片,使用指令圖生圖,主要任務是風格和場景變化,從而涵蓋了大多數任務。載入後只要給它簡單的風格提示詞,就有改變圖片的效果。
7-208 · 51:45
雙 CFG 概念(0129):CosXL_Edit 使用多種風格提示詞(例如光線)可以營造類似 IG 濾鏡的感覺,但不只是套濾鏡,畫面細節會隨提示詞變更。使用時基本有兩個參數:圖片強度與提示詞強度,這就是所謂的「雙 CFG」。
7-209 · 52:00
關鍵在提示詞強度:提示詞越強,原圖造型保存越差;提示詞越弱,原圖改變程度越少。圖片強度類似負面條件的強度,影響較小,但拉太高也會造成圖片無法變更,所以兩者只要調整一個參數就好。
7-210 · 52:15
實測把第一個 CFG(Cfgtext)分別拉高為 3.0、4.5、5.5、6.0、7.0:Cfg 5.5 以後陰雨畫面越來越強烈,到 6.0/7.0 建築物造型也被改變了,所以使用此模型必須自己選定要改變圖片的強度。
7-211 · 52:30
(對照圖:六宮格中正紀念堂由晴天逐步變成暴雨天,建築造型也逐漸走樣) 此模型特色是環境與全圖色調的變更,最常用於日夜場景轉換,不需複雜 3D 光影設置就能達成白天↔黑夜與天候切換,目前很少有模型能做到類似結果。
7-212 · 52:45
除此之外也能進行人物配件、裝飾的添加,書中該範例工作流是用 EasyUse 實現,採用的節點是 PreSampling (Custom)。

8-1 · 00:00
本部分以 FLUX 為主題,說明新型態模型與運作方式。Flux 基礎模型大致分為幾種樣態,之後再談混合模型、多步數與 Hyper 模型。此章連結非常多、內容瑣碎,作者建議用網頁介面開書比較容易點連結參考。
8-2 · 00:15
開篇示範圖由 FluxDev-Hyper8Step-T5Q8-GGUF 的模型組合產生(紅色電話亭前的人物照)。

8-3 · 00:30
Unet(純模型):只有模型本身,不含 Clip 與 VAE,是一開始的標準模型。FP16 的 Unet 一般消費顯卡跑不動,所以都選 FP8。Kijai 提供的 Unet 模型:Kijai/flux-fp8。
8-4 · 00:45
Unet 整合(Checkpoint):包含 Model、Clip 與 VAE,可直接使用,例如 17GB 的 Comfy-Org/flux1-dev。
8-5 · 01:00
GGUF 模型:Unet 類純模型,只是經過 GGUF 量化 → city96/FLUX.1-dev-gguf。量化選擇:12GB VRAM 選 Q8,以下選 Q4–Q6,6–8GB 可試 Q2,是對硬體彈性最高的模型。
8-6 · 01:15
NF4 整合:檔名帶 NF4,多為 Unet 整合模型 → lllyasviel/flux1-dev-bnb-nf4。
8-7 · 01:30
四種之中 2 的通用性最廣(ComfyUI、Forge、Krita 等軟體都能用),所以新手通常優先選 2。ComfyUI 全部模型都可用,但 3、4 需要另外安裝節點:GGUF 必要節點:city96/ComfyUI-GGUF。
8-8 · 01:45
NF4 必要節點:comfyanonymous/ComfyUI_bitsandbytes_NF4;也可用純 Unet 的 NF4 節點 DenkingOfficial/ComfyUI_UNet_bitsandbytes_NF4,
8-9 · 02:00
但要自行配置 Clip 與 VAE。
8-10 · 02:15
Clip 三件事:標準 T5-Clip,分 FP16 與 FP8,一般消費級電腦以 FP8 為主 → t5xxl_fp8_e4m3fn.safetensors(comfyanonymous/flux_text_encoders)。
8-11 · 02:30
量化 T5-Clip-GGUF,主要是 FP16 的量化,是影響 Flux 效能的一個重要量化;同樣依 VRAM 選擇:12GB 可選 Q8,其他建議至少 Q5,僅 6GB 則以 Q3 為主 → city96/t5-v1_1-xxl-encoder-gguf。
8-12 · 02:45
CLIP-L:必須與 T5 並存,所以是個 DualClipLoader → clip_l.safetensors。
8-13 · 03:00
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 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):Unet Loader (GGUF)(unet_name flux1-dev-Q8_0.gguf)+ DualCLIPLoader (GGUF)(clip_name1 t5-v1_1-xxl-encoder-Q8_...、
8-18 · 04:15
clip_name2 SD3/clip_l.safetensors、type flux)+ Load VAE(ae.sft)。

8-19 · 04:30
Forge 的話則是同樣配置,也可只在 Checkpoint 放進 NF4;把兩個 Clip 和 VAE 放到 VAE 資料夾下,就可以使用 Unet 的 GGUF 模型。
8-20 · 04:45
除了純線上運行的 Pro,Flux 基礎模型分為 Schnell 與 Dev,差別在授權許可與模型的精簡程度;對沒有商用授權需求的人來說,重要的是兩者產生的圖像差別。
8-21 · 05:00
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 上,Schnell 模型標註為 Flux.1 S,Dev 標註為 Flux.1 D。
8-25 · 06:00
Civitai 上有不少混合模型,混合了 Dev 與 Schnell 的權重區塊,例如 GGUF 型的 GGUF:FastFlux (Flux.1-Schnell Merged with Flux.1-Dev) — Q4_0_v2,
8-26 · 06:15
或 Checkpoint 型的 Flux.1-Schnell Merged with Flux.1-Dev bnb-nf4 Fp8 4 steps — All in one Fp8。
8-27 · 06:30
Checkpoint(FP8):通常 17–20GB。
8-28 · 06:45
UNET(FP8):約 11GB;UNET(NF4):約 6GB。
8-29 · 07:00
Unet(FP16):本身就 20GB,通常不建議 4090 以下的顯卡使用。
8-30 · 07:15
混合模型因權重區塊不同,很難確定何者較佳,看個人喜好與需求;另外還有混合 Lora 的類型。原則上進階使用者都會喜歡使用 Unet/GGUF 模型,因為實際上大家的 T5 都一樣,大多是使用 FP8-T5,比較少使用 FP16-T5。
8-31 · 07:30
Unet-bnb-nf4:指 nf4、只有 Unet 的模型,要自己配置 Clip/VAE。
8-32 · 07:45
All-in-one FP8:FP8-Checkpoint 模型。
8-33 · 08:00
T5XXXLFP8:合併了 FP8-T5 的 Checkpoint 模型,本身模型要看旁邊的標註(例如標 FP16,則是 FP16 的 Unet + FP8 的 T5)。
8-34 · 08:15
FP16:不知道有沒有合併,要看其他標註。
8-35 · 08:30
一個「字節跳動」的 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
回到第一章 TensorArt 的例子:一般模型結合 HyperFlux 這個 Lora 就會成為一個 Hyper 模型,這也是可以把 Hyper 模型拆開成「模型 + Lora」的原因。
8-38 · 09:15
因為權重的關係,兩者出圖結果不可能 100% 相同,但基本上能達到類似結果。
8-39 · 09:30
另外還有一個 Rank1 的 8Step-Lora,Lora 強度可設為一般的 1.0,容量很小只有 9.38MB,
8-40 · 09:45
效果也相當不錯 → Hyper-FLUX.1-dev-8steps-lora_rank1.safetensors(bdsqlsz/Hyper-Flux1-dev)。
8-41 · 10:00
比較圖(四宮格,同一名粉紅禮服人物在遊戲中心持 FLUX 牌):Lora16Step / Lora8Step / Dev20Step / Rank18Step 四種構圖結果對照。

8-42 · 10:15
Hyper 模型:因為 HyperFlux 的 Lora 可縮短 Flux-Dev 步數,所以出現了類似 CreArt-Hyper-Flux-Dev-bnb-nf4–8 steps-Unet 這樣的模型;
8-43 · 10:30
命名意思就是「合併了字節跳動 8StepLora 的 Flux-NF4-Dev 的 Unet 模型」。這是很之前的版本,目前主流模型已經較少提供 NF4。
8-44 · 10:45
Turbo 模型:阿里智能團隊出的縮減步數模型,也是 FLUX-DEV 主流模型之一。缺點是細節會受到影響,優點是構圖表現比較好、結果穩定度較高。後面示例中會用到不少 Turbo 模型的範例。
8-45 · 11:00
來源:https://huggingface.co/alimama-creative/FLUX.1-Turbo-Alpha/tree/main,下載 diffusion_pytorch_model.safetensors 即可,它實際上是一個 Lora,
8-46 · 11:15
使用時強度設定為 1.0。看到標示 Turbo 的模型就是合併了這個 Lora,採樣步數為 8–10 步。
9-1 · 00:00
學會模型種類後開始搭建基礎工作流,這裡用前面「基礎模型介紹」提到的 GGUF 模型為例,示範兩種基礎工作流的搭建方式。
9-2 · 00:15
因為 GGUF 模型分為三個 Node,可以把它合併成一個 GroupNode:在 ComfyUI 按右鍵,把兩個 GGUF 模型和 VAE 選擇起來,
9-3 · 00:30
按下 convert to group node 就完成群組合併(合併後節點名稱 GGUFCheckPoint,一次輸出 CLIP/VAE/MODEL,欄位含 clip_name1、clip_name2、type=flux、vae_name、
9-4 · 00:45
unet_name)。如果是在雲端操作,就不建議這樣合併。
9-5 · 01:00
合併完後建構兩種不同的工作流:第一種:透過 Guider 建構——官方的標準工作流,未來製作微調 Sigmas 的進階工作流會用到(作者說另外會開一篇文章說明)。
9-6 · 01:15
工作流節點鏈:GGUFCheckpoint → Empty Latent Size Picker / ModelSamplingFlux → Primitive(提示詞)
9-7 · 01:30
→ 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):「我通常是從後面準備回來的」——先放 KSampler 和 SamplerCustomAdvanced 兩個 Node,然後把對應的節點往前拉,這樣 ComfyUI 就會自動叫出相對應的 Node 給你。
9-12 · 02:45
先從第二個(ComfyUI 標準工作流)講起:ModelSampler 與 LatentSize。
9-13 · 03:00
這個組合實際上是兩個 Node:Empty Latent Size Picker(ComfyUI Essentials;
9-14 · 03:15
resolution 1024x1024 (1.0)、batch_size 1、width_override 0、height_override 0)與 ModelSamplingFlux(model 輸入、max_shift 1.15、
9-15 · 03:30
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
EmptyLatentSizePicker 很實用:用 resolution 選內建尺寸,而當你填入 width_override / height_override 後,填入的長寬會取代上面選的長寬;
9-19 · 04:30
兩個節點接起來後,就不用每次因圖片長寬調整而手動改 ModelSamplingFlux 的長寬。
9-20 · 04:45
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
CLIPTextEncodeFlux 原本長這樣:有 clip_l 與 t5xxl 兩個文字框,加上一個 guidance 3.5。
9-24 · 05:45
這裡把兩個文字框縮水成輸入後,用 Primitive 拉出一個文字節點——這個做法不見得需要,你也可以分開敘述 T5 與 Clip。
9-25 · 06:00
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 或其他混合模型,大約是 Step 4–8,或 10–12,詳細要看模型的指南,多跑步數是沒用的。
9-33 · 08:00
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 為主的工作流後,接著練習把它換成 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 的概念與影響,是 Flux 進階做法;細節提升的同時,人物/背景安定性與執行步數等都會受到影響,需自行調整到喜歡的狀態。
10-2 · 00:15
先建立基本 GGUF 工作流(加上 HyperLora 示例,Hyper 使用 16 步的 Lora,搭配 DDIM_uniform + euler 採樣),提示詞範例:一位 19 歲台灣女孩、雙馬尾、彩色削肩上衣,坐在捷運車廂內(英文提示詞見截圖 0148)。
10-3 · 00:30
在 Lora 後面加入新節點 Skimmed_CFG(model→MODEL、Skimming_CFG 預設 1.0、full_skim_negative false、disable_flipping_filter false),
10-4 · 00:45
並將 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 後,畫面細節有明顯提升(女孩腹部出現肌肉紋理、車廂背景多了乘客與座位花紋),但因為 CFG 提升,生成時間也拉長——CFG 本質上是「用時間換取更多細節」。
10-7 · 01:30
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
各參數說明(抄自 ComfyUI 版本說明,並補充解讀):detail_amount:生成過程中調整細節的主要值。正值會降低 sigma,減少每一步去除的雜色,從而增加細節;Flux 模型建議 0.1–1.0,SDXL 模型建議小於 0.25。
10-11 · 02:30
也可用負值來減少細節/簡化圖像,精煉模型或短步數模型此值要設較大才有明顯效果。start:希望何時開始調整,類似 Controlnet 的「從哪個步數開始」,百分比範圍 0–1.0(0 是第一步,1.0 是最後一步)。
10-12 · 02:45
推薦值 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
exponent:更改調整的曲率。0 表示無曲率,1 表示平滑彎曲,對生成結果影響較大——Forge 中若設成無曲率,畫面構圖會受影響,但設為 1.0 細節不明顯;為避免結果偏離原圖太多,可設 0.3–0.5。
10-14 · 03:15
start_offset / end_offset:在生成過程開始/結束時,以特定值開始/結束 detail_amount。fade:將整個調整曲線減少一個特定值。以上三者(start_offset、end_offset、fade)原則上設為 0 就好。
10-15 · 03:30
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 的變化較多。節點來源:Jonseed/ComfyUI-Detail-Daemon(A port of muerrilla's
10-20 · 04:45
sd-webui-Detail-Daemon as a node for ComfyUI, to adjust sigmas that control detail),
10-21 · 05:00
可在 ComfyUI Manager 的 NodeManager 中搜尋 Detail-Daemon 安裝。
10-22 · 05:15
官方 FLUX 工作流除了 Forge 提過的參數外,還多了一個直接對 Sigma 控制的方式,以及一個簡易版 Sampler(效果不如 Detail Daemon Sampler 多樣,可直接跳過)。
10-23 · 05:30
官方比較用工作流節點很多(含 Lying Sigmas、Default Sigmas 等多組對照),為方便先把 Lying Sigmas 部分移除,只留上下兩組節點,並把 FLUX 節點換成自己的工作流來測試。
10-24 · 05:45
ComfyUI 的圖表節點必須與 Sampler 完全相同才會顯示正確圖表,懂原理後圖表節點其實可以直接移除,不影響實際使用。
10-25 · 06:00
測試方法:用 WASNode 隨機抽選房間提示詞與房間種類 → 丟入原本工作流 → 用 ImageNote 節點合併圖片標註,以便對照是哪個工作流的成果。
10-26 · 06:15
範例對照(三種房間結果:Original / Multiply / 其他 Sigma 處理方式),依前面 Forge 的比較經驗可知,構圖改變的關鍵原因在 Exponent 參數。
10-27 · 06:30
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
過程中發現 「Multiply Sigmas (stateless)」節點居然把整張圖變成線稿風格,可見它會嚴重影響出圖穩定性;查看其說明,該節點只有一個參數 Factor:在每個步驟中把 Sigma(雜訊水準)乘以此值——
10-34 · 08:15
例如第一步 sigma 為 1,factor 0.95 會使 sigma 變 0.95;若某階躍 sigma 為 0.7,factor 0.95 會使它變 0.665。
10-35 · 08:30
建議把此因數保持在 0.95–0.99 之間,較低的值會增加細節,但也可能越來越多地改變圖像構圖或引入雜色顆粒;設為 1.0 會有效禁用該節點。
10-36 · 08:45
實測:預設值 0.960 已經很高,結果變成線稿、且明顯改變原始構圖,可見這個方法不太理想,建構工作流時此類需要頻繁微調的節點應做出取捨。
10-37 · 09:00
稍微把 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)。

10-41 · 10:00
給大家的小提示:SDXL 一般類型:依官方建議,將 Detail 強度設為 0.25 左右。
10-42 · 10:15
混元、SD3 等 DiT 類模型:Detail 強度要設更低,混元 0.1 就可能破壞構圖,需視自己需求調整。
10-43 · 10:30
若有 Controlnet 需求,接入 CFGGuider 即可搭配使用。
10-44 · 10:45
不建議在 Hires 階段使用 Detail Daemon,會出現細節去噪失敗的嚴重雜訊。
11-1 · 00:00
在 FLUX 中有幾個標準的 Controlnet 是一開始就有的,若本機安裝,都可以從 ComfyUI Manager 中找到;線上平台使用時基本上也會內建這些 Controlnet 模型。
11-2 · 00:15
FLUX 的 Controlnet 和之前介紹過的概念相同,要經過一道預先處理(前處理器,如 OpenPose/Canny/Depth 偵測)後,才能拉進工作流,以下以一個 OpenPose 簡單工作流示範 Union 的操作方式。
11-3 · 00:30
Controlnet 模型安裝:本機運作時,在 ModelManager 下搜尋 Union,可找到相關模型清冊,
11-4 · 00:45
建議安裝黃色螢光筆畫的 FP8 版本(範例:Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro (fp8 e4m3fn) by Kijai,3.30GB)。
11-5 · 01:00
安裝後解說整組節點(0161):LoadImage → DWPose Estimator → Preview Image → SetUnionControlNetType → Apply ControlNet,

11-6 · 01:15
另外接一個 Load ControlNet Model 提供模型。參考圖片是要抽取的動作(Pose),用前一章提過的 DWPose 節點從圖中提取姿勢骨架。
11-7 · 01:30
產生動作圖片後,將動作圖片接入 Apply ControlNet 節點;FLUX 這邊比較特別,必須額外接上 VAE 節點才能被正確處理。
11-8 · 01:45
Controlnet 部分依順序接:載入模型(Load ControlNet Model)→ 設置模型類型(SetUnionControlNetType,type 可選 Auto,
11-9 · 02:00
但 Openpose 一般都設成 Pose)→ 接入 Apply ControlNet(strength 0.70、start_percent 0.000、end_percent 1.000)。
11-10 · 02:15
FLUX 的 Controlnet 中,Openpose 的控制度是相對較差的一個,其他控制度也沒有 SD1.5/SDXL 來得好;若混合其他模型或 Lora,更會影響控制的差異——強度設為 0.7 以上時,圖形容易損壞。
11-11 · 02:30
許多工作流會配上提示詞來加強控制,以確保 OpenPose 能較準確被使用;若像範例工作流那樣比較依賴抽選圖片,則需多跑幾次動作才會比較穩定。因此在 FLUX 中,有些工作流會採取「清理或合併提示詞」的方式,或接入前面提過的 HiresFix 方法。
11-12 · 02:45
另一個做法是 FLUXTool 的做法,控制程度和前面的 ControlnetUnion 差不多,但操作方法不同;示範工作流是「二合一」設計,綜合前幾章概念,並教學如何用「條件式」控制不同的輸出與輸入。
11-13 · 03:00
範例工作流下載:github.com/dseditor/ComfyuiWorkflows → Flux/FluxTools【CannyDepthSwitch】.json。
11-14 · 03:15
此工作流包含兩個 Lora,透過開關分開使用:開關關閉時啟用 Canny 的 Lora 與圖片,開關開啟時啟用 Depth 的 Lora 與圖片。
11-15 · 03:30
需要的兩個 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):使用前面提過的所有概念——GGUF 載入,並以 8Step 的 TurboLora 為主(Flux\Turbo-flux-8step.safeten...,strength_model 1.00),
11-17 · 04:00
搭配 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
Load VAE(ae.safetensors),再用 Image Resize(essentials 節點,1024×1024、interpolation nearest、method keep proportion)把圖片長寬修改為 1024。
11-19 · 04:30
圖片解析度會交給 Controlnet 前處理器,先讓它畫出符合圖片解析度的 Controlnet 圖片。
11-20 · 04:45
開關控制工作流(0164):重點在這裡。畫面中 Depth 模型產生的圖片與 DepthLora 模型都連接到 on_true 項目,所以只要打開上方的 Boolean 運算子(True(Depth)False(Canny))並設定為 True,

11-21 · 05:00
則模型與圖片就會依照 Depth 輸出給後面的工作流程,而 Canny 的輸出則不會被使用。範例先設定為 False,所以開啟的是 Canny 的圖片與模型。
11-22 · 05:15
兩組(Depth/Canny)個別使用 LoraLoaderModelOnly 載入對應 Lora(strength_model 1.00)、Simple Condition(essentials 節點,
11-23 · 05:30
evaluate/on_true/on_false)做布林切換;Canny 使用 AnyLine Lineart 節點取得線稿(comfyui_controlnet_aux,merge_with_lineart=lineart_standard、
11-24 · 05:45
lineart_lower/upper_bound 0.00/1.00、object_min_size 36、object_connectivity 1),
11-25 · 06:00
Depth 則使用 Depth Anything V2 - Relative(depth_anything_v2_vitl.pth)。
11-26 · 06:15
與一般 Controlnet 不同,FLUXTool Lora 的方式是把 Controlnet「注入條件」中,所以必須使用 InstructPixToPixConditioning(IP2P)這個節點——
11-27 · 06:30
也就是說 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.0 的結果(0166):貓咪符合原本線條稿,但雨水顯得不太自然——因為 Canny 強度 1.0 情況下嚴格遵循線條,原圖是以繪畫風格為主,所以連雨水都被畫成線條。

11-31 · 07:30
切換為 Depth、強度同樣 1.0(0166–0167):把開關設為 True,讓 Depth 的圖片與 Lora 傳送到後面的採樣器與引導圖片;結果貓咪自然許多——在這個範例中,DepthLora 與圖片是比較好的控制方式。
11-32 · 07:45
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):用一張 AI 畫的 512×768 低解析度但畫面清楚的圖片,以 2 倍為基準放大修復(這次只放大到 1024,速度快很多),

11-41 · 10:00
對照 ControlNet 0.7 與 VAEEncode 0.4 兩種強度:ControlNet 0.7 狀態下,放大臉部像是化了妝,但衣服、地板材質細節都喪失了,可能是 8Step Lora 的影響,也可能是修復時為了讓畫面 noise 消失所導致。
11-42 · 10:15
結論:基本清楚的圖片若要用這個方法,需降低 Controlnet 的影響效果、或盡量維持圖片原貌,使用高步數而非 8step;無論如何,這方法對模糊圖片效果很不錯,而且越模糊、效果越好。
12-1 · 00:00
Fluxtools 與傳統 SD 模型概念不同,採用的方向大致有三種:
12-2 · 00:15
採用 Differential Diffusion + InpaintModelConditioning,而不是傳統的 VAE Encode (for Inpainting)。
12-3 · 00:30
採用 InstructPixToPixConditioning 取代 Apply ControlNet,不用預處理圖像,透過引導取得深度與線稿。
12-4 · 00:45
混合 InstructPixToPix 概念與 IPAdapter,變成走 StyleModel 與 ClipVisionEncode。
12-5 · 01:00
這幾個概念會是未來圖像模型發展的方向,但不代表傳統 IPA 與 Controlnet 會被淘汰,而是將有更加直觀的方式去控制圖像。
12-6 · 01:15
FluxFill 比較簡單,FP8 版本模型可下載(也有網友量化好的版本:SporkySporkness/FLUX.1-Fill-dev-GGUF)。
12-7 · 01:30
先打開官方的 Inpainting 基礎工作流。
12-8 · 01:45
將 FluxFill 與傳統的 InpaintingModel 做比較,對照工作流是官方的 InpaintingExample,使用模型 Jugger_inpaint_v8。原圖是一張 IKEA 沙發(官方網站展示品的寫實作品)。
12-9 · 02:00
FluxFill 核心節點群:Load Diffusion Model(flux1-fill-dev.safetensors)→ Differential Diffusion(model)→ FluxGuidance(guidance 30.0,
12-10 · 02:15
搭配)→ InpaintModelConditioning(positive/negative/vae/pixels/mask、noise_mask false)。
12-11 · 02:30
差異擴散(Differential Diffusion)與 InpaintModelConditioning 搭配超高的 FluxGuidance,實測中越拉高 FluxGuidance,產生的圖像效果和原圖差異越大。
12-12 · 02:45
InpaintModelConditioning 會重新處理過的 Latent,注意這裡的 Noise_mask 是 False——如果打算使用一般模型作為差異擴散,這裡的 Noise_mask 必須設為 True。
12-13 · 03:00
Outpaint 的邏輯也相同,差異只是多做了 PadImageForOutpainting 節點。
12-14 · 03:15
材質轉換測試(0173):提示詞 marble vivid-color ground(大理石彩色地板)。
12-15 · 03:30
傳統 InpaintingModel 無法依提示詞變更地板樣式;換成 FLUX-Fill 模型(為節省記憶體採用 Q8 GGUF)後,提示詞順利產生大理石彩色地板,能改變地板材質。

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,得到稍微合理的結果——普通擴圖如果拉伸幅度太大、又沒有足夠參考,都容易出現不合理情形。
12-20 · 04:45
FluxGuidance 對 Outpaint/Inpaint 的影響相同:都是控制與原圖的差異性,數值越大則越接近提示詞、並偏離原圖(0176:FluxGuidance=25;
12-21 · 05:00
0177:FluxGuidance=40 時提示詞強度變大,擴圖邊緣出現類似「邊框」的違和感)。
12-22 · 05:15
FluxFill 之後,這是 Fluxtool 系列第二篇,除了 Redux 本身,也順便介紹用 Redux 原理製作的節點 ReduxAdvanced。
12-23 · 05:30
Redux 原理(參考 kaibioinfo/ComfyUI_AdvancedRefluxControl 說明,簡化翻譯):Redux 分兩步工作。
12-24 · 05:45
首先有一個 Clip Vision 模型,將輸入圖像裁剪為方形縱橫比,並縮小到 384×384 圖元,再分割成 27×27 個小塊,每塊都投影到 CLIP 空間中。
12-25 · 06:00
Redux 本身只是一個非常小的線性函數,把這些裁切圖像塊投射到 T5 潛在空間中;生成的 Token 會添加到你的 T5 提示符中。直觀地說,Redux 正在把你的條件輸入圖像翻譯成「一個提示」,該提示會添加在你自己提示的末尾。
12-26 · 06:15
Redux 之所以在最終提示中佔主導地位,是因為使用者提示通常很短(255 或 512 個 Token),而 Redux 會向 Prompt 額外添加 729 個新 token(可能是原始提示的 3 倍),且 Redux 提示符可能包含比使用者編寫的單詞更多的資訊。
12-27 · 06:30
重點兩個資訊:CLIPVision 與 Token。CLIPVision 意味著參照圖像不會太大且基本為正方形,Redux 標準策略是取畫面中心裁切為正方形(約 384×384)作為 CLIPVision;
12-28 · 06:45
由於圖片輸入了大量 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)。原理很簡單,只是把三個圖串連起來,解析圖片後串接起來。

12-34 · 08:15
接著介紹進階節點 ReduxAdvanced(來源:kaibioinfo/ComfyUI_AdvancedRefluxControl),此節點沒有任何依賴需要安裝,
12-35 · 08:30
安裝後會得到基本的兩個節點:CLIP Vision Encode 與 Apply Style Model(欄位:conditioning、style_model、clip_vision_output)。
12-36 · 08:45
除此之外還有 StyleModelApplySimple 節點(conditioning、style_model、clip_vision_output → CONDITIONING,image_strength 預設 medium),概念很簡單,
12-37 · 09:00
可直接取代原本的 ApplyStyleModel;圖片的強度預設為 medium。拿同一個工作流把模型換回 FLUX-Dev-Q8 測試,提示詞與原圖架構取得平衡、人物也比較有照片感。
12-38 · 09:15
若將強度改為 High,結果會很接近原圖,但比較沒有提示詞的拍照感覺——由此可清楚看出強度高低的使用時機。
12-39 · 09:30
外觀長得有點像 IPAdapter 的節點,輸入:conditioning、style_model、clip_vision、image、mask;輸出:CONDITIONING、IMAGE、MASK。
12-40 · 09:45
參數: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):把遮罩塗在參考圖旁邊花朵的部分,讓它只裁切圖片中的花朵當參考圖(參數標記例:2 代表 downscale=2,autocrop 代表切割遮罩,area 代表縮放方式,1 代表權重為 1);
12-50 · 12:15
再測試「採用全圖」情境時,記得要去掉 mask 連結,否則會抓到空遮罩而失效。
12-51 · 12:30
繼續調整 downscale 至 4、5 並比較 keep/crop 兩種 mode:downscale 調整為 4、改成 keep 模式,效果差異都不算明顯;真正比較有差別的還是 downscale 和 mask 這兩個參數。
12-52 · 12:45
剛接觸 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)。

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 去掉,可以看到完整拼接圖:左邊服裝、右邊人物(套用遮罩紫色區域),這就揭曉了原理——
12-68 · 16:45
謎底:FLUX 有類似「上下文」的概念存在,當兩張圖並排時,右邊的圖會直接參照左邊的圖。在沒有 Redux+Fill 之前,這種上下文推理必須透過特殊 Lora 訓練(即 IC-Lora);
12-69 · 17:00
有了 Redux+Fill 之後,就可以暫時不用訓練 ICLora,透過 Redux+Fill 把遮罩設置在右邊人物衣服上、左邊擺設目標衣服,從而完成左右圖的推理。
12-70 · 17:15
延伸閱讀(上下文與 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
由於 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:ACE++Subject 與 ACE++Portrait,這兩個 FLUXLora 是針對 FLUXFill 訓練的。
12-80 · 19:45
整體工作流分為多個群組區塊(0192):FLUXFill(UnetLoader GGUF、Differential Diffusion、LoraLoaderModelOnly、ModelSwitch、DualCLIPLoader GGUF、Load VAE)、

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(接在模型上,如 LoraLoaderModelOnly 載入 FLUXACE\comfyui_portrait_l...,strength_model 1.00)
12-89 · 22:00
FaceImage(臉部參考圖,接在 FirstImage)
12-90 · 22:15
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(臉部遮罩,用 LayerMask: PersonMaskUltra V2(Advance) 只勾選 face=enabled,其餘 hair/body/clothes/accessories/background 皆 disabled;
12-92 · 22:45
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
max_megapixels 2.0)
12-94 · 23:15
四節點中最難安裝的是 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)。

12-97 · 24:00
衣服的四個節點(0194):ClothesImage(衣服圖片,例如內衣照片)
12-98 · 24:15
Mask(用 LayerMask: PersonMaskUltra V2(Advance),只勾選 clothes=enabled,切割原圖衣服範圍的遮罩)
12-99 · 24:30
Conditioning:這邊必須使用 Redux 盡量維持衣服的形式,可用 image_strength = Highest 減少衣服的變化值,
12-100 · 24:45
並在條件文字中針對衣服格式的對照進行描述(範例提示詞:The pair of images highlights a clothing and its styling on a model;
12-101 · 25:00
the left side highlights a girl is dressing the clothes, the right side is the clothes.)
12-102 · 25:15
Lora(LoraLoaderModelOnly 載入 FLUXACE\comfyui_subject_l...,strength_model 1.00) 四個節點依序連接到第二個 Bus 節點,這樣就得到兩個 Bus(臉部一個、衣服一個)。
12-103 · 25:30
AnyIndex 節點(EasyUse 提供):第一個 Bus 的 Pipe 接 Value0、第二個 Bus 的 Pipe 接 Value1。
12-104 · 25:45
AnyIndex 的邏輯是,在 Loop 執行時,它會依序執行給定的 Index 參數——所以會依序送上下兩個條件,完成上面的 Pipe 之後,再執行下面的 Pipe。
12-105 · 26:00
把完成後的數值先給一個 DataBusOut 節點,讓上面 Pipe 的數值得到輸出,包括遮罩、模型、條件與圖片。這樣就構成了工作流的基本架構。
12-106 · 26:15
模型設定:因為這是 FluxFill 模型,且工作流要用 TurboLora 加速,所以模型接入 TurboLora,再接入差異擴散(Differential Diffusion)。
12-107 · 26:30
圖片準備小技巧:因為衣服是內衣類型,比較好的方式是把內衣先換成外衣,可先用 AI 產生人物穿著內衣的照片,讓它直接進行替換(避免內衣本身版型過於複雜)。
12-108 · 26:45
建立 Loop 流程(0196):核心模型節點串接 Unet Loader (GGUF) → Differential Diffusion → LoraLoaderModelOnly(TurboLora)→ DualCLIPLoader (GGUF)

12-109 · 27:00
→ Load VAE;Clip 輸出接給設定的兩個條件,Model 往下接給兩個 Lora,VAE 只需接一個。
12-110 · 27:15
For Loop Start(initial_value1、initial_value2、total=2)→ flow/index/value1/value2 → For Loop End。

12-111 · 27:30
把初始圖片接入 initial_value1,將 Flow 對接,把 index 接到下面的 index 接口,就形成一個基本 Loop,以「起始圖片為數值」並依照 Index「索引值」去執行迴圈。
12-112 · 27:45
使用 Loop 時,要把第一個輸入結果與第一個輸出結果做為迴圈銜接,第二個接第二個,依序執行,這邊目前只需要一組輸出與輸入。
12-113 · 28:00
依照前一篇「萬物遷移」的概念,架構是圖片對圖片、填補空缺接寫上下文的繪製,所以這裡必須建立一個圖片對圖片的 Inpainting 遮罩,起始 Value1 的圖片數值要輸入到上面的 ICMask 節點。
12-114 · 28:15
LayerUtility: IC Mask 節點(0197):first_image=Value1(合併的圖片)、first_mask=(合併的重繪遮罩)、second_image=ImageBus(icmask_data)、

12-115 · 28:30
second_mask=MaskBus(裁剪與放大資訊)、patch_mode auto、output_length 2048、patch_color #FFFFFF;
12-116 · 28:45
下方接續 LayerUtility: IC Mask Crop Back(image=完成圖、icmask_data=完成圖裁剪放大 → 輸出 InitValue1Out)。
12-117 · 29:00
起始圖片和起始遮罩分別用前面 Bus 輸出的 Pipe 接入,Value1 從 Loop 拉出給 Image1 作輸入,這樣就完成 Inpainting 圖片與遮罩,可以拉給 InpaintModel 的節點。
12-118 · 29:15
接著把合併遮罩進行擴張(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):輸入原圖(綠框)+ 臉部參考圖(紫框)+ 衣服參考圖(粉框)三張圖,經過 Loop 依序換臉、換衣後,得到融合了指定臉型與指定服裝款式的最終人物圖。
13-1 · 00:00
與前面介紹過的 Upscaler 及 Controlnet 不同,TTPToolset 是一整套用以提升畫質的節點組(github.com/TTPlanetPig/Comfyui_TTP_Toolset)。
13-2 · 00:15
這個節點組比之前的 Upscaler 又有不同之處:它透過分塊處理的邏輯,讓每個區塊都能有更好表現,重點是放大後材質會更加精細完善。
13-3 · 00:30
對於用 ChatGPT 產生的圖像而言,TTP 會讓原本低解析度的圖像變得清晰細緻,可讓圖像材質達到輸出標準,雖原有圖像會有些許變更,但變更幅度不至於差異太大。
13-4 · 00:45
但這類分塊放大往往生成時間會拉得很長,所以必須配上另一組節點:Teacache(github.com/welltop-cn/ComfyUI-TeaCache)。
13-5 · 01:00
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 節點組(0203):Load Upscale Model(4x_NMKD)→ Upscale Image (using Model) → Upscale Image By(bilinear、scale_by 0.50)——

13-13 · 03:00
先用四倍模型放大、再縮小為 0.5,相當於先放大兩倍;放大後的圖片再分給兩個節點:一個指定分塊尺寸(TTP_Tile_image_size:width_factor 2、height_factor 3、overlap_rate 0.05),
13-14 · 03:15
另一個指定分塊批次(TTP_Image_Tile_Batch:tile_width/height、overlap、temporal_size/overlap、padding)——
13-15 · 03:30
這裡的參數有點類似 SDUpscale 中的指定分塊,但分成兩個節點,且兩者都使用「放大後的圖片」做參考去接續分塊。
13-16 · 03:45
分塊完成後才接入 VAE Encode,產生 Latent;再接續 VAE Decode (Tiled) → TTP_Image_Assy(把分塊圖片重新組合;
13-17 · 04:00
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 確實能提升畫面、使其符合解析度需求;放大細節比對,同樣尺寸下細節明顯增加許多。
