AI 文摘

AI视频换脸,又有大胆的想法了?





作者: AI工作流  来源: [AI工作流](https://mp.weixin.qq.com/s/0yROu34CZ2Gl0nt5mbfamQ)

最近roop这个视频换脸项目出圈了,虽然是一个业余兴趣项目,但星星瞬间冲到 10k+

这个库使用了 deepinsight/insightface 项目进行人脸识别和对齐,这能让连续的视频帧换脸拼接后的效果看起来也流畅丝滑。

安装体验下,踩了些坑,但看最后的效果,这时间花得还是非常值。

不仅可以本地部署,而且很方便程序调用,完全可以成为AI工作流的一个环节。

环境安装

conda create -n roop python=3.9  
activate roop  
  
cd d:\aiworkflow  
git clone https://github.com/s0md3v/roop  
cd roop  
  
pip install -r requirements.txt  

安装 ffmpeg

ffmpeg 如果用pip install,则没有x264相关的编码功能,我们通过下载文件安装。

https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-full.7z  

ffmpeg安装到C盘,则需要将路径添加环境变量。例如:

D:\ffmpeg\bin\ffmpeg.exe  

更简单的是,解压后,ffmpeg.exe 丢到当前环境的 python 目录内。

下载模型

从这里,下载模型文件 inswapper_128.onnx 存放到 roop 目录下:

1drv.ms/u/s!AsHA3Xbnj6uAgxhb_tmQ7egHACOR?e=CPoThO  

D:\AIWorkFlow\roop\inswapper_128.onnx

准备文件

在 roop 目录内建立 testdata 目录,存放带目标人脸的图片,以及要换脸的视频。这里随手用stable diffusion生成了一个老头,以及在短视频app上下载了一段视频:

目标头像: D:\AIWorkFlow\roop\testdata\head.png

源视频: D:\AIWorkFlow\roop\testdata\src.mp4

推理

可以选用CPU或GPU进行推理,如果是用GUI启动,默认会用CPU方式,比较慢。

用GUI方式(默认CPU)

python run.py  

也可以用用命令行方式,使用 –gpu-vendor 参数指定GPU的厂商,那么就会用GPU进行推理:

python run.py -f ./testdata/head.png -t ./testdata/src.mp4 -o ./testdata/dst.mp4 --all-faces --gpu-vendor nvidia  

截取一小段看看效果

即便是舞蹈视频,动作很快,但换脸后还是非常流畅,每一帧都很精准!

我猜大家又有大胆的想法了。。。

幸好的是,这个项目引入了opennsfw2这个库做了限制。

目前roop变脸后的视频质量一般,有需要的话,建议用GFPGAN进行提清处理,效果非常好。

高清数字人最后一步:GFPGAN视频提清

可关注我们的公众号:每天AI新工具