Stable Diffusion遇NansException:显存与性能优化求助
解决Automatic1111 WebUI显存不足、NansException及生成速度问题
针对你使用Quadro P5000(16GB显存)遇到的问题,按以下步骤逐一解决:
一、修正命令行参数,平衡显存与速度
当前配置的--no-half是核心问题,强制使用FP32精度会让显存占用翻倍、速度暴跌,且和ATTN_PRECISION=fp16冲突。修改webui-user.bat如下:
@echo off set PYTHON= set GIT= set VENV_DIR= set COMMANDLINE_ARGS=--xformers --medvram --autolaunch set PYTORCH_CUDA_ALLOC_CONF=garbage_collection_threshold:0.6,max_split_size_mb:512 set ATTN_PRECISION=fp16 call webui.bat
参数说明:
--xformers:保留这个Pascal架构兼容的注意力优化,大幅降低显存占用同时提升速度--medvram:16GB显存适配的模型拆分模式,比--lowvram速度快很多,不会过度拆分模型- 移除
--no-half:恢复FP16精度,显存占用减半,速度回归正常 - 调整
PYTORCH_CUDA_ALLOC_CONF:降低垃圾回收阈值到0.6,减少老卡的显存碎片化问题
二、解决VAE的NansException问题
NaN错误本质是VAE精度或兼容性问题,不要用--disable-nan-check屏蔽报错,按以下处理:
- 匹配模型对应的VAE:多数风格模型会自带适配VAE,去模型发布页面下载推荐VAE,替换WebUI
models/VAE目录下的默认文件 - 仅给VAE开FP32:如果还是出现NaN,在
COMMANDLINE_ARGS中添加--no-half-vae(不要加--no-half),仅VAE用FP32,模型保持FP16,显存增加有限且能避免NaN:set COMMANDLINE_ARGS=--xformers --medvram --no-half-vae --autolaunch
三、优化高清生成的显存占用
高清生成(如Hires.fix)是显存大户,调整以下设置:
- 降低Hires.fix放大倍数:从2x改为1.5x,或先生成512×512再放大,显存占用大幅减少
- 切换低显存采样器:使用
Euler a、LMS这类显存占用低的采样器,避免DPM++ 2M Karras等高显存选项 - 关闭批量生成:将Batch size设为1,高清批量生成会急剧增加显存消耗
- 开启VAE分块处理:在WebUI设置→系统中,将
VAE tile size设为256,分块处理VAE输出,降低显存占用
四、额外优化建议
- 更新CUDA驱动:Quadro P5000支持CUDA 11.8,更新驱动可提升xformers运行效率
- 关闭后台GPU应用:比如浏览器、视频播放软件,释放显存空间
- 清理显存缓存:在WebUI设置→系统中点击「Clear VRAM」,或重启WebUI,避免显存碎片化
内容的提问来源于stack exchange,提问作者Shalvus
相关产品推荐
相关产品推荐

