如何安全升级 Automatic1111 WebUI 到最新版本保留插件

文章导读
安全升级 Automatic1111 WebUI 的核心是通过 Git 拉取最新代码并保留 extensions 文件夹,适用于常规版本迭代场景。主要风险在于依赖冲突可能导致插件无法加载,操作前必须备份配置文件和虚拟环境。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 常见问题
  7. 参考来源
A A

安全升级 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:停止服务

如何安全升级 Automatic1111 WebUI 到最新版本保留插件

关闭正在运行的 WebUI 控制台窗口,确保没有进程占用文件。

步骤 2:备份关键数据

复制 webui-user.bat(Windows)或 webui-user.sh(Linux)到安全位置。备份 models 文件夹以防模型索引丢失。公开资料中没有看到可靠的量化数据表明升级导致模型损坏的概率,但备份是标准运维操作。

步骤 3:拉取更新

在 WebUI 安装目录运行 git pull。如果提示冲突,优先保留本地配置,必要时使用 git checkout 恢复。

如何安全升级 Automatic1111 WebUI 到最新版本保留插件

步骤 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