AI繪圖-實測Face Editor:懶人自動修臉外掛,從此天下無歪臉(stable diffusion webui)

2023/05/22閱讀時間約 7 分鐘
這次要介紹的是stable diffusion webui下的一個小型外掛,可以自動把醜臉歪臉修正回來,不論是大臉小臉都適用,使用方面,原則上全照預設值就行。
這篇雖然寫的比較詳細,但其實它是一個直接enable就能用的簡單小外掛。
最近在想辦法畫出武俠風,目前沒成功過,剛好很多失敗品能測。

1.預覽與簡介

在stable diffusion webui下畫出醜臉歪臉是常有的事,大家對此也都很習慣,並且有一套公式化的應對方式了,這套工具不一定可以完全取代其餘修圖手法,但Face Editor的特色就是可以進行全自動無腦修臉工作,減少一些人工打磨的辛苦。
先列幾個範例,在安裝前你可以參考一下是否對你有用。
以下我抓一張最近在嚐試的武俠畫風失敗品來做為測試,並與常見的兩個修臉手法來比較修正後結果:

原圖:

Face Editor全預設值下的修圖結果:

Face Editor會針對臉部修整並還給你一張臉部正常的圖,但它只負責給你一張正常的臉,有關美醜或其餘事情就不管了。

與常見的修圖手法比較:

使用upscale圖片放大的修圖結果
以此圖為例,upscale有著全圖重繪的特性,整張圖變的更偏向黑白畫風,並且多出了一些預期外的東西。但平心而論,以這個範例來說,畫面風格我是比較喜歡upscale的結果,upscale也是一個不需要太多人力介入的修圖手法,但其成本在於需要更多的繪圖時間,且放大能力也十分依賴顯卡效能。
使用inpaint手動修圖的結果
inpaint的成本在於需要更多的手動操作,而繪圖結果中也充滿隨機性,可能要重畫很多次,inpaint下層參數可能也要經歷多次調整測試。
身為無腦派畫家,inpaint是讓我感到最累的一種方式。

2.安裝方式

打開SDW介面的Extensions頁籤,在安裝網址(URL for extension's git repository)欄位中填入下方網址:
https://github.com/ototadana/sd-face-editor.git
接著點擊Install按鈕並重啟SDW即可。

3.使用方式:

若有正確安裝的話,在繪圖介面中應該會多出一個新的Face Editor頁籤,勾選Enabled即可生效,大部份的情況下,使用預設值即可。
以下詳列各項設定值,懶得深究的話其實全照預設值就行。

參數1:Maximum number of faces to detect

設定最多可以偵測幾張人臉,最高20,預設值也是20。

參數2:Face detection confidence

臉部判定的門檻值,預設值0.97,當有出現未能被自動偵測到的臉部時,可以把此值調低。調低後有可能所有疑似臉部的區塊都會被判定為臉部。
以下這個例子中,臉部的區塊太小,又是側臉,所以預設值0.97是偵測不到的,必須把值調的更低才行:
Face detection confidence=0.97 毫無反應
Face detection confidence=0.7

參數3:Face margin

臉部邊距大小,這參數的意思是,當Face Editor偵測到臉部並將臉部獨立栽剪出來處理時,要留下多少臉部邊距(=臉部以外的空白區域)。這個值會影響臉部的生成結果,預設值1.6,原則上維持預設值就好,刻意調高或調低生出來的臉會有點不同,但不影響美醜或是成敗,一般使用情況下調整的意義不大。
我分別測了大臉跟小臉,可知雖然生成結果因此不同,但看不出重點差異在哪:
小臉Face margin=1.0
小臉Face margin=1.6
小臉Face margin=2.0
大臉Face margin=1.0
大臉Face margin=1.6
大臉Face margin=2.0

參數4:prompt for face

這邊如果沒有輸入的話,新臉的生成會參考原圖的prompt,若有輸入的話,則會以此處輸入的prompt為主要依據來生成新臉。
原圖
全預設值的生成結果
prompt for face=angry face的生成結果

參數5:Denoising strength for face images

有用過inpaint的應該對這名詞很熟悉了,Denoising strength可當做是重繪強度的權重值,數值越大重繪結果就越強烈大膽,數值越小則越接近原圖,預設值0.4。
此值適中即可,太強可能使新生成的面部不自然,無法融入原圖,而太弱可能會無法修正過度扭曲的臉。
原圖
Denoising strength=0.1,這張比我預期的效果好,在保持原臉風格的情況下修正了歪臉的問題
Denoising strength=0.4(預設值)
Denoising strength=0.8(最大值),設成最大值,臉的邊緣已經崩了
再多展示一個,原圖的臉太歪,但Denoising strength設成0.1太弱使修正失敗的例子:
原圖
Denoising strength=0.1,調太弱,修復後仍是歪
Denoising strength=0.4

參數6:Mask size

臉部遮罩區域大小:當要將新臉貼回舊臉時,將會套用的臉部圖片區塊範圍。預設值是0,0代表會完全精準的抓出臉部區塊直接貼回舊臉,不會有多餘的範圍。
這邊比較不好懂,直接看範例:
原圖
原圖若直接全照預設值,Mask size設為0代表會精準的抓出新的臉部範圍貼回舊臉,但因為原圖的臉部形狀其實就有點歪了,直接精準的貼回去反而很醜,有破綻,從下圖範例中可以看出修正之後,舊的下巴還露了一角出來:
這時要把Mask size調大一點才可以蓋過那個舊的下巴:

參數7:Mask blur+參數8:Denoising strength for the entire image

Mask blur是遮罩模糊值,當新臉的線條太強烈以致無法融入原圖時,可以試著調高此值,使線條模糊化。
Denoising strength for the entire image是將新臉貼回原圖時,對於更新區域的重繪幅度。
這兩個參數的應用情境類似上一步中提到的Mask size,都是新臉與原圖融合不佳時再做調整。
這邊我無法生成剛好適用這些參數的失敗圖例,這邊我就不再多做展示了。事實上,Face Editor全照預設值的修臉成功率已經極高了,這些參數通常不需要做任何調整。

參數9:Apply inside mask only

預設值是勾選,也建議勾選,其實你沒得選,我不知道弄這個選項是要幹嘛的
Face Editor畫完一張新臉時,其實是個方形圖塊,必須勾選這個選項它才會自動幫你依臉形做栽切,若無勾選,修正過後的圖片會很明顯有個方框存在。
原圖
未勾選Apply inside mask only,臉旁明顯帶一圈方框
勾選Apply inside mask only

參數10:Save original image

這個選項的意思是:是否要在outputs資料夾中同時儲存修臉前的原圖與修臉後的新圖,若無勾選則只會儲存修臉後的新圖。預設值是無勾選。
以我自己的操作習慣來說這選項意義不大,因為我習慣手動存檔,比較少在outputs資料夾抓圖。

參數11:how intermediate steps

勾選這個選項後,會把每個修圖處理步驟的圖片都一併顯示出來:
更多訊息可以參考原作者網址:

結論:

有自動修臉是很好,但我更想要的是自動修手指!!!!!
為什麼會看到廣告
250會員
87內容數
沙龍自介: 雜文派,舉凡AI介紹、科技新知、廢談網誌、小說動漫通通都寫。雖說如此,但目前以AI與科技類文章為主軸,我也不知道怎麼變這樣的,holy 媽祖。 本人不喜歡看長篇文章,也不擅長寫長篇文章,我的意思是:我的優點是廢話很少,看我一篇文不會花你太多時間。
留言0
查看全部
發表第一個留言支持創作者!