StableDiffusionComfyUI基礎教程(六):圖片放大與細節修復
前言:
前幾節課我們學習了文生圖、圖生圖、局部重繪,但是生成的圖片分辨率太小,我們可以通過模型放大、潛在放大、非潛在放大、分塊放大多種方式對圖像進行放大。
一、放大工作流我們以文生圖后的圖片進行放大,在開始之前我們打開之前搭建的文生圖基礎流程。
1. 模型放大:
①模型放大是最簡單,也是效果最差的放大方式,他就和我們在 Web UI 上使用后期處理進行放大一樣,只是通過放大算法對圖像直接放大(也就是圖像空間放大),這也會導致我們放大的圖片損失細節,甚至看起來會很膩很假;
②雖然上面說的一無是處,但是使用他搭配在其他的放大方式上效果就大大增強,我們先看一下怎么使用模型放大吧;
③“右鍵-新建節點-圖像-放大-圖像通過模型放大”
④左側的“放大模型”通過拖拽連接“放大模型加載器”(“右鍵-新建節點-加載器-放大模型加載器”進行連接也可以);
⑤選擇自己需要的放大模型,我給大家準備好的 17 個放大模型,都放在網盤里面了(管理器的安裝模型也可以下載放大模型),其中 BSRGAN、ESRGAN、SwinIR_4K、RealESRGAN_x4plus 效果不錯;
⑥左側的“圖像”連接“VAE 解碼”輸出的圖像,右側直接連接保存圖像就可以了;
⑦有沒有發現我們沒有設置圖片放大的倍數,其實模型放大是直接根據所選放大模型進行放大的,一般都是放大 4 倍。
2. 潛在放大:
①這時候我們插個知識點,在 Web UI 上我們進行高分辨率修復的時候,我們會看到在選擇放大算法時,有 Latent 開頭的幾個算法可選擇,這其實就是我們進行潛在放大所需要用到的流程;
②潛在放大就是在原圖上進行縮放,然后對縮放后的圖像進行重新采樣,進而增加細節達到放大的目的;
③由于我們對圖片放大還需要進行“VAE 解碼、圖片放大、VAE 內補編碼”這三個步驟,所以,,,,我們可以直接對 Latent 進行放大;
④ “右鍵-新建節點-Latent-Latent 縮放/Latent 按系數縮放”,可以看到我這邊放了兩個節點,這兩個節點一個是需要設置寬高、一個是根據倍數放大,根據自己的需要選擇就好;
⑤如果前幾節課學明白了,后面的就不用我多說了吧,再串聯一個采樣器就可以了;
⑥下方是我連接好的工作流,這里我選擇的是“Latent 按系數縮放”,這個比較方便一些,大家也可以選擇“Latent 縮放”
注意:降噪數值一定要在 0.5 左右,數值過低會有崩壞的情況。放大倍數也不要太大,太大同樣會有崩壞的情況
3. 非潛在放大:
①非潛在放大可以理解成模型放大和潛在放大的結合,先進行模型放大后對模型放大的圖片進行重新采樣;
②是不是有思路了?不過不要忘了對模型放大后的圖片進行縮放(因為直接對放大 4 倍的圖片進行重新采樣會占用太多顯存并且添加的細節不夠);
③我們想要得到更高像素的圖像可以多次疊加“非潛在放大”流程,只要你的顯存夠大,你想要多大的圖都可以。
4. 分塊放大:
①非潛在放大要得到一張 4K 圖需要很高的顯存,但是我們可以通過分塊放大,使用較小的顯存出更大的圖。
②分塊放大其實就是把一張圖切成 n 個塊,然后對小塊進行重新采樣,最后把小塊拼接在一起。他的好處是可以使用更小的顯存得到一張更大分辨率的圖;
③分塊放大是需要用到一個插件的: /uploads/pic/20240108/ComfyUI_TiledKSampler (壓縮包解壓安裝、git 拉取、管理器安裝都可以)
④我們需要用到這個插件中的“分塊采樣器”,“右鍵-新建節點-采樣器-K 采樣器(分塊)”,他同樣有一個高級采樣器,這個我們要進行 refiner 模型細化的時候可以使用。
⑤來看一下和我們的普通采樣器有什么區別吧,只多了三個操作,分塊寬度、分塊高度、無縫分塊策略
a. 分塊寬度、分塊高度:是指我們放大時每一次進行分塊采樣時繪制的寬高;
數值不要太小(根據你放的后圖片的大小決定,比如我要放大成 2048*2048,我是設置為 1024*1024 的)數值越小分的塊越多,分的塊越多也就越慢;也會增加出現偽影的幾率(比如你生成貓,你會在某些小區域得到貓的影子,即使你降噪數值小也會出現不同程度的偽影)b. 無縫分塊策略:是指在我們分塊采樣的每一塊相接處會出現明顯的拼接痕跡,而無縫分塊策略就是通過不同的方式減少拼接痕跡的,有四種可選策略,random(隨機)、random strict(隨機嚴格)、padded(填充)、simple(簡單),我建議使用 random 和 random strict。
random(隨機):也是默認策略,它是通過在水平和垂直的分塊圖像之間隨機交替采樣來消除拼接痕跡(效果最好,與 uni 采樣器不兼容);random strict(隨機嚴格):因為 random 很有可能會對有邊框的圖像產生不好的效果,所以 random strict 使用遮罩來確保不裁剪邊框圖塊(效果和 random 類似,但不適用于 SDE 采樣器)。padded(填充):為每塊圖像在四周提供一定的范圍進行疊加來減少拼接縫隙,正因為這樣,他需要對多達 4 倍的圖塊進行采樣(效果不如 random,速度慢,支持 uni 采樣器)。iv. simple(簡單):看名字就知道,最簡單的策略,就是直接一塊塊的去燥(效果最差,速度最快,不建議使用)⑥是不是以為當成普通采樣器連接就可以了,,,,那當然不是,在“正面條件”中間要把 ControlNet 的 tile 連接進去;
⑦ “右鍵-新建節點-加載器-ControlNet 加載器”,加載器選擇“tile”的(tile 模型我會放在網盤里面,其他的 ControlNet 使用方法我會在第八節課講給大家)
⑧ “ControlNet 加載器”連接“ControlNet 應用”,直接拖拽連接就可以(或:右鍵-新建節點-條件-ControlNet 應用)
⑨我們“ControlNet 應用”兩邊的“條件”連接“正面條件/提示詞”,圖像連接“VAE 解碼”輸出的圖像;大模型連接“K 采樣器(分塊)”上的模型;
⑩這時候我們就剩下設置出圖大小了,我們可以在“VAE 解碼的圖像”連接過來一個“圖像縮放/按系數放大”(或:模型放大流程,我個人測試下來,模型放大效果最好);
?然后對圖像進行“VAE 編碼”然后連接到“K 采樣器(分塊)”上,這不用細說了吧,圖生圖的流程;
?注意:降噪同樣不要太低,分塊寬高根據情況設置,如果出現偽影就增大數值
5. UltimateSDUpscale(終極 SD 放大):
①我們使用時每次都要搭建一遍“非潛在放大或分塊放大”等流程會很麻煩,使用“ComfyUI_UltimateSDUpscale”插件會更簡單。
②下載地址: /uploads/pic/20240108/ComfyUI_UltimateSDUpscale (壓縮包解壓安裝、git 拉取、管理器安裝都可以)
③“右鍵-新建節點-圖像-放大-SD 放大”,這個插件有兩個功能,一個是細節修復+放大(SD 放大),一個是細節修復(SD 放大(不放大))。我們主要用到的是 SD(放大),他們的區別只是是否連接放大模型;
④這個放大插件可以說是把上方的“模型放大+分塊放大”進行了一個組合;
⑤我們可以看到這個節點和我們上面用的“K 采樣器(分塊)”很相似對吧,這個地方我們主要去關注幾個操作就可以了
a. mode_type(模式類型):有兩個可選擇
Linear(直線):逐行進行拼接(更快,但是會有幾率出現偽影,我們默認使用這個)Chess:棋盤拼接 ,可以理解成“X”形狀的拼接樣式(慢一些,出現偽影的幾率小)b. mask_blur(模糊):拼接區域的羽化程度,默認 8 就可以,融合不好的情況下適當調高
c. Tile_padding(分塊區域):相鄰融合像素,和我們上面說的 padded(填充)策略一樣,不過這個插件我們可以設置融合像素的值
d. seam_fix_mode(接縫修復模式):有三種模式選擇,Band Pass(速度快)、Half Tile(質量好)、Band Pass+Half Tile(速度和質量做一個折中)
⑥連接就更簡單了,連接一個“放大模型加載器”,其他的就按照名字連接就可以;
總結“模型放大”最快也是效果最差,最不推薦的。我常用的是“非潛在放大”和“UltimateSDUpscale 插件放大”;每個放大方式都有利弊,我們完全可以多種方式一起進行放大,比如:潛在放大/非潛在放大 + UltimateSDUpscale 插件放大,這樣我們放大后的圖片效果更好,細節更豐富;我們 refiner 模型細化、圖生圖、還有我們以后要學習的 文/圖生視頻 等都可以用這幾種方式進行放大;我把這幾種放大方法整合在一個工作流中,大家可以對比一下不同方式下的放大效果 文件名 如何下載使用 文件大小 提取碼 下載來源 ComfyUI內容22GB6666 點此復制 登錄下載- 免責聲明
- 本文所包含的觀點僅代表作者個人看法,不代表新火種的觀點。在新火種上獲取的所有信息均不應被視為投資建議。新火種對本文可能提及或鏈接的任何項目不表示認可。 交易和投資涉及高風險,讀者在采取與本文內容相關的任何行動之前,請務必進行充分的盡職調查。最終的決策應該基于您自己的獨立判斷。新火種不對因依賴本文觀點而產生的任何金錢損失負任何責任。