最近roop这个视频换脸项目出圈了,虽然是一个业余兴趣项目,但星星瞬间冲到 10k+
这个库使用了 deepinsight/insightface 项目进行人脸识别和对齐,这能让连续的视频帧换脸拼接后的效果看起来也流畅丝滑。
安装体验下,踩了些坑,但看最后的效果,这时间花得还是非常值。
不仅可以本地部署,而且很方便程序调用,完全可以成为AI工作流的一个环节。
环境安装
安装 ffmpeg
ffmpeg 如果用pip install,则没有x264相关的编码功能,我们通过下载文件安装。
https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-full.7z
ffmpeg安装到C盘,则需要将路径添加环境变量。例如:
D:ffmpegbinffmpeg.exe
更简单的是,解压后,ffmpeg.exe 丢到当前环境的 python 目录内。
下载模型
从这里,下载模型文件 inswapper_128.onnx 存放到 roop 目录下:
1drv.ms/u/s!AsHA3Xbnj6uAgxhb_tmQ7egHACOR?e=CPoThO
D:AIWorkFlowroopinswapper_128.onnx
准备文件
在 roop 目录内建立 testdata 目录,存放带目标人脸的图片,以及要换脸的视频。这里随手用stable diffusion生成了一个老头,以及在短视频app上下载了一段视频:
目标头像: D:AIWorkFlowrooptestdatahead.png
源视频: D:AIWorkFlowrooptestdatasrc.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视频提清
本站资源部分来自网友投稿,如有侵犯你的权益请联系管理员或给邮箱发送邮件PubwinSoft@foxmail.com 我们会第一时间进行审核删除。
站内资源为网友个人学习或测试研究使用,未经原版权作者许可,禁止用于任何商业途径!请在下载24小时内删除!
如果遇到评论可下载的文章,评论后刷新页面点击“对应的蓝字按钮”即可跳转到下载页面!
本站资源少部分采用7z压缩,为防止有人压缩软件不支持7z格式,7z解压,建议下载7-zip,zip、rar解压,建议下载WinRAR。
温馨提示:本站部分付费下载资源收取的费用为资源收集整理费用,并非资源费用,不对下载的资源提供任何技术支持及售后服务。