Stable Diffusion云服务器部署完整版教程
2023年07月04日 22:30 3607浏览 · 18喜欢 · 22评论
<span class="bili-avatar-icon bili-avatar-right-icon "></span>
</div>
薯片_AI
粉丝: 1513 文章: 1
- 设置分组
- 取消关注
已关注
文本旨在将stable diffusion部署在云服务器上,利用云服务器的优势让我们更好的体验AI绘图。本文的教程是作者一步步实践所总结出来的,完整的按照作者的步骤执行,是可以在云服务器上部署一个较为完整的sd。本教程中包括了很多配置和换源是其他教程所没有的,相对其他sd安装教程更为完整。
提醒:本文是stable diffusion部署在云服务器的教程,当然你也可以拿来部署在本地电脑上,但是没有必要,本地部署可以使用秋叶大神的一件安装包,方便又快捷。
一、SD的基础环境和安装
AV6hxhhLecygpjnle">(一)购买服务器
我使用的是腾讯云GPU服务器,腾讯云服务器经常做活动,可以趁折扣的时候进行购买,这是我此次服务器的基本信息,我选用的是GN7 8核32GB,N卡,操作系统选择Ubuntu Server。
ubuntu server配置
购买后在后台实例中可看到该服务器
腾讯云后台
点击「登录」即可进入服务器,首次进入会自动安装驱动,等待几分钟即可。
进入服务器
(二)配置运行环境
利用anaconda是它集成了很多我们需要的安装包,只要安装它一个,python下载、环境配置那些都不用我们再去设置,使用起来比较方便。
1、配置Anaconda
1、下载anaconda
python
`wget https`://`mirrors`.`tuna`.`tsinghua`.`edu`.`cn`/`anaconda`/`archive`/`Anaconda3`-2023.03-0-`Linux`-`x86_64`.`sh`
若遇到这种不能下载的,前面加上 -U NoSuchBrowser/1.0
python
`wget `-`U NoSuchBrowser`/1.0` https`://`mirrors`.`tuna`.`tsinghua`.`edu`.`cn`/`anaconda`/`archive`/`Anaconda3`-2023.03-0-`Linux`-`x86_64`.`sh`
2.安装anaconda,提示enter按回车,提示yes or no的地方全部输入yes即可。vscode不安装
python
`bash Anaconda3`-2023.03-0-`Linux`-`x86_64`.`sh`
3.找到.bashrc这个文件并修改,修改文件有两种方式:
①通过vim修改。
python
#用vim打开.bashrc文件
`
vim `~/.`bashrc`
#再按i开始insert,将以下内容添加到文件最后一行
export PATH=$PATH:/home/ubuntu/anaconda3/bin
#按Esc并输入:wq即为保存退出文件再保存退出
:wq
②也可以通过编辑器修改,找到.bashrc文件直接输入内容即算保存
4.如果输入conda,提示找不到命令的话执行下source,(执行一次即可,以后都不用再 source 了,启动 Ubuntu会自动source)
python
`source `~/.`bashrc`
然后验证下
python
`conda info`
至此anaconda已经安装完毕
2、安装pytorch
1.去pytorch官网配置自己服务器所需要的pytorch
Pytorch build选择stable稳定版,操作系统是linux,由于上面我安装了anaconda所以package选择conda,语言python,我的CUDA是12.0所以选择了CUDA11.8,最后获取comand
pytorch官网
2、pytorch需要安装到anaconda的虚拟环境中,所以使用conda时需要先有一个虚拟环境并进入
python
#若还没有虚拟环境需要创建一个,<env_name>是环境名称,python选择指定的版本,sd需要的python>3.10 #conda create -n <env_name> python=x.xx.x
`
conda create `-`n sd python`=3.10.11`
`
#启动虚拟环境,activate就是启动,sd是环境名称
conda activate sd
然后再执行pytorch的安装
python
`conda install pytorch torchvision torchaudio pytorch`-`cuda`=11.8` `-`c pytorch `-`c nvidia`
如果出现提示需要升级conda版本的就输入,没有的话就跳过这步。我这里没截到图,会有个wanning的,注意看
python
`conda update `-`n base `-`c defaults conda`
验证安装结果
python
#首先要启动我们的sd虚拟环境,因为我们所有与stable diffusion有关的配置环境都是建立在这个虚拟环境之下的python,pytorch等都是如此
`
`#进入虚拟环境
`
conda activate sd
`
#进入python环境
python
#导入torch
import torch
#查看torch的版本
torch.version #各有两条下划线
#查看cuda版本
torch.version.cuda
#查看GPU是否运行
torch.cuda.is_available()
#退出
exit()
(三)安装sd-webui
1、启动sd
1.将sd webui clone到服务器上,此处我用了镜像。
python
`git clone https`://`github`.`moeyy`.`xyz`/`https`://`github`.`com`/`AUTOMATIC1111`/`stable`-`diffusion`-`webui`.`git`
2.链接换源。打开stable-diffusion-webui/modules/launch.until.py文件,替换以下内容
python
`torch_command `=` os`.`environ`.`get`('TORCH_COMMAND',` `"pip install torch2.0.1 torchvision0.15.2")
3.每个https://github.com/ (就在上一步的下面几行,每一个网址都要改)链接前面添加https://ghproxy.com/,替换为以下内容
python
`gfpgan_package `=` os`.`environ`.`get`('GFPGAN_PACKAGE',` `"https://ghproxy.com/https://github.com/TencentARC/GFPGAN/archive/8d2447a2d918f8eba5a4a01463fd48e45126a379.zip")
`
clip_package `=` os`.`environ`.`get`('CLIP_PACKAGE',` `"https://ghproxy.com/https://github.com/openai/CLIP/archive/d50d76daa670286dd6cacf3bcd80b5e4823fc8e1.zip")
`
openclip_package `=` os`.`environ`.`get`('OPENCLIP_PACKAGE',` `"https://ghproxy.com/https://github.com/mlfoundations/open_clip/archive/bb6e834e9c70d9c27d0dc3ecedeebeaeb1ffad6b.zip")
`
stable_diffusion_repo `=` os`.`environ`.`get`('STABLE_DIFFUSION_REPO',` `"https://ghproxy.com/https://github.com/Stability-AI/stablediffusion.git")
`
taming_transformers_repo `=` os`.`environ`.`get`('TAMING_TRANSFORMERS_REPO',` `"https://ghproxy.com/https://github.com/CompVis/taming-transformers.git")
`
k_diffusion_repo `=` os`.`environ`.`get`('K_DIFFUSION_REPO',` `'https://ghproxy.com/https://github.com/crowsonkb/k-diffusion.git')
`
codeformer_repo `=` os`.`environ`.`get`('CODEFORMER_REPO',` `'https://ghproxy.com/https://github.com/sczhou/CodeFormer.git')
`
blip_repo `=` os`.`environ`.`get`('BLIP_REPO',` `'https://ghproxy.com/https://github.com/salesforce/BLIP.git')
4.先进入虚拟环境
python
#启动虚拟环境,因为刚刚上面我们已经创建过虚拟环境了
`
conda activate sd`
5.先定位到的stable-diffusion-webui项目下
python
`cd stable`-`diffusion`-`webui`
6.第一次启动sd,sd会安装基础的配置,这里等待一段时间,网速慢的个把小时,所需要的内容才会下载完毕。
python
#以下两者都是启动公网环境,二选一执行即可。
`
`./`webui`.`sh `--`listen `#(推荐)`
`
#或者加--share也可以
./webui.sh --share
#listen与share的区别在于listen启动的地址是0.0.0.0:7860,而share启动后是一个随机的地址。
7.第一次执行会自动下载"v1-5-pruned-emaonly.safetensors"这个模型,如果下载速度还行就耐心等待,如果网络慢的同学,可以先"ctrl+C"断开下载步骤,然后到C站随便下个大模型上传上去。
2、打开webui
后续我们启动stable diffusion时分为3个步骤:
#启动虚拟环境 conda activate sd #定位到sd根目录 cd stable-diffusion-webui #加listen是启动公网环境 ./webui.sh --listen
python
#启动虚拟环境
`
conda activate sd
`
#定位到sd根目录
cd stable-diffusion-webui
#加listen是启动公网环境
./webui.sh --listen
然后等待有出现http:/0.0.0.0:7860就说明已启动成功。浏览器访问http://x.x.x.x(云主机公网ip):7860,出现stable diffusion内容即为成功。
webui界面
(四)小结
虽然webui已经启动,但是我们可以看到页面下边的配置
-
version:当前webui的版本,我在写这份文档时最新版本就是1.4,当你们看到这份文档的时候注意使用最新版本的。
-
python:版本是3.10.11,这个版本会比较合适,既能用xformers,刚刚安装又不会报错,我试过3.10.12、3.11这些版本,会出现安装不上,至于原因我没去深入研究,你们想要用最新版本的话就研究下怎么配置。
-
torch:2.0.1+cu117,sd会用到的神经网络和cuda版本,这里我cuda只有117,但是上面我安装的cuda是11.8。我不知道为什么会降一个版本,有大佬懂得话可以评论区解答下。
-
xformers:N/A,等会会安装这个,能提升出图速度。
-
gradio:这个是AI的界面,可以不用管。
-
checkpoint:这个是大模型,我们还没下载,后面步骤会下载。
二、webui-user.sh文件配置
通过我自己部署整个sd后,认为修改webui.user.sh文件,去先行配置一些参数,可以减少我们后续启动时输入的内容,以及减少后续的一些麻烦。这是其他教程所没有的,大家有必要可以参考下。
1.打开sd根目录下的webui-user.sh文件,将export commandline_args前面的#去掉,并且加上后面内容。
python
#!/bin/bash
`
`#########################################################
`
`# Uncomment and change the variables below to your need:# #########################################################
`
`# Install directory without trailing slash #install_dir="/home/$(whoami)"
`
`# Name of the subdirectory #clone_dir="stable-diffusion-webui"
`
`# Commandline arguments for webui.py, for example: export COMMANDLINE_ARGS="--medvram --opt-split-attention"
`
export COMMANDLINE_ARGS`="--theme dark --xformers --enable-insecure-extension-access --listen"
`
`# python3 executable
`
`#python_cmd="python3"
`
`# git executable
`
`#export GIT="git"
`
`# python3 venv without trailing slash (defaults to i n s t a l l d i r / {install_dir}/ installdir/{clone_dir}/venv) #venv_dir="venv"
`
`# script to launch to start the app
`
`#export LAUNCH_SCRIPT="launch.py"
`
`# install command for torch #export TORCH_COMMAND="pip install torch==1.12.1+cu113 --extra-index-url https://download.pytorch.org/whl/cu113"
`
`# Requirements file to use for stable-diffusion-webui #export REQS_FILE="requirements_versions.txt"
`
`# Fixed git repos
`
`#export K_DIFFUSION_PACKAGE=""
`
`#export GFPGAN_PACKAGE=""
`
`# Fixed git commits #export STABLE_DIFFUSION_COMMIT_HASH=""
`
`#export CODEFORMER_COMMIT_HASH=""
`
`#export BLIP_COMMIT_HASH=""
`
`# Uncomment to enable accelerated launch
`
`#export ACCELERATE="True"
`
`# Uncomment to disable TCMalloc #export NO_TCMALLOC="True" ###########################################
-
--theme dark。让webui变为暗色模式。有需要就加,没需要就不用加。
-
--xformers。Xformers库可以加速图像的生成。
-
--enable-insecure-extension-access。在我们用
--listen
启动时,会成为公网环境,在公网环境下,系统会阻止extension(扩展)的使用,以避免风险因素。所以我们如果只是自己使用的话,完全可以通过这个绕开安全检查,这样我们在启用公网环境时可以继续使用extension(扩展)功能。 -
--listen。启用公网环境。(--listen要在最后一个)。
配置完后我们在启动sd时,便不用再输入--listen
。
python
#启动虚拟环境
`
conda activate sd
`
#定位到sd根目录
cd stable-diffusion-webui
#加listen是启动公网环境
./webui.sh
最后我们启动起来的webui就是这样。
三、extensions换源
automatic1111大佬自带的extensions源我们国内无法直接访问,所以我们需要替换成境内的源,方便于我们后续使用扩展。这里我使用秋叶大佬的源地址。
找到sd/modules/ui_extensions.py
文件的这段。
python
with` gr`.`TabItem`("Available",` `id="available"):
`
`with` gr`.`Row`():
`
refresh_available_extensions_button `=` gr`.`Button`(`value`="Load from:",` variant`="primary")
`
available_extensions_index `=` gr`.`Text`(`value`="https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui-extensions/master/index.json",` label`="Extension index URL").`style`(`container`=False)
`
extension_to_install `=` gr`.`Text`(`elem_id`="extension_to_install",` visible`=False)
`
install_extension_button `=` gr`.`Button`(`elem_id`="install_extension_button",` visible`=False)
将其中的地址这段替换为https://gitee.com/akegarasu/sd-webui-extensions/raw/master/index.json
python
with` gr`.`TabItem`("Available",` `id="available"):
`
`with` gr`.`Row`():
`
refresh_available_extensions_button `=` gr`.`Button`(`value`="Load from:",` variant`="primary")
`
available_extensions_index `=` gr`.`Text`(`value`="https://gitee.com/akegarasu/sd-webui-extensions/raw/master/index.json",` label`="Extension index URL").`style`(`container`=False)
`
extension_to_install `=` gr`.`Text`(`elem_id`="extension_to_install",` visible`=False)
`
install_extension_button `=` gr`.`Button`(`elem_id`="install_extension_button",` visible`=False)
这样我们就可以秒加载扩展
四、CheckPoint的下载
(一)下载至本地再上传至服务器
-
从模型网站上下载checkpoint的模型到本地后
-
再打开服务器的编辑
- 打开model下的sd路径:stable-diffusion-webui/models/Stable-diffusion,并右键点击上传
上传至服务器后刷新webui就可以看到该模型了
(二)直接下载至服务器
1.获取下载路径,如:
python
`https`://`huggingface`.`co`/`runwayml`/`stable`-`diffusion`-`v1`-5/`resolve`/`main`/`v1`-5-`pruned`-`emaonly`.`ckpt`
2.cd到stable-diffusion-webui/models/Stable-diffusion目录下,用wget指令下载
python
#wget指令下载
`
wget https`://`huggingface`.`co`/`runwayml`/`stable`-`diffusion`-`v1`-5/`resolve`/`main`/`v1`-5-`pruned`-`emaonly`.`ckpt
`
#若出现Unable estalish SSL connent,SSL无法连接的情况,加上该指令
wget --no-check-certificate https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt
#如果wget版本过旧,更新wget
apt-get install wget -y
#以上是通过apt升级wget,如果没有apt,则需要先安装apt管理工具包
sudo apt-get install
五、LoRA的下载与安装
每个lora都附带一张图片,这张图片的名称与模型名称相同,一并上传到服务器中的lora文件夹下,在webui中就会显示该模型和预览图。当然你也可以后面安装C站助手,通过C站助手下载预览图。
六、VAE的下载与安装
1.VAE的模型全部放在这个文件夹下。模型继续使用上面提到的上传方法(这里我用本地部署的举例,服务器配置的时候要找到服务器中的path)
2.VAE模块默认是没有出来的,需要到「Settings --- User interface --- Quicksettings list」中添加VAE模块
3.再保存、重启UI即可。
七、ControlNet的下载与安装
(一)直接安装
若是境外服务器可以直接在sd上安装
https://github.com/lllyasviel/ControlNet
python
`https`://`github`.`com`/`lllyasviel`/`ControlNet`
(二)压缩包安装
1.我的是境内服务器,所以无法直接从github上下载,所以直接下载压缩包
然后将压缩包上传至服务器/stable diffusion/extensions目录下
2.定位到extensions目录下
python
`cd stable`-`diffusion`/`extensions`
3.解压zip
python
`unzip ControlNet`-`main`.zip
4.重启webui就能看到
(三)安装models
1.下载秋叶大佬已经整理好的包
链接: https://pan.baidu.com/s/1rh39DI9xVbguLO5l7O4pjA
提取码: yqqe
2.将预处理器下的downloads文件压缩成zip
3.定位位置,具体path看自己的服务器
python
`cd stable`-`diffusion`-`webui`/`extensions`/`sd`-`webui`-`controlnet`/`annotator`
4.解压zip
python
`unzip downloads`.zip
5.再将下载文件中"模型"文件下的所有文件放到stable diffusion/models/ControlNet/文件内。
6.最后即可使用ControlNet。
八、Clip skip的配置
Clip skip具体有什么用可以百度下,Clip skip默认是不显示的,需要我们自己配置。
1.先到「Settings --- Stable Diffusion --- Clip skip」中将数值调成2
2.再到「Settings --- User interface --- Quicksettings list」中添加clip模块
注意:这两个步骤不可颠倒,否者先把clip模块加载出来的话,就无法设置clip的默认值,这是个坑。
九、hypernetworks的下载与安装(选装)
去模型网站上下载hypernetworks的模型,然后上传到sd/models/hypernetworks文件夹中,然后在webui界面点击刷新就可以看到了
十、插件的使用
(一)sd的汉化
1.扩展中搜索zh
2.然后找到这2个进行安装
3.到Setting------User interface------localization选择zh-hans,然后保存,重启webui。
(二)中英对照tag自动补齐
这个插件能汉化 UI 界面、Tag 自动补全、提示词 prompt 翻译等功能,解决英文不好的问题,有效减少用翻译软件的时间,不过测试发现词库并不全,有些可能还会用到翻译软件。
想要安装这个插件,需要先装一个前置插件,叫"a1111-sd-webui-tagcomplete-main"
可以通过「扩展---从网址安装」输入以下github仓下载安装。
python
`https`://`github`.`com`/`DominikDoom`/`a1111`-`sd`-`webui`-`tagcomplete`.`git`
最后重启webui就可以看到
十一、其他
(一)可下载模型的网站
(二)如何让服务器不断开连接
腾讯云的这个OrcaTerm shell经常会不定时的断开,而我们的sd需要一直启动住,所以我们需要解决服务器断开的问题。
1.下载Putty,https://www.chiark.greenend.org.uk/\~sgtatham/putty/latest.html
2.打开putty并在host name输入自己服务器的公网ip,然后点击open
3.点击accept即可
4.此处写上自己服务器的名称和密码就是我们用orcaterm登录时这里的用户名和密码。
注意这里输入密码是不会显示的,输入完后回车即可。
5.顶部右键选择"change setting",connection这里,输入60,意味着每60秒向服务器发送一个空包保持session处于活动中。
(三)其他
python
#定位到models中的Stable-diffusion
`
cd stable`-`diffusion`-`webui`/`models`/`Stable`-`diffusion
`
#用wget命令来下载sd-v1-4模型
wget https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/resolve/main/sd-v1-4.ckpt
#如果出现SSL无法连接,那么加上---no-check-certificate
wget ---no-check-certificate https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/resolve/main/sd-v1-4.ckpt
#如果文件太大,一次性没办法下载完,可以加上断点续传
wget ---no-check-certificate --continue https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/resolve/main/sd-v1-4.ckpt
十二、总结
以上就是作者在Linux服务器下安装stable diffusion的全部内容,通过以上方法,大家可以配置一个较为完整的在线sd。至于更多的插件、模型大家就根据自己的需求去下载安装即可,更多sd的功能大家就自己去挖掘。
如果觉得本文有用,请来个三连吧~
如果觉得专栏的排版不够美观的话,可以去我的飞书看https://k9v8wpkvnx.feishu.cn/docx/Icdjdcw53oGEltxhE6yc5lmhn0e
本文为我原创 本文禁止转载或摘编
云服务器 sd stable diffusion sd安装教程 stable diffusion云部署