Stable Diffusion本身是一个模型,对于大多数想试试的人来说,使用这个web ui版本最合适
在github的Stable Diffusion相关应用中,目前为止是星星最多的
建议先看完再动手,虽然不难但是有门槛(主要要解决网络问题)
会持续更新
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拉取项目的本质也是下载文件啊
为了坑最少,建议按照我的方法来:
ubuntu2204+x86_64
gtx10系以上,建议rtx之后的显卡,4G以上现存,建议8g以上
具体操作看下一节
无需提前安装python环境
可以不用git,我下面写了
如果使用cpu来做处理,可以不用装cuda,就是速度慢
anaconda使用最新版的就行
cuda的版本可以使用11.8,如果用下面的教程,注意cuda版本,使用自己需要的
参考:cuda安装
参考:anaconda安装
官方指定3.10.6版本python(名字是sdwu)
conda create -n sdwu python=3.10.6
激活环境
conda activate sdwu
实际上git也是把文件下载下来,如果不习惯,直接下载文件也行,不用装git(我这里下载下来了)
进入目录
cd /usr/local
网盘直接下载: Stable Diffusion 脚本
或用git拉取(git通常已经安装,如果没有则apt-get install git)
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
附:直接下载方法,在项目目录把zip下载下来,解压即可,和git效果一样。
可以打开看看,就是各种依赖的安装,如果卡住了可以看下一步的操作
cd /usr/local/stable-diffusion-webui
python launch.py
源下载过慢,可以切换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
到目前为止,上面的操作在国内网络下即可。
实在没有耐心一点点去解决无法直连下载的各种问题了。
这里后面还有几个插件,都是常用的,如果不是网络受限,安装是很容易的,如果实在无法解决网络问题,可以找别人下载好的复制过来重建环境即可
注意,如果linux设置了代理,是会报错的
提示:To create a public link, set share=True
in launch()
.
此时只能本地访问,如果要外部访问,需要修改配置文件webui.py
查找webui.py
find / -name "webui.py"
按照上面的教程,位置如下
vi /usr/local/stable-diffusion-webui/webui.py
找到demo.launch(并将share改为True(首字母大写),保存重新启动即可(python launch.py)
注意:如果改True,会生成一个72小时链接给别人,如果不想这么做,使用默认的只允许本地访问。
web访问127.0.0.1:7860端口
编辑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导出环境,然后迁移到别的设备。
创建目录
mkdir /etc/sh && vi /etc/sh/sdwu.sh
内容如下
#!/bin/bash
source ~/anaconda3/etc/profile.d/conda.sh
conda activate sdwu
python /usr/local/stable-diffusion-webui/launch.py
保存退出后,使用下面的即可一键启动
/etc/sh/sdwu.sh
有了sh脚本,可以后台运行
nohup /etc/sh/sdwu.sh &>/dev/null &
vi /usr/lib/systemd/system/sdwu.service
内容如下:
[Unit]
Description=sdwu
After=network.target
[Service]
Type=simple
User = root
Group = root
KillMode=control-group
ExecStart=/bin/bash /etc/sh/sdwu.sh start
PrivateTmp=true
[Install]
WantedBy=multi-user.target
启动并开机启动
systemctl start sdwu && systemctl enable sdwu
上面安装的只是一个模型,后面比如更新了高的版本,可以下载 .safetensors的文件,放到指定目录下即可
找到存放位置
find / -name "*.safetensors"
我的是在
/usr/local/stable-diffusion-webui/models/Stable-diffusion
可以将其它的模型导入使用,比如自己训练的
注意:密码登录可能有bug,官方已经说明,等后面更新
如果不加限制,放到公网上的会被别人扫描和蹭着用(我就遇到过)
找到并改为(7中间一样的配置位置)
编辑launch.py,找到如下,将用户名和密码设置为自己需要的
commandline_args = os.environ.get('COMMANDLINE_ARGS', "--listen --gradio-auth 用户名:密码")
默认是不安装xformers的,如果安装了,可以优化gpu显存使用
pip install xformers==0.0.16rc425
在启动脚本添加
commandline_args = os.environ.get('COMMANDLINE_ARGS', "--listen --xformers")
github项目链接
github项目链接2