
Stable Diffusion 算圖時,有時算出來的人臉都像是被揍過一樣!這其實是解析度過小的問題,我們可以透過 img2img upscale 加 inpaint 的手法來解決,只需要兩階段,一起來看看怎麼做吧!
目錄
1 第一階段:增加圖面解析度2 第二階段:使用 Inpaint 重繪臉部
第一階段:增加圖面解析度
以下這一張用 Stable Diffusion 畫出小朋友與老師的畢業合照,整張圖的解析度為 784 x 512。因為每個人臉所佔畫面(解析度)過小,就算我們 prompt 下再多 beautiful face 等關鍵字,Stable Diffusion 還是兩手一攤擺爛亂畫。

既然是解析度問題,我們設法增加臉部解析度試試能不能好轉,我們可以使用 img2img 將整張圖的解析度增加。
給定與原圖一樣的 prompt,denoising strength 可以調 0.5 附近,讓算圖結果與原圖差異不要太大。
延伸閱讀:如何用 Stable Diffusion 產生高解析度的圖?
下圖採用 denoising strength = 0.65,長寬 1568 x 1024,其他參數則與原圖相同。同時開啟 ControlNet openpose 固定人物肢體與排列 ,結果如下:


雖然人物的衣服改變了,但整體來說比之更好,衣服的質感也比較自然。同時發現臉部已經好很多,但還是偏呆滯,接下來我們用 Inpaint 來解決這個問題。
第二階段:使用 Inpaint 重繪臉部
Inpaint 原理是,我們在圖片上塗抹一個區域,告訴 AI 只需要幫我們重繪被遮住的區塊。如此即能在不動整個畫面的情況下,微調 AI 畫不好的小地方。
一樣在 img2img 頁面:
- 切換子 tab 為 Inpaint
- 將剛剛放大的圖片拖入 source
- Mask mode 選擇 Inpaint masked
- Mask content 選擇 original
- Inpaint area 選擇 Only masked
- Width、Height 都設定為 512

選擇 only masked 的原因是,我們讓 Stable Diffusion 用給定的長寬 畫被遮住的部分,好處是...
👉👉前往 KodingWork - 兩階段解決 Stable Diffusion 臉部問題 閱讀全文
延伸閱讀
如何用 Stable Diffusion 產生高解析度的圖?
LoRA 是什麼?如何使用?| Stable Diffusion
最詳細的 Stable diffusion WebUI 操作教學 – txt2img
免費用 Google Colab 玩 Stable Diffusion WebUI
如何在 M1 Macbook 上跑 Stable Diffusion?