AI换脸FaceFusion一键云部署指南

大家好,从我开始分享到现在,收到很多朋友的反馈说配置很低玩不了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://www.mzph.cn/bicheng/19810.shtml

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

相关文章

乐观锁 or 悲观锁 你怎么选?

你有没有听过这样一句话:悲观者正确,乐观者成功​。那么今天我来分享下什么是乐观锁​和悲观锁。 乐观锁和悲观锁有什么区别,它们什么场景会用 乐观锁 乐观锁基于这样的假设:多个事务在同一时间对同一数据对象进行操作的可能性很…

工厂模式详情

一.介绍工厂模式的用途与特点 工厂方法模式是一种创建型设计模式, 其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型。定义工厂方法模式(Fatory Method Pattern)是指定义一个创建对象的接口,但让实现这个接口的类来决定实例…

Python导出Jira列表

import requests import urllib3 urllib3.disable_warnings() from jira import JIRA import pandas as pd def login_jira(username,password):jira JIRA("https://jira.cn/",basic_auth(username,password))#projectsjira.project(id13)# jqlproject"云链-…

基于强化学习的控制率参数自主寻优

1.介绍 针对控制建模与设计场景中控制参数难以确定的普遍问题,提出了一种基于强化学习的控制律参数自主优化解决方案。该方案以客户设计的控制律模型为基础,根据自定义的控制性能指标,自主搜索并确定最优的、可状态依赖的控制参数组合。 可…

unity打包的WebGL部署到IIS问题

部署之后会出错,我遇到的有以下几种; 进度条卡住不动 明明已经部署到了IIS上,为什么浏览网页的时候还是过不去或者直接报错。 进度条卡住不动的问题其实就是wasm和data的错误。 此时在浏览器上按F12进入开发者模式查看错误(下图…

付费工具逻辑

1.付费推广目的: 传播信息心理暗示;扩大销售,指导消费;树立形象,塑道品牌; 2.付费和免费广告: 付费主要为了增加曝光;免费广告一般比付费广告转化率高; 3.平台广告交…

《Kubernetes部署篇:基于麒麟V10+ARM64架构部署harbor v2.4.0镜像仓库》

总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:企业级K8s集群运维实战 一、环境信息 K8S版本 操作系统 CPU架构 服务版本 1.26.15 Kylin Linux Advanced Server V10 ARM64 harbor v2.4.0 二、部…

chrome谷歌浏览器开启Gemini Nano模型

前提 确保您的操作系统语言设置为英语(美国) 可能还需要将 Chrome 浏览器的语言更改为英语(美国)。 下载dev或Canary版本Chrome Chrome Canary Chrome Dev 注意:确认您的版本高于 127.0.6512.0。 其中一个Chrome版本不行就切换另外一个版本 绕过性能检查 Tab输入: …

结构体相关习题的补充

结构体相关习题的补充 题目1: 如有以下代码: struct student {int num;char name[32];float score; }stu;则下面的叙述不正确的是:( ) A.struct 是结构体类型的关键字 B.struct student 是用户定义的结构体类型 C.num, score 都是结构体…

正邦科技(day4)

烧录 一、烧录固件二、 通讯模块升级1:USB的方式升级固件2:通过mqtt的方式升级固件3:切换环境 三、 烧录WiFi1:短接2:烧录脚本 设备注意事项: 第一种方式:通信模组和MCU都可以统一烧录BoodLoade…

Oracle Hint /*+APPEND*/插入性能总结

oracle append用法 Oracle中的APPEND用法主要用于提高数据插入的效率。 基本用法:在使用了APPEND选项后,插入数据会直接加到表的最后面,而不会在表的空闲块中插入数据。这种做法不需要寻找freelist中的free block,从而避免了在…

【计算机毕设】基于Spring Boot的课程作业管理系统 - 源码免费(私信领取)

免费领取源码 | 项目完整可运行 | v:chengn7890 诚招源码校园代理! 1. 研究目的 课程作业管理系统旨在为教师和学生提供一个便捷的平台,用于发布、提交和评定课程作业。本系统旨在提高作业管理的效率,促进教…

Golang反射

文章目录 基本介绍reflect包reflect.Typereflect.Valuereflect.Kind具体类型、空接口与reflect.Value的相互转换 反射应用场景修改变量的值访问结构体的字段信息调用变量所绑定的方法实现函数适配器创建任意类型的变量 基本介绍 基本介绍 在Go中,反射(re…

错误 0x80070570:文件或目录损坏且无法读取/无法访问[拒绝访问]-解决方法

1.起因:在挪动U盘文件时,出现无法移动的报错提示: and无法访问[拒绝访问]: 2.原因[大多是胡乱拔出U盘] [来自0x80070570 文件或目录损坏且无法读取 CHKDSK 修复方法-CSDN博客&#…

【JavaEE进阶】——带你详细了解Spring日志以及配置日志

目录 🚩Spring日志的认识 🚩Spring日志的作用 🚩观察日志 🚩使用日志 🎈在程序中得到日志对象 🎈使⽤⽇志对象输出要打印的内容 🚩日志框架的介绍 🎈门面模式(外观模式&…

Unity实现简单的第一人称控制

先看效果 实现方式 1.首先创建一个脚本 2.编辑脚本内容 付上脚本代码 private float RotationX 0;public float speed 2f;//移动速度// Use this for initializationvoid Start(){Cursor.lockState CursorLockMode.Locked;//锁定鼠标到中心点Cursor.visible false;//隐藏鼠…

(CPU/GPU)粒子继承贴图颜色发射

GetRandomInfo节点(复制贴进scratch pad Scripts) Begin Object Class/Script/NiagaraEditor.NiagaraClipboardContent Name"NiagaraClipboardContent_22" ExportPath/Script/NiagaraEditor.NiagaraClipboardContent"/Engine/Transient.NiagaraClipboardConten…

uni-app+php 生成微信二维码 分销海报

主要代码如下,可直接复制调试参数: //查询当前用户是否有分销海报public function user_poster(){$this->checkAuth();//查询会员信息$user $this->getUserInfoById($this->user_id);if(!empty($user[distribution_img])){$result[data] $use…

Goby 漏洞发布|万户ezEIP企业管理系统 /member/success.aspx 命令执行漏洞

漏洞名称:万户ezEIP企业管理系统 /member/success.aspx 命令执行漏洞 English Name:Wanhu-ez-EIP /member/success.aspx Command Execution Vulnerability CVSS core: 9.0 影响资产数:6175 漏洞描述: 万户ezEIP是一种企业资源…

在CentOS7下构建TeamSpeak服务器并增加网易云点歌插件

文章目录 部署TeamSpeak创建一个新用户下载并解压服务端下载解压 启动服务端同意许可协议启动与配置开放端口设置开机自启 客户端连接 部署TS3AudioBot并添加网易云插件安装ffmpeg下载TS3AudioBot本体与插件并解压配置TS3AudioBot启动设置开机自启 部署网易云API安装git安装Nod…