SD挽救渣圖的神器—Loopback Scaler

這是覺悟之坡AI繪畫系列第34篇,
本文作者:螞蟻(歡迎投稿)
一. 前言
今天這篇文章就是圍繞著開局的這兩張原圖開始的。
在Stable diffusion甚至當(dāng)前所有的AI畫圖工具里面,AI生成內(nèi)容隨機(jī)性都是一個很大的問題。
我們經(jīng)常遇到一張圖構(gòu)圖不錯但是臉崩了,又或者人物形象不錯但是背景畫得崩了這樣的問題。
前者我們往往把圖扔到圖生圖里面在臉部畫個蒙版繼續(xù)扔色子。而后者一般調(diào)整prompt重繪或者像前面一樣到圖生圖里面打蒙版,重繪背景。
今天分享一個新工具——loopback scaler,這個新工具將給你帶來不一樣的解決辦法,而且還有更多的可玩性,先說結(jié)論。
經(jīng)過簡單試用,總結(jié)一下這個工具能做的事情:
渣圖挽救者:在圖生圖中對原圖迭代重繪,修復(fù)渣圖。腳本在多個循環(huán)中處理輸入圖像,每個循環(huán)提高分辨率并優(yōu)化圖像質(zhì)量。然后,一個循環(huán)的圖像結(jié)果作為下一個循環(huán)的輸入圖像插入,該循環(huán)不斷基于已創(chuàng)建的內(nèi)容構(gòu)建;
降噪變化:可以針對每個循環(huán)調(diào)整去噪強(qiáng)度,使用戶能夠在保留細(xì)節(jié)和減少偽影之間取得平衡;
圖像濾鏡:支持對補(bǔ)繪的圖片設(shè)定銳度、亮度、對比度、飽和度,也支持對畫面細(xì)節(jié)、模糊、平滑度進(jìn)行設(shè)置;
一種新的分辨率提升方式,可以在重繪中對分辨率擴(kuò)增,而且這是一種自適應(yīng)更改——腳本根據(jù)輸入圖像的平均強(qiáng)度調(diào)整每個循環(huán)的分辨率增加量。這有助于產(chǎn)生更自然的效果;
深化細(xì)節(jié),補(bǔ)繪原圖,支持重設(shè)prompt增加原圖沒有的細(xì)節(jié);
支持輸出深化后的線稿;
二.安裝
1.自動安裝
在stable diffusion擴(kuò)展選項卡下,選擇[從網(wǎng)址安裝 install from url],粘貼https://github.com/Elldreth/loopback_scaler網(wǎng)址到"git倉庫地址?URL for extension's git repository",“本地目錄名”留空即可,點擊安裝,安裝完畢后重啟web-ui。
loopback scaler僅僅是一個python腳本無需下載額外的模型,所以安裝應(yīng)該很快,但是如果遇到GitHub暫時無法直接訪問的情況,需要開啟上網(wǎng)工具,你懂的。
或者將上面的網(wǎng)址修改成http://ghproxy.com/https://github.com/Elldreth/loopback_scaler就可以快速安裝了。
安裝好后在圖生圖選項卡最下面的“腳本”下拉選項中就可以找到“Loopback Scaler”了。在使用前我非常建議大家通過上面這個網(wǎng)址瀏覽一下這個項目的說明文檔。
2.手動安裝
腳本也支持手動安裝,具體做法如下:
從GitHub或者從本文下載loopback_scaler.py文件;
將腳本移動到文件夾:\stable-diffusion-webui\scripts;
關(guān)閉web UI;
運(yùn)行webui-user.bat(win)或者webui-user.sh(linux和mac),重新啟動web UI;
三.實操體驗
1.先畫出原圖

完成上面的工作,我們開始實際體驗,例子就用文章開始的這個圖片,生成的正反prompt如下(一會兒會用到):
pos prompt正詞:
((masterpiece)),(high quality),(line art watercolor wash),Cyan and orange primary colors,2d Illustrations,A majestic Dunhuang Nüwa with a shimmering gold halo, soaring through the sky,delicate eyes,black clothes,floating hair,dress tangstyle hanfu,very long hair,ethereal background, abstract beauty, approaching perfection, pure form, golden ratio, minimalistic, full body,wide view, by Brian Froud and Carne Griffiths and Wadim Kashin and John William Waterhouse, intricate details, 8k post production, high resolution, hyperdetailed, trending on artstation, sharp focus, studio photo, intricate details, highly detailed, by greg rutkowski
neg prompt反詞:
(((2 heads))), (((duplicate))), ((malformed hand)), ((deformed arm)), ((freckle)), naked, man, men, blurry, abstract, deformed, thick eyebrows, cartoon, animated, toy, figure, framed, 3d, cartoon, bad art, deformed, poorly drawn, extra limbs, close up, weird colors, blurry, watermark, blur haze, long neck, watermark, elongated body, cropped image, out of frame, draft, (((deformed hands))), ((twisted fingers)), double image, ((malformed hands)), multiple heads, extra limb, ugly, ((poorly drawn hands)), missing limb, cut-off, grain, bad anatomy, poorly drawn face, mutation, mutated, floating limbs, disconnected limbs, out of focus, long body, disgusting, extra fingers, (weird figure), missing arms, mutated hands, cloned face, missing legs, long neck,modern buildings,((watermark:2))
跳過文生圖的步驟,這一步大家應(yīng)該都已經(jīng)掌握。就不詳細(xì)說了。
在這里多說一點的是,因為我這張圖為了擬合某種青綠色調(diào)、扁平化的國風(fēng)插畫,所以描述詞中用了很多篇幅來形容畫風(fēng)和色調(diào),這就導(dǎo)致一些二次元的模型比如Counterfeit、anything跑圖時會出現(xiàn)問題,所以選擇了泛用性好的大模型比如SD 1.5這種。
實際上這張圖是在dreamstudio上的SD XL預(yù)覽模型跑的,在沒有controlnet和lora的加持下,人臉毫無意外的垮了,接下來我們開始挽救這張圖。
2.開始魔法救場
(1)把圖拖入圖生圖工作界面
填好上面的正詞、反詞,這里有個技巧如果你需要修改畫面風(fēng)格、背景或者替換某些元素,在這一步可以修改你的正詞。
原圖和后面loopback scaler深化的正反詞無需一致,其實loopback scaler的作者也已經(jīng)指出:“您可以在 img2img 中放置與您創(chuàng)建源圖像時使用的提示不同的提示。這種方法得出了非常有趣的結(jié)果”。
(2)選擇合適的創(chuàng)作模型
因為前面為了適配畫風(fēng)選擇了基礎(chǔ)大模型,而得到的結(jié)果并不好,這時候比如我們想深化為二次元圖片,那么我們這時候可以選擇Counterfeit、anything這種模型了,如果要畫真人風(fēng)也可以選擇chilloutmix、deliberate等等。
因為loopback scaler會幫我們迭代深化,所以模型我們可以放心使用了,這里我選擇了Counterfeit這個二次元模型,需要注意這個模型需要加載vae,不要忘記。
(3)開始設(shè)置圖生圖參數(shù)
根據(jù)github上作者文檔,可以看到有幾個地方需要特別注意:

a)縮放模式選擇剪裁;
b)采樣方法選擇DDIM,采樣步數(shù)設(shè)置為30;
c)寬度、高度這里保持原圖的大小,而且建議原圖不要出圖太大,loopback scaler迭代中原圖大小是影響性能的最重要因素,而迭代次數(shù)并不是主要壓力來源,所以性能不好的機(jī)器原圖請出512*512的,而且圖生圖這里不要修改!
d)提示詞相關(guān)性(CFG值)按照慣例保持6~8之間即可;
e)重繪幅度(降噪)設(shè)置在0.2~0.4之間,設(shè)置的越低每次迭代間變化就越少,反之結(jié)果與原圖的差距就會越大,我們的原圖因為比較垮,所以設(shè)置在比較高的值。
f)隨機(jī)種子建議保持在-1,鎖種子對于迭代應(yīng)該沒有意義。
g)如果需要lora,可以設(shè)置,實測是可以使用的。
(4)開始設(shè)置loopback scaler參數(shù)
到頁面的最下方(默認(rèn)布局)的腳本下拉選框中選中Loopback Scaler,開始設(shè)置迭代參數(shù):

a) loops(循環(huán)次數(shù)):作者建議4~10之間,最高可以設(shè)置到32,但是設(shè)置過高會導(dǎo)致圖片出現(xiàn)偽影,呈現(xiàn)負(fù)優(yōu)化,作為演示我這里就設(shè)置為4,多說一句這里設(shè)置高低其實不受計算機(jī)性能限制,但是會導(dǎo)致出圖時間變長,所以大家可以自己測試;
b) denoise change(降噪變化)和adaptive change(自適應(yīng)變化)前者決定每次迭代中的降噪變化,設(shè)置為1則保持img2img 設(shè)置中設(shè)置的去噪強(qiáng)度(前一節(jié)第5步的設(shè)置值)。后者則是更改每個迭代中降噪變化的增加量,實現(xiàn)迭代的更改不呈線性,該值越高,在循環(huán)結(jié)束時分辨率變化越顯著。在這里我們暫時都不修改,保持為1。
c)最大寬度和最大高度這是設(shè)置最終深化得到的圖片大小,所以可以看到loopback scaler是可以放大圖片的。這也是一開始建議大家原圖只出512*512即可的原因。但是需要注意的是因為loopback scaler與ultimate SD upscale原理不同,不會分片繪制放大來節(jié)省顯存占用,所以這里不建議大家用loopback scaler放大過高尺寸。根據(jù)經(jīng)驗設(shè)置在1024即可,如需大尺寸圖片,后期可配合別的重繪放大工具,如ultimate SD upscale。
d)上圖藍(lán)色標(biāo)出區(qū)域為圖片濾鏡設(shè)置,深化過程中如果需要添加細(xì)節(jié),可以將detail調(diào)高,如需模糊則調(diào)整blur,如果需要平滑則調(diào)整smoothing。再下方則是銳度、亮度、色彩、對比度設(shè)置,按需調(diào)整即可。我們需要得到色彩濃郁、明亮、清晰的圖片,所以我做了以上調(diào)整。
e)contour不要勾選,如果需要輸出深化后圖片的線稿則需要勾選這里。
f)點擊生成,等待魔法完成。
生成過程中,千萬不要修改圖生圖界面的正反引導(dǎo)詞!這將導(dǎo)致生成結(jié)果混亂,這一點腳本的作者也是在GitHub上特別指出的!
ALWAYS have a prompt in your img2img tab when doing this process, unless you are interested in creating chaos
所以點擊生成后就耐心等待吧。

有一個非常有意思的特點,你可以到\stable-diffusion-webui\output\img2img-images文件夾下看到每次迭代的圖片,可以看到圖片從渣逐漸優(yōu)化的過程,每一次迭代產(chǎn)生的圖片都是保存在那里,當(dāng)然通常這沒有什么意義,因為輸出的最后一張往往是最好的。
但是如果你迭代次數(shù)設(shè)置過高(超過了10步),你可能得到負(fù)優(yōu)化的圖片了,那么這個方式可以幫助你回退到比較理想的結(jié)果。
四.總結(jié)
這個文章到這里基本就可以結(jié)束了,關(guān)于loopback scaler的魔法大家自己去挖掘吧,因為這個腳本是通過循環(huán)迭代的原理將上一個循環(huán)扔個下一個循環(huán)繼續(xù)生成,可以理解為給AI疊buff。
所以將來遇到畫崩了圖的時候,可以嘗試用這個腳本挽救一下,往往會有意想不到的效果。
最后po一些更換其他模型的圖:



好了,大家都學(xué)會了嗎?學(xué)會了記得三連哦~
如果不會,有問題也可以私。
<End>
歷史AI繪畫文集,請查看AI繪畫文章合集
關(guān)注我們,更多有用又有趣的AI繪圖技能知識持續(xù)更新中~