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

[复制链接]
查看851 | 回复0 | 2023-8-16 13:18:23 | 显示全部楼层 |阅读模式
Stable Diffusion本身是一个模型,对于大多数想试试的人来说,使用这个web ui版本最合适
建议先看完再动手,虽然不难但是有门槛(主要要解决网络问题),如果深入需要会python
如果只是想试试的,建议直接下载别人打好的包,自己搭建确实很麻烦
2023.8.13更新教程 1.5.1版本
github页面:Stable Diffusion web UI
一、可能的误区

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

mac os也可以,但是同样在于其它的坑多,不建议在mac os上使用,当然我也没试过。
2.误区2:必须用N卡

N卡坑少,出问题容易找到答案,并不是只能N卡。A卡、i卡、cpu也可以,不过可能使用难度较大。
Nvidia显卡(Cuda)或AMD显卡(ROCm)
3.误区3:必须用conda

用conda的原因在于很多开发者通常需要多个python环境,个人部署直接装在系统就行
为了方便后期深度使用和应用,还是建议linux+N卡+conda
本人试过在windows下的部署,包括用别人打好包的,但是windows下不稳定,特别是加上很多插件或者需要深度使用的时候
二、安装所需

为了坑最少,建议按照我的方法来:
(一)操作系统

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

1.gpu

gtx10系以上,建议rtx之后的显卡,8G以上显存,建议16G以上。
我用的是rtx4090,性价比比较高的有rtx4060ti 16g,rtx2060 12g,rtx3060 12g,rtx3090 24g
2.内存

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

必须有固态,否则加载非常慢
(三)其它注意事项

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)
实际这个1.5.1版本运行的是3.11.2版本的python(也可以安装3.11.2版本的)
  1. conda create -n sdwu python=3.10.6
复制代码
激活环境
  1. conda activate sdwu
复制代码
3.安装git或直接把东西下载下来

实际上git也是把文件下载下来,如果不习惯,直接下载文件也行,不用装git(我这里下载下来了)
进入目录
  1. cd /usr/local
复制代码
或用git拉取(git通常已经安装,如果没有则apt-get install git
)
  1. git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
复制代码
如果git没有安装,则使用
  1. apt-get install git
复制代码
附:直接下载方法,在项目目录把zip下载下来,解压即可,和git效果一样。或者在发行版里下载上传,内容是一样的。不过后面还是需要用到git,所以还安装git吧。

4.使用脚本

就是各种依赖的安装,如果卡住了可以看下一步的操作
下面的操作需要在conda环境中(上面的conda的sdwu)
  1. cd /usr/local
  2. /stable-diffusion-webui
复制代码
  1. ./webui.sh
复制代码
脚本webui.sh默认不允许root,我这里直接修改脚本解决
那就把脚本改了,不过以后升级的时候别忘了也要改
  1. vi /usr/local/stable-diffusion-webui/webui.sh
复制代码
找到
  1. can_run_as_root=0
复制代码
修改为(或者删掉下面的判断语句)
  1. can_run_as_root=1
复制代码
保存退出后运行
  1. ./webui.sh
复制代码
如果出现python环境出错,使用
  1. 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了,再套一个脚本
创建目录
  1. mkdir /etc/sh && vi /etc/sh/sdwu.sh
复制代码
内容如下(注意:这种conda调用方法是根据我的conda教程来的,如果你装到别的地方需要修改)
一定要按照我这个写,最后两句不要合并命令,因为官方的脚本存在一些逻辑性bug。(估计后面的版本会修改吧)
  1. #!/bin/bash
  2. source ~/anaconda3/etc/profile.d/conda.sh
  3. conda activate sdwu
  4. cd  /usr/local/stable-diffusion-webui
  5. ./webui.sh
复制代码
保存退出后,授予权限
  1. chmod +777 /etc/sh/sdwu.sh
复制代码
使用下面的即可一键启动
  1. /etc/sh/sdwu.sh
复制代码
有了sh脚本,可以后台运行
  1. nohup /etc/sh/sdwu.sh
  2. &>/dev/null &
复制代码
8.systemctl 管理

必须要上一步的脚本配合才行
  1. vi /usr/lib/systemd/system/sdwu.service
复制代码
内容如下:
  1. [Unit]Description=sdwuAfter=network.target[Service]Type=simpleUser = rootGroup = rootExecStart=/bin/bash /etc/sh/sdwu.sh
  2. start[Install]WantedBy=multi-user.target
复制代码
启动并开机启动
  1. systemctl start sdwu && systemctl enable sdwu
复制代码
如果需要关闭
  1. systemctl stop sdwu
复制代码
9.安装完后的使用

使用浏览器,打开ip:端口进入到界面,例如下面的
主要配件的版本如下

三、优化

修改配置后需要重启才能生效
1.非本地127.0.0.1访问

不同版本的配置位置可能不同,按照1.5.1的版本来进行设置
  1. vi /usr/local/stable-diffusion-webui/modules/paths_internal.py
复制代码
找到如下
  1. commandline_args = os.environ.get('COMMANDLINE_ARGS', "")
复制代码
在后面的那个""中加入–listen,如果有别的参数,记得空格分开
  1. commandline_args = os.environ.get('COMMANDLINE_ARGS', "--listen")
复制代码
设置完成后,可以使用内网穿透映射到公网上,注意不要使用默认端口,容易被扫描
2.设置访问密码

注意:密码登录可能有bug,如果开启后出现问题,则关闭
不要使用默认的7860端口,放到公网上的会被别人扫描和蹭着用(我就遇到过)
  1. vi /usr/local/stable-diffusion-webui/modules/paths_internal.py
复制代码
如果有别的参数,记得空格分开
  1. commandline_args = os.environ.get('COMMANDLINE_ARGS', "--gradio-auth 用户名:密码")
复制代码
配置完成后,再次登录就要输入密码了

3.安装xformers

默认是不安装xformers的,如果安装了,可以优化gpu显存使用,效果比较明显,如果你用了32G以上显卡,这一步可以省了,24g显卡实测也会爆显存。
torch: 2.0.1+cu118 适配 0.0.20版本的xformers
  1. pip install xformers==0.0.20
复制代码
修改启动脚本
  1. vi /usr/local/stable-diffusion-webui/modules/paths_internal.py
复制代码
在下面添加–xformers,如果有别的参数,记得空格
  1. commandline_args = os.environ.get('COMMANDLINE_ARGS', "--listen --xformers")
复制代码
4.汉化

如果点不开下面的链接,复制链接到浏览器地址栏再打开
里面有具体的操作步骤,我这就不再写了
github汉化项目链接
github汉化项目链接2
5.新模型的导入

上面安装的只是一个模型,后面比如更新了高的版本,可以下载 .safetensors的文件,放到指定目录下即可
找到存放位置
  1. find / -name "*.safetensors"
复制代码
我的是在
  1. /usr/local/stable-diffusion-webui/models/Stable-diffusion
复制代码
可以将其它的模型导入使用,比如自己训练的
6.使用暗黑主题

在url后面添加
  1. ?__theme=dark
复制代码
比如:
  1. 127.0.0.1:7860/?__theme=dark
复制代码
四、常见问题解决

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

半精度问题,不用即可
  1. vi /usr/local/stable-diffusion-webui/modules/paths_internal.py
复制代码
在后面的""后面添加–no-half-vae,如果有别的参数,记得空格分开
  1. commandline_args = os.environ.get('COMMANDLINE_ARGS', "--no-half-vae")
复制代码
2.Error: Connection errored out

websocket问题
  1. vi /usr/local/stable-diffusion-webui/modules/paths_internal.py
复制代码
在后面的""后面添加–no-gradio-queue,如果有别的参数,记得空格分开
  1. commandline_args = os.environ.get('COMMANDLINE_ARGS', "--no-gradio-queue")
复制代码
3.Cannot locate TCMalloc (improves CPU memory usage)

这个可以忽略,主要是优化cpu和内存的使用
安装下面的依赖解决(debian和ubuntu都是这个命令)
  1. apt-get install libgoogle-perftools4 libtcmalloc-minimal4
复制代码
五、插件相关

插件能有效改善体验
在/usr/local/stable-diffusion-webui/extensions目录下放置,也可以从ui界面直接下载
(一)sd-webui-controlnet

controlnet github
(二)sd-webui-prompt-all-in-one

自动添加提示词的工具,非常好用
prompt-all-in-one github

来源:https://blog.csdn.net/ziqibit/article/details/129964308
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则