安装 sd-webui 遇到 requirements.txt 依赖冲突时,最推荐的处理方式是删除现有的虚拟环境文件夹并重新运行启动脚本,让程序自动重建依赖。
先说结论:删除虚拟环境文件夹是解决依赖冲突最彻底且安全的方法,适用于大多数本地部署场景。
- 先确认:检查当前 Python 版本是否为 3.10.x,确认报错日志中具体的冲突包名。
- 先处理:直接删除项目目录下的 venv 文件夹,不要手动修改 requirements.txt 文件。
- 再验证:重新运行启动脚本,观察控制台日志是否不再出现 Requirement 错误。
命令速用版
如果确认需要重置环境,可以在项目根目录执行以下命令删除虚拟环境,然后重新运行启动脚本。
Windows: rmdir /s /q venv
Linux/Mac: rm -rf venv执行完成后,双击运行 webui-user.bat 或执行 webui-user.sh 即可触发自动重装。
为什么会这样
依赖冲突通常是因为本地 Python 环境中的包版本与项目要求的版本不一致。
sd-webui 启动时会自动创建一个独立的 venv 虚拟环境来隔离依赖,但如果 venv 文件夹损坏或之前安装中断,pip 在解析 requirements.txt 时会发现已安装的包版本不符合要求,从而报错退出。
分步处理
按照以下步骤操作可以解决绝大多数依赖冲突问题,每一步完成后请检查是否有报错。
- 检查 Python 版本:在终端输入 python `--version`,确认版本为 3.10.x,版本过高或过低都可能导致依赖无法编译。
- 删除虚拟环境:进入 sd-webui 安装目录,找到 venv 文件夹并彻底删除,这一步不会删除你的模型和配置。
- 清理缓存(可选):如果多次失败,可执行 pip cache purge 清理 pip 缓存,避免损坏的安装包被复用。
- 重新启动:运行启动脚本,保持网络畅通,等待依赖安装完成,期间不要强制关闭窗口。
怎么验证是否生效
验证成功的标志是启动脚本运行结束且浏览器自动打开 WebUI 界面,控制台无红色报错。
查看控制台日志,确认没有 Requirement 相关的 Error 信息,且最后显示 Running on local URL 字样。
常见坑
- 全局环境干扰:不要在系统全局 Python 环境中安装 sd-webui 依赖,必须使用项目自带的 venv 机制。
- 网络中断:依赖下载过程中网络波动会导致文件损坏,再次运行前务必先删除 venv 文件夹。
- 手动修改文件:除非明确知道某个包可替代,否则不要手动编辑 requirements.txt,否则后续更新会再次冲突。
常见问题
删除 venv 文件夹会丢失模型吗
不会,venv 文件夹仅存放 Python 依赖库,模型文件存放在 models 目录,配置存放在 config 目录,删除 venv 不影响这些数据。
为什么推荐使用 Python 3.10
因为大多数深度学习库和 sd-webui 插件在 Python 3.10 上兼容性最好,3.11 及以上版本可能导致部分插件无法加载。
遇到特定包报错怎么办
如果是单个包报错,尝试删除 venv 后更换 pip 源重试,不要随意跳过该包安装,否则运行时可能崩溃。
参考来源
- GitHub - AUTOMATIC1111/stable-diffusion-webui README: https://github.com/AUTOMATIC1111/stable-diffusion-webui