一、前言
业务逻辑:服务器部署sdwebui项目,远程浏览器访问ui界面。服务器可租用AutoDL的GPU服务器
服务器:租用AutoDL的GPU服务器,Linux
Stable Diffusion WebUi:作者AUTOMATIC1111,github项目地址GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI
二、云端部署、服务器部署
部署流程如下:
1、租用AutoDL服务器,创建虚拟环境
(1)租用服务器这里不说了,选择合适的GPU即可,AutoDL可以使用“无卡模式开机”,即不使用显卡,价格很便宜(0.1元/小时)。适合用来配置项目、下载模型、上传数据等不涉及模型运行(训练、推理)、不涉及GPU的准备工作。
开机后,点击JupiterLab进入,点击“终端”进入命令行
(2)创建虚拟环境,在命令行中输入以下命令
# 构建一个虚拟环境名为:xxx,Python版本为3.10.6
conda create -n xxx python=3.10.6
# 更新bashrc中的环境变量------租用AutoDL服务器需要多此一步,本地部署、自己服务器的不用
conda init bash && source /root/.bashrc
# 切换到创建的虚拟环境:xxx
conda activate xxx
# 验证Python版本
python -V
结果:3.10.6
***注意上述更新bashrc中的环境变量,每次启动AutoDL服务器均需要巡行此步骤***
conda常用命令:
创建虚拟环境:conda create -n xxx python=版本
激活虚拟环境:conda activate xxx
退出虚拟环境:conda deactivate
删除虚拟环境:conda remove -n xxx --all
查看已创建的环境:conda env list
2、部署Stable Diffusion WebUi项目文件
两种方法,一是git clone,另一个自己下载再上传
方法一,直接运行以下命令
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
方法二,在github中下载,再上传,项目地址如下:
(1)下载
GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI
(2)上传
(3)解压
命令:unzip 下载的zip,例如 unzip clip-vit-large-patch14.tar.gz
3、准备clip-vit-large-patch14与一个checkpoint模型
clip-vit-large-patch14与checkpoint模型可以自己先下载好,也可在“第4步-安装依赖”中在线下载。这里的建议自己下载,在线下载速度慢,且需要魔法上网。
(1)这里的checkpoint模型选择了anything-v5-PrtRE.safetensors,1.99G,还算比较小。也可从C站(https://civitai.com/models,需要魔法上网)自行下载。
“anything-v5-PrtRE.safetensors”百度网盘链接如下
百度网盘
链接:https://pan.baidu.com/s/16fsiEwR2S1n3QQRk3OZMWw
提取码:vpgl
(2)clip-vit-large-patch14是clip模型,给图片和提示词建立关联用,sdwebui运行必不可少。下载位置
https://huggingface.co/openai/clip-vit-large-patch14 ,百度网盘链接如下
百度网盘
链接:https://pan.baidu.com/s/1B-A8uZEWqTwwC-fd43OYsw
提取码:xnq3
(3)下载后,checkpoint模型放在stable-diffusion-webui/models/Stable-diffusion/下,clip-vit-large-patch14需要在stable-diffusion-webui/下新建openai文件夹, 并解压放在openai下
4、安装依赖
在stable-diffusion-webui/目录下运行 pip install -r requirements.txt
在此过程中如果报错,一般是pip版本问题,可使用 pip install --upgrade pip 更新,然后再次运行pip install -r requirements.txt
另一个常见的报错是“Preparing metadata (setup.py) ...”,参考以下解决
http://t.csdnimg.cn/ueVPAhttp://t.csdnimg.cn/ueVPA此过程持续时间较长,耐心等待
5、运行SDwebui
在stable-diffusion-webui/ 下,运行:
python launch.py --port 6006
这里加了参数 --port 6006,将服务发布在6006端口,是因为AutoDL在公网开发的端口是6006,参考AutoDL帮助文档https://www.autodl.com/docs/port/
出现以下界面“Model loaded in ......”,说明服务已启动完毕,可以使用了
在“容器实例”中点击“自定义服务”,即可打开webui界面。第一次打开的需要进行实名制认证。
webui界面如图
网址可以复制下来,发给其它人共同使用,手机端也可打开。
用完后,在命令行界面Ctrl+C,停止服务,关闭服务器或者切换到无卡模式。
三、插件、LoRA模型、存储空间等其它说明
1、插件
下好的插件放在extensions目录下,重启启动服务即可,这里放几个常用的插件
百度网盘
链接:https://pan.baidu.com/s/1XwcMyNGIT-K6htuAuTzRYw
提取码:gj9u
2、LoRA模型
Lora模型一般在100~300M左右,放在models/Lora/目录下,重启服务即可,Lora可在C站https://civitai.com/models(魔法上网)下,记得筛选(Filters-LoRA)
3、AutoDL存储空间分配
AutoDL分配的系统盘只有30G,数据盘有50G,SDwebui不算模型就将近25G,因此建议将模型放在数据盘(/root/autodl-tmp/),启动SDwebui的时候加入--ckpt命令,例如:
python launch.py --6006 --ckpt /root/autodl-tmp/模型文件名
这里给出AutoDL官方清理存储空间的帮助文档AutoDL帮助文档https://www.autodl.com/docs/qa1/