Stable Diffusion本身是一个模型,对于大多数想试试的人来说,使用这个web ui版本最合适
在github的Stable Diffusion相关应用中,目前为止是星星最多的
建议先看完再动手,虽然不难但是有门槛(主要要解决网络问题)
2023.6.21更新 1.32版本,重新按照
github页面:Stable Diffusion web UI
一、可能的误区
1.误区1:必须用linux或者windows
mac os也可以,但是同样在于其它的坑多,不建议在mac os上使用,当然我也没试过。
2.误区2:必须用N卡
N卡坑少,出问题容易找到答案,并不是只能N卡。A卡,甚至cpu也可以,不过可能使用难度较大。
Nvidia显卡(Cuda)或AMD显卡(ROCm)
3.误区3:必须用conda
用conda的原因在于很多开发者通常需要多个python环境,个人部署直接装在系统就行
4.误区4:必须用git
可以直接把文件下载下来解压就行,git拉取项目的本质也是下载文件啊
二、安装所需
为了坑最少,建议按照我的方法来:
(一)操作系统+cpu架构
ubuntu2204+x86_64
(一)显卡
gtx10系以上,建议rtx之后的显卡,4G以上现存,建议8g以上
(二)软件
具体操作看下一节
1.conda环境安装
无需提前安装python环境
2.下载脚本文件
可以不用git,我下面写了
3.安装cuda及显卡驱动
二、具体安装方法-conda集成环境(ubuntu2204+N卡)
如果使用cpu来做处理,可以不用装cuda,就是速度慢
1.安装anaconda和cuda
anaconda使用最新版的就行
cuda的版本可以使用11.8,如果用下面的教程,注意cuda版本,使用自己需要的
参考:cuda安装
参考:anaconda安装
2.使用conda安装环境(非必须)
官方指定3.10.6版本python(名字是sdwu)
conda create -n sdwu python=3.10.6
激活环境
conda activate sdwu
3.安装git或直接把东西下载下来
实际上git也是把文件下载下来,如果不习惯,直接下载文件也行,不用装git(我这里下载下来了)
进入目录
cd /usr/local
或用git拉取(git通常已经安装,如果没有则apt-get install git)
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
附:直接下载方法,在项目目录把zip下载下来,解压即可,和git效果一样。或者在发行版里下载上传,内容是一样的。
4.使用脚本
可以打开看看,就是各种依赖的安装,如果卡住了可以看下一步的操作
cd /usr/local/stable-diffusion-webui
python launch.py
5.如果出现卡住下载不了的问题(主要是依赖)
源下载过慢,可以切换pip源或者从单个下载,然后继续运行上面的脚本
Installing gfpgan卡住
pip install basicsr -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install gfpgan -i https://pypi.tuna.tsinghua.edu.cn/simple
到目前为止,上面的操作在国内网络下即可。
实在没有耐心一点点去解决无法直连下载的各种问题了。
这里后面还有几个插件,都是常用的,如果不是网络受限,安装是很容易的,如果实在无法解决网络问题,可以找别人下载好的复制过来重建环境即可
6.启动后
注意,如果linux设置了代理,是会报错的
提示:To create a public link, set share=True
in launch()
.
此时只能本地访问,web访问127.0.0.1:7860端口
7.非本地访问
1.3脚本之后作者重新配置了文件地址,现在位置变了
vi
编辑launch.py,找到如下
commandline_args = os.environ.get('COMMANDLINE_ARGS', "")
并修改为
commandline_args = os.environ.get('COMMANDLINE_ARGS', "--listen")
上面的操作只能本地访问,如果想在互联网上用,做个反向代理吧。
可以使用frp将端口映射到局域网,或者nginx转发,只要程序认为是localhost请求的就行。
frp顺带可以内网穿透了,可以参考我的这篇frp用法,将7860端口内网穿透即可。
nginx等其它的操作方法我就不写了。
这个环境可以保存下来了,用conda导出环境,然后迁移到别的设备。
8.一键启动bash脚本
创建目录
mkdir /etc/sh && vi /etc/sh/sdwu.sh
内容如下
#!/bin/bashsource ~/anaconda3/etc/profile.d/conda.shconda activate sdwupython/usr/local/stable-diffusion-webui/launch.py
保存退出后,使用下面的即可一键启动
chmod +777 /etc/sh/sdwu.sh
/etc/sh/sdwu.sh
有了sh脚本,可以后台运行
nohup /etc/sh/sdwu.sh &>/dev/null &
9.systemctl 管理(参考)
vi /usr/lib/systemd/system/sdwu.service
内容如下:
[Unit]Description=sdwuAfter=network.target[Service]Type=simpleUser = rootGroup = rootKillMode=control-groupExecStart=/bin/bash /etc/sh/sdwu.sh startPrivateTmp=true[Install]WantedBy=multi-user.target
启动并开机启动
systemctl start sdwu && systemctl enable sdwu
三、优化
1.新模型的导入
上面安装的只是一个模型,后面比如更新了高的版本,可以下载 .safetensors的文件,放到指定目录下即可
找到存放位置
find / -name "*.safetensors"
我的是在
/usr/local/stable-diffusion-webui/models/Stable-diffusion
可以将其它的模型导入使用,比如自己训练的
2.设置密码登录
1.3版本后改位置了,我看了源码找到了位置
vi /usr/local/stable-diffusion-webui/modules/paths_internal.py
注意:密码登录可能有bug,官方已经说明,等后面更新
如果不加限制,放到公网上的会被别人扫描和蹭着用(我就遇到过)
找到并改为(7中间一样的配置位置)
编辑launch.py,找到如下,将用户名和密码设置为自己需要的
commandline_args = os.environ.get('COMMANDLINE_ARGS', "--listen --gradio-auth 用户名:密码")
配置完成后,再次登录就要输入密码了
3.安装xformers
默认是不安装xformers的,如果安装了,可以优化gpu显存使用
torch: 2.0.1+cu118 适配 0.0.20版本的xformers,脚本写的是0.0.17不要装那个版本,会造成其它的问题
pip install xformers==0.0.20
在启动脚本添加,1.3版本后改了位置,从源码找到应该修改这个文件
vi /usr/local/stable-diffusion-webui/modules/paths_internal.py
commandline_args = os.environ.get('COMMANDLINE_ARGS', "--listen --xformers")
4.汉化
github项目链接
github项目链接2
四、常见错误
1.Try adding –no-half-vae commandline argument to fix this
vi /usr/local/stable-diffusion-webui/modules/paths_internal.py
在下面的”–listen –xformers”后面添加–no-half-vae
commandline_args = os.environ.get('COMMANDLINE_ARGS', "--listen --xformers")