Stable Diffusion WebUI ControlNet 启动错误修复笔记
## 问题介绍 **问题简介**: 我在使用 `Stable Diffusion WebUI` 时,
渲染中...
## 问题介绍
**问题简介**:
我在使用 `Stable Diffusion WebUI` 时,试图启动 `ControlNet` 扩展,却遇到了启动错误。最初的错误信息如下:
```text
ControlNet preprocessor location: D:\AI\stable-diffusion-webui\extensions\sd-webui-controlnet\annotator\downloads *** Error loading script: controlnet.py AttributeError: type object 'CalculatorOptions' has no attribute 'RegisterExtension'
```
随后,通过检查依赖冲突,发现 `open-clip-torch` 和 `mediapipe` 对 `protobuf` 的版本要求不一致:
```text
open-clip-torch 2.20.0 has requirement protobuf<4, but you have protobuf 5.29.3.
mediapipe 0.10.14 has requirement protobuf<5,>=4.25.3, but you have protobuf 5.29.3.
```
**问题分析**:
- **依赖冲突**:`open-clip-torch==2.20.0` 需要 `protobuf<4`,而 `mediapipe==0.10.14` 需要 `protobuf>=4.25.3, <5`,当前安装的 `protobuf==5.29.3` 超出两者范围。
- **版本不兼容**:即使修复了依赖冲突,`open-clip-torch 2.20.0` 与 `mediapipe 0.10.14` 所需的 `protobuf` 没有交集,所以无法在不变更 `open-clip-torch` 和 `mediapipe ` 版本情况加解决问题!
**我的环境**:
- `Windows11 stable`
- `安装方式:克隆仓库本地安装(venv环境管理)`
- `diffusion webui版本: v1.10.1`
- `python: 3.10.6`
- `torch: 2.1.2+cu121`
- `xformers: N/A`
- `gradio: 3.41.2`
<!-- more -->
## 简略版解决方案:
1. 进入 `stable-diffusion-webui\venv\Scripts` 文件夹,打开 `CMD` 窗口,执行 `activate` 进入 `venv` 环境!
2. 执行 `python -m pip check`,找出冲突依赖,发现是 `open-clip-torch 2.20.0` , `mediapipe 0.10.14`,`protobuf` 三者冲突!
3. 执行 `python -m pip install --upgrade open-clip-torch` 升级 `open-clip-torch`;
4. 执行 `python -m pip install protobuf==3.20.3` 降级;
5. 执行 `python -m pip install mediapipe==0.10.11` 降级
6. 再次启动 `Webui`,问题解决!
**提示:每个人的安装环境不同,解决方式和版本可能不同,请自行尝试适合自己的解决方案或以来版本!**
## 详细版解决过程:
#### 解决过程
1. 检查依赖冲突:
- 使用 `python -m pip check` 发现 `protobuf` 版本冲突。
- 尝试升级 `open-clip-torch` 和安装 `protobuf==4.25.4`
```sh
python -m pip install --upgrade open-clip-torch
python -m pip install protobuf==4.25.4
```
- **尝试后发现虽然冲突解决了,但是错误仍任存在!**
2. 调整 `mediapipe` 和 `protobuf` 版本:
- 降级 `mediapipe` 到 `0.10.11`,并搭配 `protobuf==3.20.3`:
```sh
python -m pip install mediapipe==0.10.11
python -m pip install protobuf==3.20.3
```
- 再次运行 `python -m pip check`,确认无冲突。
3. **验证修复:启动 WebUI,ControlNet 正常加载,未再出现错误!**
#### 最终解决方案总结
最终使用以下命令修复:
```sh
# 升级 open-clip-torch 截至本文记录,自动升级到了 2.30.0
python -m pip install --upgrade open-clip-torch
# 降级 protobuf==3.20.3
python -m pip install protobuf==3.20.3
# 降级 mediapipe==0.10.11
python -m pip install mediapipe==0.10.11
```
### 经验总结
- **依赖检查工具**:用 `pip check` 快速定位冲突。
- **版本调整**:尝试依赖的不同版本,并匹配适合的 protobuf。
- **问题复现时**:先检查 `pip list` 和 `pip check` 输出,调整版本后逐步测试。
这次修复让我学会了如何处理 Python 依赖冲突,下次遇到类似问题可参考此笔记快速解决!END
评论
登录后查看和发表评论
前往登录