低配电脑部署 SD 如何设置 medvram 参数减少内存溢出

文章导读
在 Stable Diffusion WebUI 启动脚本的 COMMANDLINE_ARGS 变量中添加 `--medvram` 参数,适合显存受限的显卡环境,主要风险是图像生成速度会下降。
📋 目录
  1. A 命令速用版
  2. B 为什么会这样
  3. C 分步处理
  4. D 怎么验证是否生效
  5. E 常见坑
  6. F 常见问题
  7. G 参考来源
A A

在 Stable Diffusion WebUI 启动脚本的 COMMANDLINE_ARGS 变量中添加 `--medvram` 参数,适合显存受限的显卡环境,主要风险是图像生成速度会下降。

先说结论:`--medvram` 通过牺牲生成速度换取显存占用降低,是低配电脑运行 Stable Diffusion WebUI 的标准优化方案。

  • 适合:显存不足导致溢出报错的场景
  • 先准备:找到 webui-user.bat 或 webui.sh 启动文件
  • 验收:成功生成图像且控制台无显存错误

命令速用版

该操作主要涉及修改启动脚本配置,以下是 Windows 系统下的编辑示例:

set COMMANDLINE_ARGS=`--medvram`

如果是 Linux 或 Mac 系统,编辑 webui.sh 文件,在 COMMANDLINE_ARGS 变量中加入该参数。

为什么会这样

显存溢出是因为模型权重和中间计算数据超过了显卡物理显存上限。`--medvram` 参数指示程序将暂时不用的模型层移动到系统内存中,从而释放显存空间。

公开资料中没有看到可靠的量化数据说明具体节省多少显存,但官方文档确认该参数会降低生成速度以换取更低的显存需求。

低配电脑部署 SD 如何设置 medvram 参数减少内存溢出

分步处理

步骤 1:定位启动文件

在 Stable Diffusion WebUI 安装目录下,找到名为 `webui-user.bat`(Windows)或 `webui.sh`(Linux/Mac)的文件。

步骤 2:编辑配置参数

使用文本编辑器打开文件,找到 `set COMMANDLINE_ARGS=` 这一行。在等号后面添加 `--medvram`。如果已有其他参数,用空格隔开。

步骤 3:保存并重启

低配电脑部署 SD 如何设置 medvram 参数减少内存溢出

保存文件修改,关闭编辑器。重新双击运行启动脚本,等待服务初始化完成。

怎么验证是否生效

观察控制台日志,确认没有出现在 `CUDA out of memory` 或 `OutOfMemoryError` 相关的报错信息。尝试生成一张默认参数的图片,如果页面正常返回结果且未崩溃,说明参数生效。

部分启动日志会显示显存优化相关的提示,但不同版本输出格式不同,以不报错且能生成为准。

常见坑

参数冲突:不要同时设置 `--medvram` 和 `--lowvram`,两者功能重叠且可能导致不可预知的行为,通常只选其一。

速度预期:开启后生成速度会明显变慢,这是正常现象,不是配置错误。如果显存充足,不建议开启此参数。

低配电脑部署 SD 如何设置 medvram 参数减少内存溢出

精度问题:部分旧显卡或特定模型可能需要配合 `--no-half` 参数使用,但会进一步增加显存占用,需权衡测试。

常见问题

medvram 和 lowvram 有什么区别?

`--lowvram` 比 `--medvram` 更激进,显存占用更低但速度更慢,适合显存极低的设备。

Mac 电脑可以使用这个参数吗?

Mac 版本 WebUI 架构不同,通常不需要也不支持该参数,建议使用针对 Mac 优化的启动方案。

开启后为什么生成时间变长了?

因为数据需要在显存和系统内存之间交换,传输耗时增加,属于该参数的固有代价。

参考来源

AUTOMATIC1111/stable-diffusion-webui GitHub README, Arguments section, https://github.com/AUTOMATIC1111/stable-diffusion-webui