随着AI技术的普及,AI相关项目越来越受关注和追捧,其中AI换脸无疑是最受欢迎的应用之一。我也看到了很多优秀的项目和工具推荐,今天要介绍的是Roop这个项目,话不多说先上我这边替换的效果。
整体效果还是不错的,主要是一键更换,不用做训练。
一、Roop简介
Roop是一个由Github用户s0md3v开发和维护的开源一键式人脸替换工具,目前最新稳定版本为1.3.2。
主要功能和特点
1、支持单张、多张图片以及视频的人脸替换处理。
2、配备简单易用的图形界面,一键式操作即可完成替换。
3、开源且免费。
4、支持Windows、Mac、Linux等多个操作系统。
5、硬件要求低,支持CPU或NVIDIA显卡运行,最低内存要求16G。
6、可离线运行。
……
项目地址: github.com/s0md3v/roop
二、Roop安装环境准备
2.1 安装Python
Roop是基于Python实现的,因此无论使用什么操作系统,都需要先安装Python环境。建议安装3.10.x及以上版本。这里不详细介绍安装步骤,你可以直接前往官网下载对应系统的版本进行安装。记得在安装过程中将Python添加到系统环境变量中。如有任何问题,欢迎留言或私信咨询~
Python下载地址:www.python.org/downloads/
目前我安装的版本是3.10.11
2.2 安装Git
我们需要使用git来获取Roop代码,这样在有新版本更新时,可以通过命令方便地拉取最新代码。
关于Git的安装,这里不做详细介绍。你只需要从Git官方网站下载软件并安装,保持所有配置选项为默认值安装即可。如果安装后在命令窗口找不到git命令,请检查Git是否已添加到系统环境变量中。
Git下载地址:git-scm.com/downloads
2.3 安装FFmpeg
安装Roop前需要安装FFmpeg(建议版本6.0及以上)。FFmpeg有多种安装方式,你可以选择最适合自己的方式安装。无论选择哪种安装方式,都必须将FFmpeg添加到系统环境变量中。
FFmpeg下载地址:ffmpeg.org/download.ht…
2.4 安装Visual studio 2022(Window用户)
如果你是Linux/Mac用户,这一步可跳过。 通过安装Visual Studio 2022来配置C++环境,这样可以确保后续项目顺利编译,避免遇到问题。如果你已经安装了C++环境,但在编译过程中出现C++相关错误,建议先卸载,然后按照本步骤重新安装。
visual studio 2022下载地址:visualstudio.microsoft.com/zh-hans/dow…
下载安装后,启动visual studio 2022,在顶部菜单栏中找到工具 → 获取工具与功能,在打开窗口中找到使用C++的桌面开发,勾选后在右侧根据自己的环境安装对应的SDK版本。
安装完成后,建议重启一次电脑。
到这里基本环境就已经配置好了,我们就可以使用CPU来运行roop了。如果你想用显卡进行GPU加速,就还需要安装CUDA11.8.0.
2.5 CUDA安装
如果你是没有英伟达显卡4G以上,或者不需要进行GPU加速的,这一步可跳过。
cuda11.8下载地址:developer.nvidia.com/cuda-11-8-0…
三、Roop安装
整个Roop的安装我们可以完整的按照项目给出的教程一步一步进行。官方文档:github.com/s0md3v/roop…
3.1 下载Roop代码
这里推荐使用git命令直接clone下源码进行编译安装,使用命令:
git clone https://github.com/s0md3v/roop
3.2 创建并激活虚拟环境
推荐通过虚拟环境进行项目编译,安装依赖包,使用虚拟环境的优势:
- 可以避免与其他项目的依赖包冲突
- 如果依赖包安装失败,只需删除虚拟环境并重新创建,即可重新开始安装
创建并激活虚拟环境命令:
// 在项目根目录执行
// 创建虚拟环境
python -m venv venv
// 激活虚拟环境
call venv\Scripts\active.bat
3.3 安装依赖包
安装依赖包,由于项目已经将依赖信息都记录在了requirements.txt文件,我们直接安装就行,具体命令如下:
pip install -r requirements.txt
需要注意的是,这一步经常有人因为各种原因报错,需要根据错误信息针对性解决。具体问题如何解决这里不做详细说明,有问题可以留言、评论私我交流。
小提示:
roop的requirements.txt默认的数据源是pypi.org/simple的,国内一般访问比较慢,为了提高依赖包安装速度,可以切换清华、阿里等源,上述截图中我用的就是阿里的。
3.4 运行Roop
如果仅仅使用CPU进行图片或者视频处理,可以使用以下命令:
python run.py
如果要使用GPU进行图片或者视频处理,可以使用以下命令:
python run.py --execution-provider cuda
如果要提高更换后的图片或者视频清晰度,可以使用以下命令:
//使用CPU
python run.py --frame-processor face_swapper face_enhancer
// 使用GPU
python run.py --execution-provider cuda --frame-processor face_swapper face_enhancer
如果处理后的视频出现人脸闪烁情况,可以使用以下命令优化:
//使用CPU,其中1.5可以根据实际情况调节,默认0.85
python run.py --frame-processor face_swapper face_enhancer --similar-face-distance 1.5
// 使用GPU,其中1.5可以根据实际情况调节,默认0.85
python run.py --execution-provider cuda --frame-processor face_swapper face_enhancer --similar-face-distance 1.5
如果视频中存在多张人脸,可以根据临时文件夹中的图片中的人脸,进行指定人脸替换。使用命令如下:
//使用CPU,2代表人脸在图片中从右往左数第几张脸的位置,从0开始数,10代表临时文件中图片的编号名称
python run.py --reference-face-position 2 --reference-frame-number 10
// 使用GPU,2代表人脸在图片中从右往左数第几张脸的位置,从0开始数,10代表临时文件中图片的编号名称
python run.py --execution-provider cuda --reference-face-position 2 --reference-frame-number 10
四、声明
相关技术与工具,仅用于学习,请合理正确使用。如需使用他人面部信息时,请正确征得相关人士的同意,本账号不对恶意使用行为负责。 同时为了防止恶意使用,程序中也存在一定的检查功能,防止该程序用于不当媒体。
五、最后
欢迎大家一起来交流更多AI玩法,如果你有感兴趣的方向,也欢迎留言、私信交流学习~