Linux 部署 AI 换脸

news2024/9/21 16:36:34

我使用的系统是 Ubuntu 20.04

文章实操主要分为以下几个部分

1、python 环境安装

2、下载 FaceFusion 上传服务器

3、创建 python 虚拟环境

4、下载 FaceFusion 依赖(这里的命令执行时间会很长,够你睡午觉了)

5、运行 FaceFusion

6、开放端口或nginx代理转发实现外部访问 FaceFusion(首选端口访问)

0、我为什么部署 AI 换脸?

因为内心可爱心地善良,一方面没搞过这玩意,这几天也在折腾 huggingface 的一些玩意,然后也想要有兴趣折腾一下 AI 换脸,顺便还帮助了别人积攒了功德

img

img

视频教程参考**(该视频里面包含 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/

img

考虑到网络问题,提供一个百度网盘下载渠道:https://pan.baidu.com/s/1fYRf-cHbj5lHR-1HQcx0Fg?pwd=29wl

上传服务器,解压压缩包,我上传到了 /www/wwwroot 目录下

进入解压目录下

设置编译参数:./configure --prefix=/usr/local/python3.10

实施编译:make

编译完成后安装:sudo make install

上面这两个命令执行时间会比较长,会有大量输出,要等待几分钟是正常的,最后输出以下内容表示安装成功

img

设置软连接

这一步即让我们的 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 下)

img

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)(这段时间我还折腾其他方式,重装环境、系统等等都没成功,不过也没折腾那么多,更多时间实在等待)

img

img

刚开始在频道各个模块搜索,不过没有找到合适的解决方案

img

最后选择直接在 linux 模块询问,里面的老外也挺好的,看到问题就会回复,最后就是在大佬的帮助下解决。

怎么交流的,会英语?不会,通过网易有道翻译来交流的,hhhhhhh

img

怎么访问到 ui 呢?

img

有两种方式:

1、打开端口 7860,直接【ip:端口】来访问**(建议直接使用这种方式,省得多配置其他东西)**

2、域名解析,配置 nginx 转发来访问**(我使用这种)**

为什么使用方式二呢?

因为第一种方式我没有折腾成功就懒得折腾了,我在腾讯云打开了端口,在宝塔也打开了端口但就是没有效果,所以就直接做了域名解析 nginx 代理转发来访问。

然后我就遇到了新问题,连接超时,自己修改 nginx 配置,但是没有成功…有解决则会个问题的老哥麻烦在评论区分享一下~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1365911.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SSM的基金投资交易管理网站的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

Java学习笔记(五)——时间相关类

文章目录 JDK7以前时间相关类Date 时间类阅读源码练习 SimpleDateFormat 格式化时间作用构造方法常用方法日期和时间模式练习 Calendar 日历获取Calendar对象的方法Calendar常用方法 JDK8新增时间相关类变化Date类ZoneId:时区Instant:时间戳ZoneDateTime…

ECharts 实现省份在对应地图的中心位置

使用 ECharts 下载的中国省市区的json文件不是居中的(如下图所示),此时需要修改json文件中的 cp 地理位置,设置成每个省份的中心位置 {"type": "FeatureCollection","features":[{ "type": "Feature"…

C++ 手写堆 || 堆模版题:堆排序

输入一个长度为 n 的整数数列,从小到大输出前 m 小的数。 输入格式 第一行包含整数 n 和 m 。 第二行包含 n 个整数,表示整数数列。 输出格式 共一行,包含 m 个整数,表示整数数列中前 m 小的数。 数据范围 1≤m≤n≤105 &…

护眼灯色温多少合适?盘点合适色温的护眼台灯

有了孩子,就等于同时有了软肋和铠甲,也总是在自己的能力范围内,把最好的东西给他。当孩子开始学习知识后更是如此,能力范围内最好的教育资源、最好的学习环境,以及各种与之配套的学习用具。护眼台灯在这时候就安排上了…

热钱涌向线控底盘!XYZ全栈集成引领新风向

在车身、底盘部分,中央计算区域控制带动传统车控、底盘及动力控制ECU市场迎来新一轮技术升级和域融合窗口期。线控制动、转向及空气悬架,正在加速与智能驾驶融合并进一步提升驾乘体验。 12月13-15日,2023(第七届)高工…

插画新手必看!13个免费UI插画素材网站,轻松打造炫酷设计!

即时设计 作为一个专业的设计网站,即时设计在很多情况下也可以作为一个高质量的插图网站使用。它可以为用户提供近5万个设计材料和模板,其中插图占据了很大的空间,可以为用户的设计提供很多帮助。在搜索插图材料的同时,还可以获取…

强化学习7——价值迭代算法在强化学习中的应用

价值迭代算法 价值迭代算法相对于策略迭代更加直接,它直接根据以下公式来迭代更新。 V ∗ ( s ) max ⁡ a ∈ A { r ( s , a ) γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V ∗ ( s ′ ) } V^*(s)\max_{a\in\mathcal{A}}\{r(s,a)\gamma\sum_{s\in\mathcal{S}}P(s|s,…

二叉树的深度和高度问题(算法村第八关白银挑战)

二叉树的最大深度 104. 二叉树的最大深度 - 力扣(LeetCode) 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null…

爱奇艺的cmd5x签名校验算法及视频下载

点击上方↑↑↑蓝字[协议分析与还原]关注我们 “ js分析,分析爱奇艺的cmd5x校验值。” 最近来了个从web网页自动下载爱奇艺的视频内容的需求,本以为很简单,却发现里面还是有些门道的,需要解决里面的校验的问题,特记录。…

Unity C# 枚举多选

枚举多选 &#x1f96a;例子&#x1f354;判断 &#x1f96a;例子 [System.Flags]public enum TestEnum{ None 0,Rooms 1 << 1,Walls1<<2,Objects1<<3,Slabs 1 << 4,All Rooms|Walls|Objects|Slabs}&#x1f354;判断 TestEnum test TestEnum.R…

(一)看参考手册学stm32基于hal库,点灯时钟配置

&#xff08;一&#xff09;看参考手册学stm32基于hal库&#xff0c;点灯时钟配置 这篇文章主要是个人的学习经验&#xff0c;想分享出来供大家提供思路&#xff0c;如果其中有不足之处请批评指正哈。 废话不多说直接开始主题&#xff0c;本人是基于STM32F407VET6芯片&#xf…

解析电商直播发展现状:成都天府锋巢直播基地能做什么?

近日&#xff0c;电商巨浪席卷过后&#xff0c;千舟如何“再”过万重山&#xff0c;已成为无数电商从业者的一轮新课题。成都新兴直播基地——天府锋巢直播产业基地&#xff0c;正在致力于打造一个包含电商直播、娱乐直播、跨境直播等多种直播业态的全域直播基地。新一轮直播业…

80/20法则-扫盲和复习篇

80/20法则-扫盲和复习篇 一、80/20法则二、对于目标三、时间管理应用四、“二八定律”基本内容总结 一、80/20法则 “80/20法则”是20世纪初意大利统计学家、经济学家维尔弗雷多帕累托提出的&#xff0c;他指出&#xff1a;在任何特定群体中&#xff0c;重要的因子通常只占少数…

基于spark的个性化招聘推荐系统

介绍 本就业推荐系统是一个基于Spark框架的个性化推荐平台&#xff0c;使用Python Django框架、Vue和Element-Plus UI组件库构建而成。该系统通过Scrapy爬虫框架抓取招聘网站的职位数据&#xff0c;用户可以根据关键词查询符合条件的职位信息&#xff0c;同时还提供了基于协同…

线性渐变linear-gradient——线性渐变实现虚线斜线条纹

1.效果图 2.html <div class"box"><div class"address-edit"></div></div> 3.css <style>*{margin: 0;padding: 0;}.box{position: relative;width: 100vw;height: 300px;background-color: #fff;}.address-edit::before…

结构体(structure)的认识

前言——————希望现在在努力的各位都能感动以后享受成功的自己&#xff01; 今天我们来了解了解一下结构体&#xff0c;结构体又有什么奥妙呢&#xff0c;废话不多说&#xff0c;何为结构体呢&#xff1f;------->结构是⼀些值的集合&#xff0c;这些值称为成员变量。结…

leetcode:滑动窗口

目录 1.定长滑动窗口 1.1 几乎唯一子数组的最大和(使用map来计数) 1.2 长度为k子数组中的最大和 2.不定长滑动窗口 2.1 最多k个重复元素的最长子数组 2.2 绝对差不超过限制的最长连续子数组(multiset&#xff09; 2.3 将x减到0的最小操作数(正难则反 逆向思维) 2.4 统计…

分布式架构那些事儿

今天给大家搬运一波福利&#xff0c;那就是分布式架构那些事&#xff01;说到分布式架构&#xff0c;你是不是觉得高大上、遥不可及&#xff1f;别慌&#xff0c;我会讲得通俗易懂&#xff0c;让你秒变架构大神&#xff01;听完之后直接带回家装逼&#xff01;一起来Get新知识&…

< Linux >缓冲区

在上一篇文件的重定向&#xff0c;通常会涉及文件描述符的操控。文件描述符1&#xff08;fd 1&#xff09;通常代表着标准输出&#xff08;stdout&#xff09;&#xff0c;它默认是指向用户的终端或控制台。当执行文件重定向操作时&#xff0c;如果我们关闭文件描述符1&#xf…