SD:在一个 Ubuntu 系统安装 stable diffusion Web UI

目录

  • 前言
  • [1. 前置准备](#1. 前置准备)
    • [1.1 系统版本](#1.1 系统版本)
    • [1.2 工具准备](#1.2 工具准备)
    • [1.3 python环境](#1.3 python环境)
    • [1.4 安装 pytorch](#1.4 安装 pytorch)
  • [2. 下载开源 SD web UI](#2. 下载开源 SD web UI)
  • [3. 下载模型](#3. 下载模型)
  • [4. 启动软件](#4. 启动软件)
    • [4.1 启动后台进程](#4.1 启动后台进程)
    • [4.2 通过 Web 打开前端界面](#4.2 通过 Web 打开前端界面)
  • [5. 关闭软件](#5. 关闭软件)
  • [6. 模型预览图](#6. 模型预览图)
  • [7. 安装插件](#7. 安装插件)
    • [7.1 安装方法](#7.1 安装方法)
    • [7.2 插件 git 地址](#7.2 插件 git 地址)
    • [7.3 下载 control net 的模型](#7.3 下载 control net 的模型)
  • 备注:以下仅供个人记录
    • 备注1:关于启动、关闭
    • [备注2:关于下载模型(这里使用了国内的 liblib 平台)](#备注2:关于下载模型(这里使用了国内的 liblib 平台))

前言

  • 教程来源

    以下方法主要通过提问 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 环境,并激活相应的环境

bash 复制代码
conda create -n sd_py3p10 python=3.10
conda activate sd_py3p10

1.4 安装 pytorch

bash 复制代码
pip install torch torchvision torchaudio \
-i https://pypi.tuna.tsinghua.edu.cn/simple \
--extra-index-url https://download.pytorch.org/whl/cu124

注1:这里用镜像站下载更快

注2:关于永久配置镜像站

bash 复制代码
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

bash 复制代码
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包的下载配置"镜像网址",这里需要先指定一下镜像站,如果已经配置了则无需。
bash 复制代码
# 把 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

bash 复制代码
python launch.py --listen --port 7860
  • 自建的启动脚本
    我创建了一个名为 0_launch.sh 的脚本,通过增加可执行权限,并用 ./0_launch.sh 可以启动,具体内容如下:
powershell 复制代码
#!/usr/bin/env bash
source "$HOME/anaconda3/etc/profile.d/conda.sh"
conda activate sd_py3p10

unset HTTP_PROXY HTTPS_PROXY http_proxy https_proxy

export 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 表示禁用 WebSocket

python launch.py --listen --port 7860

注意上述的 _PROXY 相关的变量是因为我使用了 clash 网络代理工具

4.2 通过 Web 打开前端界面

打开 chrom 或者 火狐浏览器,通过 127.0.0.1:7860/?__theme=dark 可以看到界面。

5. 关闭软件

在软件正常启动的情况下,通过在终端执行 ctrl+c 即可终止进程。

但是为了保证在非正常启动的情况下,保证进程的关闭,我创建了一个杀死进程的脚本 0_stop.sh,具体内容如下:

powershell 复制代码
# 看看会匹配到哪些 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 图片,重启软件后生效。
bash 复制代码
~/programs/stable-diffusion-webui$ ls models/Lora/
'2D Pixel Toolkit (2D像素工具包)_角色和序列帧.png'           水墨游戏立绘_水墨游戏立绘.png
'2D Pixel Toolkit (2D像素工具包)_角色和序列帧.safetensors'   水墨游戏立绘_水墨游戏立绘.safetensors

7. 安装插件

7.1 安装方法

bash 复制代码
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 之后,浏览器需使用 chrom。听说 firefox 也可以,但我没试过。

7.3 下载 control net 的模型

先要 cd 到 ~/programs/stable-diffusion-webui/extensions/sd-webui-controlnet/models,也就是模型文件放这里。

由于我可以访问到 huggingface 网站,所以直接下载即可。

或者直接进入相应的网页如 https://huggingface.co/lllyasviel/ControlNet-v1-1/,在里面找到模型的下载按钮。

bash 复制代码
# 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/

相关推荐
恋猫de小郭3 小时前
Flutter Zero 是什么?它的出现有什么意义?为什么你需要了解下?
android·前端·flutter
崔庆才丨静觅9 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby606110 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了10 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅10 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅11 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅11 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment11 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅12 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊12 小时前
jwt介绍
前端