Roop升级版FaceFusion换脸AI技术使用以及部署教程

前些日子比较火的换脸AI技术是Roop,但是Roop已经停止更新了,好像是因为团队成员用这个东西搞颜色吧。不知道为什么又搞了个FaceFusion,以后的更新也会围绕着FaceFusion啦。

不知道是不是心理作用,总感觉FaceFusion比Roop更加好用。

使用该软件,您可以将一段视频中的人脸替换成您选择的人脸,只需要一张所需人脸的图像,无需数据集和训练。

免责声明

在使用他人面部图像前,用户必须得到相关人士的同意,并在发布内容时不得隐瞒它是深度伪造。不对最终用户的恶意行为负责。

为了防止滥用,它内置了一个检查程序,防止该程序用于不当媒体。

项目仓库

前置条件

GitCondaFFMpeg

Windows系统安装Git请参阅此文章:

Windows系统安装Conda请参阅此文章:

Windows系统安装FFMpeg请参阅此文章:

Visual Studio

在安装之前我们还需要下载Visual Studio

Visual Studio 2022通过 Windows 平台开发安装

网络问题

在安装过程中,你可能即便开启了魔法上网也无法下载一些编程依赖库,关于魔法上网的相关配置问题不方便在站内讲解,请前往查看【魔法上网】的教程内容。

安装教程

Win键+R键
facefusionopenai.wikiD:\openai.wiki
D盘openai.wiki
if not exist D:\openai.wiki mkdir D:\openai.wiki
openai.wiki\facefusion
cd /d D:\openai.wiki
openai.wiki
git clone https://github.com/facefusion/facefusion.git
D:\openai.wikiRoop升级版FaceFusion换脸AI技术使用以及部署教程

环境部署

在CMD中执行如下命令,强制切换至facefusion的项目目录。

cd /d D:\openai.wiki\facefusion

在CMD中执行下面的命令行,创建Conda虚拟环境至该项目的目录中,方便日后重装系统也能够正常使用,无需重新部署环境。

conda create -y -p D:\openai.wiki\facefusion\ENV python=3.10

初始化Conda环境,避免后续可能报错。

conda init cmd.exe

激活已创建的Conda环境,这样我们可以将我们后续所需要的所有环境依赖都安装至此环境下。

conda activate D:\openai.wiki\facefusion\ENV

执行如下命令,安装访项目的相关依赖库。

pip install -r requirements.txt

图形加速

其实目前为止,你已经可以正常运行了,但速度会非常慢。如果您有一张好的GPU,你可以按照此处的教程安装GPU加速。

以下是针对各显卡安装图形加速的方法,请根据自身系统进行选择。

在你确认自己的显卡型号之后,在CMD中按顺序执行如下代码即可。

python run.pypython run.py --execution-providers cuda

英伟达

pip uninstall onnxruntime onnxruntime-gpupip install onnxruntime-gpu==1.15.1python run.py --execution-providers cuda

AMD

pip uninstall onnxruntime onnxruntime-directmlpip install onnxruntime-directml==1.15.1python run.py --execution-providers dml

苹果电脑|M芯片

pip uninstall onnxruntime onnxruntime-siliconpip install onnxruntime-silicon==1.13.1python run.py --execution-providers coreml

苹果电脑|非M芯片

pip uninstall onnxruntime onnxruntime-coremlpip install onnxruntime-coreml==1.13.1python run.py --execution-providers coreml

英特尔

pip uninstall onnxruntime onnxruntime-openvinopip install onnxruntime-openvino==1.15.0python run.py --execution-providers openvino

模型下载

项目模型

关于此项目的模型,本站已为您下载好,并提供了国内免会员的网盘下载地址。

.\facefusion\.assets\models

安全模型

该项目作者添加了涩涩检测功能,所以需要下载对应的模型。

%USERPROFILE%
start %USERPROFILE%
.insightface.opennsfw2

运行方式

在以后每次运行该项目时,只需要先激活Conda环境,然后运行启动文件即可。

facefusion
cd /d D:\openai.wiki\facefusion

激活已创建的Conda环境,这样我们可以将我们后续所需要的所有环境依赖都安装至此环境下。

conda activate D:\openai.wiki\facefusion\ENV

执行如下代码,运行facefusion的UI界面。

python run.py

使用教程

python run.py
(D:\openai.wiki\facefusion\ENV) D:\openai.wiki\facefusion>python run.py
Running on local URL:  http://127.0.0.1:7860

To create a public link, set `share=True` in `launch()`.
http://127.0.0.1:7860

以下是关于界面的各功能描述:

face_swapperface_enhancerframe_enhancertensorrtcudacpu81jpg100
  • FACE ANALYSER DIRECTION(人脸分析:方向)
  • FACE ANALYSER AGE(人脸分析:年龄)
  • FACE ANALYSER GENDER(人脸分析:性别)
SOURCE人物图片
TARGET被替换面部的视频
START

命令行参数

以下是额外的命令行参数,一般不需要调整,忽略此部分内容即可。

python run.py [选项]

-h, --help                                                                                       显示此帮助信息并退出
-s SOURCE_PATH, --source SOURCE_PATH                                                             选择一个源图片
-t TARGET_PATH, --target TARGET_PATH                                                             选择一个目标图片或视频
-o OUTPUT_PATH, --output OUTPUT_PATH                                                             指定输出文件或目录
--frame-processors FRAME_PROCESSORS [FRAME_PROCESSORS ...]                                       从可用的帧处理器中选择 (选择范围: face_enhancer, face_swapper, frame_enhancer, ...)
--ui-layouts UI_LAYOUTS [UI_LAYOUTS ...]                                                         从可用的UI布局中选择 (选择范围: benchmark, default, ...)
--keep-fps                                                                                       保持目标的帧速率 (fps)
--keep-temp                                                                                      处理后保留临时帧
--skip-audio                                                                                     从目标中删除音频
--face-recognition {reference,many}                                                              指定面部识别的方法
--face-analyser-direction {left-right,right-left,top-bottom,bottom-top,small-large,large-small}  指定用于面部分析的方向
--face-analyser-age {child,teen,adult,senior}                                                    指定用于面部分析的年龄
--face-analyser-gender {male,female}                                                             指定用于面部分析的性别
--reference-face-position REFERENCE_FACE_POSITION                                                指定参考脸的位置
--reference-face-distance REFERENCE_FACE_DISTANCE                                                指定参考脸与目标脸之间的距离
--reference-frame-number REFERENCE_FRAME_NUMBER                                                  指定参考帧的数量
--trim-frame-start TRIM_FRAME_START                                                              指定提取的起始帧
--trim-frame-end TRIM_FRAME_END                                                                  指定提取的结束帧
--temp-frame-format {jpg,png}                                                                    指定用于帧提取的图像格式
--temp-frame-quality [0-100]                                                                     指定用于帧提取的图像质量
--output-video-encoder {libx264,libx265,libvpx-vp9,h264_nvenc,hevc_nvenc}                        指定用于输出视频的编码器
--output-video-quality [0-100]                                                                   指定输出视频的质量
--max-memory MAX_MEMORY                                                                          指定要使用的最大RAM数量 (单位: gb)
--execution-providers {cpu} [{cpu} ...]                                                          从可用的执行提供者中选择 (选择范围: cpu, ...)
--execution-thread-count EXECUTION_THREAD_COUNT                                                  指定执行线程的数量
--execution-queue-count EXECUTION_QUEUE_COUNT                                                    指定执行查询的数量
-v, --version                                                                                    显示程序的版本号并退出

效果示例

换脸的测试过程中,站长尝试找了一些女网红的素材,好像现在的女网红长的都差不多,换脸之后也看不出来什么效果,于是……对不起了Shy哥,就用站长最喜欢的LOL选手吧。

原视频
换脸视频

总结

我们可以看到换脸之后的效果,非常不错,如果你希望换脸的效果更好一些,那么所提供的图片就应该更清晰一些,不然会显得有些糊。

找了半天也没找到Shy哥高清的图片,于是使用SD高清放大了一下。