步骤
1. WebUI 下载和安装
直接从webui源码安装,打开终端,从 github 上下载:
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
2.一键启动脚本,会默认配置好项目环境,并安装好项目依赖包:
./webui.sh
不过通常会出现各种各种的问题,主要原因是国内网络问题,其中最频繁遇到的问题有:
# 2. 激活venv(核心命令)
source venv/bin/activate
问题
问题1: 安装clip失败 安装open_clip失败
解决方案:手动安装
主要是因为访问 github 失败,在 stable-diffusion-webui/modules/launch_utils.py中找到prepare_environment()函数
clip_package = os.environ.get('CLIP_PACKAGE', "https://github.com/openai/CLIP/archive/d50d76daa670286dd6cacf3bcd80b5e4823fc8e1.zip")
openclip_package = os.environ.get('OPENCLIP_PACKAGE', "https://github.com/mlfoundations/open_clip/archive/bb6e834e9c70d9c27d0dc3ecedeebeaeb1ffad6b.zip")
手动下载 https://github.com/openai/CLIP/archive/d50d76daa670286dd6cacf3bcd80b5e4823fc8e1.zip 、https://github.com/mlfoundations/open_clip/archive/bb6e834e9c70d9c27d0dc3ecedeebeaeb1ffad6b.zip
再解压再 pip install
注意安装
pip install setuptools==65.5.0 wheel
把"/mnt/disk1/wch/stable-diffusion-webui-master/stable-diffusion-webui/modules/launch_utils.py"引号里的 github 链接,替换成本地绝对路径:
clip_package = os.environ.get('CLIP_PACKAGE', "/mnt/disk1/wch/stable-diffusion-webui-master/CLIP-d50d76daa670286dd6cacf3bcd80b5e4823fc8e1.zip")
上述方法 无效时,直接将clip下载包里面的东西复制进环境里面
-
保留你解压好的 CLIP-d50d76daa670286dd6cacf3bcd80b5e4823fc8e1
-
进入源码目录,把里面的clip 文件夹(不是整个源码包,是里面名叫clip的文件夹)复制到 venv 的 site-packages:
复制clip源码模块到python库目录
cp -r clip /mnt/disk1/wch/stable-diffusion-webui-master/stable-diffusion-webui/venv/lib/python3.10/site-packages/
启动 launch 的时候,关闭 pip 构建隔离(解决 pkg_resources 报错)
cd /mnt/disk1/wch/stable-diffusion-webui-master
export PIP_NO_BUILD_ISOLATION=true
python launch.py
现在 launch.py 不会访问 github,直接读取本地 zip 文件安装 CLIP。
问题2:
Cloning Stable Diffusion into B:\GitHub\stable-diffusion-webui\repositories\stable-diffusion-stability-ai...
Cloning into 'B:\GitHub\stable-diffusion-webui\repositories\stable-diffusion-stability-ai'...
remote: Repository not found.
fatal: repository 'https://github.com/Stability-AI/stablediffusion.git/' not found
Traceback (most recent call last):
File "B:\GitHub\stable-diffusion-webui\launch.py", line 53, in <module>
main()
File "B:\GitHub\stable-diffusion-webui\launch.py", line 44, in main
prepare_environment()
File "B:\GitHub\stable-diffusion-webui\modules\launch_utils.py", line 443, in prepare_environment
git_clone(stable_diffusion_repo, repo_dir('stable-diffusion-stability-ai'), "Stable Diffusion", stable_diffusion_commit_hash)
File "B:\GitHub\stable-diffusion-webui\modules\launch_utils.py", line 189, in git_clone
run(f'"{git}" clone --config core.filemode=false "{url}" "{dir}"', f"Cloning {name} into {dir}...", f"Couldn't clone {name}", live=True)
File "B:\GitHub\stable-diffusion-webui\modules\launch_utils.py", line 113, in run
raise RuntimeError("\n".join(error_bits))
RuntimeError: Couldn't clone Stable Diffusion.
Command: "git" clone --config core.filemode=false "https://github.com/Stability-AI/stablediffusion.git" "B:\GitHub\stable-diffusion-webui\repositories\stable-diffusion-stability-ai"
Error code: 128
该GitHub源码内容已被作者删除或隐藏,所以已经不能pull下来
解决:替换stable-diffusion-webui/modules/launch_utils.py 中链接
# stable_diffusion_repo = os.environ.get('STABLE_DIFFUSION_REPO', "https://github.com/Stability-AI/stablediffusion.git")
stable_diffusion_repo = os.environ.get('STABLE_DIFFUSION_REPO', "https://github.com/w-e-w/stablediffusion.git")
另外在"/mnt/disk1/wch/stable-diffusion-webui-master/stable-diffusion-webui/webui-user.bat" 添加一行
@echo off
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=
set STABLE_DIFFUSION_REPO=https://github.com/w-e-w/stablediffusion.git #添加
call webui.bat
#stable_diffusion_xl_repo = os.environ.get('STABLE_DIFFUSION_XL_REPO', "https://github.com/Stability-AI/generative-models.git")
stable_diffusion_xl_repo = os.environ.get('STABLE_DIFFUSION_XL_REPO', "https://github.com/w-e-w/generative-models.git")
export STABLE_DIFFUSION_XL_REPO="https://github.com/w-e-w/generative-models.git"
python launch.py
中文设置 『SD』Stable Diffusion WebUI 安装插件(以汉化为例)_sd webui汉化-CSDN博客
训练 【保姆级教程】Linux上部署Stable Diffusion WebUI和LoRA训练,拥有你的专属图片生成模型_stable diffusion linux-CSDN博客
stable diffusion 模型 Deliberate_v5.safetensors · XpucT/Deliberate at main
下载
页面:ControlNet-v1-1里面有:control_v11p_sd15_canny.pth(新版 v1.1,完全兼容 A1111,效果比老 v1.0 更好,替代旧的 control_sd15_canny.pth)
文件名:control_v11p_sd15_canny.pth,放到 webui 的 models/ControlNet 文件夹 配套 yaml:control_v11p_sd15_canny.yaml,两个文件放同一目录
启动 虚拟环境在 /mnt/disk1/wch/stable-diffusion-webui-master/stable-diffusion-webui/venv/
source venv/bin/activate
python stable-diffusion-webui/launch.py
安装插件可选
安装 ControlNet 插件 WebUI 内在线安装
- WebUI 顶部点 Extensions → Available → 点击 Load from 加载插件列表
- 搜索:ControlNet,找到 sd-webui-controlnet
- 点 Install,等待安装完成
- 安装完成后,必须重启 WebUI(关闭 python launch.py,重新运行)
重启后,在 txt2img /img2img 页面底部会出现 ControlNet 折叠面板。
确认插件是否真的加载成功
-
点顶部 Extensions → 切换到 Installed 标签
-
在列表里找 sd-webui-controlnet
- ✅ 如果存在、并且勾选了 Active:插件已经启用,只是面板在页面下方,滚动页面就能找到
- 如果有、并且勾选:点击页面右下角 Reload UI,刷新界面。
想复现之前正常的状态,临时禁用插件:
cd /mnt/disk1/wch/stable-diffusion-webui-master/stable-diffusion-webui/extensions
mv sd-webui-controlnet sd-webui-controlnet-off
再执行python launch.py,不加任何参数。
安装会出现页面一直转圈,打不开问题
那怎么保留 ControlNet,同时页面能正常打开?
方案 :启动命令强制关闭 Gradio Queue(推荐)
Ctrl+C 停掉 webui,把插件名字改回去恢复 ControlNet:
cd /mnt/disk1/wch/stable-diffusion-webui-master/stable-diffusion-webui/extensions
mv sd-webui-controlnet-off sd-webui-controlnet
然后带参数启动,禁用 gradio queue,同时开放远程访问
python launch.py --listen --no-gradio-queue
--no-gradio-queue 作用:禁止 Gradio 排队机制,绕过 ControlNet 插件自动开启 Queue 带来的 websocket 卡死问题。