目录

Ubuntu 上将 ComfyUI 从 0.32.0 升级到 0.36.0:一份可回退的实操记录

先备份、再锁标签、后更依赖:一次不追 master 的 ComfyUI 稳定版升级实录

Ubuntu 上将 ComfyUI 从 0.32.0 升级到 0.36.0:一份可回退的实操记录

本文记录一次真实升级:Ubuntu 26.04、NVIDIA RTX 4070 12GB、Python 3.13、ComfyUI 源码安装、独立 venv、ComfyUI Manager、ComfyUI-GGUF、comfy-kitchen、comfy-aimdo,以及 /data/models 外置模型目录。

目标不是「把代码拉到最新」这么简单,而是:先停服务、创建可验证的升级前备份、锁定正式稳定版本、更新依赖、启动并验证原有工作流。

一、升级前环境

本次升级前的关键环境:

系统:Ubuntu
GPU:NVIDIA GeForce RTX 4070 12GB
显存:11872 MB
ComfyUI:0.32.0
Python:3.13.x
ComfyUI 路径:/data/comfyui
ComfyUI venv:/data/comfyui/venv
模型目录:/data/models
ComfyUI API:http://127.0.0.1:8188

已经能工作的能力:

  • Z-Image-Turbo 文生图。
  • Qwen-Image-Edit-2511 / Rapid 图像编辑。
  • SeedVR2 7B INT8 ConvRot 图像放大。
  • ComfyUI Manager。
  • Hermes / OpenClaw 通过本机 API 调用 ComfyUI。

本次目标:将 ComfyUI 从原来的 0.32.0 升级到正式稳定版 v0.36.0,而不是盲目追踪 GitHub 的 master 开发分支。

二、为什么不直接 git pull

首先查看远程更新:

cd /data/comfyui

git status --short
git fetch --tags origin
git status -sb
git log --oneline HEAD..origin/master

当时得到的关键信息是:

master...origin/master [落后 146]
?? .pydeps/
?? comfyui.db

远程 origin/master 已经包含大量新提交,并且远程存在正式标签:

v0.36.0

因此没有执行:

git pull

原因是裸 git pull 会把当前分支直接追到 origin/master,可能进入尚未打正式标签的开发提交。对于已经接入多个模型和 Agent 的生产环境,更稳妥的做法是切换到明确的正式版本标签(实际执行见第八节):

git switch -c comfyui-v0.36.0 v0.36.0

这条命令的作用是:

  • 基于官方 v0.36.0 标签创建本地分支。
  • 切换当前源码到稳定版本。
  • 不删除 /data/models。
  • 不删除 venv。
  • 不修改 custom nodes、user、input、output。
  • 不会把开发分支的未发布提交带进来。

三、第一次备份为什么失败

最初曾执行:

cd /data
cp -r comfyui comfyui_2026-08-13_backup

随后出现大量:

权限不够

错误路径集中在:

/data/comfyui_2026-08-13_backup/comfyui/.git/objects/

原因不是当前 /data/comfyui 损坏,而是目标目录 /data/comfyui_2026-08-13_backup 已经存在。再次执行同名 cp -r 时,cp 继续向旧备份内部复制,尝试覆盖其中 Git 对象,因目标文件状态或权限不适合覆盖而失败。

后来检查目录权限:

ls -ld /data/comfyui_2026-08-13_backup
ls -ld /data/comfyui_2026-08-13_backup/comfyui
ls -ld /data/comfyui_2026-08-13_backup/comfyui/.git

结果显示顶层目录都属于:

oklife oklife

但问题依然是:旧目录已经存在,不应再作为新的备份目标使用。

经验

不要重复使用固定备份目录名。每次升级都使用带日期和时间的新目录。

四、停止 ComfyUI

升级前先停止正在运行的 ComfyUI。

如果它在当前终端前台运行,按:

Ctrl+C

然后检查 8188 端口:

ss -lntp | grep 8188

本次没有任何输出,说明 ComfyUI 已完全停止,可以安全备份。

五、创建本次升级前完整备份

使用新的、不会冲突的时间戳目录:

cd /data

STAMP=$(date +%F_%H%M%S)
BACKUP="/data/comfyui_${STAMP}_pre_upgrade"

mkdir -p "$BACKUP"
cp -a /data/comfyui "$BACKUP/"

本次生成的实际目录是:

/data/comfyui_2026-09-18_074710_pre_upgrade/comfyui

这里使用 cp -a,而不是简单的 cp -r,是为了保留权限、时间戳、符号链接和目录结构。

验证备份内容

echo "备份目录:$BACKUP"
test -f "$BACKUP/comfyui/main.py" && echo "main.py:OK"
test -f "$BACKUP/comfyui/extra_model_paths.yaml" && echo "模型路径配置:OK"
test -d "$BACKUP/comfyui/custom_nodes" && echo "custom_nodes:OK"
test -d "$BACKUP/comfyui/user" && echo "user 配置目录:OK"

实际结果:

main.py:OK
模型路径配置:OK
custom_nodes:OK
user 配置目录:OK

验证源码提交一致

echo "当前 ComfyUI Git commit:"
git -C /data/comfyui rev-parse --short HEAD

echo "备份 ComfyUI Git commit:"
git -C "$BACKUP/comfyui" rev-parse --short HEAD

两边都得到:

12d5279

这表示备份与当前源码处于同一个升级前状态。

六、检查 Git 状态

执行与第二节相同的 Git 状态检查命令,本次发现两个未跟踪项目:

?? .pydeps/
?? comfyui.db

处理原则:

  • 不执行 git add。
  • 不执行 git clean -fd。
  • 不删除 .pydeps/。
  • 不删除 comfyui.db。

这两项本地未跟踪文件不阻碍切换到 v0.36.0,而且已经包含在完整备份中。

七、确认稳定标签

先检查标签是否存在:

git status --short
git tag --points-at v0.36.0
git show-ref --verify refs/tags/v0.36.0

实际确认结果:

v0.36.0
ee71d5c4993f29086b27fde1629a945ae48425bf refs/tags/v0.36.0

说明本地已经拥有有效的 v0.36.0 标签,可以切换。

八、切换到 ComfyUI 0.36.0

执行:

git switch -c comfyui-v0.36.0 v0.36.0

成功提示:

切换到一个新分支 'comfyui-v0.36.0'

然后验证:

git status -sb
git describe --tags --always

结果:

?? .pydeps/
?? comfyui.db
v0.36.0

这说明当前源码已切换到稳定版 v0.36.0。

九、更新 ComfyUI 依赖

保持使用 ComfyUI 自己的 Python venv:

/data/comfyui/venv/bin/python -m pip install -r requirements.txt

本次更新的主要组件包括:

comfyui-frontend-package:1.49.6 → 1.52.7
comfyui-workflow-templates:0.11.48 → 0.11.62
comfyui-embedded-docs:0.5.10 → 0.5.11
comfy-kitchen:0.2.31 → 0.2.34
comfy-aimdo:0.4.15 → 0.5.3

同时更新了工作流模板核心、JSON 模板和资源包。

重要的是:

PyTorch:2.13.0+cu130,保持不变
TorchVision:0.28.0+cu130,保持不变
TorchAudio:2.11.0+cu130,保持不变
CUDA 13 运行时:保持不变

没有主动重装 Torch、CUDA 或 Python,这降低了升级风险。

十、更新 Manager 依赖

继续执行:

/data/comfyui/venv/bin/python -m pip install -r manager_requirements.txt

结果显示:

comfyui_manager==4.2.2 已满足

Manager 没有被不必要地改动。

十一、启动新版 ComfyUI

执行:

cd /data/comfyui
/data/comfyui/venv/bin/python main.py \
  --listen 127.0.0.1 \
  --port 8188 \
  --enable-manager

启动日志中的关键结果

Python version: 3.13.15
Python executable: /data/comfyui/venv/bin/python
ComfyUI Path: /data/comfyui
Total VRAM 11872 MB
Device: cuda:0 NVIDIA GeForce RTX 4070 : cudaMallocAsync
Using async weight offloading with 2 streams
DynamicVRAM support detected and enabled
ComfyUI version: 0.36.0
comfy-aimdo version: 0.5.3
comfy-kitchen version: 0.2.34
comfyui-frontend-package version: 1.52.7
comfyui-workflow-templates version: 0.11.62
comfyui-embedded-docs version: 0.5.11
[START] ComfyUI-Manager
Starting server

最后显示:

To see the GUI go to: http://127.0.0.1:8188

十二、模型路径和 GPU 验证

启动日志显示模型路径仍然来自:

/data/models/checkpoints
/data/models/loras
/data/models/vae
/data/models/text_encoders
/data/models/diffusion_models
/data/models/controlnet
/data/models/upscale_models

说明 /data/models 外置模型结构没有丢失。

GPU 方面确认:

NVIDIA GeForce RTX 4070
VRAM: 11872 MB
DynamicVRAM: enabled
async weight offloading: enabled

这与原来的 12GB RTX 4070 部署策略一致。

十三、升级过程中出现的警告

1. Matrix 分享依赖缺失

The matrix sharing feature has been disabled because the matrix-nio dependency is not installed.

这只影响 Manager 的 Matrix 分享功能。当前没有使用 Matrix,因此不需要安装:

matrix-nio

2. OpenGL accelerate 提示

No OpenGL_accelerate module loaded: Acceleration disabled

这不是 CUDA 或图像生成错误。此前已经安装过 PyOpenGL-accelerate,并且 ComfyUI 的 CUDA、Kitchen、AIMDO 和 DynamicVRAM 都正常工作。该警告属于可选的 PyOpenGL 加速提示,不影响当前图像工作流。

3. SenseNova 自定义节点警告

启动时出现类似:

image_gen_indicators is part of Qwen3Model.forward's signature, but not documented
indexes is part of Qwen3Model.forward's signature, but not documented
FutureWarning: torch.cuda.amp.autocast(...) is deprecated

这些警告来自:

/data/custom_nodes/sensenova_u1_rebel

SenseNova 节点仍然成功加载,警告不影响 ComfyUI 启动。它们属于自定义节点源码的文档提示和旧 API 警告,不是本次升级失败。

4. 数据库迁移提示

启动时出现:

Database upgraded from 0006_add_loader_path to 0007_record_content_split

ComfyUI 自动完成了数据库迁移,并保留旧数据库:

/data/comfyui/user/comfyui.db.bkp

随后提示资产目录被重新建立,部分旧资产元数据可能丢失,包括:

  • 手工标签。
  • 用户元数据。
  • 预览图记录。
  • 重命名记录。
  • API 创建的资产记录。
  • job_id 关联。

这不等于模型、工作流或输出图被删除。旧数据库已经备份为 .bkp,不要立即删除。

十四、升级后验收顺序

升级后不要马上点 Manager 的 Update All,也不要立即测试复杂新工作流。

按照风险从低到高依次验证:

1. Web 界面

浏览器打开:

http://127.0.0.1:8188

确认界面可访问,Manager 入口仍存在。

2. Z-Image-Turbo

使用原来已经成功过的 workflow,先跑一张单图。

3. Qwen Image Edit

加载一张已有图片,执行一次简单编辑,例如:

保持主体和构图不变,将背景改为夜雨中的窗边书桌,低饱和、暖黄色灯光。

4. SeedVR2 7B INT8 ConvRot

对一张已有图片执行 2 倍放大,确认输出尺寸、主体和构图均正常。

5. Hermes / OpenClaw API

在三条工作流手动通过后,再让 Hermes 或 OpenClaw 通过:

http://127.0.0.1:8188

执行一次 smoke test。

十五、回退方法

如果升级后的 v0.36.0 破坏了某个已有工作流,先停止 ComfyUI:

Ctrl+C

然后可以切回升级前的源码分支或恢复备份。

优先尝试切回升级前 commit:

cd /data/comfyui
git switch -c comfyui-pre-2026-09-18 12d5279

如果需要恢复完整目录,则先把当前目录改名,再从升级前备份复制回来;不要直接覆盖正在使用的目录:

cd /data
mv comfyui comfyui_failed_0.36.0
cp -a comfyui_2026-09-18_074710_pre_upgrade/comfyui ./comfyui

恢复后仍需确认:

/data/comfyui/venv/bin/python main.py --listen 127.0.0.1 --port 8188 --enable-manager

不要删除升级失败目录,先保留用于排查。

十六、以后升级的固定 SOP

今后每次升级建议固定使用以下步骤:

# 1. 停止 ComfyUI
# Ctrl+C

# 2. 确认端口释放
ss -lntp | grep 8188

# 3. 创建全新时间戳备份
cd /data
STAMP=$(date +%F_%H%M%S)
BACKUP="/data/comfyui_${STAMP}_pre_upgrade"
mkdir -p "$BACKUP"
cp -a /data/comfyui "$BACKUP/"

# 4. 获取远程标签
git -C /data/comfyui fetch --tags origin

# 5. 查看正式标签
git -C /data/comfyui tag --sort=-version:refname | head -10

# 6. 切换到明确的正式稳定版本
cd /data/comfyui
git switch -c comfyui-vX.Y.Z vX.Y.Z

# 7. 更新核心依赖
/data/comfyui/venv/bin/python -m pip install -r requirements.txt

# 8. 更新 Manager 依赖
/data/comfyui/venv/bin/python -m pip install -r manager_requirements.txt

# 9. 启动
/data/comfyui/venv/bin/python main.py \
  --listen 127.0.0.1 \
  --port 8188 \
  --enable-manager

# 10. 验证既有工作流和 Agent API

十七、最终结果

本次升级最终完成了: /data/Obsidian-oklife-ub/AI/OpenClaw/07-升级备份/openclaw-upgrade-2026-9-4-postmortem.md

ComfyUI 0.32.0 → 0.36.0
comfy-kitchen 0.2.31 → 0.2.34
comfy-aimdo 0.4.15 → 0.5.3
前端包 1.49.6 → 1.52.7
工作流模板 0.11.48 → 0.11.62

并且保持了:

RTX 4070 12GB
Python 3.13
PyTorch 2.13.0+cu130
CUDA 13
/data/models
ComfyUI Manager
Z-Image-Turbo
Qwen Image Edit
SeedVR2 7B INT8 ConvRot
Hermes/OpenClaw 本机 API 调用

最重要的经验不是某一条 Git 命令,而是这条原则:

先创建可验证的时间戳备份,再切换明确的稳定标签;不要在生产环境里盲目追踪 master,也不要用固定目录名重复覆盖旧备份。