快速结论:在使用 ComfyUI Impact Pack 的 Gaussian Blur Mask、Upscaler (SEGS) 等节点做羽化/模糊时,如果 CPU 不支持 AVX 等指令集,PyTorch 会回退到效率极低的 CPU 路径并打印 NNPACK 警告;优先排查掩膜模糊运算是否跑在了 CPU 而不是 ComfyUI 配置的设备(GPU)上。该问题已由 PR #1198 修复并合并进 Main,更新 Impact Pack 即为首选处理方式。
适用环境:Issue 报告的运行环境为 ComfyUI Impact Pack,显卡为 RTX 4080(验证时使用 42 组 CPU/CUDA 用例),触发问题的机器为不支持 AVX 指令的旧 CPU。Issue 未明确给出 Python、CUDA、PyTorch 具体版本号,请以自身实际安装为准。
最快修复方案:将 Impact Pack 更新到最新 Main 分支(修复提交 1d12240b633325226ba442de61a427e00de2430b,来自 PR #1198)。在旧版本上,可优先尝试以下手工补丁:在 modules/impact/utils.py 中,把高斯模糊调用的输入显式转移到 ComfyUI 配置的设备上执行,并将结果转回原设备。
注意事项:手工补丁只是 Issue 作者在若干节点上验证过的临时方案,作者本人说明仅测试了少数节点,若代码中存在“先模糊掩膜、再与图像混用但未显式统一设备”的路径,仍可能出现设备不一致问题,需要进一步调整。补丁中类似 image = image.cpu() 的强制回 CPU 语句作者认为可能可以删除,但未确认其必要性,不建议随意改动。
问题场景
在 ComfyUI 中使用 Impact Pack 的节点处理图像与掩膜时触发,典型场景包括:
- 运行 Gaussian Blur Mask 节点,例如 kernel_size 设为 24;
- 运行 Upscaler (SEGS) 节点,例如 feather(羽化)设为 20。
在旧 CPU 上,一次本应很快的模糊运算会拖到数分钟甚至数十分钟。Issue 作者实测:未打补丁时 Gaussian Blur Mask 执行耗时 183.66 秒;打补丁后同一提示词在 GPU 上仅 0.21 秒。Upscaler (SEGS) 的处理时间也从超过 10 分钟降到不足 90 秒。
报错原文
got prompt
[W101 16:54:13.026243409 NNPACK.cpp:56] Could not initialize NNPACK! Reason: Unsupported hardware.
Prompt executed in 183.66 seconds
对应的现象关键词:Blur operations running slow on CPU。
原因分析
核心问题不在 Impact Pack 本身,而是 PyTorch 张量运算落到了不支持 AVX 等指令集的旧 CPU 上执行。NNPACK 初始化失败后,高斯模糊这类运算在 CPU 上极其缓慢。
Issue 作者定位到的具体位置是 modules/impact/utils.py 中的高斯模糊相关代码:torchvision.transforms.GaussianBlur 的输入掩膜没有显式放到 ComfyUI 配置的设备上,导致模糊在 CPU 上执行。修复讨论进一步指出,PR 合并前的辅助函数丢弃了 .to(...) 的返回值,即设备转移实际未生效。
因此,真正的问题是 模糊运算的设备没有按配置落到 GPU,NNPACK 警告只是这一情况的伴随信号,表示硬件不支持相关加速路径。
环境排查
- 确认 Impact Pack 版本是否早于修复提交 1d12240b633325226ba442de61a427e00de2430b(即是否已包含 PR #1198)。
- 确认 ComfyUI 启动参数中配置的执行设备为 GPU,而非
--cpu。 - 确认 PyTorch 为 CUDA 版本且能正常识别显卡;若
torch.cuda.is_available()为 False,模糊仍会退回 CPU。 - 确认 CPU 是否支持 AVX 指令集(可参考 CPU 型号规格);不支持 AVX 的旧 CPU 更容易暴露该问题。
- 检查
modules/impact/utils.py中utils.tensor_gaussian_blur_mask()相关代码是否已包含设备转移修复。
解决步骤
- 首选:把 Impact Pack 更新到最新 Main 分支,确保包含提交 1d12240b633325226ba442de61a427e00de2430b(PR #1198)。该提交修正了模糊前把掩膜转移到 ComfyUI 配置设备、模糊后再转回输入设备的逻辑。
- 若暂时无法更新,可临时手工修改
modules/impact/utils.py:在apply gaussian blur处,将模糊输入改为在目标设备上执行,例如GaussianBlur(...)(mask.to(device)),而不是直接传入mask。 - 同时检查
region1、region2的索引切片是否显式转到了掩膜设备(.to(device=mask.device)),避免后续拼接或合成时出现 “Expected all tensors to be on the same device”。 - 修改后重启 ComfyUI,再分别用 Gaussian Blur Mask 和 Upscaler (SEGS) 节点重新运行相同工作流做对照。
- 如更新后仍异常,请核对
modules/impact/segs_nodes.py与modules/impact/impact_pack.py中是否存在多余的强制.cpu()调用;Issue 作者认为这些调用可能可以移除,但并未给出确定结论。
验证方法
- 观察控制台是否仍出现
Could not initialize NNPACK!警告。 - 对比同一提示词的执行耗时:修复前在原问题机器上为 183.66 秒量级,修复后 GPU 执行约 0.21 秒;Upscaler (SEGS) 由 10 分钟以上降到 90 秒以内。
- PR 验证方式可作为参考:在 RTX 4080 上以 42 组 CPU/CUDA 用例覆盖执行设备检查、原设备恢复、与 CPU 结果比对,以及 SEGS 模糊节点下游的 NumPy 转换;修复后代码在配置为 CUDA 时使用 CUDA 执行。
参考来源
ltdrdata/ComfyUI-Impact-Pack #1171
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


![[Feature Request] Tamecards / Sequentially executed wild cards.](https://www.chat-gpts.plus/wp-content/uploads/2026/11/1043-cba37199-768x403.jpg)