# ComfyUI 内存不足？分清显存、内存和磁盘空间

当 ComfyUI 在 Windows 上报告 `CUDA out of memory` 时，应先排查 GPU 内存和失败的工作流。删除生成的图像可以释放磁盘空间，但不会增加专用 VRAM。笼统的内存不足消息也可能涉及系统 RAM，因此应保留实际的错误文本，而不是把每次失败都当作同一个问题。

## 保存工作流，找出失败节点

保存工作流，并记录模型、分辨率、批次大小以及执行停止的节点。利用错误报告和终端日志区分加载模型、采样、解码图像和运行自定义节点。不同阶段需要的内存不同。

ComfyUI 的[故障排除指南](https://docs.comfy.org/troubleshooting/overview)建议检查报告、减小图像尺寸或批次大小，并排除自定义节点问题。一次只改一项，再运行同一工作流对比。不要同时更新所有节点、更换 Python 并更改模型，因为即使重跑成功，也难以判断是哪项改动起了作用。

## 分别读取 GPU 内存和系统内存

复现失败时，打开**任务管理器 › 性能**，同时查看 GPU 的专用内存和内存页面。在多 GPU 电脑上，确保查看的是实际用于该工作流的 GPU。

| 资源 | 短缺时的影响 |
| --- | --- |
| 专用 GPU 内存 | 模型和中间张量能否装入 GPU |
| 系统 RAM 和提交量 | Windows 和 CPU 侧工作是否有空间 |
| 磁盘空间 | 模型、输出和页面文件能否增长 |

共享 GPU 内存不是显卡上的额外物理 VRAM。空闲的大容量 SSD 并不意味着大模型能装入该显卡。Microsoft 的[任务管理器 GPU 说明](https://devblogs.microsoft.com/directx/gpus-in-the-task-manager/)介绍了不同的读数。

## 将首个实验对应到失败的节点

显存不足报告通常比红色节点包含更多有用信息。保留第一个分配错误以及引发它的节点；后续异常可能是那次首次失败的后果。在修改工作流图之前先保存一份副本。

| 出错阶段 | 先试什么 | 看什么结果 |
| --- | --- | --- |
| 加载模型或文本编码器 | 换一个兼容的小模型，保持测试任务相同 | 能否完成加载 |
| 采样 | 先把批量设为 1，再另跑一次较小尺寸 | 每次能否完成采样 |
| 采样后的 VAE 解码 | 改用兼容的分块 VAE 解码 | 是否仍在解码时报错 |
| 放大或视频处理 | 在工作流支持时，缩小输入或减少帧数 | 该阶段能否完成 |
| 自定义节点 | 换成支持该任务的最小内置节点 | 内置节点是否也报错 |

这些是实验，不是保证。更小的检查点可能改变模型家族、所需节点或输出质量，因此要使用支持它的工作流。如果首个错误与加载权重有关，降低最终 JPEG 质量不会改变模型所需的内存量。

简单记录模型、种子、分辨率、批量、改动的节点和结果。在工作流支持时保留相同种子，便于视觉对比，同时要认识到改变精度或节点仍可能改变图像。一种小配置能完成之后，每次只恢复一项要求，直到限制阶段变得清楚。

## 一次降低一项需求

从批次大小为 1 和较小的受支持分辨率开始。如果工作流随后能完成，就只增加一个维度并重复。图像宽度和高度都翻倍会使像素数变为四倍，但这并不意味着总 VRAM 恰好变为四倍，因为模型和不同节点有各自的成本。

如果失败发生在解码而非采样阶段，在工作流支持时尝试兼容的分块 VAE 解码节点。检查输出是否有接缝或其他差异。如果单个模型无法加载，仅减小输出尺寸可能无法解决问题。测试该工作流和硬件支持的模型或精度。

再次运行前，保存并关闭其他占用 GPU 较多的工作。如果失败任务后内存仍被占用，在保存工作流后正常重启 ComfyUI。重启可以释放失败任务仍占用的内存，但不会让过大的工作流稳定运行。

## 在不重建整个工作流的情况下改变 VAE 解码

ComfyUI 的 [VAE Decode Tiled 文档](https://docs.comfy.org/built-in-nodes/VAEDecodeTiled)介绍了在更小的分块中解码潜空间样本。在兼容图像工作流的已保存副本中，将相同的潜空间样本和 VAE 连接到分块解码节点，再将其图像输出连接到现有的保存或预览节点。保留原始工作流，以便改动可回退。

先使用该节点可用的默认值，而不是从另一个模型复制多个分块和重叠值。如果需要更小的分块，只改那个值，并检查内存使用和生成的图像。更小的分块可以减少工作集，但会增加处理开销；在接受结果前检查平滑渐变、边界和精细细节。

在解码时分块不会减少此前加载模型或运行采样器所需的内存。如果运行始终到不了解码阶段，就把排查移回失败阶段。视频 VAE 或专用模型可能需要各自兼容的节点，因此不要仅因为名称包含“tiled”就替换为图像解码器。

## 按安装方式调整启动参数

官方指南记录了手动安装的 `--lowvram`。对于从自身环境启动的手动安装，形式为：

```
python main.py --lowvram
```

这不是可以粘贴到 ComfyUI Desktop、便携包或第三方启动器中的通用命令。使用该安装支持的启动设置并保留现有参数。将工作从 GPU 内存移开可能以速度和系统 RAM 换取更低的 VRAM 需求。

对于涉及自定义节点的失败，与内置工作流对比，并遵循 ComfyUI 的[自定义节点故障排除](https://docs.comfy.org/troubleshooting/custom-node-issues)。保留原始工作流并记录禁用了哪些节点。缺失自定义节点会改变工作流，因此对比你能复现的最小等效任务。

## 对比后恢复启动设置

在尝试内存选项前，保留启动器的副本或其参数的记录。手动 Python 环境、Windows 便携包和桌面应用不一定以相同方式启动。只通过实际启动此安装的机制添加选项；创建第二个 Python 环境可能引入另一个问题。

ComfyUI 的 [启动参数文档](https://docs.comfy.org/development/comfyui-server/startup-flags)介绍了多个相互独立的内存和缓存选项项。它们不是要一起启用的开关集合。例如，减少结果缓存可以降低保留的内存，但会导致更多节点重新执行。CPU 卸载可能需要额外的系统内存并拖慢工作流。

成功运行后，检查输出是否完整可用，然后重复正常任务。如果改动只允许一个很小的测试，而所需工作流仍然失败，就记录这个边界。从原始启动器中移除无用的测试参数，并在下一次实验前回到最后可用的配置。

如果系统承诺量是瓶颈，将 Windows 内存与 GPU 内存一起检查，并保留可用的分页文件配置。增加磁盘容量、提高分页文件上限和降低专用显存需求是不同的干预措施；不应将其中任何一项当作其他项的通用解决方案。

## 生成图片的清理另做处理

生成的图像和视频可能占用大量磁盘空间。按项目审查它们，并保留复现有价值结果所需的工作流和资源。删除唯一副本前，先备份你打算保留的任何内容。

如果错误是 Windows 提交量不足，[Windows 内存指南](/zh/windows/blog/windows-high-memory-usage)解释了它与 VRAM 的区别。不要删除页面文件来让磁盘看起来更干净。报告持续失败时，包含确切的错误、GPU 和驱动程序、安装类型以及最小的失败工作流，并移除私人提示和路径。


Canonical: https://mole.fit/zh/windows/blog/comfyui-out-of-memory-windows
