本篇要來介紹一個很少人提到,但是我用了之後覺得非常驚艷的功能--循環輸入(Loopback)。
當我們在使用img2img,或者Inpaint等依照一個既有圖像產生新圖像時,很多時候會遇到一個問題:
Denoising strength太小,改動的幅度不夠大,想改的東西改不了。但是Denoising strength如果弄得太大,想改的東西不一定會改到,但不想改的東西卻被改變了。
通常應付這種問題的作法就是使用低Denoising strength,不斷地把滿意的成果送回img2img或Inpaint裡面繼續重繪。但有時候這種過程非常緩慢又耗費心力,常常還沒看到滿意的成果前就放棄不搞了。
這時候Loopback就是一個很棒的懶人救星。Loopback簡單說,就是將這一次跑出來的成果圖,當成下一輪的來源圖繼續生出下一張圖。
在img2img與Sketch功能底下,就是整張圖繼續生圖,在Inpaint與Inpaint Sketch底下就是以原本選取的範圍來繼續生圖。
在img2img頁籤的最下面,Script選單裡面,就有著Loopback這個選項,選擇它之後會打開一個表單,提供幾個額外設定:
- Loops:執行幾次Loopback功能。
- Final denosing strength:最後一回合的Denoising strength。
- Denoising strength curve:從第一回合到最後一回合之間的Denoising strength的變化策略,有三種選項:
Linear:從頭到尾平均變化。
Aggresive:非常快就貼近Final denoising strength。
Lazy:最後幾回合才會貼近Final denoising strength。
- Append interrogated prompt at each iteration:每次生出新圖之後,是否要執行圖生文,將搜尋到的提示詞附加上去生下一回合的新圖。有三個選項:
None:不執行圖生文。
CLIP:執行CLIP,讓AI從新圖提煉提示詞,產出自然語法格式的提示詞。常用在照片類圖片。
DeepBooru:執行DeepBooru,讓AI從新圖提煉提示詞,產生單詞列表的提示詞,常用在動漫類圖片。
原本由於AI在高度Denoising strength的情況下,輸出的成果太不可測,所以Loopback這個功能很難使用,因此很少人使用,但是在ControlNet這個超級外掛出現之後,Loopback在某些地方就變得特別好用,下面是一個應用範例:替人物身上的衣物變色。
很多時候,AI並不一定會聽我們輸入的提示詞,但同時又產生了我們很喜歡的成果,這要怎麼辦呢?例如下圖,AI偶然產生了一張很滿意的圖片,但是角色身上的衣物顏色是錯的,我指定的是紅色短裙,但是AI給我的是純白短裙。
這時候如果使用0.99的超高強度Denoising strength對裙子進行局部重繪,通常會得到一個顏色介於粉紅到深紅的裙子,但我們也可以使用Loopback來漸進式地更改角色的衣服。
首先將圖傳送到Inpaint中,選取裙子的部分,使用這個提示詞組來強調要改成紅色短裙:
(masterpiece, top quality, best quality, official art, beautiful and aesthetic:1.3), extreme detailed, Hana, red short skirt, fantasy <lora:Hana25:0.4>
在設定表單上,最需要注意的地方是Denoising strength為非常高的0.8,在這種情況下必須要使用ControlNet來管控畫面,否則產生出來的東西會非常離譜。
在ControlNet裡面,使用canny或者normal都可以,用normal能讓裙子的裝飾或零配件產生變化,如果使用canny的話,就會產生與原本裙子樣子更一致的新裙子。
接下來是重點,在Script底下選擇Loopback,將回合設定為5到10回合,最終Denoising strength設為0.9的更高數值,然後其他保持原樣,這樣就能開始跑圖了!
就這樣,Loopback會產生數張圖片,你可以從文章開頭的圖片看到角色的裙子顏色從白色變成黃色,再變成深淺不同的紅色。我們就可以從這些成果中挑選自己喜歡的圖片來用了。
除了簡單的變色之外,還有改變衣服,將從外部接肢的正常手腳融合成自然的手腳等等用途,都可以從手動變成這種等結果的懶人做法: