無論您的提示和模型有多好,一次性獲得完美圖像的情況很少見。
修復小缺陷的不可或缺的方法是圖像修復(inpainting)。在這篇文章中,我將通過一些基本示例來介紹如何使用圖像修復來修復缺陷。
需要的軟件
我們將使用 AUTOMATIC1111 Stable Diffusion GUI 來創建圖像。
基本的圖像修復設置
在這一部分,我將逐步展示如何使用圖像修復來修復小缺陷。
我們先使用下面的提示來創建一張圖片:
正向提示詞:
masterpiece,best quality,masterpiece,best quality,official art,extremely detailed CG unity 8k wallpaper,a beautiful woman,full body,
負向提示詞:
lowers,monochrome,grayscales,skin spots,acnes,skin blemishes,age spot,6 more fingers on one hand,deformity,bad legs,error legs,bad feet,malformed limbs,extra limbs,
我們可以得到下面的圖片:
[圖片上傳失敗...(image-c78032-1725869275750)]
雖然這張圖片整體上看起來還不錯,但是還是有一些問題。
比如臉部和手部。
那么接下來我們怎么修復呢?
選擇對應的模型
如果你經常瀏覽C站的話,你可以看到對于有些模型會有一種專門給重繪使用的模型,這種模型是專門為圖像修復而訓練的Stable Diffusion模型。
如果您想獲得最佳結果,可以使用它。但通常,使用生成圖像的相同模型進行圖像修復也是可以的。
我們把對應的模型下載下來,并將其放入文件夾中:
stable-diffusion-webui/models/Stable-diffusion
在AUTOMATIC1111中,點擊左上角檢查點選擇下拉框旁邊的刷新圖標,就可以看到你剛剛下載的模型了。
創建圖像修復遮罩
在AUTOMATIC1111 GUI中,選擇img2img標簽并選擇Inpaint子標簽。將圖像上傳到圖像修復畫布。
或者在txt2img標簽中選擇send img to inpaint。
我們將同時修復手部和臉部。使用畫筆工具創建一個遮罩。這是您希望Stable Diffusion重新生成圖像的區域。
[圖片上傳失敗...(image-880f10-1725869275750)]
圖像修復的設置
圖像大小
需要調整圖像大小以與原始圖像相同。(在這種情況下為768 x 512)。
[圖片上傳失敗...(image-581ba0-1725869275750)]
面部修復
如果您正在修復面部,可以打開restore faces。選擇對應的face restoration model:CodeFormer。
[圖片上傳失敗...(image-1ad381-1725869275750)]
有朋友會問了,為什么我的頁面上面沒有restore faces選項呢?
如果你沒有這個選項的話,需要到setttings里面的user interface添加下面的兩個設置:
[圖片上傳失敗...(image-5abe7a-1725869275750)]
請注意,此選項可能會生成不自然的外觀。它也可能生成與模型風格不一致的內容。
遮罩內容
下一個重要設置是Masked Content。
如果您希望結果由原始內容的顏色和形狀引導,請選擇original。
original通常用于面部圖像修復,因為一般形狀和解剖結構是正確的。我們只是希望它看起來有點不同。
在大多數情況下,您將使用original并更改去噪強度以實現不同的效果。
如果您想要從原始圖像中完全重新生成某些內容,例如移除一個肢體或隱藏一只手,可以使用latent noise或latent nothing。
這些選項使用與原始圖像不同的內容初始化遮罩區域。它將產生完全不同的東西。
去噪強度
去噪強度控制與原始圖像相比將進行多少變化。當您將其設置為0時,什么都不會改變。當您將其設置為1時,您將獲得一個不相關的圖像。0.75通常是一個很好的起點。如果您想要更少的變化,請降低它。
批量大小
確保一次生成一些圖像,以便您可以選擇最好的。將種子設置為-1,以便每個圖像都不同。
圖像修復結果
以下是一些修復后的圖像。
[圖片上傳失敗...(image-152a16-1725869275750)]
可以看到第四張還是不錯的,但是還不夠完美。所以我們可以考慮再來一輪修復。
再進行一輪圖像修復
把上面生成的最后一張圖片再發到inpait中再次修復。
我們可以得到下面的結果:
[圖片上傳失敗...(image-cd9aab-1725869275750)]
圖像修復是一個迭代過程。您可以根據需要多次應用它來細化圖像。
如果一次不行的話,我們可以考慮多來幾次。
添加新對象
有時,您可能希望在圖像中添加一些新東西。
讓我們嘗試在圖片中添加一把劍。
首先,將圖像上傳到圖像修復畫布并在手部的位置添加遮罩。
在原始提示的開頭添加“holding a sword”。圖像修復的提示是
(holding a sword:1.5),masterpiece,best quality,masterpiece,best quality,official art,extremely detailed CG unity 8k wallpaper,a beautiful woman,full body,
向原始提示中添加新對象確保風格一致。您可以調整關鍵詞權重(上面的1.5)以使寶劍顯示。
將遮罩內容設置為潛在噪聲。
調整去噪強度和CFG比例以微調修復后的圖像。
經過一些實驗,我們的任務完成了:
[圖片上傳失敗...(image-86e258-1725869275750)]
圖像修復參數的解釋
去噪強度
去噪強度控制最終圖像和原始內容的相似度。將其設置為0則什么都不會改變。將其設置為1,則您會得到一個不相關的圖像。
如果您想要小的變化,請設置為低值;如果您想要大的變化,請設置為高值。
CFG scale
類似于在文本到圖像中的使用,CFG scale是一個參數,用于控制模型和你的提示詞的關聯度。
1 – 大致忽略您的提示。
3 – 更有創造力。
7 – 在遵循提示和自由之間取得良好的平衡。
15 – 更多地遵循提示。
30 – 嚴格遵循提示。
遮罩內容
遮罩內容控制遮罩區域是如何初始化的。
fill:用原始圖像的高度模糊版本初始化。
Original:未修改。
latent noise:遮罩區域用填充初始化,并在潛在空間中添加隨機噪聲。
latent nothing:像潛在噪聲,只是沒有在潛在空間中添加噪聲。
圖像修復的技巧
成功的圖像修復需要耐心和技巧。以下是使用圖像修復的一些要點:
- 一次修復一個小區域。
- 嘗試不同的遮罩內容以查看哪個最有效。
- 可以多次嘗試修復。
- 如果在AUTOMATIC1111的設置中什么都不起作用,請使用像Photoshop或GIMP這樣的圖像編輯軟件,用您想要的大致形狀和顏色繪制感興趣的區域。上傳那張圖像并用原始內容進行圖像修復。