在windows+AMD显卡平台上运行 ComfyUI
环境搭建
主要依赖于该项目:https://github.com/patientx/ComfyUI-Zluda
- clone 该仓库: https://github.com/patientx/ComfyUI-Zluda
- 安装 python 3.10(推荐,我用的也是这个)
- 安装 hip sdk 最新版本,只需要核心模块和运行时库模块
- 修改系统环境,将
C:\Program Files\AMD\ROCm\{version}\bin
加入系统
环境变量 - 双击执行 ComfyUI-Zluda 目录下的
install.bat
(不支持 powershell),等待安装完成 - 官方推荐使用
patchzluda2.bat
脚本自动打补丁,但是我自己试不成功,需要手动修改patchzluda2.bat
脚本,删除下载和解压过程,然后前往 https://github.com/lshqqytiger/ZLUDA/releases 手动下载ZLUDA-windows-rocm6-amd64.zip
,解压到 ComfyUI-Zluda 目录下的 zluda 文件夹,然后双击执行脚本直接进行打补丁操作。 - 查询显卡是否在 hip sdk 支持范围内,如果没有,去 https://github.com/brknsoul/ROCmLibs 下载第三方支持库,我的显卡是 RX9070,没有官方支持,下载对应的
rocm gfx1201 for rocm 6.2.4-no-optimized.7z
,然后用压缩包内的文件覆盖C:\Program Files\\AMD\ROCm\5.7\bin\rocblas\
里的内容(里面的 dll 好像不覆盖也可以)
启动 WEBUI
可以直接双击 ComfyUI-Zluda 目录下的 comfyui.bat
启动 ComfyUI
该项目自带了 ComfyUI-Manager,可以很方便的下载第三方节点依赖
nginx 反代
可以修改 comfyui.bat
,监听 0.0.0.0 将 webui 暴露到公网,也可以用 nginx 等反代。
TODO:使用反代后无法在 webui 显示进度(已解决:https://github.com/comfyanonymous/ComfyUI/issues/3384#issuecomment-2233791739)
1
2
3
4
5
6
7
8
9
10
11
12
13
location /ws {
proxy_pass http://localhost:8188/ws;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
}
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://localhost:8188;
}
切换语言
在 ComfyUI 界面左下角点击 Settings
,然后选择 Language
,选择 中文
即可切换为中文界面
Flux 换衣实例
环境
按此处教程下载模型和工作流文件,将 models 放入 ComfyUI-Zluda 目录下的 models 文件夹
需要以下模型:
- flux-fill-dev
- flux1-redux-dev
- clip
- vae
- clip-vision
打开 ComfyUI,点击左上角的 Workflow
按钮,选择 Open
,然后选择下载好的工作流文件:
如果之前有加载过,可以在左侧边栏选择工作流:
如果显存只有16G,可以把这两个模型换成 fp8 版本的,不然会爆显存:
运行
添加图片,一张是要换的衣服(平面图或模特图皆可),另一张是被换的模特图
点击下方的
Run
按钮开始图片预处理,然后会在“手动绘制遮罩”面板看到两张预处理后图片在“手动绘制遮罩”面板,右键单击上面的图片,点击
Open in MaskEditor
为上面的图添加目的区域遮罩(涂抹右侧图片中需要被更换的部分),同样也为下面的图添加来源区域遮罩(涂抹左侧图片中的衣服部分),尽可能涂抹的准确些,仅把要被替换的部分包括进来在 KSampler 节点配置合适的轮次,一般来说轮次越多效果越好(但有时也可能效果越来越差),在我的 RX9070 上是大概 10 秒一轮,也就是说运行 10 轮大概 2 分钟,20 轮就要 4 分钟,见已知问题。
已知问题
windows 最新的 6.2.4 版本的 ROCm 速度非常慢,相比于 Linux 上的 6.4 版本差距能达到 10 倍
Linux ROCm 6.4 版本:
Linux 版本显存消耗较高,注意使用
--cpu-vam
参数把 VAM 过程放到 CPU 上运行,并不会显著降低速度