ZZNodes
ZZNodes tools for ComfyUI: Windows shutdown after 30 seconds of queue idle, with cancellation and on-node logs.
ZZNodes
当前版本:0.1.0。
ComfyUI 工具节点包。目前提供 自动关机控制 一个节点:等待整个任务队列结束后自动关闭 Windows,只保留启用开关和运行日志,支持实时取消。
功能
| 功能 | 行为 | | --- | --- | | 自动关机 | 等待整个队列持续空闲30秒后直接关机,不再额外倒计时 | | 实时取消 | 关闭“启用自动关机”,无需重新执行工作流;以后端日志确认为准 | | 旧任务保护 | 取消后旧凭证失效,已排队的旧任务不能恢复已取消的计划 | | 新任务处理 | 收到新提交或检测到新任务时重新等待 | | 界面日志 | 内存中保留最近100条带日期时间的运行日志 |
本节点会执行真实系统关机,使用前保存其他应用的工作。
安装
Git 安装
在 ComfyUI/custom_nodes 目录运行:
git clone https://github.com/zhangdevops/ComfyUI-ZZNodes.git
随后重启 ComfyUI,浏览器按 Ctrl+F5 强制刷新。
ZIP 安装
从 GitHub 的 Code → Download ZIP 下载并解压,将包目录放入 ComfyUI/custom_nodes/。
可以将解压后的 ComfyUI-ZZNodes-master 改名为 ComfyUI-ZZNodes。
确认入口文件直接位于:
ComfyUI/custom_nodes/ComfyUI-ZZNodes/__init__.py
不要多套一层同名目录。
Manager 安装
在 Manager 中搜索 ZZNodes。
使用
- 在添加节点窗口的左侧选择
ZZNodes分类,或搜索QueueShutdown/ “自动关机控制”,添加节点,无需接线。 - 打开“启用自动关机”,等待日志确认已启用。
- 提交包含此节点的工作流。日志出现“工作流已执行,开始监控全部排队及运行任务”后,监控才真正开始。
- 整个队列持续空闲30秒后,由节点通过 Windows 原生 API
InitiateSystemShutdownExW直接请求本机关机,不再额外倒计时。
等待期间出现新任务会重新计时;关闭开关可取消。固定30秒由后台控制,旧工作流保存的时间参数不会覆盖该设置。
仅开启开关、但没有执行包含该节点的工作流,不会启动队列监控。 节点没有停止图片/视频生成的功能;“取消关机”只取消关机计划。
取消关机
关闭“启用自动关机”,收到日志 “已由界面取消” 才表示后台已确认。 通信失败不代表取消成功;可再次操作开关重试。
关机请求提交给 Windows 后不能保证撤回。本节点不强制关闭应用, 因此其他应用或系统状态可能阻止实际关机;API 返回成功不等于电脑已关闭。
实现使用 Python 标准库 ctypes 调用系统 API,不启动命令行程序,不接受自定义命令或远程主机地址。
API 行为参见 Microsoft 官方文档(本包使用 Unicode 版本 InitiateSystemShutdownExW)。
调用时临时启用当前进程令牌中已有的 SeShutdownPrivilege,随后恢复原状态并关闭句柄。
如果当前账户没有该权限,关机请求会失败,节点记录 Windows 错误;不会自动提权或改用命令行重试。
多页面与队列边界
同一 ComfyUI 实例的节点和页面共享一个全局关机计划。关闭页面、删除画布上的节点不会取消计划。 页面刷新会同步后台状态;ComfyUI重启则不会恢复之前的启用授权。 监控的是整个ComfyUI队列,其他工作流也会延后关机。 检测到启用后任务历史中的失败或中断时取消计划;清空尚未运行的队列项无法仅凭历史准确判断失败。 不验证输出文件内容,也不监控电脑上其他软件的任务。 最终检查会锁住队列,但已经通过入口检查、仍在验证的新请求存在极小竞争窗口。
界面
节点只显示“启用自动关机”开关和只读运行日志,不提供时间输入框、诊断日志开关或清空日志按钮。 内部会话凭证不在界面显示,也不保存到工作流文件。
日志
运行事件和错误详情由 controller.py 统一保存在 ComfyUI 进程内存中,最多保留最近100条,带本地日期时间。日志按原文显示,不进行脱敏替换。
日志只显示在节点页面,不写入日志文件,也不向控制台输出。日志区底部显示当前状态,包括空闲确认剩余秒数。
完成、取消和失败后仍可查看。刷新浏览器页面不会清空;关闭或重启 ComfyUI 后旧日志消失,新启动只显示本次运行的日志。
日志不保存到工作流文件或浏览器存储。以前版本产生的旧日志文件不会自动删除,也不会被读取或继续写入。
更新后重启 ComfyUI 并按 Ctrl+F5 刷新浏览器。旧工作流加载后会重新同步后台状态,保存的开关值和旧参数不会自动授权关机。
License
MIT License. Copyright (c) 2026 ZZNodes contributors.