roop 單張圖片一鍵換臉
工程簡(jiǎn)介
該工程實(shí)現(xiàn)的功能為:提供單張?jiān)慈四槇D像,可實(shí)現(xiàn)一鍵替換目標(biāo)視頻中的人臉,輸出替換人臉后的視頻,替換前后效果見上述動(dòng)圖。
該工程基于tkinter庫設(shè)計(jì)了簡(jiǎn)潔的GUI界面,用以選取源人臉圖像和目標(biāo)視頻,操作簡(jiǎn)介。
程序的使用有兩種方式:CPU方式和GPU方式。CPU方式環(huán)境安裝簡(jiǎn)單,但運(yùn)行較慢,GPU方式環(huán)境安裝相對(duì)而言較為復(fù)雜,但運(yùn)行速度非常之快。
項(xiàng)目地址:https://github.com/s0md3v/roop
免責(zé)聲明
本文只對(duì)roop工程進(jìn)行介紹,不承擔(dān)任何責(zé)任,請(qǐng)讀者合理合法的使用工程。以下為源工程的免責(zé)聲明:
比這更好的 deepfake 軟件已經(jīng)存在,這只是我為了學(xué)習(xí) AI 而創(chuàng)建的一個(gè)業(yè)余項(xiàng)目。用戶在使用自己的臉之前必須征得相關(guān)人員的同意,并且在網(wǎng)上發(fā)布內(nèi)容時(shí)不得隱瞞這是一個(gè)深度造假的事實(shí)。我不對(duì)最終用戶的惡意行為負(fù)責(zé)。
為了防止誤用,它有一個(gè)內(nèi)置的檢查功能,可以防止程序在不合適的媒體上運(yùn)行。
程序安裝
本文只介紹Windows系統(tǒng)下的程序的安裝與使用,Linux和MacOS用戶請(qǐng)參考源工程。
CPU版本
1.安裝python3.10以上,需要安裝有python的pip工具。建議采用conda創(chuàng)建虛擬環(huán)境進(jìn)行安裝。
2.安裝ffmpeg多媒體處理工具,并設(shè)置環(huán)境變量。
3.安裝Visual Studio(包括桌面開發(fā)C ++),盡可能安裝較為新的版本(本人測(cè)試VS2019可以)。
4. 下載倉庫:https://github.com/s0md3v/roop
,進(jìn)入roop目錄并執(zhí)行命令 pip install -r requirements.txt
安裝所需的依賴庫。(需要能夠訪問github,如果不能訪問可從文末的資源包中免費(fèi)下載)
5. 從以下網(wǎng)站中下載此文件并將其保存在roop目錄中。如果文件名不是inswapper_128.onnx
,請(qǐng)將其重命名。鏡像1 鏡像2 鏡像3 鏡像4
(訪問上述網(wǎng)站需要魔法,也可在我提供的資源包中獲取inswapper_128.onnx
。獲取鏈接見文末,免費(fèi)獲取。)
GPU版本
本文僅針對(duì)Nvidia顯卡的用戶,A卡請(qǐng)參考源工程。
1.安裝CPU版本所需要的工具環(huán)境(見上一小節(jié))。
2.安裝CUDA和對(duì)應(yīng)的CUDNN。主要CUDA和CUDNN一定要匹配。
3.安裝GPU版本的pytorch和onnxruntime-gpu。注意pytorch的安裝需要和CUDA版本對(duì)應(yīng)。
pip uninstall onnxruntime onnxruntime-gpu
pip install torch==2.0.0+cu118 torchvision==0.15.1+cu118 torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cu118
pip install onnxruntime-gpu
程序運(yùn)行
1.運(yùn)行python程序
CPU版本運(yùn)行:
python run.py
GPU版本運(yùn)行:添加gpu的選項(xiàng)
python run.py --gpu
除了–gpu選項(xiàng),程序還提供了其他的選項(xiàng)。
-h, --help:顯示幫助信息并退出。
-f SOURCE_IMG, --face SOURCE_IMG:指定要替換的人臉圖片的路徑。
-t TARGET_PATH, --target TARGET_PATH:指定要被替換的目標(biāo)圖片或視頻的路徑。
-o OUTPUT_FILE, --output OUTPUT_FILE:指定輸出文件的路徑。
--gpu:使用 GPU 進(jìn)行加速處理。
--keep-fps:保持原始視頻的幀率。
--keep-frames:保留處理過程中生成的幀的目錄。
--max-memory MAX_MEMORY:指定程序可以使用的最大內(nèi)存(以 GB 為單位)。
--max-cores CORES_COUNT:指定程序可以使用的最大 CPU 核心數(shù)。
--all-faces:替換視頻中的所有人臉。
注意:這里建議選擇–max-memory和–max-cores兩個(gè)選項(xiàng),否則可能導(dǎo)致內(nèi)存或者CPU核心爆掉,出現(xiàn)頁面文件太小的error。其中–max-memory代表制定程序可以使用的最大內(nèi)存(以 GB 為單位)我選用的是8,–max-cores代表程序可以使用的最大 CPU 核心數(shù),我采用的是4。
例如:
python run.py --gpu --max-memory 8 --max-cores 4
2.提供GUI界面進(jìn)行操作
點(diǎn)擊Select a face 選擇一張人臉圖像,再點(diǎn)擊Select a target選擇一段視頻,點(diǎn)擊Start選擇合成視頻的輸出文件夾,等待程序運(yùn)行完成,即可獲得換臉后的視頻。
3.踩坑記錄
在程序的運(yùn)行過程中會(huì)自動(dòng)下載一些文件,但是可能會(huì)出現(xiàn)許可證允許、網(wǎng)速太慢等問題導(dǎo)致下載失敗。
如果下載失敗,可從文末的資源包中下載后放到制指定的文件夾中。文章來源:http://www.zghlxwxcb.cn/news/detail-496548.html
-
buffalo_l.zip
:解壓,將*.onnx文件放入C:\Users\你的用戶名.insightface\models\buffalo_l\目錄中,該目錄需要在運(yùn)行程序后自動(dòng)生成。 -
open_nsfw_weights.h5
:放入C:\Users\你的用戶名.opennsfw2\weights\目錄中
資源包
鏈接:https://pan.baidu.com/s/1jtDz5ftf3f_C3_x4u3pCvg
提取碼:45te
資源列表:文章來源地址http://www.zghlxwxcb.cn/news/detail-496548.html
1. roop-main.zip:工程源文件,解壓后進(jìn)行運(yùn)行。
2. inswapper_128.onnx:需要放入roop目錄中。
3. buffalo_l.zip:程序運(yùn)行時(shí)下載的文件,需解壓后放入C:\Users\你的用戶名\.insightface\models\buffalo_l\目錄中
4. open_nsfw_weights.h5:程序運(yùn)行時(shí)下載的文件,放入C:\Users\你的用戶名\.opennsfw2\weights\目錄中
到了這里,關(guān)于單張圖片一鍵換臉(github爆火工程——roop)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!