SD:在一个 Ubuntu 系统安装 stable diffusion Web UI
目录
前言
-
教程来源
以下方法主要通过提问 AI 得到答案,遇到安装问题也是和 AI 描述并尝试解决方法。
有些问题 AI 也没能解决,直接在搜索引擎中搜索,找相关的帖子或博客。
请读者朋友们因地制宜。 -
核心内容
安装 stable diffusion 的核心内容,主要包括:- 软件的项目文件
- 后台进程的启动&关闭 + 前台访问
- 插件安装
1. 前置准备
1.1 系统版本
在 linux 终端中,用 cat /etc/os-release 命令查看系统版本。
Ubuntu 24.04 LTS
1.2 工具准备
需要有 git 用于下载仓库(git 的具体安装方法略,自行搜索或者问 AI)。
1.3 python环境
这里我使用 anaconda 进行python 环境的安装(anaconda 的具体安装方法略,自行搜索或者问 AI)。
用 conda 命令创建需要的 python 环境,并激活相应的环境
conda create -n sd_py3p10 python=3.10
conda activate sd_py3p10
1.4 安装 pytorch
pip install torch torchvision torchaudio \
-i https://pypi.tuna.tsinghua.edu.cn/simple \
--extra-index-url https://download.pytorch.org/whl/cu124
注1:这里用镜像站下载更快
注2:关于永久配置镜像站
mkdir -p ~/.pip
cat >> ~/.pip/pip.conf <<'EOF'
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
extra-index-url = https://download.pytorch.org/whl/cu124
EOF
2. 下载开源 SD web UI
mkdir -p ~/programs/
cd ~/programs/
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui
注意,下载路径是可以自行定义的,我是在 /home/ 目录下创建了一个名为 programs 的目录,并在里面进行下载。
3. 下载模型
主要分为 主模型 和 LoRa 模型(这里使用了国内的 liblib 平台 下载)
- 主模型存放在 stable-diffusion-webui/Stable-diffusion/ 下
- LoRa 模型存放在 stable-diffusion-webui/models/Lora/ 下
4. 启动软件
4.1 启动后台进程
注意先 cd 到自己的 stable-diffusion-webui 目录下
- 首次启动
如果在前面没有给python包的下载配置“镜像网址”,这里需要先指定一下镜像站,如果已经配置了则无需。
# 把 pip 源写进环境变量,launch.py 里调用的子进程会继承
export PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
export PIP_EXTRA_INDEX_URL=https://download.pytorch.org/whl/cu124
直接使用 launch.py 脚本启动(如果没有可执行权限,使用 chmod +x launch.py)
python launch.py --listen --port 7860
- 自建的启动脚本
我创建了一个名为 0_launch.sh 的脚本,通过增加可执行权限,并用 ./0_launch.sh 可以启动,具体内容如下:
#!/usr/bin/env bash
source "$HOME/anaconda3/etc/profile.d/conda.sh"
conda activate sd_py3p10unset HTTP_PROXY HTTPS_PROXY http_proxy https_proxyexport HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890
export NO_PROXY=127.0.0.1,localhost,::1,0.0.0.0
export GRADIO_WS_MAX_SIZE=50m # 0 表示禁用 WebSocketpython launch.py --listen --port 7860
注意上述的 _PROXY 相关的变量是因为我使用了 clash 网络代理工具
4.2 通过 Web 打开前端界面
打开 chorm 或者 火狐浏览器,通过 127.0.0.1:7860/?__theme=dark 可以看到界面。
5. 关闭软件
在软件正常启动的情况下,通过在终端执行 ctrl+c 即可终止进程。
但是为了保证在非正常启动的情况下,保证进程的关闭,我创建了一个杀死进程的脚本 0_stop.sh,具体内容如下:
# 看看会匹配到哪些 PID
pgrep -f 'python.*launch\.py.*--listen.*--port 7860'
# 确认无误后再杀
pkill -f 'python.*launch\.py.*--listen.*--port 7860'
6. 模型预览图
在启动 Web UI 后,可以给模型添加预览图。放在模型相同目录下,名字和模型相同,后缀为 .png
- 例如在 ~/programs/stable-diffusion-webui/models/Lora/ 下面有模型的 .safetensors 文件,给其配置同名的 .png 图片,重启软件后生效。
~/programs/stable-diffusion-webui$ ls models/Lora/
'2D Pixel Toolkit (2D像素工具包)_角色和序列帧.png' 水墨游戏立绘_水墨游戏立绘.png
'2D Pixel Toolkit (2D像素工具包)_角色和序列帧.safetensors' 水墨游戏立绘_水墨游戏立绘.safetensors
7. 安装插件
7.1 安装方法
cd extensions/
git clone xxx
xxx 即插件的 git 仓库地址
7.2 插件 git 地址
插件 | 一句话功能 | 官方 Git 地址(直接复制即可) |
---|---|---|
ControlNet | 用草图 / 姿态 / 深度精准控制构图 | https://github.com/Mikubill/sd-webui-controlnet |
After-Detailer (ADetailer) | 自动检测+局部重绘人脸/手/全身 | https://github.com/Bing-su/adetailer |
Tiled Diffusion & VAE | 低显存生成 2K/4K 大图,爆显存克星 | https://github.com/pkuliyi2015/multidiffusion-upscaler-for-automatic1111 |
Prompt-all-in-one | 中英互译 + 权重调色板 + 历史收藏 | https://github.com/Physton/sd-webui-prompt-all-in-one |
TagComplete | 提示词自动补全,键入“tree”秒出“tree bark texture” | https://github.com/DominikDoom/a1111-sd-webui-tagcomplete |
Civitai-Helper | 在 WebUI 内浏览/下载 Civitai 模型 + 预览图 | https://github.com/zixaphir/stable-diffusion-webui-civitai-helper |
LoRA-Block-Weight | 可视化调节 LoRA 各层权重,微调更细腻 | https://github.com/hako-mikan/sd-webui-lora-block-weight |
Aspect Ratio selector | 一键切换常用画布比例(16:9 / 4:3 / 1:1 …) | https://github.com/alemelis/sd-webui-ar |
Bilingual Localization | 界面同时显示中英双语,新手友好 | https://github.com/hakurei/sd-webui-bilingual-localization |
Images Browser | 内置图库,按日期/模型/提示词快速回看 | https://github.com/AlUlkesh/stable-diffusion-webui-images-browser |
- 注
安装 ControlNet 之后,浏览器需使用 chorm。听说 firefox 也可以,但我没试过。
7.3 下载 control net 的模型
先要 cd 到 ~/programs/stable-diffusion-webui/extensions/sd-webui-controlnet/models,也就是模型文件放这里。
由于我可以访问到 huggingface 网站,所以直接下载即可。
或者直接进入相应的网页如 https://huggingface.co/lllyasviel/ControlNet-v1-1/,在里面找到模型的下载按钮。
# 1. Canny -----------------------------------------------------------------
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_canny.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_canny.yaml# 2. OpenPose --------------------------------------------------------------
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_openpose.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_openpose.yaml# 3. Depth -----------------------------------------------------------------
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11f1p_sd15_depth.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11f1p_sd15_depth.yaml# 4. SoftEdge --------------------------------------------------------------
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_softedge.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_softedge.yaml# 5. Lineart ---------------------------------------------------------------
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_lineart.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_lineart.yaml# 6. Scribble --------------------------------------------------------------
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_scribble.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_scribble.yaml# 7. Semantic Segmentation (seg) ------------------------------------------
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_seg.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_seg.yaml# 8. Normal Map (normalbae) -----------------------------------------------
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_normalbae.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_normalbae.yaml#wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_normalbae.pth?download=true
备注:以下仅供个人记录
备注1:关于启动、关闭
- 脚本路径 & 内容
- ~/programs/stable-diffusion-webui/0_launch.sh
- ~/programs/stable-diffusion-webui/0_stop.sh
备注2:关于下载模型(这里使用了国内的 liblib 平台)
https://www.liblib.art/
-
主模型 e.g.
https://www.liblib.art/modelinfo/bd7043cf069547fd9330c81c514fa316?from=search&versionUuid=bb1477e08bf54d32b52fe39789f83e34注: 存放在 stable-diffusion-webui/Stable-diffusion/ 下,名为 二次元-古风-推文-中国风【秋雨】_v1.0.ckpt
-
LoRa e.g.
https://www.liblib.art/imageinfo/c8043b101ec845e29693f586addc910e注: 存放在 stable-diffusion-webui/models/Lora/ 下,名为 ‘2D Pixel Toolkit (2D像素工具包)_角色和序列帧.safetensors’