在GPU云服务器中部署Stable Diffusion web UI

  • 1. 前言
  • 2. 关于云服务器的选择
  • 3. 关于机器的选择
  • 4. 部署Stable Diffusion
    • Python和CUDA
    • 检查pip源
    • 下载Stable Diffusion web UI
    • 尝试运行Stable Diffusion
    • 使用命令手动下载依赖
      • 基础模型
      • python库依赖
    • 本机下载依赖并上传到服务器
      • 下载模型
      • 上传服务器
  • 5. 运行
  • 6. 参考

1. 前言

最近在研究如何使用Controlnet细粒度控制Stable Diffusion生成满意的图片,无奈自己本地的显卡只有6G的显存,而Controlnet的Openpose功能需要10G以上的显存才能正常出图。于是只能租用GPU云服务器并将SD模型部署在服务器上,然后再通过本地浏览器访问。

2. 关于云服务器的选择

推荐这篇文章:GPU云服务器平台对比!哪家最值得推荐?
自己使用的是AutoDL,但是并没有使用它家自带的Stable Diffusion模型,还是自己从头开始部署。不太推荐这家,原因是如果使用按量计费,关机后经常会出现无卡可用的情况,尤其是3090这种热门卡。

3. 关于机器的选择

以AutoDL为例,注册完成后来到以下界面选机器:


一般来说,现阶段3090从价格、显存大小各个方面综合来看是比较好选择,当然也是经常被一抢而空。

关于计费方式,只推荐按量计费,很多有优惠的平台可以用1~2块/小时租到3090的显卡。除非是需要训练大模型,只是自己用的话不推荐包日/周/月,那价格1年自己都快能买一块了。按量计费的缺点就是关机后可能会因为空闲显卡不足无法正常开机。

AutoDL自带了NovelAI,但是实际使用起来可能会有各种错误,其中最多的是Python版本的问题。我这个时间点,它们的机器上自带的都是Python3.8,但是最新版本的stable-diffusion需要3.10的环境,所以不推荐用它自带的,而是选择如下的配置:


这里需要提一下,一些出场早一点的显卡可能会不让使用CUDA11.8的环境(如RTX3080),所以这里还是推荐使用3090及以后的显卡。

4. 部署Stable Diffusion

Python和CUDA

一般GPU服务器已经自带Python和显卡驱动,建议使用服务器厂商自带的,否则后续会出现很多问题。

检查pip源

这一步很重要。Stable Diffusion的更新速度很快,但是有一部分厂商的机器所使用的的pip源没有及时更新,没有SD所需要的一些依赖的最新版本,就会导致一直报错。

以autodl为例,我的机器默认使用了华为源,导致自己在后续安装依赖的时候facexlib和numpy一直找不到最新的版本,最后换成阿里源才成功解决,同时换源后记得再更新一下pip的版本。

具体的操作方式见:pip换源 -pip更换国内镜像源

下载Stable Diffusion web UI

在终端中输入以下命令,这里推荐部署在数据盘而不是系统盘,因为后续还需要下载各种模型,占用空间较大。

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

如果连接超时,建议多试几次,因为git的连接有时很不稳定。

尝试运行Stable Diffusion

下载完成后,进入项目根目录,执行命令:

cd stable-diffusion-webui
COMMANDLINE_ARGS="--medvram --always-batch-cond-uncond --port 6006" REQS_FILE="requirements.txt" python launch.py

其中launch.py是执行脚本,medvramalways-batch-cond-uncond都是显存优化的参数;

port 6006指定进程运行在机器的6006端口上。因为autodl自带了一个对外暴露的服务,端口号为6006,所以这样设置。当然,也有其他的方法,会在后面说明;

最后的REQS_FILE是运行所需要的的依赖,命令执行后会自动安装依赖。

使用命令手动下载依赖

如果租用的是国内节点的云服务器,大概率会碰到各种连接失败和超时的问题。比如:

The TLS connection was non-properly terminated

如果出现这种问题推荐手动下载。

基础模型

首先在主目录下创建repositories目录:

mkdir repositories

Stable Diffusion web UI有四个依赖模型,需要分别下载。

StableDiffusion:

git clone https://github.com/CompVis/stable-diffusion.git repositories/stable-diffusion

taming-transformers:

git clone https://github.com/CompVis/taming-transformers.git repositories/taming-transformers

CodeFormer:

git clone https://github.com/sczhou/CodeFormer.git repositories/CodeFormer

BLIP:

git clone https://github.com/salesforce/BLIP.git repositories/BLIP

安装完成后再次执行命令,会自动安装剩下的依赖,当然后续也可能因为连接超时而报错:

COMMANDLINE_ARGS="--medvram --always-batch-cond-uncond --port 6006" REQS_FILE="requirements.txt" python launch.py

python库依赖

在安装依赖的时候也可能会因为网络而卡住,尤其是gfpgan库,这时候建议使用pip install命令手动安装依赖。如果出现类似以下错误:

No matching distribution found for facexlib>=0.2.5

这是因为无法从pip中获取最新版本的库,建议升级一下pip,并且检查一下pip源是否太久没更新。

本机下载依赖并上传到服务器

如果网络实在无法连接,则只能用本机下载模型并上传到服务器上。

在Stable Diffusion的依赖中有一个v1-5-pruned-emaonly.safetensors模型需要从huggingface网站中下载,但是终端的下载速度巨慢。按量计费每分每秒都是money,所以更推荐本地下载后直接上传到服务器。这里以autodl的服务器为例

下载模型

网址:

https://huggingface.co/runwayml/stable-diffusion-v1-5/blob/main/v1-5-pruned-emaonly.safetensors

上传服务器

常规可以使用Xshell的方式,详情可以参加文档:AutoDL数据上传

我这里介绍通过阿里云盘(因为没有限速)的方式上传到autodl的服务器。

  1. 模型上传至阿里云盘,如果没有账号,需要先注册。

  2. 在控制台界面(开机状态),打开AutoPanel

  1. 打开公网网盘,选择阿里云盘,下方会出现一个二维码,需要在手机上下载阿里云盘的app然后扫描并授权。

  1. 点击下载,使用服务器从云盘中下载模型:

下载后的文件存放在数据盘的根目录中,进入数据存放的文件夹后,将模型移动到项目主目录:

mv v1-5-pruned-emaonly.safetensors stable-diffusion-webui/

后续其他模型都可以用这种方式上传至服务器。

5. 运行

前面所有依赖安装完毕后,在项目主目录下再次执行命令:

COMMANDLINE_ARGS="--medvram --always-batch-cond-uncond --port 6006" REQS_FILE="requirements.txt" python launch.py

如果出现以下输出则表示运行成功:

使用autodl的情况下,在控制台中点击自定义服务:

后面会出现提示,让进行实名,因为监管进一步收紧,如果不希望实名建议换其他服务器厂商。完成实名后就可以在本地浏览器中操作Stable Diffusion作画了。


界面如下:

Controlnet使用成功!

6. 参考

  • https://zhuanlan.zhihu.com/p/386821676
  • https://zhuanlan.zhihu.com/p/574200991

在GPU云服务器中部署Stable Diffusion web UI相关推荐

  1. 云服务器搭建Stable Diffusion Web UI 教程

    声明 本教程仅供AI学习交流使用,不涉及任何AI绘画生成的内容,本人坚决反对使用AI进行违规违法操作!不建议使用AI绘画生成真人图片.请大家共同维护健康的网络环境. 本教程搭建的远程环境,仅供自己使用 ...

  2. 在阿里云服务器中部署nodeBB项目(nodeBB系列一)

    配置参数 服务器操作系统:CentOS 7.3 64位 nodeBB版本 1.7.4 运行环境:node.js nodeBB的数据库:Redis nodeBB简介 nodeBB是由node.js驱动, ...

  3. 视频融合云服务EasyCVR平台部署在云服务器中的配置关键点

    AI智能安防视频平台EasyCVR视频融合云服务支持分发RTSP.RTMP.FLV.HLS.WebRTC等多种格式的视频流,可灵活运用于多场景需求中,可覆盖全平台(Linux.Windows.Andr ...

  4. 0基础云服务器部署Stable Diffusion

    心动了没有!!! 你还没有安装好stable-diffusion吗?在这里,你只要有一个可以联网的电脑就可以使用它. 有没有小伙伴被自己电脑的配置劝退的呢?或者各种报错不知道怎么解决?去网站上搜索各种 ...

  5. 一个云服务器可以部署多个项目吗,云服务器可以部署多个项目

    云服务器可以部署多个项目 内容精选 换一换 一台云服务器同一时刻可以为最多8个终端提供业务体验,当用户数增多,云服务器数量不能满足业务需求时,您可以购买云服务器,实现多个用户在同一时间接入应用.新购买 ...

  6. GPU云服务器深度学习性能模型初探

    摘要: 本文根据实测数据,初步探讨了在弹性GPU云服务器上深度学习的性能模型,可帮助科学选择GPU实例的规格. 1 背景 得益于GPU强大的计算能力,深度学习近年来在图像处理.语音识别.自然语言处理等 ...

  7. gpu云服务器运行游戏_滴滴云不甘寂寞,国内首发一款GPU云服务器

    北京时间9月1日,滴滴云发布基于NVIDIA Tesla A100 GPU的云服务器产品,据悉滴滴云是该型GPU云服务器产品的国内首发云厂商. 滴滴云基于A100 GPU的产品包括裸金属服务器(BMS ...

  8. 为什么选择 GPU 云服务器

    首先,GPU 云服务器(GPU Cloud Computing)是基于 GPU 的快速.稳定.弹性的计算服务,主要应用于深度学习训练/推理.图形图像处理以及科学计算等场景. GPU 云服务器提供和标准 ...

  9. 什么是GPU云服务器,有哪些优势,适用于什么场景?

    GPU 云服务器(Cloud GPU Service)是基于 GPU 的快速.稳定.弹性的计算服务,主要应用于深度学习训练/推理.图形图像处理以及科学计算等场景. GPU 云服务器提供和标准 CVM ...

最新文章

  1. SQLServer2000 数据库恢复模型详解
  2. 在64位Windows7上安装64位Oracle11g
  3. WPF/E 2007年2月CTP发布了
  4. Django(part3)--制作我的第一个网页
  5. ST7789V2 LCD驱动芯片
  6. 任务并行VS数据并行
  7. php版本个版本区别,PHP版本不一样有什么区别
  8. android 豆瓣客户端 视频
  9. 使用zabbix监控esxi
  10. 计费软件 0day 被用于攻陷美国某工程公司,8个未修复0day再现
  11. Solr6 快速入门教程
  12. C++--第1课 - C到C++的升级
  13. remoting 最简单的一个例子
  14. ubuntu中ping停不下来的解决
  15. 我上传的CSDN资源无法使用的处理方法
  16. linux环境下载jadx
  17. TISAX认证详解来啦!
  18. 七牛云邵杰:视觉智能——视频云新时代
  19. 银行使用计算机和网络实现个人存款,观察值与算术平均数的差数称为离均差,其总和为( )。...
  20. vue3.x 重复点击路由报错

热门文章

  1. 刘韧:语言是重要的权利
  2. WordPress在博客文章中添加代码片段
  3. mysql 获取唯一值_mysql 获取全局唯一值
  4. php 去除开头空格,学习猿地-php怎么去除前面空格
  5. webservice的基础知识以及入门案例1
  6. Vue前端项目【尚品汇】
  7. Elasticsearch:一个方便易用的全文搜索库
  8. python Django个人博客系统-源码下载
  9. 智能家居中的物联网技术体系架构与发展现状
  10. python 系统学习笔记(八)---文件操作