Stable Diffusion web UI 安装、启动脚本、常见问题、插件(linux)

Stable Diffusion本身是一个大模型,对于大多数想试试的人来说,使用这个web ui版本最合适
这个web ui是对sd模型的封装,本身不仅仅包括sd模型
建议先看完再动手,虽然不难但是有门槛,特别是因为网络问题,不过我这都有办法解决
如果只是想试试的,建议直接下载别人打好的包,自己搭建确实很麻烦
2024.7.8更新教程 推荐用1.8的,1.9的有调整,还有新的bug。。

github页面:Stable Diffusion web UI

一、可能的误区

1.误区1:必须用linux或者windows

mac os也可以,但是同样在于其它的坑多,不建议在mac os上使用,当然我也没试过。
windows和linux这个图形界面会占用显存,特别是显存小的时候更明显(windows只有server版可以只装命令行用)

2.误区2:必须用N卡

N卡坑少,出问题容易找到答案,并不是只能N卡。A卡、cpu也可以、i卡理论上可以,使用难度较大。Nvidia显卡(Cuda)或AMD显卡(ROCm)

3.误区3:必须用conda

用conda的原因在于很多开发者通常需要多个python环境,个人部署直接装在系统就行。

本人试过在windows下的部署,包括用别人打好包的,但是windows下并不稳定,特别是加上很多插件或者需要深度使用的时候

二、安装所需

但是为了坑最少,建议按照我的方法来:linux(命令行)+N卡+conda

(一)操作系统

这个webui作者写的是在debian11下开发的,所以建议也用deb系,在下面三个版本系统中我都测试过
debain11/debian12/ubuntu2204

我推荐用debian12,不会安装的,我这里有详细讲解:debian11 12安装

(二)硬件选则

1.gpu(显卡)

rtx20系及以上,建议rtx之后的显卡,8G以上显存,建议16G以上,24g玩的好,32g可以开目前的最大。
性价比比较高的有rtx4060ti 16g,rtx2060 12g,rtx3060 12g,rtx3090 24g
魔改但是可以完美使用的有rtx2080ti 22g,rtx3080 20g
再高端点的:rtx4090 24g,rtx4090D 24g,rtx a6000 48g,rtx a5000 24g,rtx 5000 ada 32g,v100 32g
顶配的:rtx 6000 ada 48g,a100(40g 80g 96g),a800 80g,h100,h200,还有一些就不写了

注意:是不能用两张卡的显存的,可以一张卡一个实例
amd的卡也是可以用的,linux下rocm兼容还是可以的,但是我手中没有,如果买a卡,rx7900xtx 24g是最合适的,24g显存

2.内存

16g以上,建议32g起,越大越好。我实测加载几十个模型后(通常不会这么做),可以吃掉上百G的内存,建议使用霄龙或者至强平台。
内存很便宜,要给够。

3.硬盘

必须有固态,否则加载非常慢。
建议300g以上空间。

(三)其它注意事项

pip命令或python命令,有时候你会是用pip3或者python3来操作(可以用软连接来统一命令)
默认是用root来操作的,如果权限不够,自行加sudo或者切换root账户


由于版本更新过快,不同版本可能差别很大(还没迭代到稳定期)
很多问题搜不到答案,只能去看源码然后修改,有时候你看到的教程在那个版本可以用,但是后面的版本就会出bug,请按照我的版本去安装,我的是全部测试过的。

二、具体安装方法-conda集成环境(debian11、12/ubuntu2204+N卡)

1.安装anaconda和cuda

anaconda使用最新版的就行
cuda建议提前安装:这个版本建议用cuda12.1,更早的sd版本建议用11.8

参考:cuda安装
参考:anaconda安装

2.使用conda安装环境(非必须)

官方指定3.10.6版本python(名字是sdwu)

conda create -n sdwu python=3.10.6

激活环境

conda activate sdwu 

3.下载程序

进入目录,我这里下载到/usr/local目录
注意:如果安装到别的目录,这里及之后的/usr/local都要修改

cd /usr/local

用git拉取(git通常已经安装,如果没有则apt-get install git)

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

附:如果无法直接下载,将整个项目下载下来,然后解压也是一样的

在这里插入图片描述

4.使用脚本

就是各种依赖的安装,如果卡住了可以看下一步的操作
下面的操作需要在conda环境中(上面的conda的sdwu)

cd /usr/local/stable-diffusion-webui
./webui.sh

脚本webui.sh默认不允许root,我这里直接修改脚本解决
那就把脚本改了,不过以后升级的时候别忘了也要改

vi /usr/local/stable-diffusion-webui/webui.sh

找到

# this script cannot be run as root by default
can_run_as_root=0

修改为下面(这里作者写了一个判断,默认是不允许root启动的)

# this script cannot be run as root by default
can_run_as_root=1

保存退出后运行

./webui.sh

如果出现python环境出错,使用下面的命令,如果不出错,则无需执行下面的命令

python3 -m venv venv/

5.如果出现卡住下载不了的问题(主要是依赖)

一定要切换pip源,国内基本无法访问原始pip源
下载基础模型huggingface时卡住,参考第四章的修改源
然后继续运行上面的脚本
如果报错,多半是网络不畅通导致下载组件到一半失败,同时使用国内的源会出现更新不及时导致无法正常安装。(比如这个版本已经更新了,但是国内源没更新,用pip会遇到这个问题)
建议多次尝试运行脚本或者解决网络问题(比如设置代理)

否则会提示例如下面的问题(无法正常连接):
在这里插入图片描述

这里后面还有几个插件,都是常用的,如果不是网络受限,安装是很容易的,如果实在无法解决网络问题,可以找别人下载好的conda环境复制过来重建环境即可

6.启动后

注意,如果linux设置了代理,是会报错的,这时候需要关闭linux代理(在环境变量/etc/profile中修改,你都改了代理,应该知道怎么改回来)
在这里插入图片描述提示:To create a public link, set share=True in launch().
此时只能本地访问,web访问127.0.0.1:7860端口
这个环境可以保存下来了,用conda导出环境,然后迁移到别的设备。
允许外网访问等写在下面第三章


上面的操作可以手动进行,如果需要变成脚本一键运行,还需要调整

7.一键启动bash脚本

由于使用了conda环境,bash脚本也需要加载conda环境才能运行,我这里不修改webui.sh了,再套一个脚本
创建目录

mkdir /etc/sh && vi /etc/sh/sdwu.sh

内容如下(注意:这种conda调用方法是根据我的conda教程来的,如果你装到别的地方需要修改)
一定要按照我这个写,最后两句不要合并命令。

#!/bin/bash

source ~/anaconda3/etc/profile.d/conda.sh

conda activate sdwu

cd  /usr/local/stable-diffusion-webui

./webui.sh

保存退出后,授予权限

chmod +755 /etc/sh/sdwu.sh

使用下面的即可一键启动

/etc/sh/sdwu.sh

有了sh脚本,可以后台运行(不建议用下面的,建议用systemctl来管理)。可以跳过这个命令

nohup /etc/sh/sdwu.sh &>/dev/null &

8.systemctl 管理

必须要上一步的脚本配合才行

vi /usr/lib/systemd/system/sdwu.service

内容如下:

[Unit]
Description=sdwu
After=network.target

[Service]
Type=simple
User = root
Group = root
ExecStart=/bin/bash /etc/sh/sdwu.sh start

[Install]
WantedBy=multi-user.target

启动并开机启动

systemctl start sdwu && systemctl enable sdwu

如果需要关闭

systemctl stop sdwu

9.安装完后的使用

遇到问题,从下面的优化和问题解决章节查询,基本上常见的都有解决方案
使用浏览器,打开ip:端口进入到界面,例如下面的
在这里插入图片描述主要配件的版本如下
在这里插入图片描述

三、优化

修改配置后需要重启才能生效

1.非本地127.0.0.1访问

1.1 1.8版本之前是下面的用法
vi /usr/local/stable-diffusion-webui/modules/paths_internal.py

找到如下

commandline_args = os.environ.get('COMMANDLINE_ARGS', "")

在后面的那个""中加入–listen,如果有别的参数,记得空格分开

commandline_args = os.environ.get('COMMANDLINE_ARGS', "--listen")

设置完成后,可以使用内网穿透映射到公网上,注意不要使用默认端口,容易被扫描

1.2 1.9之后的版本是

我还没找到,

2.设置访问密码

注意:最新版的bug已经修复了
不要使用默认的7860端口,放到公网上的会被别人扫描和蹭着用(我就遇到过)

vi /usr/local/stable-diffusion-webui/modules/paths_internal.py

如果有别的参数,记得空格分开。比如上面的那条

commandline_args = os.environ.get('COMMANDLINE_ARGS', "--listen --gradio-auth 用户名:密码")

配置完成后,再次登录就要输入密码了
在这里插入图片描述

3.安装xformers

默认是不安装xformers的,如果安装了,可以优化gpu显存使用,效果比较明显,如果你用了32G以上显卡,这一步可以省了,24g显卡实测也会爆显存。
xformers的版本参考/modules/launch_utils.py中的说明。通过脚本可以自动安装,无需手动。如果出现问题,可以手动安装。
在这里插入图片描述
比如这里是0.0.23
如果手动安装,则安装这个版本,也可以添加后自动安装,如果自动安装失败,可以按照下面的这条命令手动安装

pip install xformers==0.0.23

修改启动脚本

vi /usr/local/stable-diffusion-webui/modules/paths_internal.py

在下面添加–xformers,如果有别的参数,记得空格

commandline_args = os.environ.get('COMMANDLINE_ARGS', "--listen --xformers")

然后启动(记得关闭代理),第一次启动会自动处理xformers并安装依赖,耐心等待即可。

/etc/sh/sdwu.sh

结果如下
在这里插入图片描述

4.汉化

如果点不开下面的链接,复制链接到浏览器地址栏再打开
里面有具体的操作步骤,我这就不再写了。如果直接安装失败,自行下载就行了。

github汉化项目链接

5.新模型的导入

模型的事很复杂,更多详细的我放到其他链接里面细说
上面安装的只是一个模型,后面比如更新了高的版本,可以下载 .safetensors的文件,放到指定目录下即可

找到存放位置

find / -name "*.safetensors"

我的是在

/usr/local/stable-diffusion-webui/models/Stable-diffusion

可以将其它的模型导入使用,比如自己训练的

6.使用暗黑主题

在url后面添加

?__theme=dark

比如:

127.0.0.1:7860/?__theme=dark

四、常见问题解决

1.Try adding --no-half-vae commandline argument to fix this

在新版本中,可能会自动处理,如果不能处理再进行调整
半精度问题,不用即可

vi /usr/local/stable-diffusion-webui/modules/paths_internal.py

在后面的""后面添加–no-half-vae,如果有别的参数,记得空格分开

commandline_args = os.environ.get('COMMANDLINE_ARGS', "--no-half-vae")

2.UI界面提示Error: Connection errored out

websocket问题

vi /usr/local/stable-diffusion-webui/modules/paths_internal.py

在后面的""后面添加–no-gradio-queue,如果有别的参数,记得空格分开

commandline_args = os.environ.get('COMMANDLINE_ARGS', "--no-gradio-queue")

3.Cannot locate TCMalloc (improves CPU memory usage)

在开始运行sdwu的时候会提示
这个可以忽略,主要是优化cpu和内存的使用
安装下面的依赖解决(debian和ubuntu都是这个命令)
再次重启的时候就不会有了

apt-get install libgoogle-perftools4 libtcmalloc-minimal4

4.启动时提示Cannot activate python venv

操作

python3 -c 'import venv'
python3 -m venv venv/

5.ImportError: libgthread-2.0.so.0: cannot open shared object file: No such file or directory

apt-get install libglib2.0-0

6.libtcmalloc_minimal.so.4 is linked with libc.so,execute LD_PRELOAD=/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4

卸载或者编译安装(源给的包有问题),TCMalloc 不装也能用,增加一些cpu使用而已

apt-get remove libgoogle-perftools4 libtcmalloc-minimal4

7.下载模型huggingface时卡住

linux 执行修改环境变量,修改huggingface为代理

export HF_ENDPOINT=https://hf-mirror.com

五、其它相关

由于比较多,专门写链接

(一)插件

插件精选链接

(二)模型

等链接。

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ziqibit

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值