Linux 部署 AI 换脸
我使用的系统是 Ubuntu 20.04
文章实操主要分为以下几个部分
1、python 环境安装
2、下载 FaceFusion 上传服务器
3、创建 python 虚拟环境
4、下载 FaceFusion 依赖(这里的命令执行时间会很长,够你睡午觉了)
5、运行 FaceFusion
6、开放端口或nginx代理转发实现外部访问 FaceFusion(首选端口访问)
0、我为什么部署 AI 换脸?
因为内心可爱心地善良,一方面没搞过这玩意,这几天也在折腾 huggingface 的一些玩意,然后也想要有兴趣折腾一下 AI 换脸,顺便还帮助了别人积攒了功德
视频教程参考**(该视频里面包含 window 安装和 FaceFusion 使用教程)**
https://player.bilibili.com/player.html?bvid=BV1mN411v78C&autoplay=0
2、ubuntu 安装 python 3.10.6
参考文章: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
大功告成,安装成功!
3、下载项目上传服务器
Github:https://github.com/facefusion/facefusion
百度网盘快速下载渠道:https://pan.baidu.com/s/1X6le_FMktS9Ra0aC9QYeWA?pwd=gpqf
下载完成后上传到服务器合适目录下解压(我上传到了 /www/wwwroot 下)
4、正式开始
创建虚拟环境(也可以不加,建议加)
python -m venv venv
source venv/bin/activate # 激活虚拟环境
启动,跟着步骤执行命令就完事,你说命令无法执行?那就在前面加上 sudo
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
怎么访问到 ui 呢?
有两种方式:
1、打开端口 7860,直接【ip:端口】来访问**(建议直接使用这种方式,省得多配置其他东西)**
2、域名解析,配置 nginx 转发来访问**(我使用这种)**
为什么使用方式二呢?
因为第一种方式我没有折腾成功就懒得折腾了,我在腾讯云打开了端口,在宝塔也打开了端口但就是没有效果,所以就直接做了域名解析 nginx 代理转发来访问。
然后我就遇到了新问题,连接超时,自己修改 nginx 配置,但是没有成功…有解决则会个问题的老哥麻烦在评论区分享一下~