AI换脸FaceFusion一键云部署指南

news/2024/7/5 2:23:14

大家好,从我开始分享到现在,收到很多朋友的反馈说配置很低玩不了AI。本篇是一个云端部署AI项目的指南,帮助大家在云端进行AI项目的部署。我会从云平台的选择、代码部署、保存镜像几个方面进行详细的介绍。没有代码基础的小白也不用担心,我已经制作好了镜像,你们可以一键部署就可以在云端使用啦。

视频教程:

【FaceFusion云端部署指南(保姆级)】 https://www.bilibili.com/video/BV1es421g77P/?share_source=copy_web&vd_source=09316244e4ff3a9793930d67cf748288

选择云平台

国内外有许多GPU算力平台提供服务,例如国内的阿里云、腾讯云、百度飞桨、AutoDL、仙宫云,以及国外的kaggle Kernel、Google Colaboratory、亚马逊AWS等。

尽管这些平台的部署流程大体相似,但具体细节各有不同。

在准备本期内容时,我尝试了AutoDL和仙宫云这两个GPU平台来部署AI项目。最终选择使用仙宫云部署。

在过去的项目中,我也使用过阿里云、Google Colaboratory和亚马逊AWS的服务来部署AI项目。
 

有两种方法:

第一种是使用我已经制作好的镜像包,直接使用。(适合小白、想快速使用的朋友)

第二种是自行部署。(适合有代码基础,想尝试的朋友)

使用镜像包

第一种方法,使用我已经制作完成的云端镜像包。

登录注册仙宫云

官网

直接找到我公开的镜像链接,点击部署。一键镜像

选择4090这个配置。

确认镜像,点击确认部署。

可以看到正在部署。耐心等待

部署完毕,点击仙宫云OS

进入主界面,默认FaceFusion服务已经启动好了。

直接双击桌面上的这个文件,打开FaceFusion的主窗口。

FaceFusion主窗口

这是打开FaceFusion的界面,关掉该界面后,程序还会执行。

输出目录

双击打开FaceFusion的输出目录

日志

点击桌面上的日志查看执行时的信息。

重启

双击重启FaceFusion程序,当你清除缓存后记得重启下FaceFusion才能执行。

上传图片/视频

关于上传,你可以将本地的图片或者视频直接拖拽到该界面上,非常方便。

下载

生成好的视频/图片点击下载按钮下载到本地。

自行部署镜像

官网

首先进入仙宫云的官网,点击部署GPU计算容器

这里选择你想要部署的机器配置。

配置服务

这里需要对GPU服务器进行一些配置。

系统盘:GPU服务器储存空间大小。默认100G,这里对于我们部署的AI项目已经够用。可扩容,会更贵些。

GPU数量:服务器的显卡数量,默认一个显卡,最高可选3张4090进行渲染,速度会更快。关于多卡渲染这里我不过多描述,感兴趣的话我后面可以出一篇教程。

镜像类型:

这里有三种镜像。

公共镜像:仙宫云官方提供的镜像。

社区镜像:其他用户制作并上传 的镜像。

私有镜像:自己制作的镜像。

由于我们是从零开始部署,所以选择公共镜像。

基础镜像选择Miniconda3,python版本选择3.10,CUDA版本选择11.8

剩下的SSH密钥和挂载云储存我们这里用不到,保持默认即可。

计费方式根据自己的需求来。

以上都设置完毕后,点击确认部署

拉取源码

来到控制台可以看到服务正在创建

等待实例创建完毕后

点击应用这一栏的Jupyter

点击后会跳转到Jupyter的操作面板,我们在这里进行部署

启动页中选择终端

进入到终端命令行中

第一步需要拉取FaceFusion在Github上的源代码。由于你懂的的网络原因,需要为当前终端开启学术加速。

开启学术加速

. /accelerate/start

接下来从Git上拉取代码

git clone https://github.com/facefusion/facefusion

拉取完我们可以在左侧看到FaceFusion的文件夹

创建虚拟环境

输入cd facefusion进入这个目录

cd facefusion

使用conda创建python虚拟环境

conda create --name Dlab python=3.10

会弹出确认选项

输入y按回车

创建完毕,一个基础的虚拟环境就创建好了。

激活刚才创建的虚拟环境。

conda activate Dlab

激活后可以看到之前的base变为了Dlab

安装依赖

运行install.py脚本

python install.py

这里会出现选项框,选择要安装的onnxruntime版本

我们刚才创建服务时选择的是cuda版本是11.8,所以这里也选择对应的版本。键盘方向键上下进行选择,按回车确认。

耐心等待会儿

安装完毕

问题解决

libgl1问题

接下来运行看下

python run.py

出现libGL.so.1错误,这是因为我们的镜像中默认是不包含libgl1这个库的。

解决方法,手动安装,接着输入

apt-get install libgl1-mesa-dev

输入y后按回车继续执行

等待....

安装完毕

FFmpeg问题

再次输入运行命令,发现还有个报错,这个原因是FFMpeg库未安装。

python run.py

直接在conda内安装

conda install ffmpeg

输入y后按回车

安装完毕

成功运行

再再再再次输入运行命令

python run.py

成功执行!

现在我们直接访问这个网址是打不开的,因为这是一个本地链接,我们需要访问仙宫云上映射的网址。

来到容器管理页面,点击WebUI

会跳转到一个错误的网页,显示无法进入,不要慌,这是正常现象,因为我们的服务启动的端口不一样,仙宫云默认是80端口。

在浏览器中找到当前打开的网页链接。

把这个80改为7860,再次访问。

访问成功

用图片进行了测试,可以换脸。

上传模型

恭喜你!到这里已经成功了一大半了!接下来需要将FaceFusion所需要的所有模型都下载下来。

FaceFusion官方提供的脚本中即使是开了学术加速,下载模型的速度也不如人意。为了节约宝贵的时间,这里我们使用网盘的方式进行下载。(我已经将所有资料都放入网盘链接内)

来到仙宫云容器实例这里,选择仙宫云OS,点击打开。

可以看到我们进入了类似电脑桌面的界面。

进入桌面的百度网盘

这里需要授权下。

授权成功后找到我们网盘内存储的压缩包

右键复制

打开系统磁盘,进入系统磁盘/root/facefusion/.assets这个目录

粘贴网盘文件

右下角是进度条,耐心等待

完毕后文件夹内如下

将models文件夹右键--移至回收站(这个models文件夹是刚才我们部署好后下载的基础换脸模型,从网盘下载的压缩包内已经包含这些基础模型,所以将这个文件夹删除)

双击models.zip进行解压

等待解压

解压完毕

新解压的models文件夹里包含了所有的模型

最后你可以把models.zip压缩包删除了,因为这会占用你的空间,后面会说到。

重启服务

由于我们现在FaceFusion已经启动,我们模型上传后需要重新启动下FaceFusion。

回到Jupyter页面

点击这个图标进入管理页面。

可以看到当前运行的终端。

点击全部关闭。

然后我们重新打开终端页面

重新激活conda环境

conda activate Dlab

然后运行run脚本,这里与之前不一样的是,我加了--skip-download(跳过下载)参数。因为我们模型都已经安装完毕,不需要再走一遍下载。

python run.py --skip-download

启动完毕后还是进入刚才的7860网页查看,成功运行。

完美运行

再次测试,这次多勾选了高清修复、脸部修复。(如果你没有执行上面的模型安装步骤,是不能开启脸部修复和高清修复的,会提示没找到模型)

可以看到预览里的效果完美。

其他的操作方法跟本地版本的是一样的。如果你想对这个FaceFusion进行更多修改,请往下看。

其他修改

修改中文界面

进入系统磁盘/root/facefusion中

删除facefusion文件夹

将网盘内的facefusion.zip拷贝到这里,并解压

解压后再次重启FaceFusion服务即可。

再次进入到页面,界面已经全部变成中文的啦。

写在最后

恭喜你,看到这里,已经可以自己在云端部署FaceFusion了!记得用的时候关闭实例,保存镜像!

总结下,本篇教程我使用的是仙宫云服务,部署的时候会有个小“坑”——libgl1问题。在使用仙宫云之前我在AutoDL上也部署过,不会出现像libgl1问题这个“坑”,所以不同的GPU服务平台的问题有可能会不一样,但是流程都相同。

关于本篇用到的模型与命令可在公众号内回复【脸资料】获取。无套路!

最后希望这篇文章对你有帮助!感谢你的阅读!


http://lihuaxi.xjx100.cn/news/2181004.html

相关文章

华为云的云主机安装的linux系统不能使用yum下载软件包、程序、组件等

目录 一、背景介绍 二、问题描述 1、尝试使用yum安装traceroute 2、更换yum源 3、使用curl命令访问百度,测试网络 三、问题分析和解决 1、修改网卡设置 (1)ifconfig查看网卡信息 (2)添加DNS 2、修改/etc/res…

C# FTP/SFTP 详解及连接 FTP/SFTP 方式示例汇总

文章目录 1、FTP/SFTP基础知识FTPSFTP 2、FTP连接示例3、SFTP连接示例4、总结 在软件开发中,文件传输是一个常见的需求。尤其是在不同的服务器之间传输文件时,FTP(文件传输协议)和SFTP(安全文件传输协议)成…

第四十八天 |122.买股票的最佳时期|| 121.购买股票的最佳时期 123.买卖股票的最佳时期|||

题目:买股票的最佳时期|| ac了 思路: 1.dp含义:第i天时能获得的最大利润为dp[i] 2.动态转移方程:dp[i] max(dp[i - 1], dp[i - 1] prices[i] - prices[i - 1]); 如果prices[i] - prices[i - 1] > 0,那么就在第…

mysql 根据经纬度计算距离

6378.138 * 2 * ASIN(SQRT(POW( SIN( ( : wd * PI( ) / 180-pa.wd * PI( ) / 180 ) / 2 ), 2 ) COS( : wd * PI( ) / 180 ) * COS( pa.wd * PI( ) / 180 ) * POW( SIN( ( : jd * PI( ) / 180-pa.jd * PI( ) / 180 ) / 2 ), 2 ) ) ) AS juli 6378.138:这是地球的平…

不是从APP store下载的APP在mac上一直提示有损坏,打不开怎么办?

1.点击设置 2.安全与隐私 3.通用看看允许从以下位置下载的APP是否有任何来源 4.如果没有,mac桌面点击🔍输入终端或Terminal 命令行输入下述代码: sudo spctl --master-disable 5.回车,输入mac开机密码。注意:此时密…

Python实现定时任务的三种方案——schedule、APScheduler、Celery

schedule schedule是一个轻量级的Python库,用于定期执行任务,即定时任务调度。它提供了一种简单直观的方式来自定义任务执行的时间规则,而无需复杂的线程或进程管理知识。schedule适用于那些需要在后台定期执行某些功能的Python应用程序&…

【解决】Tree prefab at index 8 is missing.

开发平台:Unity 2020 版本以上   问题描述 翻译:树预制体集合中第8位预制体丢失。   解决方法:修复丢失树资产 关联 Unity Terrier 组件使用,前往 树绘制工作区,检查 “树资产” 引用是否丢失?删除或重…

数字化的本质是什么?

数字化的本质其实就是把日常生活、工作等各个方面的信息、操作、交流等转化成数字形式,让它们更加便于存储、传输、分析和处理。简单说就是把各种各样的东西变成了0和1,让计算机能够更好地理解和运用这些信息。但数字化的本质并不只是简单地把事物变成数…