硬件配置
搞了一套新机器专门跑 ComfyUI 数字人视频,配置如下:
| 配件 | 型号 |
|---|---|
| CPU | Intel Xeon |
| GPU | AMD Radeon AI PRO R9700 32GB (gfx1201) |
| 内存 | 62GB DDR4 |
| 系统 | Ubuntu 24.04 LTS |
| 内核 | 6.8.0-136-generic |
驱动安装
- ROCm 7.14 (amdgpu-dkms 6.19.14-2364437.24.04)
- PyTorch 2.11.0+rocm7.14.0
- ComfyUI 0.28.0
整体感受
装驱动没遇到什么大障碍,ROCm 7.14 对 R9700 支持不错。安装好驱动之后,用了坛子里 work 那个帖子的下载,直接套用工作流就开始跑视频了,开箱即用的感觉。
遇到的问题:黑屏重启
但是想上无限时长工作流的时候,跑了没多久直接黑屏,然后跳到系统登录界面,像是机器重启了一样。
用 Hermes 查了系统日志(journalctl + dmesg),找到关键错误链:
amdgpu: Not enough memory for command submission! (error -12)
amdgpu: Failed to pin framebuffer with error -12
GNOME Shell crashed with signal 6
根本原因是 ComfyUI 启动参数带了 --highvram,这个模式下所有模型焊死在显存里不释放。我的工作流加载了:
- z_image_turbo_bf16 (12GB)
- qwen_3_4b text encoder (7.5GB)
- ae VAE (320MB)
- 各种其他模型 + 中间张量
加起来超过 32GB 了,VRAM 被打爆 → amdgpu 驱动崩了 → GNOME 显示服务器跟着崩 → 黑屏登录。
解决方案
去掉 --highvram 启动参数,让 ComfyUI 用默认的 NORMAL_VRAM 模式(不加任何 --vram 参数就是默认)。这样每个模型用完就卸载,不会长期占着显存。32GB 显存在 normal 模式下依然非常充裕,速度几乎没区别。
启动脚本改前:
python main.py ... --highvram --enable-manager
改后:
python main.py ... --enable-manager
启动日志可以看到:
Set vram state to: NORMAL_VRAM
Using async weight offloading with 2 streams
想问问大家
这个方案是不是最优解?还是说有什么更好的办法,比如手动控制模型卸载顺序,或者在 workflow 层面做显存优化?听听各位大佬的意见。
给新朋友的提醒
如果你的 ComfyUI 启动参数里有 --highvram,加载多个大模型时一定要注意显存总量!--highvram 不会卸载任何已加载的模型,工作流里模型多了很容易爆显存。特别是 R9700/AMD 卡,显存爆了不只是报错,而是整个桌面崩掉回到登录界面。遇到类似黑屏重启的问题,先去查 journalctl -k 看看有没有 amdgpu 报错。