大家好,我是三石。
今天給大家帶來的是 ComfyUI 的局部重繪的工作流,跟之前一樣,我會通過一些理論知識來幫助大家對 ComfyUI 的工作流和節點有更深的認知,還是那句話,知其然,還要知其所以然。
相關教程:
為什么要寫局部重繪,是因為我發現雖然市面上有很多 ComfyUI 的基礎局部重繪的教程,我也看了很多,但老有一種隔靴搔癢的感覺,讓我似懂非懂。
抱著“假設-驗證-結果-總結”的探索精神,我看了大量相關的視頻,教程和官方文檔,終于把ComfyUI 的局部重繪的基礎工作流給整明白的七七八八了,現在就開始吧。
本期是 ComfyUI 的入門級局部重新繪制的講解,如果大家喜歡,我后面會再寫一些高級的局部重繪的教程,但是,我們先從簡單的講起,簡單的原理搞明白了,復雜的東西也就一通百通了,本質都差不多。
我總結了基礎局部重繪的三種方法,分別是:VAE 內補編碼器、設置 Latent 噪波遮罩和使用 ControlNet(重點講解)
首先聲明,這三種方法,沒有優劣之分,用哪種要看具體的需求,我先簡單列出這三種方法各自的使用場景,后面我們再用例子來補充說明。
現在正式進入主題,要想理解局部重繪,我們需要首先理解“局部是怎么重繪的”?,如果大家之前學過 photoshop,就能很好地理解了,其實就是“蒙版”。
只不過是現在把這個手動的過程換到 ComfyUI 變成一個自動的過程了,我通過筆刷把需要改圖的區域畫出來,其余的地方(背景和周邊的地面)保持不變,然后在蒙版區域畫只貓,看下圖:
理解了局部重繪的基礎概念,我們還需要理解下蒙版的處理方式,簡單說就是蒙版里面的圖是怎么生成的,官方用語是:通過采樣重繪蒙版區域。
蒙版的采樣不僅受蒙版區域內原圖的影響(遮罩處理方式),也受蒙版區域外原圖的影響(重繪區域)。結合 webui 大家看圖:
在上圖的基礎上,我羅列了常見的 2 種搭配方式,分別是:
- 重繪區域參考(全圖)+蒙版蒙住內容(空白潛空間)
- 重繪區域參考(全圖)+蒙版蒙住內容(原圖)
這兩種方案分別對應了兩種組最簡單的局部重繪的方法:
- VAE 內補編碼器
- 設置 Latent 噪波遮罩
- 這兩種修改辦法我簡稱為“大補和小補”
另外一種局部繪制的方法是 ControlNet,跟上面兩種不一樣,ControlNet 是嚴格控制蒙版內容的"框架",然后基于框架生成類似的畫面,我們可以對比下面三張圖:
理解了上面的概念,我們就可以來有的放矢地搭建我們的工作流了,這里我還是想通過一些簡單的例子和對比來幫助大家更好地區別。
1. 理解降噪和重繪幅度
圖生圖工作流如下:
原理是先將本地上傳的圖片解碼成計算機能識別的語言(添加噪點),然后結合 Prompt,綜合得到一張新的圖片,簡單地說就是生成的新圖片是“圖+字”的綜合體。這里有個關鍵就是“降噪(denoise)”,簡單理解就是“重繪幅度”,數值在 0-1 之間,數值越大,重繪幅度越高,直至完全偏離原圖,數值越低,越接近原圖,至于為什么是這個原理,為了方便大家理解,我畫了張圖,如下:
理解了這個之后,我們就可以開始搭建我們的重繪工作流了。
2. VAE 內補編碼器局部重繪
本次實驗的底模和 clip 文本編碼器如下:
在這之前,先上傳一張需要重繪的照片,然后畫上蒙版,最后點擊“save to node”,如下圖:
然后我們需要對蒙版進行編碼,將蒙版和圖像一起上傳到“VAE 內補編碼器”中,這種重繪方式的原理是蒙版區域為空白潛空間,生成的圖像跟之前蒙版的內容沒有任何關系,只是參考了原圖的風格和感受,所以適合重繪一個完全不想干的東西,工作流如下:
其中“VAE 內補編碼器”中的遮罩延展,我們可以理解為 photoshop 中的“羽化”,一般設置為 6 即可,太小或者太大都不太合適,我做了實驗如下,可以很明顯的發現,羽化=0 時,貓咪的邊緣很生硬,無法和畫面如為一體,就像是“重新粘貼上去的”。
并且我們發現,VAE 內補編碼器的重繪方式確實適合做一些比較大的調整,我們做個人像試試:
哈哈,確實蒙版區域的內容跟原來毫不相干,大概率有抽卡的成分,所以大家在用這種局部重繪時,最好是用在那種不是微調的,效果還是不錯的。
備注:不建議降低降噪值,否則就會出現下圖這種情況,原因:數值越低,越接近原圖,現在蒙版區域又是空白潛空間,所以就沒了參考了,所以就這樣了。
小結:
3. Latent 噪波遮罩局部重繪
那如果我不想大調整,我只想微調局部,怎么辦?
這時候 Latent 噪波遮罩的方法就非常管用,這種重繪方式的原理是蒙版區域參考了原蒙版內容,重繪區域還參考了原圖,所以適合微調,能更好地理解需要重新生成的內容,工作流如下:
這里可以發現,因為這里的遮罩參考了原圖,所以設置降噪幅度是有用的,
這是降噪=0.69 跟原圖差的有點大,但還是跟原圖保持了一個差不多的特征效果,不會很離譜。
換成降噪=0.55
再換成降噪=0.4
是不是很明顯,降噪數值越低,跟原圖越像,但提示詞 “1 smiling girl”依然會表現出來,而上面的“VAE 內補編碼器”則有點不盡如人意了,就像是直接搞了張“膏藥”,哈哈。
所以,我們可以試著讓這個女孩帶上眼鏡,其余保持不變,這就是典型的局部微調,我們看下效果:
再來一個,給鳥換個金色羽毛,是不是還不錯。
小結:
4. ControlNet 局部重繪
到這,相信大家已經理解了最基本的兩種重繪方式,現在有個新問題,當畫面需要進行重大更改,但是又盡量不改變整體角色形象,比如人物外輪廓不變,在這個基礎上進行重繪,又該如何呢?這里就需要用到 ControlNet 來傳遞原始圖像的整體姿勢。
如果我想把之前的女孩變成老奶奶,屬于重大修改,但不能改變畫面形象,姿勢,綜合來看,controlnet 的效果是最完美的,手部動作也還原了。三種處理方式的結果如下:
再比如換上另一個女孩,控制效果依然不錯。
工作流如下:
這里我自己理解 ControlNet 重繪適合整體的大修改,但是還能保留原圖像特性,我們看官方文檔的示例就比較清楚了:
- ControlNet 官方介紹:https://github.com/lllyasviel/ControlNet-v1-1-nightly?tab=readme-ov-file
- ControlNet 1.1 模型下載:https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main
到這里,我把我理解的都告訴大家了,其實這三種辦法簡單講就是在重繪時對畫面的控制程度越來越高,越來越精細,如果我只想簡單來個替換,第一種就很好,但是我想造型還是那個造型,但得換個人,咱就得用 ControlNet 來精準控制。
上面的第三種局部重繪的方法,用到的是 ControlNet,那 ControlNet 的基本內容和原理又是什么呢?這里我先幫助大家做個簡單的介紹,后面我會單獨出一期文章詳細講解 ControlNet(現在本人還不理解地很到位),大家喜歡的可以先關注下。
ControlNet 說簡單點就是在原圖框架上出類似的圖,官網上大概有以下幾種模型:深度、曲線、直線、姿勢等,不太明白的話,我給大家換個看法,來個“映射”,大家學設計的大學高中都學過素描和水粉吧,比如畫水粉的時候,每個人的起稿方式都不一樣,有打線稿的,也有平涂的,說白了,ControlNet 就是干這個事情的。
這些模型的具體用法和選擇我也會在后面的文章做詳細的介紹,這里我們了解個大概就差不多了。我自己總結了 COntrolNet 的出圖原理如下:
簡單來說,ControlNet 解決的一個最大的問題是:單純的關鍵詞控制方式無法滿足對細節精確控制的需要。
今天的分享就到這里了,本章內容主要講解了在 ComfyUI 中基礎的 3 種局部重繪的方法,以及每種方法的優缺點,其實這一塊最難的是了解每種局部重繪的原理,知道原理之后,我們后面就可以隨心所欲地進行自我創作了,還有就是每種方法沒有優劣之分,重要的是擺在合適的位置,找到合適的場景,所以建議大家自己要多嘗試幾遍。
希望對大家有幫助,祝大家出圖愉快!
謝謝
復制本文鏈接 文章為作者獨立觀點不代表優設網立場,未經允許不得轉載。
發評論!每天贏獎品
點擊 登錄 后,在評論區留言,系統會隨機派送獎品
2012年成立至今,是國內備受歡迎的設計師平臺,提供獎品贊助 聯系我們
AI輔助海報設計101例
已累計誕生 752 位幸運星
發表評論 為下方 9 條評論點贊,解鎖好運彩蛋
↓ 下方為您推薦了一些精彩有趣的文章熱評 ↓