類似D-ID的免費(fèi)開源虛擬數(shù)字人制作工具SadTalker搭建教程及效果演示

大家好,我是佳愷,最近在研究數(shù)字人生成項(xiàng)目,發(fā)現(xiàn)了一個(gè)叫SadTalker的項(xiàng)目,可以用一張圖片生成數(shù)字人口播視頻,這兩天在本地搭建好環(huán)境測(cè)試了下
先看下生成效果,后面再講搭建和使用方法(多視頻預(yù)警)
生成效果演示:
輸入圖片:

生成效果:

因?yàn)閍i驅(qū)動(dòng)會(huì)改變口形眼神,有時(shí)候跟原圖看起來(lái)不太像,但是總體來(lái)說(shuō)SadTalker是開源數(shù)字人項(xiàng)目里效果比較好的了,特別是他的口形,中文還是比較像的,感覺(jué)比D-ID要像一些。
其他方面,比如自然程度,畫質(zhì)比起D-ID要差一些,當(dāng)然更別說(shuō)國(guó)內(nèi)幾家大廠的收費(fèi)數(shù)字人項(xiàng)目了,他們身體,手勢(shì)都有,挺像真人的,所以需要自己判斷下使用場(chǎng)景。
SadTalker的安裝及使用方法:
SadTalker主頁(yè):https://github.com/Winfredy/SadTalker
安裝步驟:
1、安裝NVIDIA cuda11.3
安裝方法看這篇文章:
https://blog.csdn.net/zzjcymbq/article/details/125040993
注意不要這篇文章最后一步 pytorch配置,后面在“項(xiàng)目下載和運(yùn)行環(huán)境配置”會(huì)安裝pytorch

2、安裝 anaconda
由于這個(gè)項(xiàng)目是python開發(fā)的所以需要先安裝一個(gè)方便管理python版本的工具
anaconda安裝方法可以看這篇教程:https://blog.csdn.net/qq_45344586/article/details/124028689
3、項(xiàng)目下載和運(yùn)行環(huán)境配置
(1)下載文件并解壓
因?yàn)間ithub以及相關(guān)模型直接下載會(huì)比較慢,我打包上傳到百度網(wǎng)盤了
項(xiàng)目源碼百度盤:
https://pan.baidu.com/s/1_2qdL8OAFO-RBrtBpicAqQ?pwd=sm6w
從網(wǎng)盤下載后解壓到電腦某個(gè)盤,這里舉例就下載解壓到D盤了
(2)命令行安裝
點(diǎn)擊開始菜單找到前面已經(jīng)安裝好的 Anaconda Prompt

挨著輸入下面的命令,注意“#”后面的文字是注釋,不要在命令行里輸入
每一行命令輸完后按回車,有的步驟安裝過(guò)程比較久需要耐心等待,有幾步安裝過(guò)程中會(huì)詢問(wèn)是否安裝,需要輸入 “y”確認(rèn)

在剛才的命令行工具里輸入命令查看虛擬環(huán)境路徑
把SadTalker源代碼里面的:
gfpgan\weights\GFPGANv1.4.pth?
剪切到虛擬環(huán)境的
Lib\site-packages\gfpgan\weights 目錄下
舉個(gè)例子:
我的虛擬環(huán)境就是截圖紅框路徑,所以需要把gfpgan\weights\GFPGANv1.4.pth?剪切到虛擬環(huán)境的??D:\ProgramData\Anaconda3\envs\sadtalker\Lib\site-packages\gfpgan\weights 這個(gè)目錄下

提前準(zhǔn)備好語(yǔ)音文件和一張圖片,這里假設(shè)你已經(jīng)準(zhǔn)備好語(yǔ)音和圖片了(需要做某個(gè)人物聲音的,可以用相關(guān)的聲音克隆項(xiàng)目克隆聲音,空了我再寫一篇聲音克隆的教程)
把語(yǔ)音文件放到
SadTalker\examples\driven_audio 目錄下
把圖片
放到SadTalker\examples\source_image 目錄下
1、基礎(chǔ)使用命令
然后輸入下面的命令
等待執(zhí)行完成后,就可以在SadTalker\results下面的文件夾里面找到生成的結(jié)果了

效果如下:

首先看下相關(guān)參數(shù):
細(xì)心的同學(xué)可能會(huì)發(fā)現(xiàn)一個(gè)問(wèn)題,上面的基礎(chǔ)使用,用到的圖片是一張半身照,但是生成的視頻是只有頭部了
對(duì),這個(gè)是需要參數(shù)控制的,接下來(lái)我們加上--preprocess full 和 --still這兩個(gè)參數(shù)
--preprocess full?表示完整圖片
--still 可以減少頭部運(yùn)動(dòng)
第一個(gè)參數(shù)好理解,為什么會(huì)有第二個(gè)參數(shù)呢??
原因是,項(xiàng)目在用完整圖片生成視頻的時(shí)候,頭部在動(dòng),但是肩膀會(huì)保持不動(dòng),交接處就會(huì)產(chǎn)生比較扭曲的現(xiàn)象
加上--still后就可以防止交接處扭曲,但是整個(gè)視頻就幾乎只有眼睛和口型的變化了,看起來(lái)沒(méi)那么自然。
其他參數(shù),也可以自己試一試。


整體來(lái)說(shuō),對(duì)質(zhì)量要求不那么高的場(chǎng)景,SadTalker還是能用一用,畢竟是免費(fèi)的。然后參數(shù)的話想要自然就用基礎(chǔ)命令,想要完整圖片生成就加上那兩個(gè)參數(shù)。
最后這個(gè)環(huán)境如果是小白,搭建其實(shí)還是比較麻煩的,我想的是租一臺(tái)云服務(wù)器,然后搭建好webui版的,大家可以直接上傳語(yǔ)音和圖片直接生成,甚至可以把語(yǔ)音克隆功能也搭建好。
最后,對(duì)數(shù)字人制作感興趣的小伙伴可以留言或者加我交流
再來(lái)幾個(gè)演示:



