正文
通常我們在Stable Diffusion用特化的模組輸出人物正面肖像圖時,會得到很好的結果,例如一個典型的512X512圖片,只要正面提示詞用得夠多,就能產生出不錯的正面大臉:

但如果我們想要用這些模組來輸出人物的全身像,人物的臉過小,在畫面上會呈現崩潰的型態,例如下面這張,我用了一模一樣的面部提示詞,但讓人物騎在馬上,畫面就變成了:

這其實是因為,人腦是一個高超的面部判別器,可以在0.1秒之內辨別這張臉的瑕疵與不對稱。但是生成AI在訓練時並沒有針對遠方的臉做太多對抗訓練,對AI來說,臉上五官偏移一兩個像素一樣可以通過判別器的檢驗,但是這並逃不過人眼的美感鑑別。
那麼我們要怎麼修補這些崩掉的人臉呢?
解法
最簡單的方法就是將那些臉崩的圖片拉進Automatic1111的Extras標籤,裡面有個智慧放大功能,只要選擇適當的放大模組,就能自動修臉,而且也不用放太大,只要兩倍就效果卓越:

各種放大模組都有自己的強項,而我個人最喜歡的是很著名的4x-UltraSharp這個模組,可以在這個網址下載:
https://mega.nz/folder/qZRBmaIY#nIG8KyWFcGNTuMX_XNbJ_g
下載之後放進models/ESRGAN/目錄底下,再重新啟動Automatic1111就能選擇了。
之前臉崩的圖片智慧放大之後,效果就好了不少:

但是這樣的放大,其實並沒有照著你的提示詞來修改,而是靠模組自己的特性發揮,所以進化的美顏不一定符合你的想法,在這種時候,就要請出Inpaint來精細發揮了!
將圖傳進Inpaint標籤中,將你指定的正反面提示詞都打上去,用圈選工具將整張臉都選起來,在選單裡面選擇Inpaint Area: Only Masked,將Denoising strength調整在0.4以下,按下Generate來生成。
由於Inpaint Area被限制在Only Masked,Stable Diffusion會將面部先特意放大,再開始依照你的提示詞重繪。由於此時面部被放大到跟肖像畫一樣的程度,所以可以用最精細的方法繪畫,畫完之後再縮小鑲嵌回原畫中,就能做到非常高畫質的面部細節:

在這樣的修正下,不只是眼睛顏色重新還原到我指定的顏色,光影也更加仔細,面部線條更柔和,連斗篷上的打結也完美呈現出來。
本方法修正面部的效果卓越,但是用在其他肢體,例如手指或腳趾就完全不行,通常越修越糟糕,還不如自己拿起Photoshop或GIMP修圖來得快。
祝大家算圖快樂!
參照
進階技巧目錄:
- Stable Diffusion進階 -- 製作角色設定圖
- Stable Diffusion進階 -- 轉換線稿/漫畫稿
- Stable Diffusion進階 -- 常用網站
- Stable Diffusion進階 -- CLIP Skip 2
- Stable Diffusion進階 -- 臉崩修復
- Stable Diffusion進階 -- X/Y/Z plot
- Stable Diffusion進階 -- 提示詞矩陣
- Stable Diffusion進階 -- 練習,歡迎來到我的家鄉
- Stable Diffusion進階 -- 穿衣換衣術
- Stable Diffusion進階 -- 醒來!表情變換
- Stable Diffusion進階 -- 雷光變幻!
- Stable Diffusion進階 -- 糊臉清晰化
- Stable Diffusion進階 -- 練習,這是利息
- Stable Diffusion進階 -- 人工與工人智慧去背
- Stable Diffusion進階 -- 手部修復
- Stable Diffusion進階 -- ControlNet新功能Reference