ComfyUI Crashes Entirely When Video File Referenced by Node Does Not Exist

ComfyUI 在加载引用了已被删除或不存在视频文件的 Load Video 或 Video Combine 节点工作流时会整个后端进程崩溃,通常表现为浏览器端 ERR_CONNECTION_REFUSED。优先排查 /vhs/queryvideo 接口对缺失文件的处理逻辑,并升级 VideoHel

快速结论:ComfyUI 在加载引用了已被删除或不存在视频文件的 Load Video 或 Video Combine 节点工作流时会整个后端进程崩溃,通常表现为浏览器端 ERR_CONNECTION_REFUSED。优先排查 /vhs/queryvideo 接口对缺失文件的处理逻辑,并升级 VideoHelperSuite 到包含修复的版本。

适用环境:Windows;Python 3.12.9(conda-forge 打包);PyTorch 2.7.1+cu128;CUDA;NVIDIA GeForce RTX 3070 Laptop GPU(16 GB VRAM);ComfyUI 0.3.59;ComfyUI frontend 1.26.11。

最快修复方案:升级 ComfyUI-VideoHelperSuite:Issue 中维护者确认 1.7.7 版本已包含针对本地文件缺失的首轮修复,并在后续讨论中补充了对 URL 分支的通用文件存在性检查。暂无确认的一步手动修复方案,建议先更新插件。

注意事项:Issue 后续反馈指出仅靠 1.7.7 中 resolve_path 的新增检查仍会漏掉 is_url(filename) 为 True 的分支,因为该分支直接返回元组、绕过了后续的 os.path.exists(file) 检查。若升级后仍复现,属于该残留路径问题,需要在 query_video 中增加最终通用检查。相关手动改动属于社区建议,尚未被验证为官方修复。

问题场景

用户在 ComfyUI 中创建一个包含 Load Video 节点或 Video Combine 节点的工作流,加载或保存一个视频文件(例如 a.mp4),保存并关闭工作流。之后手动从文件系统中删除该视频文件,再次在 ComfyUI 中打开该工作流。预期是 UI 显示文件找不到的错误、ComfyUI 继续运行,但实际上 ComfyUI 后端进程立即崩溃并完全退出,前端因服务器停止而出现连接错误。

报错原文

ComfyUI Crashes Entirely When Video File Referenced by Node Does Not Exist

FileNotFoundError

ERR_CONNECTION_REFUSED

原因分析

问题发生在 /vhs/queryvideo API 端点。当对不存在的文件路径调用 av.open() 时会抛出 FileNotFoundError,该异常被通用的 except Exception: pass 块捕获后静默忽略;但代码继续使用不完整的数据执行,最终触发未处理异常,导致整个服务器进程崩溃。

在 1.7.7 的首轮修复中,resolve_path 函数为本地文件加入了文件存在性检查,但该函数存在多条返回路径。当 is_url(filename) 为 True 时,函数会直接返回元组,绕过新增的 os.path.exists(file) 检查。query_video 接收到该元组并解包后,仍会对着不存在的文件调用 av.open(),导致原始崩溃继续发生。这是 Issue 讨论中明确指出的残留原因。

环境排查

  • 确认 ComfyUI 版本(Issue 中为 0.3.59)与 ComfyUI frontend 版本(Issue 中为 1.26.11)。
  • 确认 ComfyUI-VideoHelperSuite 插件版本,检查是否已包含 1.7.7 及之后的修复。
  • 确认 Python 版本(Issue 中为 3.12.9,conda-forge 打包)。
  • 确认 PyTorch 版本与 CUDA 构建(Issue 中为 2.7.1+cu128)。
  • 确认显卡型号与显存(Issue 中为 RTX 3070 Laptop GPU,16 GB VRAM)。
  • 确认工作流中 Load Video 或 Video Combine 节点引用的文件是否真实存在。
  • 检查崩溃时后端控制台是否出现 av.open() 相关的 FileNotFoundError 或未处理异常堆栈。

解决步骤

  1. 升级 ComfyUI-VideoHelperSuite 到 1.7.7 或更新版本,该版本已加入针对本地文件缺失的 resolve_path 存在性检查。
  2. 重新打开触发崩溃的工作流进行测试,确认本地文件缺失场景不再导致后端退出。
  3. 如果使用 URL 形式引用视频后文件缺失仍会崩溃,可优先尝试在 videohelpersuite/server.py 的 query_video 函数中、解包 path_result 之后,增加一个最终通用文件存在性检查:当 os.path.exists(filepath) 为 False 时,返回带 404 状态码的 JSON 错误响应,而不是继续执行到 av.open()。
  4. 该通用检查同时覆盖 resolve_path 的本地文件与 URL 分支,确保所有路径都经过验证。
  5. 保存修改后重启 ComfyUI,再复现相同步骤(删除文件、重新打开工作流)进行验证。

验证方法

按 Issue 的复现步骤操作:先创建工作流并加载或保存一个视频文件,保存关闭后手动删除该视频文件,再重新打开工作流。若 ComfyUI 后端进程保持运行,前端不再出现 ERR_CONNECTION_REFUSED,而是显示文件不存在或 404 类错误提示,即说明修复生效。若仍崩溃,需检查是否走的是 URL 分支且最终通用检查尚未生效。

参考来源

Kosinkadink/ComfyUI-VideoHelperSuite #555

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 25660

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注