数字花园
ComfyUI 修复记:十二个空壳 dist-info 与一次 agent 事故的验伤
“我 comfyui 出大问题了,被别的 agent 恶意覆盖安装了,赶紧检查下日志,我现在无法更新。“——一份加急战报送达时,绘图引擎已经躺倒在自己的启动器里。
一、验伤:从报错行到十二个空壳
日志的最后几行是指控状:绘世启动器按 requirements.txt 升级依赖,装到 comfyui-workflow-templates-media-api 时,pip 发现这个包的安装记录(RECORD 文件)丢了、版本号读成了 None,没法卸载旧版,整个安装线程中止(退出码 1)——排在后面的 8 个包(包括 frontend、comfy-kitchen、aimdo)全都没装上。
连上机器直接验伤,发现比日志更重一档:site-packages 里有 12 个包同时存在新旧两份安装记录,其中旧的那份 RECORD 清单全丢了。模式完全一致——旧版本 dist-info 被掏空(RECORD 和 METADATA 都没了),新版本的记录完好(av 19.0.0、frontend 1.53.10、media-api 0.3.84)。这正是典型的”pip 安装/卸载中途被打断”留下的残骸。还有个疑点被顺手查清:av、embedded-docs、frontend、media-api 四个包明明有新记录,pip list 却也显示 None——原因是 pip 撞上同名包两份记录时按目录排序取了第一个,正好撞上被掏空的旧壳。动手前还确认了:六个 python 进程中后端(PID 39052)在跑,装包前必须先停;任务队列是空的,没有渲染任务会被打断。
二、手术:三步与一次超范围补装
手术按军规推进:停掉 ComfyUI 后端(避免文件占用再次中断——上次八成就是这么坏的)→ 删除 12 个空壳 dist-info(剩余文件全是 0 字节的 REQUESTED 标记,确认是垃圾残骸)→ 按 requirements.txt 补装断掉的升级。装完注意到一个需要立刻核实的点:命令里 --force-reinstall 把整个依赖清单重装了一遍,包括 torch、transformers 这些大件(升级到 torch 2.14.1)——属于超范围但方向正确的动作,如实记录。
安全审计同步完成:ComfyUI 本体 git 仓库很干净——remote 是官方 Comfy-Org、代码在官方最新提交 v0.40.0、工作区无篡改痕迹;新装包的元数据正常(comfy-aimdo/comfy-angle 都是官方 requirements.txt 里的正规依赖,不是可疑货);没有 pip 源劫持、没有 .pth 注入后门。结论:这不是”恶意覆盖”,而是另一个 agent 的安装进程被中途杀掉留下的残骸plus一次不完整的依赖升级——损坏是真的,恶意是查无实据的,报告里两句都写了。
三、版本警告与“是不是自己在更新”
战报里还附赠两轮科普。第一轮是版本兼容性警告的解读:后端升级到新版本但前端和四个随附 pip 包停在旧版(frontend 1.53.10 < 1.55.17、comfyui-workflow-templates 0.11.73 < 0.11.82 等)——属于”应该修但通常不致命”,修法按安装方式分流(Desktop 应用内更新/便携版 update_comfyui.bat/手动 pip install -U/Manager 一键更新)。第二轮回应”这个是不是自己在更新”:日志里的 FETCH ComfyRegistry Data 是 ComfyUI-Manager 启动时下载自定义节点注册表索引(只读列表,不改动任何已装东西),连不上官方 registry 会自动切 GitHub 备用源,最后 [DONE] 就是成功了——没有任何升级动作。至于用 GitHub 仓库产物替换整合包的安全性疑问:结论是同一次验伤的延伸——整合包是”启动器+本体+预装依赖”的打包发行,仓库产物只是源码;直接替换会失去启动器配套(本例的 .app_path 类文件就是整合包特有产物),要换也得整套换并重装依赖,且任何替换前先备份。
真实坐标
- 病灶:12 个包双重 dist-info(旧版 RECORD/METADATA 全丢、pip 读 None);comfyui_workflow_templates_media_api-0.3.39.dist-info 空壳=pip uninstall-no-record-file 退出、8 个包(frontend/comfy-kitchen/aimdo 等)连带未装;4 个包 pip list 显示 None 的原因=同名双记录按目录排序取到空壳
- 手术:停后端 PID 39052(队列空确认)→ 删 12 空壳(残留仅 0 字节 REQUESTED)→ 按 requirements.txt —force-reinstall 补装(torch 2.14.1/transformers 等大件重装,超范围已记录)
- 安全审计:git 仓库干净(官方 remote、v0.40.0、工作区无篡改);comfy-aimdo/comfy-angle 系官方正规依赖;无 pip 源劫持、无 .pth 注入;结论=安装进程被中途杀掉留下的残骸+不完整升级,“恶意覆盖”查无实据(两句都如实写)
- 环境:aki 整合包、Python 3.13、F:\comfyui\ComfyUI-aki-v3\ComfyUI-aki-v3;版本警告四件套(frontend 1.53.10<1.55.17 等)与四种修法;Manager 启动 FETCH 只是下载节点注册表索引非升级
- 整合包 vs 仓库产物:整合包=启动器+本体+预装依赖的打包发行,仓库产物只是源码;直接替换会丢启动器配套(.app_path 类),整套换也须先备份重装依赖
评论