我使用的系统是 Ubuntu 20.04
1、python 环境安装
2、下载 FaceFusion 上传服务器
3、创建 python 虚拟环境
4、下载 FaceFusion 依赖(这里的命令执行时间会很长,够你睡午觉了)
5、运行 FaceFusion
6、开放端口或nginx代理转发实现外部访问 FaceFusion(首选端口访问)
因为内心可爱心地善良,一方面没搞过这玩意,这几天也在折腾 huggingface 的一些玩意,然后也想要有兴趣折腾一下 AI 换脸,顺便还帮助了别人积攒了功德
https://player.bilibili.com/player.html?bvid=BV1mN411v78C&autoplay=0
参考文章:https://blog.csdn.net/weixin_46584887/article/details/120701003(我是跟着这篇文章来安装的哦)
python 3.10.6 下载地址:https://www.python.org/ftp/python/3.10.6/
考虑到网络问题,提供一个百度网盘下载渠道:https://pan.baidu.com/s/1fYRf-cHbj5lHR-1HQcx0Fg?pwd=29wl
上传服务器,解压压缩包,我上传到了 /www/wwwroot 目录下
进入解压目录下
设置编译参数:./configure --prefix=/usr/local/python3.10
实施编译:make
编译完成后安装:sudo make install
上面这两个命令执行时间会比较长,会有大量输出,要等待几分钟是正常的,最后输出以下内容表示安装成功
这一步即让我们的 python 命令能够链接到我们新安装的 Python3.10.0 的执行程序而不是更低的版本,我们首先进入到 /usr/bin 目录下:
cd /usr/bin
sudo rm ./python # 删除原有的软连接文件
sudo rm ./pip
sudo rm ./pip3
sudo ln -s /usr/local/python3.10/bin/python3.10 /usr/bin/python
sudo ln -s /usr/local/python3.10/bin/pip3.10 /usr/bin/pip
sudo ln -s /usr/local/python3.10/bin/pip3.10 /usr/bin/pip3
python -V
Last login: Thu Oct 19 15:44:05 2023 from 127.0.0.1
ubuntu@VM-0-6-ubuntu:~$ cd /usr/bin
ubuntu@VM-0-6-ubuntu:/usr/bin$ ll | grep python
lrwxrwxrwx 1 root root 35 Oct 19 15:33 btpython -> /www/server/panel/pyenv/bin/python3
lrwxrwxrwx 1 root root 60 Feb 18 2020 depythontex -> ../share/texlive/texmf-dist/scripts/pythontex/depythontex.py*
-rwxr-xr-x 1 root root 1056 Apr 16 2018 dh_python2*
-rwxr-xr-x 1 root root 2336 Jun 1 2021 dh_python3-ply*
lrwxrwxrwx 1 root root 23 Jul 1 2022 pdb2.7 -> ../lib/python2.7/pdb.py*
lrwxrwxrwx 1 root root 23 Mar 13 2023 pdb3.8 -> ../lib/python3.8/pdb.py*
lrwxrwxrwx 1 root root 31 Mar 13 2020 py3versions -> ../share/python3/py3versions.py*
lrwxrwxrwx 1 root root 18 Jul 23 2020 python -> /usr/bin/python3.8*
lrwxrwxrwx 1 root root 9 Apr 16 2018 python2 -> python2.7*
-rwxr-xr-x 1 root root 3662032 Jul 1 2022 python2.7*
lrwxrwxrwx 1 root root 9 Mar 13 2020 python3 -> python3.8*
-rwxr-xr-x 1 root root 5494552 Mar 13 2023 python3.8*
-rwxr-xr-x 1 root root 152 Apr 10 2020 python3-pbr*
-rwxr-xr-x 1 root root 384 Dec 17 2019 python3-unit2*
lrwxrwxrwx 1 root root 9 Apr 16 2018 python_bk -> python2.7*
lrwxrwxrwx 1 root root 58 Feb 18 2020 pythontex -> ../share/texlive/texmf-dist/scripts/pythontex/pythontex.py*
lrwxrwxrwx 1 root root 29 Apr 16 2018 pyversions -> ../share/python/pyversions.py*
ubuntu@VM-0-6-ubuntu:/usr/bin$ sudo rm ./python # 删除原有的软连接文件
ubuntu@VM-0-6-ubuntu:/usr/bin$ sudo rm ./pip
ubuntu@VM-0-6-ubuntu:/usr/bin$ sudo rm ./pip3
ubuntu@VM-0-6-ubuntu:/usr/bin$ sudo ln -s /usr/local/python3.10/bin/python3.10 /usr/bin/python
ubuntu@VM-0-6-ubuntu:/usr/bin$ sudo ln -s /usr/local/python3.10/bin/pip3.10 /usr/bin/pip
ubuntu@VM-0-6-ubuntu:/usr/bin$ sudo ln -s /usr/local/python3.10/bin/pip3.10 /usr/bin/pip3
ubuntu@VM-0-6-ubuntu:/usr/bin$ python -V
Python 3.10.6
大功告成,安装成功!
Github:https://github.com/facefusion/facefusion
百度网盘快速下载渠道:https://pan.baidu.com/s/1X6le_FMktS9Ra0aC9QYeWA?pwd=gpqf
下载完成后上传到服务器合适目录下解压(我上传到了 /www/wwwroot 下)
python -m venv venv
source venv/bin/activate # 激活虚拟环境
sudo apt-get update
sudo apt-get install ffmpeg
pip install --upgrade pip
pip install -r requirements.txt # 这里安装了很久,我去睡了一觉
python install.py --torch cuda --onnxruntime cuda
python run.py --execution-providers cuda # 断开 ssh 程序中断
python run.py --execution-providers cuda & # 断开 ssh 后程序保持运行
python run.py --execution-providers cuda > output.log 2>&1 &
# 到了这里你可能与我一样遇到了一个报错,接着往下看,会解决的
Frame processor frame_enhancer could not be loaded
Frame processor frame_enhancer could not be loaded
怎么解决呢?
1、找到名为 face_enhancer.py 的文件,该文件位于 facefusion\processors\frame\modules\目录中
2、将 face_enhancer.py 文件移动到 facefusion 目录中,也就是说,它不再位于 modules 子目录内。
是的,只要完成以上两步,然后重新运行一下就可以了。
我分别去 google 和 edge 搜索了,但是并没有直接的答案,在一处回答中有网友推荐加入 discord 来请求解答问题,然后我就进去了(作者有在 github 文档中放加入 discord 的链接:https://github.com/facefusion/facefusion)(这段时间我还折腾其他方式,重装环境、系统等等都没成功,不过也没折腾那么多,更多时间实在等待)
刚开始在频道各个模块搜索,不过没有找到合适的解决方案
最后选择直接在 linux 模块询问,里面的老外也挺好的,看到问题就会回复,最后就是在大佬的帮助下解决。
怎么交流的,会英语?不会,通过网易有道翻译来交流的,hhhhhhh
有两种方式:
1、打开端口 7860,直接【ip:端口】来访问**(建议直接使用这种方式,省得多配置其他东西)**
2、域名解析,配置 nginx 转发来访问**(我使用这种)**
为什么使用方式二呢?
因为第一种方式我没有折腾成功就懒得折腾了,我在腾讯云打开了端口,在宝塔也打开了端口但就是没有效果,所以就直接做了域名解析 nginx 代理转发来访问。
然后我就遇到了新问题,连接超时,自己修改 nginx 配置,但是没有成功…有解决则会个问题的老哥麻烦在评论区分享一下~