8G 显存的卡上跑 SDXL,一张 1024 图要四十多秒,加参数后又慢得更多,不知道两个模式该用哪个。

一开始怀疑是「显存不足时系统自动降级,行为不可控」,查了一圈,方向不对。

把日志和配置对完,能解释这个现象的基本就这几处。模型与文本编码器同时驻留显存,放不下。另一种情况是lowvram 会把模块反复换入换出,速度暴跌。

不容易想到的是,同时开了多个优化参数,互相冲突。

测不加参数的基线速度

python launch.py --api

中等显存优先用 medvram

set COMMANDLINE_ARGS=--medvram --opt-split-attention

显存更小时再考虑 lowvram 并接受降速

set COMMANDLINE_ARGS=--lowvram

末了记录每张图的耗时做对比

python bench_sd.py --steps 20 --n 4

那几天正好在做别的变更,先把时间线对齐才敢动手。

改完先别撤,确认这几项。单张出图时间降到二十秒左右,显存占用稳定在容量以内,不再中途崩溃。

容易忽略的是,lowvram 不是更省心的选项,它用时间换显存,只有在确实放不下时才用,否则宁可降分辨率。报错文案容易误导,真正的原因往往在相邻那一层的日志里。

作者 9823189