本篇文章介紹 Stable Diffusion web UI 圖像修復 (Inpaint) 頁面的基本功能。

功能區塊

進入 stable-diffusion-webui 的 inpaint 頁面可以看到下面的畫面:
Stable Diffusion web UI 圖像修復 (Inpaint) 功能區塊
一些重複的區塊就略過,其他的功能區塊大概如下:

  1. 圖片編輯
  2. 遮罩模糊 (Mask Blur)
  3. 遮罩模式 (Mask Mode)
  4. 遮罩內容 (Masked Content)
  5. 修復區域 (Inpaint Area)

功能介紹

以下的內容使用的原圖為這張:
原圖

把口罩部分設為遮罩:
遮罩

圖片編輯

一開始這個區域是空白,可以點擊從電腦選取檔案、拖曳檔案進來或從剪貼簿貼上,另外使用 Send to inpaint 的功能也可以帶入。有圖片之後,右上角會出現三個圖示:

按鈕說明
還原上一步還原上一步
筆刷大小筆刷大小
清除圖片清除圖片

遮罩模糊 (Mask Blur)

產出的圖片和原始圖片交界處的羽化程度,數字太小可能交界會有明顯痕跡,數字太大和原圖會有不正常重疊。可以設定 0 - 64,效果如下:
遮罩模糊 (Mask Blur)

遮罩模式 (Mask Mode)

遮罩模式有以下兩種選項:

  • Inpaint masked: 修改的部分為遮罩的部分
  • Inpaint not masked: 修改的部分為遮罩以外的部分

Inpaint masked,口罩部分被替換
Inpaint masked

Inpaint not masked,口罩部分固定,其他部分替換
Inpaint not masked

遮罩內容 (Masked Content)

遮罩內容有以下四種選項:

  • fill: 遮罩部分填入原圖模糊處理後的內容
  • original: 遮罩部分直接使用原圖
  • latent noise: 遮罩部分填入雜訊
  • latent nothing: 遮罩部分填入附近混色遮罩內容 (Masked Content)

修復區域 (Inpaint Area)

修復區域有以下兩種選項:

  • Whole picture: 將整張圖片作為輸入
  • Only masked: 將遮罩區域作為輸入

如果是使用 Only masked,可以再額外設定 Only masked padding, pixels 的數值,作為輸入的部分往外延伸多少像素。以下為 0 和 32 的範例:
修復區域 (Inpaint Area)

上排輸入為示意,他實際上會先轉為目標尺寸大小作為輸入,最後在融合回原本遮罩的地方。可以看到 padding 0 的時候,可能作為參考的範圍太小,做了錯誤的面向判斷,產生錯誤的結果。如果輸入非常大的 padding,最後會等於 Whole picture 的結果。

原理說明

以下用圖解說明工作的流程和原理
圖像修復 (Inpaint) 原理說明

使用 Only masked 的時候,會調整尺寸
圖像修復 (Inpaint) 原理說明

延伸閱讀

上一篇 Stable Diffusion 教學 - web UI 圖生圖 (img2img)
下一篇 Stable Diffusion 教學 - web UI 手繪生圖 (Sketch)