写在最前面:有些步骤可能需要魔法
号称***“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
值。