安全升级 Automatic1111 WebUI 的核心是通过 Git 拉取最新代码并保留 extensions 文件夹,适用于常规版本迭代场景。主要风险在于依赖冲突可能导致插件无法加载,操作前必须备份配置文件和虚拟环境。
先说结论:Git 拉取是标准升级方式,插件通常保留但需检查兼容性。
- 适合:使用 Git 克隆安装的 WebUI 用户
- 先准备:备份 webui-user 启动脚本和 models 模型文件夹
- 验收:启动后检查控制台无报错且插件列表显示正常
命令速用版
在 WebUI 根目录打开终端,依次执行以下命令完成升级:
git pull git submodule update `--init` `--recursive`
如果遇到依赖报错,删除 venv 文件夹后重新启动 WebUI 会自动重建环境。
为什么会这样
Automatic1111 WebUI 基于 Git 管理版本,extensions 目录独立于核心代码。
升级本质是更新核心仓库代码,插件存放在 extensions 文件夹内,默认不会被 git pull 覆盖。但核心代码变更可能引入新的依赖库或修改 API 接口,导致旧版插件无法加载或运行报错,因此需要验证兼容性。
分步处理
步骤 1:停止服务
关闭正在运行的 WebUI 控制台窗口,确保没有进程占用文件。
步骤 2:备份关键数据
复制 webui-user.bat(Windows)或 webui-user.sh(Linux)到安全位置。备份 models 文件夹以防模型索引丢失。公开资料中没有看到可靠的量化数据表明升级导致模型损坏的概率,但备份是标准运维操作。
步骤 3:拉取更新
在 WebUI 安装目录运行 git pull。如果提示冲突,优先保留本地配置,必要时使用 git checkout 恢复。
步骤 4:更新依赖
启动 WebUI 时脚本会自动检查 requirements.txt。如果启动失败,手动删除 venv 文件夹让脚本重新创建虚拟环境。
怎么验证是否生效
启动 WebUI 后,查看页面左下角版本号是否更新。进入 Extensions 标签页,点击 Loaded 查看插件列表是否完整。检查控制台启动日志,确认没有红色的 ImportError 或 ModuleNotFoundError 报错。
常见坑
- Python 版本不匹配:新版本 WebUI 可能要求更高版本的 Python,旧环境会导致启动失败。
- 插件冲突:某些插件依赖特定版本的核心代码,升级后可能失效,需禁用报错插件排查。
- 配置文件覆盖:config.json 可能被重置,建议升级前导出设置。
常见问题
升级后插件消失了怎么办
插件文件通常还在 extensions 文件夹内,只是被禁用或兼容性问题。检查 extensions 目录是否存在对应文件夹,并在 WebUI 设置中重新启用。
如何回退到旧版本
使用 git log 查看历史提交哈希,执行 git checkout <commit_hash> 回退到指定版本,然后重建 venv 环境。
必须删除 venv 文件夹吗
不一定。仅在升级后启动报错提示依赖缺失或冲突时,才需要删除 venv 文件夹强制重建环境。
参考来源
- AUTOMATIC1111/stable-diffusion-webui, GitHub Repository, https://github.com/AUTOMATIC1111/stable-diffusion-webui