使用DeepFaceLab製作Deepfake

2021-09-27 09:10:08 字數 3484 閱讀 9067

條件建議:

deepfacelab有以下三種型別:安裝cuda9.2

準備材料

僅提取臉部

刪除錯誤檢測的影象

了解訓練

匯出面部移植影象**換)

將匯出的影象製作成電影

1.準備材料

data_src –「移植臉」

data_dst –「目標臉」

如上例所示,將準備好的材料重新命名為data_src和data_dst,並將它們放置在工作空間資料夾中。

每個匯出的影象都將匯出到工作空間資料夾中的「 data_src」和「 data_dst」資料夾。

3.僅提取臉部

從上一過程中匯出的影象中僅提取面部部分,並將其匯出為影象。

執行 「 4)data_src提取面部s3fd最佳gpu.bat 」,僅從data_src影象中提取面部。

執行 「 5)data_dst提取人臉s3fd best gpu.bat 」以僅從data_dst影象中提取人臉部分。

匯出的影象將匯出到「 data_src」和「 data_dst」資料夾中名為「 aligned」的資料夾中。

4.刪除錯誤檢測的影象

儘管在前面的過程中僅提取了面部部分,但不幸的是始終存在一些錯誤檢測。如果在學習過程中輸入了這些內容,則會對它們產生不利影響,應刪除它們。通常,將諸如「耳朵」,「處於愚蠢狀態的手」或「家具圖案」之類的意外面孔識別為面孔。

當執行「 4.2.2)按相似的histogram.bat排序的data_src」 時,data_src資料夾中對齊的影象按直方圖排序。我們不會在這裡解釋直方圖,但是這樣做會按照相似的影象進行排序,從而更容易找到假陽性影象。排序後,開啟資料夾並刪除錯誤檢測的影象。

類似地,對data_dst執行「 5.2)通過類似的直方圖對data_dst進行排序」,並在排序後刪除錯誤檢測到的面部影象。

5.訓練

這是基本的機器學習。使用「 6)train h64.bat」或「 6)train h128.bat」進行學習。

6)train h64.bat

以64 x 64畫素學習。這對於面部朝前的場景就足夠了。建議使用vram2gb或更高版本。

6)train h128.bat

以128 x 128畫素學習。自然地,這比「 6)train h64.bat」的質量更高,因此它的質量更高,但學習時間更長。這似乎更適合比西方人寬容的亞洲人。建議使用ram3gb或更高版本。

當執行「 6)train h64.bat」或「 6)train h128.bat」時,將首先詢問以下選項:

model first run. enter model options as default for each run.

write preview history? (y/n ?:help skip:n) :

如果設定為y,將儲存預覽螢幕,但由於不必要,它始終設定為n。

target iteration (skip:unlimited/default) :

目標迭代(跳過:無限制/預設): 由於它是無限學習的,請按enter跳過

batch_size (?:help skip:0) :

批次大小越大,模型的準確性越高,但是學習速度越慢。如果批次大小太大,則train可能無法啟動。在我的環境(gtx 1080 ti)中,當批次大小為64時,train無法啟動。通常,批量大小為32。

feed faces to network sorted by yaw? (y/n ?:help skip:n) :

與data_dst相比,data_src影象很少時,設定y似乎是一件好事。通常是n。

flip faces randomly? (y/n ?:help skip:y) :

通過反轉垂直軸上的影象,我們將嘗試從相反側看時將其覆蓋,但是由於人臉不是完全對稱的,因此通常應將其設定為n。如果僅從左側或右側檢視材料,這可能會很有用。

use lightweight autoencoder(y/n ?:help skip:n) :

使用輕型編碼器的選項。使用較少的vram,但會降低質量。如果vram為4gb或更小,則必須選擇y。如果vram大於4gb,則設定為n。

use pixel loss? (y/n, ?:help skip: n/default ) : ?

不建議開啟畫素損失,因為這會增加模型損壞的風險。通常設定為n。

開始訓練

選擇以上選項後,將出現「tain預覽」視窗,tain將開始。選擇「訓練預覽」視窗時,可以執行以下操作。

p鍵 –重新整理預覽並重新整理預覽。即使您不按任何按鈕,預覽也會每15分鐘自動更新一次。

s鍵 –按s鍵儲存tain。即使您不按任何按鈕,它也會每15分鐘自動儲存一次。

enter鍵 –儲存tain並退出。如果要稍後重新啟動train,請執行「 6)train h64.bat」或「 6)train h128.bat」,train將自動從上次儲存的位置重新啟動。

根據機器的規格和材料,大約需要幾個小時到幾十個小時。

6.匯出面部移植影象**換)轉換時的選項

choose mode: (1) overlay, (2) hist match, (3) hist match bw, (4) seamless, (5) raw. default – 4 :

根據模式,有以下差異。請閱讀原始頁面以獲取詳細資訊。

這是一種轉換模式,(1)我認為疊加將以最舒適的感覺完成。輸入1,然後按enter。

mask mode: (1) learned, (2) dst . default – 1 :

通常(1)學到沒有問題。輸入1,然後按enter。

choose erode mask modifier [-200…200] (skip:0):

通常0是可以的,因此請按enter跳過。

choose blur mask modifier [-200…200] (skip:0) :

移植面部時是邊界的模糊,但是即使模糊較弱或模糊太強也很奇怪,因此通常中間的0很好,因此請按enter跳過。

choose output face scale modifier [-50…50] (skip:0) :

您可以在移植面部時調整尺寸。通常,0是可以的,因此請按enter跳過。顯然,如果data_src和data_dst的表面尺寸不同,則可能需要對其進行調整。

degrade color power of final image [0…100] (skip:0) :

增加值會增加移植後臉部的鮮豔度。但是,灰度基本上會變差,因此0通常更好。使用enter跳過。

選擇選項後,將開始匯出將面部移植到data_dst的影象。在「 data_dst」資料夾中自動建立影象,並建立「合併」資料夾。

最後

現在,您可以使用deepfacelab製作電影。

猜拳遊戲的製作 使用if製作

分析 要讓電腦出拳 要讓玩家出拳 玩家出拳讓玩家輸入 電腦出拳應該隨機輸入 約定 0 代表剪刀 1 代表石頭 2 布 電腦也是 0 代表剪刀 1 代表石頭 2 布 等於就是要讓玩家輸入0或者1或者2 電腦要隨機出0或者1或者2 所以,我們需要用到1個隨機數的函式 怎麼用?1.匯入標頭檔案 inclu...

使用isolinux製作liveUSB

在作業系統啟動之前,需要由引導程式將作業系統載入到記憶體,isolinux就是引導程式的一種,和他有相同作用的是lilo和grub。整個系統的載入和初始化過程,大致如下圖 syslinux isolinux 是專門用來引導可移動介質的輕量級引導程式,因為這樣的介質通常不會固定只針對一種硬體。我們主要...

使用Packer製作vagrant box

編輯配置檔案,有乙個很好的配置資源可以使用,下來,然後自定義centos71.json 找到這一段 vboxmanage modifyvm memory 2048 記憶體大小,預設是512,太小了,建議1024 2048 modifyvm cpus 2 配置允許使用的cpu核數 配置iso引數 is...