CUDA out of memory

在 ComfyUI Impact Pack 的 Detailer 流程中(SAM/SAM3 或遮罩操作)执行 tensor_gaussian_blur_mask 时触发 CUDA out of memory ,且尝试分配约 79 GiB 显存。优先检查 Impact Pack 版本是否落在 PR #

快速结论:在 ComfyUI Impact Pack 的 Detailer 流程中(SAM/SAM3 或遮罩操作)执行 tensor_gaussian_blur_mask 时触发 CUDA out of memory,且尝试分配约 79 GiB 显存。优先检查 Impact Pack 版本是否落在 PR #1252 / #1258 之后的提交区间,并更新到包含 #1265 的版本。

适用环境:Issue 报告环境为 Linux(Red Hat / Fedora 44)、Python 3.13.16、AMD Radeon RX 9070 XT(16GB VRAM,gfx1201)、PyTorch 2.14.1+rocm7.2(ROCm 7.2)、ComfyUI 0.43.0。其他操作系统、Python 版本、显卡与依赖版本未在该 Issue 中确认。

最快修复方案:更新 ComfyUI-Impact-Pack 到 Main 中已合并 #1265 的版本并重启 ComfyUI。该版本将 Mask Gaussian blur 默认改为在 CPU 上运行;显存紧张时不要手动开启 gpu_gaussian_blur。

注意事项:Issue 中报告方硬件上并未复现 79.22 GiB 的具体分配,因此 #1265 解决的是“强制 GPU 执行”这一问题,并未确认某个后端的根因。回滚 Impact Pack 可绕过该问题,但只是临时措施;切换 gpu_gaussian_blur 后需重启 ComfyUI 才生效。

问题场景

用户将 ComfyUI-Impact-Pack 更新到最新提交(问题集中在 PR #1252 / #1258 附近)后,运行包含 Detailer 的工作流(使用 SAM/SAM3 或遮罩操作),在 tensor_gaussian_blur_mask 执行阶段出现大规模显存分配失败。Traceback 经过 impact_pack.py 的 DetailerForEach.doit → do_detail → core.enhance_detail。将 Impact Pack 回滚若干提交后问题立即消失,报告者据此判断为近期合并引入的回归。

报错原文

[ERROR] Traceback (most recent call last):
  File "/home/enigma/ComfyUI/execution.py", line 556, in execute
    ...
  File "/home/enigma/ComfyUI/custom_nodes/ComfyUI-Impact-Pack/modules/impact/impact_pack.py", line 422, in doit
    DetailerForEach.do_detail(image, segs, model, clip, vae, guide_size, guide_size_for, max_size, seed, steps,
  File "/home/enigma/ComfyUI/custom_nodes/ComfyUI-Impact-Pack/modules/impact/impact_pack.py", line 362, in do_detail
    enhanced_image, cnet_pils = core.enhance_detail(cropped_image, model, clip, vae, guide_size, guide_size_for_bbox, max_size,
...

torch.OutOfMemoryError: CUDA out of memory

原因分析

最可能的原因是 #1252 / #1258 之后的提交改变了 Mask Gaussian blur 的执行路径,使 tensor_gaussian_blur_mask 在 GPU 上执行,而报告环境中该操作触发了约 79 GiB 的显存分配,超出 16GB 显卡容量。回滚 Impact Pack 可立即恢复正常,支持“近期合并引入回归”的判断。

维护者在 #1265 中给出的处理方式是:Mask Gaussian blur 默认改为 CPU 执行,GPU 执行变为 impact-pack.ini 中的显式选项。维护者同时说明,报告硬件上未复现 79.22 GiB 的具体分配,因此该修复针对的是“强制 GPU 执行”,尚未确认具体后端根因。上述显存分配数字及其成因仍属未完全验证部分。

环境排查

  • 确认 ComfyUI-Impact-Pack 当前提交是否位于 PR #1252 / #1258 之后、#1265 合并之前。
  • 确认 impact-pack.ini 中是否存在 [default] 段及 gpu_gaussian_blur 项;旧配置不含该项时也应使用新的默认行为。
  • 确认 ComfyUI 版本(报告为 0.43.0)与 Impact Pack 更新是否匹配。
  • 确认 PyTorch / ROCm 版本(报告为 PyTorch 2.14.1+rocm7.2、ROCm 7.2)、显卡型号与显存容量(报告为 RX 9070 XT,16GB,gfx1201)。
  • 确认 Python 版本(报告为 3.13.16)与操作系统(报告为 Linux / Fedora 44)。
  • 确认触发工作流中 Detailer 节点是否使用 SAM/SAM3 或遮罩相关操作。

解决步骤

  1. 将 ComfyUI-Impact-Pack 更新到包含 #1265 的 Main 版本。
  2. 重启 ComfyUI,使新版本及新的默认配置生效。
  3. 不要手动开启 GPU 模糊。若 impact-pack.ini 中存在 gpu_gaussian_blur = True,在显存不足以在模型加载之外再承担模糊计算时,应保持关闭或删除该行。
  4. 如确有富余显存并希望恢复 GPU 计算,可在 impact-pack.ini 的 [default] 段添加 gpu_gaussian_blur = True,然后再次重启 ComfyUI。此为可选项,并非默认推荐。
  5. 若暂时无法更新,可回滚 Impact Pack 到出现问题前的提交作为临时绕过方案。

验证方法

更新并重启后,重新运行此前触发报错的同一 Detailer 工作流(含 SAM/SAM3 或遮罩操作),确认不再出现 CUDA out of memory,且 Detailer 能正常完成出图。维护者表示配置与模糊相关测试共 17 个用例全部通过,覆盖真实 CPU 与 GPU 执行;也可对照检查 impact-pack.ini 中 gpu_gaussian_blur 是否处于预期状态。

参考来源

ltdrdata/ComfyUI-Impact-Pack #1260

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 31671

发表回复

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