一.底層邏輯
在Comfyui里面,我們可以看到有著密密麻麻的各種各樣的節(jié)點(diǎn),但這些都是插件類(lèi)的節(jié)點(diǎn),很多都是極少用到的,但這里面有5類(lèi)基礎(chǔ)節(jié)點(diǎn),幾乎在每個(gè)工作流里面都是一定會(huì)用上的,下面我們來(lái)一一了解一下。
1.文生圖
大部分的工作流都是從基礎(chǔ)的文生圖開(kāi)始擴(kuò)展
2.圖生圖
圖生圖與文生圖基本一樣,文生圖是給潛空間圖一個(gè)空的latent,用來(lái)定義生成圖片的大小。而圖生圖則是需要給到潛空間一張圖片做參考,而圖片無(wú)法直接給到潛空間,這時(shí)就需要在中間加個(gè)VAE編碼了。
Latent -> 經(jīng)過(guò) KSampler 采樣器進(jìn)行去噪后的潛空間圖像
降噪 -> 需要注意的是圖生圖時(shí),在這里降噪可以理解為重繪幅度
3.局部重繪
談到局部重繪就會(huì)牽扯到遮罩,也就是通過(guò)制作遮罩的方式對(duì)圖像的特點(diǎn)部分進(jìn)行處理。制作遮罩的工具有maskeditor(遮罩編輯器),或者segment anything(語(yǔ)義分割)等等!
3.1系統(tǒng)自帶局部重繪
comfyUI自帶的兩個(gè)重繪節(jié)點(diǎn)Laten噪波遮罩Set Latent Noise Mask,VAE內(nèi)補(bǔ)編碼器VAE Encode (for inpainting)有一個(gè)很大的缺點(diǎn)就是他們都會(huì)對(duì)全圖進(jìn)行重繪。無(wú)論蒙版多小,重繪時(shí)間和資源占用是根據(jù)整個(gè)圖片的大小來(lái)重繪的。導(dǎo)致對(duì)高分辨率圖片細(xì)節(jié)重繪時(shí)又慢又容易爆顯存。
在輸入圖片上右鍵選擇在遮罩編輯器打開(kāi)Open in MakeEditor,將要重繪的面部給完全涂抹,之后進(jìn)行保存。
VAE內(nèi)補(bǔ)編碼器
Laten噪波遮罩+VAE,邊緣和原圖很難融合,不自然
comfyUI自帶的兩個(gè)圖生圖節(jié)點(diǎn)都不能很好的做到。
3.2 segment anything + BrushNet
【語(yǔ)義分割+局部重繪】
3.3 Impact Pack
那么換個(gè)思路,我們可以將高分辨率圖片的蒙版周?chē)鷧^(qū)域剪切一部分,比如剪切一個(gè)512*512的區(qū)域來(lái)重繪,這樣既快,而且圖片和周?chē)膮^(qū)域融合的也比較自然。
我們使用的是Impact Pack 插件(這插件功能很多也很強(qiáng)大,后面會(huì)出個(gè)專(zhuān)欄介紹他的所有功能,有興趣可以持續(xù)關(guān)注)
二.采樣類(lèi)
1.K采樣器
該節(jié)點(diǎn)專(zhuān)門(mén)用于逐步減少潛在空間圖像中的噪聲,改善圖像質(zhì)量和清晰度。
把它拿出來(lái)第一個(gè)說(shuō)就說(shuō)明這個(gè)節(jié)點(diǎn)的重要性,所有的工作流都是圍繞著它來(lái)進(jìn)行擴(kuò)散的。
先從簡(jiǎn)單的開(kāi)始
輸入:
模型model -> 接收來(lái)自大模型的數(shù)據(jù)流 positive -> 接收經(jīng)過(guò) clip 編碼后的正向提示詞的條件信息(CONDITIONING) negative -> 接收經(jīng)過(guò) clip 編碼后的反向提示詞的條件信息(CONDITIONING) latent_image -> 接收潛空間圖像信息
輸入
輸出:
LATENT -> 經(jīng)過(guò) KSampler 采樣器進(jìn)行去噪后的潛空間圖像
參數(shù):
隨機(jī)種seed -> 在去除圖像噪聲過(guò)程中使用的隨機(jī)數(shù)種子。種子數(shù)有限,影響噪聲生成的結(jié)果。
運(yùn)行后操作 -> 指定種子生成后的控制方式。 固定fixed 代表固定種子,保持不變;增加 increment 代表每次增加 1; 減少decrement 代表每次減少 1 ;隨機(jī)randomize 代表隨機(jī)選擇種子 。
步數(shù)steps -> 對(duì)潛在空間圖像進(jìn)行去噪的步數(shù)。步數(shù)越多,去除噪聲的效果可能越顯著。
CFG -> 提示詞引導(dǎo)系數(shù),表示提示詞對(duì)最終結(jié)果的影響程度。過(guò)高的值可能會(huì)產(chǎn)生不良影響。
采樣器 -> 選擇的采樣器名稱(chēng),不同的采樣器可以影響生成圖像的效果,大家可以根據(jù)需求進(jìn)行選擇和實(shí)驗(yàn)。
調(diào)度器scheduler -> 選擇的調(diào)度器名稱(chēng),影響生成過(guò)程中的采樣和控制策略,推薦配置可提供更好的結(jié)果。
降噪denoise -> 去噪或重繪的幅度,數(shù)值越大,圖像變化和影響越顯著。在高清修復(fù)等任務(wù)中,通常使用較小的值以保持圖像細(xì)節(jié)和質(zhì)量。
樣器+調(diào)度器參數(shù):
我們之前最熟悉的采樣器,有euler、dpmpp_2m,包括后來(lái)的ddpm、ddim、uni_pc和ipndm等。
采樣器:
采樣器有點(diǎn)多,看起來(lái)有點(diǎn)蒙逼。其實(shí)可以把它分成三類(lèi):
01歐拉: euler和heun 02dpm :所有以dpm開(kāi)頭 03 其它類(lèi)
對(duì)比測(cè)試
建立一個(gè)XY圖表,橫坐標(biāo)是步數(shù),從第5步開(kāi)始,間隔四步,總共8個(gè)數(shù)值;縱坐標(biāo)是上面介紹的各種采樣器。
從上圖中不難發(fā)現(xiàn)如下規(guī)律:
·名字以a或sde結(jié)尾的,確實(shí)不會(huì)收斂,每一步選代圖像都會(huì)發(fā)生變化 ·euler,heun和ddim采樣器在第9步就已經(jīng)出圖,對(duì)于簡(jiǎn)單圖來(lái)說(shuō),確實(shí)是又好又快。 ·dpmpp_2m和uni_pc采樣器在第14步出圖,其中dpmpp_2m在第18步開(kāi)始收斂,效果很好 ·不要被dpm adaptive采樣器騙了,雖然第5步就已經(jīng)收斂,但是該采樣器速度特別慢。后續(xù)我又單獨(dú)進(jìn)行了測(cè)試,實(shí)際第2步就已經(jīng)收斂,但是速度很慢。 ·Ims采樣器表現(xiàn)最差。
如何選擇采樣器?
沒(méi)有最好的采樣器,只有最適合的采樣器。
如果想要穩(wěn)定可重現(xiàn)的圖像,請(qǐng)避免選擇任何祖先采樣器(名字以a或sde結(jié)尾的) 如果想要簡(jiǎn)單的圖,建議選擇euler,heun(可以減少步驟以節(jié)省時(shí)間) 如果想快速生成質(zhì)量不錯(cuò)的圖片,建議選擇dpmpp_2m(20-30步)、uni_pc(15-25步) 如果想要每次生成不一樣的圖像,可以選擇不收斂的祖先采樣器(名字里面帶a或sde)
調(diào)度器則就相對(duì)來(lái)得簡(jiǎn)單些:
最常見(jiàn)的normal似乎已不太適用于FLUX生態(tài) 以往最常用的karras也在sgm_uniform、simple、ddim_uniform和beta出現(xiàn)后被慢慢淡化。 其中,ddim_uniform這個(gè)調(diào)度器,會(huì)隨著采樣的步數(shù),構(gòu)圖畫(huà)面會(huì)發(fā)生一定的變化,因?yàn)樗悬c(diǎn)像高級(jí)的調(diào)度器dpm一樣,是不收斂的,則出圖的多樣性隨機(jī)性會(huì)隨著步數(shù)增加更強(qiáng),變化更多。 對(duì)于調(diào)度器exponential,則較多用于擴(kuò)圖放大等情況。
國(guó)外有位大佬對(duì)Flux各種采樣器和調(diào)度器進(jìn)行組合測(cè)試出最適合的采樣模式。表格中的綠色標(biāo)記表示該組合可用,紅色標(biāo)記表示不可用。
推薦的采樣器和調(diào)度器組合:
euler + normal:適用于快速生成圖像,但細(xì)節(jié)可能不夠精細(xì)。(生成時(shí)間20s)
heunpp2 + ddim_uniform:適用于生成細(xì)節(jié)豐富的圖像,但速度較慢。(生成時(shí)間54s)
uni_pc +beta:適用于平衡速度和質(zhì)量,是大多數(shù)情況下的推薦選擇。(生成時(shí)間20s)
DPM2+ SIMPLE是我最近比較喜歡的組合,能夠提供非常好的圖片精細(xì)度。(生成時(shí)間37s)
DEIS+DDIM_UNIFORM是新出現(xiàn)的組合,非常好的把握光影明暗。(生成時(shí)間20s)
三.加載器
ComfyUI基礎(chǔ)節(jié)點(diǎn)中的加載器類(lèi)別,加載器是工作流中各個(gè)模塊的生產(chǎn)力源頭,可以提供不同模型的加載。下面詳細(xì)介紹了trap point加載器、VA1加載器、LUA加載器、control加載器、clip視覺(jué)加載器、n clip trip point加載器、格萊根加載器和超網(wǎng)絡(luò)加載器的作用和使用方法。通過(guò)加載器可以方便地選擇不同的模型進(jìn)行加載和應(yīng)用,提高工作流的效率和靈活性。
所謂的加載器主要的作用就是給工作流提供各種不同模型的加載,大部分的工作流都是以大模型的加載作為起始輸入源來(lái)進(jìn)行展開(kāi)的。
一個(gè)工作流里可能存在多個(gè)加載器,例如對(duì)圖片進(jìn)行放大,需要用到放大模型加載器。連接controlnet時(shí)需要controlnet加載器。
1.Checkpoint加載器
【加載大模型】
主要使用(簡(jiǎn)易)版
節(jié)點(diǎn)功能:該節(jié)點(diǎn)用來(lái)加載checkpoint大模型,常用的大模型有sd1.0,sd1.5,sd2.0,sdxl等等。
輸入:
擴(kuò)散模型的路徑 **假如配置好了路徑文件,模型可自行選擇**
輸出:
MODEL -> 該模型用于對(duì)潛空間圖片進(jìn)行去噪
CLIP -> 返回與加載的檢查點(diǎn)關(guān)聯(lián)的CLIP模型。
VAE -> 返回與加載的檢查點(diǎn)關(guān)聯(lián)的VAE模型。用于對(duì)潛在空間的圖像進(jìn)行編碼和解碼。
注意:StableDIffusion大模型(checkpoint)內(nèi)置有CLIP和VAE模型。
2.VAE加載器
大模型都自帶有VAE,如果你不想使用大模型的VAE時(shí),就可以新建一個(gè)VAE加載器
3.lora加載器
【預(yù)訓(xùn)練模型微調(diào)調(diào)整】
模型強(qiáng)度 -> 確定應(yīng)用于模型的LoRA調(diào)整的強(qiáng)度。更高的強(qiáng)度意味著更顯著的調(diào)整,可能導(dǎo)致模型行為的顯著變化,潛在地提高特定任務(wù)的性能。
CLIP強(qiáng)度 -> 與模型強(qiáng)度類(lèi)似,更高的強(qiáng)度導(dǎo)致更明顯的變化,影響CLIP模型處理數(shù)據(jù)的方式。
串聯(lián)在大模型后面
多個(gè)lora時(shí)串聯(lián)下去就行
當(dāng)需要多個(gè)lora時(shí),串聯(lián)下去比較麻煩,這時(shí)我們就可以使用lora堆節(jié)點(diǎn)
4.GLIGEN 加載器
【指定特定區(qū)域生成特定的內(nèi)容】注意不適用于SXDL,請(qǐng)使用SD1.5模型
將 GLIGEN 模型文件放在 ComfyUI/models/gligen 目錄中。
下載鏈接:
文本框 GLIGEN 模型允許您指定圖像中多個(gè)對(duì)象的位置和大小。要正確使用它,您應(yīng)該正常編寫(xiě)提示,然后使用 GLIGEN 文本框應(yīng)用節(jié)點(diǎn)指定提示中某些對(duì)象/概念在圖像中的位置。
本地部署版也有了,可視化操控,更加方便。只能期待comfyUI版的插件能盡快出可視華化操作吧。
本地部署界面
5.放大模型加載器
【圖片放大時(shí)加載模型】
常見(jiàn)的放大算法有下面幾個(gè):
· 無(wú)/None:?jiǎn)渭兊姆糯,不做任何?yōu)化處理。
· Lanczos:使用加權(quán)平均插值方法,利用原始圖像自身的像素信息,增加圖像的細(xì)節(jié),從而提高圖像的分辨率。傳統(tǒng)的純數(shù)學(xué)算法,效果一般。
· Nearest:使用簡(jiǎn)單的插值方法,基于最近鄰像素的值進(jìn)行插值,從而增加圖像的細(xì)節(jié)和提高分辨率。傳統(tǒng)的純數(shù)學(xué)算法,效果一般,還不如 Lanczos 的效果好。
· LDSR:基于深度學(xué)習(xí),通過(guò)使用輕量級(jí)的網(wǎng)絡(luò)結(jié)構(gòu)和殘差學(xué)習(xí),實(shí)現(xiàn)較高的超分性能和計(jì)算效率。適用于各種需要快速且準(zhǔn)確地提高圖像分辨率的應(yīng)用場(chǎng)景,如實(shí)時(shí)視頻處理、移動(dòng)設(shè)備圖像處理等。
· ESRGAN:全稱(chēng)Enhanced Super-Resolution Generative Adversarial Networks (增強(qiáng)超分生成對(duì)抗網(wǎng)絡(luò)),基于深度學(xué)習(xí)的超分辨率算法。增加了很多看上去很真實(shí)的紋理,但是有時(shí)可能會(huì)過(guò)度擬合,出現(xiàn)不好的效果。
· 4x-UltraSharp:基于ESRGAN做了優(yōu)化,比較適合處理真人。
· ESRGAN_4x:Real ESRGAN,完全使用純合成數(shù)據(jù)來(lái)盡量貼近真實(shí)數(shù)據(jù)進(jìn)行訓(xùn)練。騰訊貢獻(xiàn)。
· R-ESRGAN 4x+:基于Real ESRGAN的優(yōu)化模型,適合放大真實(shí)風(fēng)格的圖片,常用。
· R-ESRGAN 4x+ Anime6B:基于Real ESRGAN的優(yōu)化模型,適合放大動(dòng)漫風(fēng)格的圖片,常用。這個(gè)模型是專(zhuān)供動(dòng)畫(huà)使用的, 用在真人視頻會(huì)有很重的涂抹感
· ScuNET GAN:基于深度學(xué)習(xí),使用生成對(duì)抗網(wǎng)絡(luò)(GAN)進(jìn)行訓(xùn)練。主要用在提高圖像的視覺(jué)效果和感知質(zhì)量,例如在圖像增強(qiáng)、視頻處理等。
· ScuNET PSNR:基于深度學(xué)習(xí),使用均方誤差(PSNR)進(jìn)行訓(xùn)練。主要用在提高圖像的客觀質(zhì)量和準(zhǔn)確性,例如在醫(yī)學(xué)圖像分析、監(jiān)控視頻處理等。
· SwinIR_4x:使用Swin Transformer思想,基于自注意力機(jī)制的Transformer結(jié)構(gòu),適合各種圖像的超分,比較通用。
04) 【Upscaler2】 用來(lái)避免 Upscaler1 過(guò)度處理的問(wèn)題,比如磨皮太嚴(yán)重?梢允褂靡恍┢胀ǚ椒ㄋ惴,比如 Lanczos。Upscaler2 【可見(jiàn)度】是指圖片放大時(shí)使用 Upscaler2 算法進(jìn)行處理的比例,為0時(shí)完全不使用 Upscaler2,為1時(shí)只使用 Upscaler2。
算法模型下載:
算法模型下載?huggingface.co/uwg/upscaler/tree/main/ESRGAN
放到文件夾\models\upscale_models\
3)算法組合建議
放大算法1 與 放大算法2 的設(shè)置建議
想出圖銳度優(yōu)先:
· 放大算法1選擇「4x-UltraSharp」、「R-ESGAN 4x+」
· 放大算法2選擇「Lanczos」作為細(xì)節(jié)補(bǔ)充
想出圖細(xì)節(jié)優(yōu)先:
· 放大算法1選擇「Lanczos」
· 放大算法2選擇「Lanczos」作為銳度補(bǔ)充
4x-UltraSharp,BSRGAN,R-ESRGAN 4x+這3種算法放大效果還行,銳化有點(diǎn)嚴(yán)重,可以搭配放大算法2綜和一下,效果應(yīng)該會(huì)更好。
測(cè)試下來(lái)LDSR(效果認(rèn)為是最好的,但非常非常耗時(shí),慎重考慮),R-ESRGAN 4x+ Anime6B(網(wǎng)上建議動(dòng)漫圖片使用)
6.風(fēng)格模型加載器
【風(fēng)格遷移】
串聯(lián)在正向提示詞中間
看了很多大佬的視頻,發(fā)現(xiàn)單獨(dú)去學(xué)某一個(gè)節(jié)點(diǎn)的方法確實(shí)不可取,大家盡量不在踩坑了。還是去工作流中去學(xué)習(xí)與使用吧。但是了解一下各節(jié)點(diǎn)的作用還是有必要的。
四、條件類(lèi)
加在模型與K采樣器中間,充當(dāng)指揮官,下達(dá)命令,設(shè)定生成條件。
五.插件類(lèi)
1.segment anything
【扣圖、蒙版】
一天42小時(shí):Comfyui實(shí)用工作流教程—產(chǎn)品背景隨意換8 贊同 · 0 評(píng)論文章
segment anything語(yǔ)義分割,在這里的作用就是摳圖使用?雌饋(lái)不是眼熟,像不像WebUI里的Inpaint anything的閹割版。
G-DinoSAM語(yǔ)義分割輸入:SAM模型、G-Dino模型和加載圖像;
提示詞 ->要選擇對(duì)象的名稱(chēng)
閾值->提高識(shí)別的精度
輸出遮罩—>給到BrushNet的遮罩節(jié)點(diǎn)
缺點(diǎn):有些復(fù)雜的圖片對(duì)象比較難用關(guān)鍵詞去選取到對(duì)的對(duì)象,控制性不強(qiáng)。(人物識(shí)別沒(méi)有問(wèn)題)這情況我們可以選擇使用PS扣圖后當(dāng)蒙版使用。
1.1.Inspyrenet-Rembg
【用于背景去除】
直接搜索并安裝,與其他方法相比,rembg 質(zhì)量更佳(快來(lái)嘗試一下!)
可以將一批圖像作為輸入
針對(duì)圖像批處理進(jìn)行了優(yōu)化,成為最快的 rembg 節(jié)點(diǎn)(完美適用于視頻幀)
輸出圖像和相應(yīng)的蒙版
2.BrushNet
【局部重繪】
ComfyUI BrushNet 是一種先進(jìn)的圖像重繪模型。使用 BrushNet 進(jìn)行修復(fù)的準(zhǔn)確率和質(zhì)量遠(yuǎn)高于 ComfyUI 中的默認(rèn)重繪。
3.Controlnet
安裝那些不說(shuō)了,大同小異,我是共享WebUI的。下載地址和各個(gè)模型的作用什么的可以參考我的另一篇專(zhuān)門(mén)講controlnet的文章:
一天42小時(shí):ControlNet插件詳情教程【詳細(xì)入門(mén)介紹一篇就夠】26 贊同 · 2 評(píng)論文章
這里就講下它的工作流,個(gè)人也是比較奇怪,玩WebUI時(shí),經(jīng)常會(huì)用controlnet,怎么感覺(jué)ComfyUI的工作流中反而用得不多呢?
4.Anything Everywhere
【省略連線】
該Anything Everywhere節(jié)點(diǎn)有一個(gè)輸入,最初標(biāo)記為“任何內(nèi)容”。將任何內(nèi)容連接到它(直接 - 而不是通過(guò)重新路由),輸入名稱(chēng)將更改為與輸入類(lèi)型匹配。斷開(kāi)連接后,它將恢復(fù)為“任何內(nèi)容”。
當(dāng)您運(yùn)行提示時(shí),工作流中任何位置與該類(lèi)型匹配的任何未連接的輸入都將表現(xiàn)得好像連接到相同的輸入一樣。
實(shí)際上只是三個(gè)Anything Everywhere節(jié)點(diǎn)打包在一起。專(zhuān)為 Checkpoint Loader 的輸出而設(shè)計(jì)。
3
2
將鼠標(biāo)放在 Anything Everywhere 節(jié)點(diǎn)上,便會(huì)顯示出隱藏的連接線;如果沒(méi)有顯示連線,則可以在設(shè)置中更改顯示連線。
承擔(dān)因您的行為而導(dǎo)致的法律責(zé)任,
本站有權(quán)保留或刪除有爭(zhēng)議評(píng)論。
參與本評(píng)論即表明您已經(jīng)閱讀并接受
上述條款。