前言
這一篇要來敘述Stable Diffusion的Automatic1111的局部重繪(Inpaint)功能。
局部重繪是圖生圖頁面的子標籤,在這個頁面上,絕大部分的功能在其他基礎功能的介紹文章講過了,所以不重複,請到
Stable Diffusion基礎 -- 文生圖(txt2img)
Stable Diffusion基礎 -- 圖生圖(img2img) 查閱。
以下是Inpaint頁面特有的選項:
功能分區
- 圖片放置區:與圖生圖功能類似,在這裡我們可以用拖曳或者點擊打開檔案選擇器,把自己要修改的圖放入。但是與圖生圖功能不一樣的是,我們要在這張圖上選取一個區域來引導AI來修改特定區域,以下詳解。
- 遮罩模糊寬度:很類似繪圖軟體的「羽化」效果,讓被選取的區域的邊緣與原先的內容平滑地銜接在一起。如果寬度設定較小,被選區域與外面區域的界線就會很明顯,設定較大,就能讓被選區與外界區域平滑過渡,但由於這個區域是從被選取區向內縮,所以過大的寬度會讓能夠變動的區域變小。
- 遮罩模式:選擇重繪的模式。
Inpaint masked:重繪被選取的區域。
Inpaint not masked:重繪沒有被選取的區域。常常用在要修改整張圖片,但是不想改動臉部或人物時。
- 遮罩填充內容:選擇要在重繪的第一步填充什麼內容,以下詳解。
- 重繪區域:告訴AI在重繪時以什麼尺度計算,有兩個選項:
Whole picture:以整張圖為範圍重繪。
Only masked:以選取區域附近為範圍重繪。這個選項很容易讓人搞迷糊,但他非常有用,簡單來說Only masked就是專門放大選取區域,將該區域重繪之後再縮小,銜接回原本的畫中。這樣做的好處是,AI很多時候會把東西畫崩,例如臉或者整個人,就是因為能畫的區域太小了,所以這個選項將區域放大,讓AI有足夠大的地方重繪。這樣就有機會拯救被畫壞的臉或物件。
Only masked padding, pixels:在選擇Only masked模式時,放大區域的邊界。這個數值越大,Only masked模式放大的倍數就越小,但是周圍能參考的區域就比較多,要重繪的東西比較不容易畫壞掉,反過來說這個數值越小,放大的倍數就越大,要重繪的東西比較容易畫的更精細,但有可能畫出跟原畫面其他物品關係錯亂的結果,例如人物衣著不連續,或者陰影明暗錯位。
圖片放置區
當圖片被放進圖片放置區後,會出現一些小工具讓我們能夠做有限度的選取以及修正:
右上角的工具選的由左至右分別為:
- 回到上一個動作。
- 取消掉全部的選取區。
- 移除整張圖片。
- 選取筆刷工具的大小。
而右下角有一個很常被人遺忘的拖曳按鈕,可以讓你拖拉放大整個工作區,這樣工具區就不會擋到右上角的圖畫了。
遮罩填充內容
填充遮罩有四種選項可選,他們出來的效果都不太一樣,以上面的表示圖為例,將左下角的區域選取起來,並且用提示詞「街道」來替這張圖的左下角重繪:
- fill:將選取區整個模糊化之後開始重繪。
- original:直接用原本被選取的內容來重繪,適合只想變動一點東西,不想要劇烈改變的時候。
- latent noise:填充滿隨機噪音點,必須使用極高的Denoising strength(0.8以上)來去噪,否則生產出來的結果會是一堆垃圾圖樣。想要完全改變圖像結果的時候使用,通常結果會與選取區域周邊幾乎毫無關係,而與提示詞完全相關。
- latent nothing:將圍繞在選取區邊緣的色彩統計之後,取平均值填滿整個選取區,適合把選取區裡面的東西變不見時使用。