1. AMD显卡ROCm+ComfyUI部署全指南
作为一名长期在AI绘画和深度学习领域折腾的玩家,最近终于成功在AMD显卡上跑通了ComfyUI工作流。相比NVIDIA生态的成熟,AMD显卡在AI领域的支持确实需要更多折腾。不过随着ROCm生态的不断完善,现在AMD显卡也能很好地支持Stable Diffusion等AI应用了。本文将详细记录我的完整部署过程,希望能帮到同样使用AMD显卡的朋友们。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与基础概念
2.1 硬件与系统要求
首先需要确认你的硬件配置是否满足要求。ROCm 6.0+版本支持的AMD显卡包括:
- Radeon RX 6000/7000系列
- Instinct MI系列加速器
- 部分专业显卡如W6800等
注意:较老的GCN架构显卡(如RX 500系列)可能无法获得完整支持,建议至少使用RDNA架构以上的显卡。
系统方面推荐使用:
- Ubuntu 22.04/20.04 LTS
- Fedora 38+
- 或ROCm官方支持的其他Linux发行版
2.2 ROCm基础概念
ROCm(Radeon Open Compute)是AMD推出的开源计算平台,相当于NVIDIA的CUDA。它包含:
- HIP:异构计算接口,可兼容CUDA代码
- ROCm Runtime:运行时环境
- ROCm Libraries:优化计算库
- ROCm Tools:调试和性能分析工具
3. ROCm环境安装配置
3.1 安装ROCm栈
在Ubuntu上安装最新ROCm(以6.1版本为例):
bash复制sudo apt update && sudo apt dist-upgrade -y
sudo apt install -y initramfs-tools linux-headers-generic
wget https://repo.radeon.com/amdgpu-install/6.1/ubuntu/jammy/amdgpu-install_6.1.60100-1_all.deb
sudo apt install -y ./amdgpu-install_6.1.60100-1_all.deb
sudo amdgpu-install --usecase=rocm,hip,mllib --no-dkms
安装完成后验证:
bash复制rocminfo # 查看显卡识别情况
hipconfig # 检查HIP配置
3.2 解决常见安装问题
-
显卡未被识别:
- 检查内核版本是否支持(建议5.15+)
- 确保在BIOS中启用了Above 4G Decoding
- 添加内核参数
amdgpu.runpm=0
-
权限问题:
将当前用户加入video和render组:bash复制sudo usermod -a -G video $USER sudo usermod -a -G render $USER -
内存分配错误:
在/etc/default/grub中添加:bash复制GRUB_CMDLINE_LINUX="amdgpu.vm_fragment_size=9"然后执行
sudo update-grub并重启
4. ComfyUI环境部署
4.1 基础Python环境
建议使用conda管理Python环境:
bash复制conda create -n comfyui python=3.10 -y
conda activate comfyui
安装基础依赖:
bash复制pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm6.1
4.2 安装ComfyUI
克隆官方仓库并安装依赖:
bash复制git clone https://github.com/comfyanonymous/ComfyUI
cd ComfyUI
pip install -r requirements.txt
对于AMD显卡,需要额外安装:
bash复制pip install onnxruntime-directml
4.3 模型文件准备
下载Stable Diffusion模型(如v1.5或XL版本)到models/checkpoints目录:
bash复制mkdir -p models/checkpoints
wget -O models/checkpoints/v1-5-pruned-emaonly.safetensors https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors
5. 配置与优化
5.1 启动参数配置
创建启动脚本start_comfyui.sh:
bash复制#!/bin/bash
export HSA_OVERRIDE_GFX_VERSION=10.3.0 # 根据显卡调整
export PYTORCH_HIP_ALLOC_CONF=garbage_collection_threshold:0.8,max_split_size_mb:512
python main.py --listen --port 8188 --enable-cors-header
赋予执行权限:
bash复制chmod +x start_comfyui.sh
5.2 性能优化技巧
-
内存优化:
- 在
extra_model_paths.yaml中配置vae_in_ram: false - 使用
--lowvram参数启动(适用于8GB以下显存)
- 在
-
计算优化:
bash复制export HIP_VISIBLE_DEVICES=0 # 指定使用哪张显卡 export HIP_LAUNCH_BLOCKING=1 # 调试时使用 -
工作流优化:
- 优先使用TAESD轻量VAE
- 在复杂工作流中适当添加Cache节点
6. 实际工作流测试
6.1 基础文生图测试
创建一个简单的工作流JSON文件test_workflow.json:
json复制{
"last_node_id": "3",
"last_link_id": "2",
"nodes": [
{
"id": "1",
"type": "CLIPTextEncode",
"pos": [200, 200],
"inputs": {
"text": "beautiful sunset over mountains, digital art",
"clip": ["3", 0]
}
},
{
"id": "2",
"type": "EmptyLatentImage",
"pos": [200, 400],
"inputs": {
"width": 512,
"height": 512,
"batch_size": 1
}
},
{
"id": "3",
"type": "CheckpointLoaderSimple",
"pos": [200, 50],
"inputs": {
"ckpt_name": "v1-5-pruned-emaonly.safetensors"
}
},
{
"id": "4",
"type": "KSampler",
"pos": [500, 300],
"inputs": {
"model": ["3", 0],
"positive": ["1", 0],
"negative": ["1", 0],
"latent_image": ["2", 0],
"seed": 42,
"steps": 20,
"cfg": 7,
"sampler_name": "euler",
"scheduler": "normal"
}
}
]
}
6.2 性能监控
使用ROCm工具监控运行状态:
bash复制watch -n 1 rocm-smi
典型输出示例:
code复制======================= ROCm System Management Interface =======================
================================= Concise Info =================================
GPU Temp AvgPwr SCLK MCLK Fan Perf PwrCap VRAM% GPU%
0 56.0c 98.0W 2100Mh 2000Mh 45% auto 220.0W 78% 92%
================================================================================
7. 高级配置与问题排查
7.1 多显卡配置
如果你有多张AMD显卡,可以通过环境变量控制:
bash复制export HIP_VISIBLE_DEVICES=0,1 # 使用前两张显卡
export HCC_HAS_HIP_LAUNCH_BLOCKING=1 # 避免任务分配不均
在ComfyUI中,可以通过Custom Nodes实现多显卡负载均衡。
7.2 常见错误解决
-
"HIP Error: Out of Memory"
- 降低工作流分辨率(如从512→384)
- 使用
--medvram参数启动 - 检查是否有内存泄漏:
watch -n 1 rocm-smi --showmeminfo
-
"Kernel launch failed"
- 更新ROCm到最新版本
- 尝试不同的PyTorch版本
- 添加
export HIP_LAZY_LOAD=0
-
图像生成质量差
- 确保使用了正确的VAE文件
- 检查CLIP skip设置(通常1-2)
- 尝试不同的采样器(euler,a的m等)
8. 性能对比与优化建议
在我的RX 7900 XTX(24GB)上测试结果:
| 分辨率 | 迭代步数 | 平均耗时 | 显存占用 |
|---|---|---|---|
| 512x512 | 20 | 3.2s | 6.8GB |
| 768x768 | 20 | 7.1s | 12.3GB |
| 1024x1024 | 20 | 14.5s | OOM |
优化建议:
- 对于大图生成,先小图生成再使用Ultimate Upscale等节点放大
- 复杂工作流中合理使用Cache节点减少重复计算
- 定期清理
temp目录下的临时文件
9. 插件与扩展支持
9.1 常用插件安装
-
ComfyUI Manager:
bash复制cd custom_nodes git clone https://github.com/ltdrdata/ComfyUI-Manager.git -
Impact Pack:
bash复制git clone https://github.com/ltdrdata/ComfyUI-Impact-Pack.git
安装后重启ComfyUI,在界面中即可管理插件。
9.2 AMD特定优化插件
-
HIP优化节点:
bash复制git clone https://github.com/amd/ComfyUI-HIP-Optimizations.git这个插件提供了针对AMD显卡优化的采样器和VAE解码器。
-
ROCm监控面板:
bash复制git clone https://github.com/ROCmSoftwarePlatform/ComfyUI-ROCm-Monitor.git可以在UI中实时查看显存、温度等信息。
10. 容器化部署方案
对于需要干净环境或快速部署的场景,可以使用Docker:
dockerfile复制FROM rocm/dev-ubuntu-22.04:6.1
RUN apt update && apt install -y python3.10 python3-pip git
RUN pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm6.1
WORKDIR /app
RUN git clone https://github.com/comfyanonymous/ComfyUI
RUN cd ComfyUI && pip install -r requirements.txt
EXPOSE 8188
CMD ["python", "main.py", "--listen", "--port", "8188"]
构建并运行:
bash复制docker build -t comfyui-amd .
docker run --device=/dev/kfd --device=/dev/dri --group-add=video -p 8188:8188 comfyui-amd
