写在最前面:有些步骤可能需要魔法
号称***“Next generation face swapper and enhancer ”***的Facefusion 上周发布了2.2.1 版本。虽然对显卡要求没有以前的roop 和deepfake 那么夸张,但是GTX1650 跑起来还是比较吃力,所以决定云端部署。
这次依然是选择了老朋友恒源云,如果有动手能力也可以尝试白嫖Colab。
项目地址:https://github.com/facefusion/facefusion
官方文档:https://docs.facefusion.io/
这次创建镜像的时候选择的是PyTorch >2.0.0 >Cuda11.8.0 刚好符合项目需求。
一、文件下载
| |
这一步是为了后续的文件传输,具体可以参考我之前的博客:https://fallen.wang/p/sovits/
然后下载模型文件:此链接由Bilibili用户 @AI百晓生 提供
https://pan.baidu.com/s/1U_vsRu9ILHn9FQ_5iph-YQ?pwd=f86f
*这是为Windows 系统准备的,Linux 只需要下载其中的models.7z即可*
将项目clone 到本地:
| |
如果因为众所周知的原因导致clone 失败,请使用魔法,或者自行搭建异次元通道,当然也可以下载压缩包到本地手动上传:
| |
二、环境部署
Python
该项目使用的是Python3.10 ,而恒源云的Ubuntu 自带的是Python3.8 ,因此需要升级:
| |
FFmpeg
| |
若询问是否继续输入y
cURL
| |
若询问是否继续输入y
虚拟环境
接着创建虚拟环境:
| |
此时却出现了这样一条报错:
Error: Command ‘[’/hy-tmp/venv/bin/python3.10’, ‘-m’, ’ensurepip’, ‘–upgrade’, ‘–default-pip’]’ returned non-zero exit status 1.
此时已经创建了venv ,报错是因为缺少ensurepip 模块,具体原因尚不清楚。
| |
三、安装项目
| |
报错:ModuleNotFoundError: No module named ‘inquirer’
尝试pip 却依然报错。
查阅了官方discord后发现也有人遇到过类似问题,版主给出的解决方法是:
| |
这时却提示缺少pip ,因为刚刚创建虚拟环境的时候留了一个伏笔--without-pip venv。手动装一个:
| |
安装了最新版pip 之后就可以运行 install.py了。
因为显卡是N卡,所以按方向键选择cuda,选择两次。
耐心等待脚本执行完毕。
大致看一眼没有报错便可进入下一步。
| |
当出现Running on local URL: http://127.0.0.1:7860时即为成功启动了。此时服务器端访问127.0.0.1:7860即可,但是毕竟服务器端没有图形化界面,所以可以在launch()函数里设置share=True以获得可供外网访问的链接:不过我个人更喜欢配置一个端口转发。
以xshell为例,连接至实例时需要提供主机、端口、用户和密码,这些都可以在控制台界面找到。
点击登录指令的复制按钮,得到如下信息:
ssh -p 41624 root@i-2.gpushare.com
其中41624 为端口,root 为用户,i-2.gpushare.com 为主机,密码则单独列出。
新建会话,填写主机和端口,然后在侧边选项卡里找到SSH > 隧道> 添加,如图示填写:
其中侦听端口可随意填写。
以ROOT 身份登录,输入密码,成功建立会话后在本地浏览器中输入127.0.0.1:8888即可访问web-ui。

BTW,该项目引用了开源的NSFW 检测,具体代码位于/facefusion/content_analyser.py,可以尝试调整probability值。
