更新於 2024/02/20閱讀時間約 9 分鐘

AI換臉軟體-ReActor(stable diffusion外掛,簡易版Lora):讓你把川普換成拜登

前言:

1.我能理解大家都愛看帥哥美女,但這種可能涉及肖像權的文章,我還是保守一點使用遠在外國的大牌政客川普與拜登來做為例子,第一是他們是大家都認識的知名人物,第二是他們應該沒那麼無聊會跑到台灣地區的方格子裡面來查探是否有人使用他們的照片甚至跨海提告。退一步說,這兩個人的迷因圖早就全世界都是了,讓我拿來開一點玩笑應該是無所謂的。
因此,做為一篇公開文章,我只能以不敏感的外國人物做為圖片來源,至於各位看官自己想畫美女圖還是帥哥圖還是你家小孩的圖就不關我的事了。
2.我今天要介紹的是把ReActor安裝在stable diffusion webUI的過程與操作,詳細的技術細節可以參考軟體原址:
https://github.com/Gourieff/sd-webui-reactor
3.換臉結果受原圖品質影響甚巨,若圖源的人物長相清晰明確且無任何光影干擾,而圖片背景組成也單純的情況下,換臉結果會較好。但ReActor已經算是足夠智慧化了,即使無法準備太精緻的參考圖源,換臉結果也還算過的去,只是可能長相相似度會低一點。當然人物本身的長相也是影響因素之一,如果人物的長相比較有辨識度比較有特色,那換臉後的效果比較明顯。

簡介:

ReActor算是近期的AI換臉軟體之一,沒錯,它只是眾多類似的軟體中的其中一個,但一些常見且名稱相似的AI換臉軟體其實底層技術都是一樣的東西,只是套上不同的皮而已,實際的換臉效果也是一模一樣的,所以擇一使用即可,而我選擇介紹的便是這款ReActor。

而其它類似的軟體還有FaceChainFaceSwapLabroopFaceFusion等等,用這些關鍵字查詢都可以找到大同小異的東西,但其實沒必要全部安裝,因為底層都是一模一樣的東西。

雖然這款軟體在安裝上也是要懂一點電腦知識,但已經算是簡單易用的換臉軟體了,比起更早期的deepFake(深偽)已是簡單許多,deepFake就是被網紅小玉拿來做名人A片引起宣然大波的那個AI換臉軟體,deepFake我有粗略的試玩過,使用步驟多,要設定的參數也多,並且需要開著電腦執行長時間的AI學習,最後的效果也不太好。

回到ReActor來說,它最單純的作用便是對圖片執行換臉,以下隨手測一個簡單的例子,使用ReActor將拜登的臉換成川普的臉:


拜登原圖

換成川普臉的拜登


從AI繪圖與stable diffusion webUI的角度來看,ReActor可以視為Lora的替代品,它免除了繁雜的Lora訓練過程讓你立刻可以做出特定人物的AI畫像。

ReActor可以視為一種簡易的Lora工具,但它無法直接取代Lora,因為Lora可以仿造的範圍更廣,Lora除了可以模仿人物長相之外,還能學習繪畫風格,色調,形狀等較抽象的圖片特徵,並且能夠跟stable diffusion webUI的本體功能深度結合。相對的,ReActor的強項僅在於「換臉」這件事,它在本質上與Lora有著不同,所以這兩者之間雖有相似之處卻無法互相取代對方。

安裝過程:

0.安裝stable diffusion webUI

既然這軟體是stable diffusion webUI裡面的外掛,那你當然首先是要安裝好一套stable diffusion webUI了,我也假設你已經對stable diffusion webUI有一定的了解了,若你是從零開始的使用者,可以參考我以前寫過的stable diffusion webUI安裝教學:

AI繪圖-四分鐘四個步驟!簡易快速安裝單機版stable-diffusion-webui(AUTOMATIC1111)


1.安裝VS開發者工具

先至下列網址下載VS本體,下載免費版本即可,當然若你本來就已安裝好VS開發者工具可以免除這一步。


安裝好VS本體後在程式清單中應該會出現VS選項。接著照以下圖例安裝好VS C++桌面套件:



2.安裝ReActor

接著便是開啟stable diffusion webUI,並切換到Extensions頁籤開始安裝ReActor,它的安裝方法與一般外掛的安裝方式一模一樣。

完成安裝後需要重啟stable diffusion webUI,並且可能會需要重啟很多次。

在這個階段你需要注意背景cmd視窗的訊息,看看是否有跳什麼錯誤或是出現--- PLEASE, RESTART the Server! ---這個訊息,如果有跳錯誤或是出現重啟server的提示你就要把stable diffusion webUI及cmd背景視窗完全關閉再重開,這個過程可能要重複很多次,直至完全沒有錯誤或重啟提示為止。

並且初次執行時它還會花一些時間下載必要的模型檔,這個階段沒什麼技術重點卻是讓我試到心累,中間一度try到懷疑人生,懷疑整個軟體都被我弄壞了差點把整個stable diffusion webUI重裝。

3.實際使用

若你成功渡過了安裝階段,那麼恭喜你,現在就可以開始使用了。

以下展示三種常見的應用情境,通常不需要特別修改預設參數,直接使用即可。

1.AI圖片換臉:

假設你已在文生圖介面生好一張圖:


接著若想把這張圖套上川普的臉,那就先把圖片seed固定住,以防重繪時圖片跑掉。接著開啟ReActor子頁籤並勾選啟用,同時在ReActor介面上傳一張川普的臉部參考圖:


接著在其餘參數不動的情況下,再次執行文生圖的圖片繪製,川普的臉就會被套上原先的那個AI人物了:

在這個情境中,類似於使用Lora繪製特定人物的感覺,但ReActor是專精於「換臉」這件事,並且它也只負責「換臉」,所以它更像是把川普的臉皮貼上原本的圖片人物之中。

而如果是使用川普Lora的情況下,就不只是換臉,而是畫出整個川普,當然使用Lora的情況下就會被Lora的訓練品質影響,以下範例我是使用網路上現成的川普Lora繪製,顯然使用Lora也是有著不確定性,在生成的兩張圖中,左圖比右圖更像:


Lora可以憑空生出特定人物的圖並加以指定該人物的外貌與穿著細節,而ReActor則必然要先準備好特定人物的長相參考圖以及準備置換的目標圖。

所以說ReActor與Lora兩者有著微妙的不同,應用的場景也有所不同,但ReActor比較好入門是肯定的,因為Lora除了有技術門檻之外,煉製過程也非常耗時,而且最終結果也不一定會符合期待,而我用的這個川普Lora算是品質不錯的那種,所以人物相似度才能這麼高。

回到一開始的那個例子,在相同操作之下,我把參考圖換成拜登的臉,則生成結果也會套上拜登的臉:



2.真實照片換臉:

第二個應用情境是真實照片的換臉,這種應用場景比較貼近於deepFake,當然你的圖源不一定要是照片,只要是一個現成的圖檔即可,不論是真人照片或是二次元動漫圖皆可,但你的長相參考圖與置換目標圖最好畫風一致,把二次元與三次元的圖片混用的結果肯定很獵奇:

川普換成動畫少女臉


如果想要對現成圖片執行換臉的話,就要切換到圖生圖的介面,並且上傳一張原始圖片,在這裡以拜登的照片為例:


接著將重繪權重(Denoising strength)調整至零,這是為了維持原圖檔內容,避免AI隨意亂畫:


再往下的操作也是差不多,啟用ReActor並上傳一張川普的臉做為參考圖:


接著直接執行繪圖,此時便可把拜登的臉換成川普的臉:

3.多人換臉:

上面的例子都是最簡單的一對一換臉,如果是多臉互換的情境下,就不得不調整一些參數了,在這個階段我同樣以文生圖中的AI繪圖換臉為例。

我先產出一張有三張臉的原始圖片並將Seed固定:

接著同樣啟用ReActor並上傳一張有兩張臉的參考圖片:

這時要關注的是Source Image與Target Image這兩個參數。

Source Image要填入想使用的參考圖臉部號碼,臉部號碼是左邊起算,並且起始號碼是0號,以上述例子來說,左邊的第一張拜登臉就是0號,而第二張川普臉就是1號,依此類推。

因此我在Source Image填入了0,1代表0號臉拜登與1號臉川普我都想用來置換長相。

而Target Image代表要被置換的目標圖片臉部編號,編號方式同上,這裡我填入2,1代表目標圖片的2號臉(=第三張臉)要替換成0號長相(拜登),而目標圖片的1號臉(=第二張臉)要替換成1號長相(川普)。

兩列參數的數組是要排在一起看會比較好懂:

0,1 -->長相參考來源號碼

2,1 -->要被置換的臉部號碼

則置換結果如下:

這邊的數組設定可能有點複雜也有點難懂,如果是更多人的長相要交叉互換的情境就會更複雜,我覺得多臉交叉互換的使用情境是比較少見的,如果真的無法理解其實也就算了。

結語:

換臉這東西也不算新奇了,只是仍然一直在推陳出新,例如我前面提到的deepFake已經是遠在chatGPT與AI繪圖出現之前的產物了,而目前也有許多手機APP可以簡單的幫你把自己的長相換到一些電影片段或是明星的跳舞影片之中,這些都是換臉技術的應用。

當然包括ReActor在內的很多工具是被用來做些色色的事,但技術本身是單純的,至於被拿來怎麼用就是人的問題了,不給人家買木炭烤肉並無法真正的防止自殺。

ReActor算是個有趣小玩具,簡略的介紹給大家玩玩。

在這個時間點,換臉已經不是熱門話題,大家可能都在等著看OpenAI的Sora的AI生成影片能夠到達什麼境界,是否又能帶來新的AI革命。








分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.