报错
020
显存与内存不足(OOM)
含未核实说明
注意力后端与 offload 参数对显存的影响:xformers / SageAttention / flash-attention / async-offload / pinned memory
报错原文(原样)
--use-split-cross-attention Use the split cross attention optimization. Ignored when xformers is used. --use-quad-cross-attention Use the sub-quadratic cross attention optimization . Ignored when xformers is used. --use-pytorch-cross-attention Use the new pytorch 2.0 cross attention function. --use-flash-attention Use FlashAttention. --async-offload Use async weight offloading. An optional argument controls the amount of offload streams. Default is 2. Enabled by default on Nvidia. --disable-pinned-memory Disable pinned memory use.
检索关键词
--use-split-cross-attention、--use-quad-cross-attention、--use-pytorch-cross-attention、--use-flash-attention、xformers、SageAttention、--async-offload、--disable-pinned-memory
先看这一句
换注意力后端后显存占用与速度差别很大:有的组合明显省显存且更快,有的组合反而 OOM 或输出噪点;钉住内存(pinned memory)在内存吃紧的机器上会加剧系统压力。
适用版本 全版本通用;AMD 平台的默认注意力后端与 NVIDIA 不同,参数组合需要单独试。
·
核实日期 2026-09-26
·
状态 可能已过期,正在复核
适用环境:Windows 便携版、秋叶/绘世整合包、ComfyUI Desktop、Linux + 云 GPU、Docker/服务器
现象与触发场景
常见触发场景:
- AMD/ROCm 用户(源码中 pytorch attention 在 AMD 上默认关闭,注释写明 'enabling pytorch attention on AMD currently causes crash when doing high res')
- 显存紧张时想用 split/quad attention 换显存
- 内存小于显存的机器启用 pinned memory 后系统变卡
根因
- 不同注意力实现的内存复杂度不同:split / sub-quadratic 用时间换显存,pytorch SDPA 与 flash-attention 更依赖硬件特性。
- xformers 优先级很高,启用后会让 --use-split-cross-attention / --use-quad-cross-attention 直接被忽略(help 原文 'Ignored when xformers is used')。
- 异步权重卸载(async offload)在 NVIDIA 上默认开启,会额外使用显存做流式缓冲,--disable-async-offload 可关掉;pinned memory 会锁定一部分系统内存,内存小的机器上可能适得其反。
解决步骤
已按「最可能有效」排序。请从上往下做,每做完一步用「验证」确认,不要一次改五处。
- 确定当前实际使用的注意力后端,再决定是否覆盖启动日志会打印注意力后端(例如 'Using pytorch attention'、'Using split attention in VAE')。只有在默认后端不合适时才显式指定;显式指定前先确认没有装 xformers,否则 split/quad 参数会被忽略。# 先看启动日志中的 attention 相关行python main.py --use-pytorch-cross-attentionpython main.py --use-split-cross-attentionpython main.py --use-flash-attention
- 显存不足时优先试 split attention,而不是一味降分辨率--use-split-cross-attention 的分块注意力在显存紧张时能显著降低峰值;官方 issue #9547 中 AMD 用户实测 --use-flash-attention --bf16-vae 是当时可用的组合,另一个用户给出 --use-split-cross-attention --disable-smart-memory --cache-none。参数效果与平台强相关,需要自己对比。python main.py --use-split-cross-attention --disable-smart-memorypython main.py --use-flash-attention --bf16-vae
- 内存吃紧时关掉 pinned memory,必要时调整异步卸载流数量pinned memory 会锁定系统内存不可换出,小内存机器上会让整体更卡甚至触发系统内存不足;用 --disable-pinned-memory 关闭。异步权重卸载的流数量可用 --async-offload N 减少缓冲占用,或用 --disable-async-offload 完全关闭(代价是变慢)。python main.py --disable-pinned-memorypython main.py --async-offload 1python main.py --disable-async-offload
验证是否修好
对比同一工作流在两种注意力后端下的峰值显存与单步耗时;确认启动日志确实切换到了目标后端(未因 xformers 被忽略)。
补充说明
SageAttention 属于第三方安装包,需自行编译/安装且对显卡架构有要求,其与 ComfyUI 的兼容性随版本变化较大,本条目未给出具体安装命令以避免版本错配。[未核实] SageAttention 在当前版本的最优参数组合未核实。
来源
按可信度排列:官方 issue / 官方文档 > 节点仓库 issue > 社区帖 > 中文社区文章。
链接以纯文本给出(本站不做站外跳转),需要核对时请自行复制到浏览器打开。
- [35] (官方文档) ComfyUI/comfy/cli_args.py(参数与 help 原文) https://github.com/Comfy-Org/ComfyUI/blob/master/comfy/cli_args.py
- [41] (官方 issue) VAE decoding on AMD works first time only ... · Issue #9547 https://github.com/Comfy-Org/ComfyUI/issues/9547
- [58] (官方文档) Performance Optimization - ComfyUI https://mintlify.wiki/Comfy-Org/ComfyUI/guides/performance-optimization
- [59] (官方 issue) Fix/tweak pinned memory accounting (PR #13221) https://github.com/Comfy-Org/ComfyUI/pull/13221
本条的可靠性边界
下面这些位置带
[未核实] 标记,是采集时没找到一手来源的部分,请自行验证:
- 补充说明
这条报错要用到的东西
按本条报错所属的类别(显存与内存不足(OOM))列出站内相关的下载包与板块入口。 它们不是「必须下载才能修好」,而是这一类问题里最常要动到的东西;具体怎么做,以上面的解决步骤为准。
ComfyUI 权重库(167 个文件 / 约 1187 GB)按 ComfyUI 的 models 目录分好类的 167 个权重文件 / 每个文件一份说明(放哪、被哪些工作流引用)
待挂载
权重库同一个模型常有更小的量化版本,换一个能省一大截显存
板块
工作流换一条依赖更轻的工作流
板块
同一类别的其他条目
【012】最典型的爆显存:KSampler 阶段 torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate ...
有来源
【013】新版报错:torch.OutOfMemoryError: Allocation on device 0 would exceed allowed memory.(附带 batch_size TIPS)
有来源
【014】VAE 解码阶段爆显存:Ran out of memory when regular VAE decoding, retrying with tiled VAE decoding
有来源
【015】系统内存/页面文件不足:OSError: The paging file is too small for this operation to complete. (os error 1455)
含未核实
【016】Windows 共享显存(Shared GPU memory)被吃满,任务管理器显示显存未释放、必须重启
含未核实
这个解法对你有效吗
记录只存在你自己的浏览器里,不需要注册账号。
知仓学习社