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

news2024/11/14 21:55:41

Stable Diffusion本身是一个模型,对于大多数想试试的人来说,使用这个web ui版本最合适
建议先看完再动手,虽然不难但是有门槛(主要要解决网络问题),如果深入需要会python
如果只是想试试的,建议直接下载别人打好的包,自己搭建确实很麻烦
2023.12.4更新教程 1.6.1版本,1.7测试版已经出来,不过还是先用稳定版的

github页面:Stable Diffusion web UI

一、可能的误区

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

mac os也可以,但是同样在于其它的坑多,不建议在mac os上使用,当然我也没试过。

2.误区2:必须用N卡

N卡坑少,出问题容易找到答案,并不是只能N卡。A卡、cpu也可以,使用难度较大。后面我会再考虑写一个A卡的,如果有人愿意捐我一块A卡。
Nvidia显卡(Cuda)或AMD显卡(ROCm)

3.误区3:必须用conda

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

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

二、安装所需

为了坑最少,建议按照我的方法来:linux+N卡+conda

(一)操作系统

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

(二)硬件

1.gpu

gtx10系以上,建议rtx之后的显卡,8G以上显存,建议16G以上。
性价比比较高的有rtx4060ti 16g,rtx2060 12g,rtx3060 12g,rtx3090 24g,rtx titan 24g
再高端点的:rtx4090,rtx 6000,a100 40g,rtx a6000
或者:a100 80g,h100
注意:是不能用两张卡的现存的,可以一张卡一个实例

2.内存

建议32g起,我实测加载几十个模型后,可以吃掉上百G的内存,建议使用霄龙或者至强平台
内存很便宜,要给够

3.硬盘

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

(三)其它注意事项

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


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

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

1.安装anaconda和cuda

anaconda使用最新版的就行
cuda不必要安装,因为conda环境里面也有,不过建议还是装一下,方便其它应用使用,顺带也装了N卡驱动
建议用cuda11.8,高版本的cuda也可以用,我实际使用12.2是没问题的

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

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

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

conda create -n sdwu python=3.10.6

激活环境

conda activate sdwu 

source activate sdwu

3.下载程序

进入目录
注意:如果安装到别的目录,这里及之后的/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

找到

can_run_as_root=0

修改为(或者删掉下面的判断语句)

can_run_as_root=1

保存退出后运行

./webui.sh

如果出现python环境出错,使用下面的,如果不出错,则跳过

python3 -m venv venv/

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

源下载过慢,可以切换pip源或者从单个下载,然后继续运行上面的脚本
如果报错,多半是网络不畅通导致下载组件到一半失败,同时使用国内的源会出现更新不及时导致无法正常安装。(比如这个版本已经更新了,但是国内源没更新,用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教程来的,如果你装到别的地方需要修改)
一定要按照我这个写,最后两句不要合并命令,因为官方的脚本存在一些逻辑性bug。(估计后面的版本会修改吧)

#!/bin/bash

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

conda activate sdwu

cd  /usr/local/stable-diffusion-webui

./webui.sh

#!/bin/bash

source activate sdwu

cd  /usr/local/stable-diffusion-webui

./webui.sh

保存退出后,授予权限

chmod +777 /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访问

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")

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

2.设置访问密码

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

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

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

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

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

3.安装xformers

默认是不安装xformers的,如果安装了,可以优化gpu显存使用,效果比较明显,如果你用了32G以上显卡,这一步可以省了,24g显卡实测也会爆显存。

torch: 2.0.1+cu118 适配 0.0.20版本的xformers

pip install xformers==0.0.20

修改启动脚本

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.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/

五、其它相关

由于比较多,专门写链接

(一)插件

等链接。

(二)模型

等链接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1420543.html

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

相关文章

市面上的小型办公室都是哪些人在租?

市面上的小型办公室,又称服务式办公室,是一种将传统的写字楼进行精装修,分割成若干个独立的小型办公空间,提供给不同的租户的新型办公模式。那么,市面上的小型办公室都是哪些人在租?本文将从租户的特点和需…

Linux服务器配置与管理(第四次实验)

实验目的及具体要求 目的 1.了解网络配置之文件 2.掌握网络常用命令 3.掌握ssh远程连接 任务 1.修改主机名为TX 2.查看系统的网络接口信息 3.在路由表中添加一条路由 4.删除上一步添加的路由 5.查看网络中所有的TCP端口连接信息 6.X SHELL远程链接Centos系统 7.在X …

35岁老兵,从金山被裁员到创业

35岁,对于许多人而言,是事业中一个重要的节点。对我而言,这一年成为了我生命中的转折点。2023年8月份的一个上午,突然被领导叫到小黑屋,告知我被裁员了。起初,这个决定对我来说是一个巨大的打击&#xff0c…

榜单!AR-HUD进入高增速周期,TOP10本土供应商争夺市场

高工智能汽车研究院数据显示,2023年1-9月,中国市场(不含进出口)乘用车前装标配W/AR HUD交付149.54万辆,同比增长45.86%。 其中,W-HUD仍是主流。而同期,AR-HUD的前装标配搭载量超过10万辆&#x…

Mysql-ReadView + MVCC-RR 与 RC

实验准备 创建脚本 CREATE TABLE user (id int(11) NOT NULL AUTO_INCREMENT,name varchar(16) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,age int(11) NULL DEFAULT NULL,addr varchar(256) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,PRIMARY …

希尔伯特变换的在信号解调时的示例

1.希尔伯特变换的应用场景 希尔伯特变换,在数学上的含义是清晰的。它是一个数字移相器,可以把通过它的任何一个信号相移-90度。这个数学工具在信号解调时,会有非常有用的特性出现。可以看示例: 解释一下: 1.最上面的…

transformer | transformer的输入部分input coding

文章目录 transformer的输入部分input codingBPEBPE所解决的问题——OOV PE(Position Encoding)位置编码 transformer的输入部分input coding transformer的输入部分input codingBPEPE BPE BPE是指一种词分类算法。 起初,会将每个单词都拆分…

旧物回收小程序开发:创新与可持续发展的交汇点

随着社会的发展和人们生活水平的提高,物品的更新换代速度越来越快,这导致了大量的旧物被闲置或丢弃。为了解决这个问题,旧物回收成为了重要的环保行动。而随着移动互联网的普及,旧物回收小程序的开发也成为了新的趋势。本文将探讨…

本次安装Visual Studio 所用的安装程序不完整。请重新运行VisualStudio安装程序以解决此问题

今天点开VS的时候遇到了这个问题 因为昨天升级到一半电脑关机了,今天打开软件遇到如下错误, 解决办法很简单,找到安装目录进入Installer文件夹 我的目录在C:\Program Files (x86)\Microsoft Visual Studio\Installer 找到vs_installer.exe…

《HTML 简易速速上手小册》第8章:HTML 表单高级技术(2024 最新版)

文章目录 8.1 数据收集与处理8.1.1 基础知识8.1.2 案例 1:创建一个注册表单8.1.3 案例 2:创建一个调查问卷表单8.1.4 案例 3:创建一个动态添加输入字段的表单 8.2 定制化表单元素8.2.1 基础知识8.2.2 案例 1:创建一个带有定制选择…

打击者H5小游戏

欢迎来到程序小院 打击者 玩法&#xff1a;点击飞机上下左右移动躲过子弹射击&#xff0c;打掉上方敌人飞机&#xff0c; 遇到药包会增加能量&#xff0c;弹药包会升级武器&#xff0c;快去射击吧^^。开始游戏https://www.ormcc.com/play/gameStart/262 html <div id"…

点击查看 Milvus 社区十大关键词(下)

在昨天的文章《点击查看 Milvus 社区十大关键词&#xff08;上&#xff09;》中&#xff0c;我们提到将 2023 年所有 Milvus 技术交流群的聊天历史做了整理分析&#xff0c;得到了如下的一张词云图&#xff1a; 按照热度&#xff0c;排名前十的关键词依次为&#xff1a;版本、查…

游戏缺失d3dcompiler_47.dll怎么办,这五种方法可以帮你解决

d3dcompiler_47.dll文件的缺失可能会导致一系列显著且影响用户体验的问题。作为DirectX 3D编译器的重要组件&#xff0c;该动态链接库文件在许多依赖于高级图形处理的应用程序和游戏运行过程中起着至关重要的作用。当系统中缺少这个特定的dll文件时&#xff0c;可能会出现诸如应…

会话技术复习笔记

一.登录校验的需求 什么是登录校验&#xff1f; 所谓登录校验&#xff0c;指的是我们在服务器端接收到浏览器发送过来的请求之后&#xff0c;首先我们要对请求进行校验。先要校验一下用户登录了没有&#xff0c;如果用户已经登录了&#xff0c;就直接执行对应的业务操作就可以…

H264 编码标准配置档次 Profile 详解

H264 中 Profile 定义&#xff1a; H264 标准中规定了 多种档次Profile&#xff0c; 每种 Profile 都规定了一个算法特征和限制的子集&#xff0c;任何遵守某个 Profile 的解码器都应该支持与其相应的子集。维基百科中解释&#xff1a; The standard defines several sets of …

深度学习之循环神经网络 (基础)

循环神经网络简称为RNN&#xff0c;&#xff08;之前讲到的卷积神经网络简称为CNN&#xff09;。 以前我们在使用全链接网络的时候&#xff0c;我们将这种网络叫做Dense 或者是Deep。 Dense链接指的是全链接的。 我们输入的数据是数据样本的不同特征&#xff1a;x1&#xff…

STM32F407移植OpenHarmony笔记4

上一篇写到make menuconfig报错&#xff0c;继续开整。 make menuconfig需要/device/soc/*下面有对应的Kconfig文件。 直接去gitee下载stm32的配置文件拿来参考用。 先提取Kconfig文件&#xff0c;后面再添加其它文件。https://gitee.com/openharmony/device_soc_st/tree/Open…

ubuntu 22安装配置并好安全加固后,普通用户一直登录不上

现象 ubuntu 22安装配置并好安全加固后&#xff0c;普通用户一直登录不上 排查报错 查看日志/var/log/auth.log发现报错 Jan 30 15:49:57 aiv-O-E-M sshd[62570]: PAM unable to dlopen(pam_tally2.so): /lib/security/pam_tally2.so: cannot open shared object file: No …

Docker最新超详细版教程通俗易懂(基础版)

Docker概述 概念&#xff1a;容器虚拟化技术&#xff0c;系统平滑移植&#xff0c;解决了运⾏环境和配置问题的软件容 器&#xff0c;⽅便做持续集成并有助于整体发布的容器虚拟化技术 意义&#xff1a;Docker的出现使得Docker得以打破过去程序即应⽤的观念&#xff0c;透过…

详讲api网关之kong的基本概念及安装和使用(二)

consul的服务注册与发现 如果不知道consul的使用&#xff0c;可以点击上方链接&#xff0c;这是我写的关于consul的一篇文档。 upstreamconsul实现负载均衡 我们知道&#xff0c;配置upstream可以实现负载均衡&#xff0c;而consul实现了服务注册与发现&#xff0c;那么接下来…