AMD显卡跑ComfyUI+Z-Image完全指南:从DirectML环境搭建到避坑
2026/9/20 11:25:49 网站建设 项目流程

AMD显卡跑ComfyUI这事儿,搁两年前想都不敢想。那时候圈子里默认的潜台词就是:玩AI绘图,老老实实上N卡。但自从PyTorch的DirectML分支慢慢成熟,加上Z-Image这类新架构模型对显存和算力的要求比SD系列友好不少,把AMD显卡拉出来遛一遛,成了性价比极高的选择。我自己手里的卡是RX 6700 XT,从SD 1.5一路折腾到SDXL,再到现在的Z-Image,踩过的坑叠起来比驱动安装包还高。这篇就把我从零开始,在Windows下用AMD显卡完整跑通ComfyUI + Z-Image的全过程写出来,包括那些让人血压飙升的报错和折腾记录,希望能让你少走点弯路。

先说清楚一个概念:AMD显卡在Windows下跑AI,本质上不是显卡不行,而是生态不配合。NVIDIA有CUDA,几乎所有AI框架都优先为它优化。AMD在Linux下有ROCm,在Windows下呢?官方支持基本等于没有。这时候就轮到微软的DirectML出场了。你可以把DirectML理解成一个通用翻译层,它能把PyTorch、TensorFlow这些框架的运算指令,翻译成AMD、Intel集成显卡都能听懂的语言。虽然性能比原生CUDA差一截,但胜在兼容性广,而且新卡和旧卡都能覆盖。对于个人玩玩、跑跑图、做做小规模训练的我们来说,够用了。

Z-Image这个模型也值得多说两句。它不像SD系列那样依赖庞大的UNet和CLIP文本编码器,而是走了类似LLM的自回归路线,用一个统一的Transformer架构同时处理文本和图像token。体量小、收敛快,生成的图像在光照真实感上非常强,直出质量就很高,不需要堆一堆LoRA和ControlNet也能有不错的效果。最重要的是它对显存的需求比SDXL友好,6GB显存的卡都能跑得有模有样。这简直是给AMD中低端卡量身定做的入场券。

1. 整体思路与方案选型:为什么绕开PyTorch官方版

很多人第一步就卡在安装PyTorch上。去PyTorch官网一选,Windows + Pip + CUDA,出来的指令默认带cu121或者cu124的包。AMD用户兴冲冲复制粘贴,跑起来才发现核心库根本加载不了,直接报错说找不到CUDA驱动。这就是没有搞清楚状况:AMD显卡在Windows下压根不走CUDA这条路。

正确的思路是走微软的DirectML通道。具体来说,就是安装PyTorch的DirectML分支版本。这个分支由微软维护,底层调用DirectML API,把运算分发到显卡上。目前支持的PyTorch版本到了2.4.x左右,虽然比官方主线落后了半拍,但跑ComfyUI的主流工作流已经足够。更重要的是,ComfyUI官方专门为这个分支开了个directml分支代码,两者配合得严丝合缝。所以方案就定下来了:ComfyUI的directml分支 + PyTorch DirectML版 + Z-Image模型。

1.1 为什么不建议用秋叶整合包

我知道很多人图省事,直接去下秋叶大佬的整合包。那个整合包对N卡用户确实是福音,一键安装、内置各种插件和工作流,但对A卡用户来说就有点尴尬了。整合包默认的PyTorch是CUDA版,就算你换显卡驱动、加什么--directml参数,底层核心库不对就是不对。有些整合包版本后来加了A卡支持选项,但版本更新滞后,而且出了问题你很难自己去排查,因为整个环境是打包好的“黑盒”,你不知道它内部怎么组织的。

我自己刚开始也试过整合包,结果卡在启动界面上,报错信息指向torch.cuda相关模块找不到,折腾了一整天才明白问题出在哪。后来一咬牙,干脆手动搭环境,所有组件自己控制版本,出现了问题也知道该查哪里。事实证明,这个思路是对的。手动搭环境虽然第一次麻烦一点,但后续升级插件、换模型、改配置都非常自由。

1.2 版本选择的关键考量

  • Python版本:我建议用3.10.11,不要用3.12或3.13。PyTorch DirectML分支对3.12的支持不完善,有些依赖包会编译失败。
  • Git:必须装,拉取ComfyUI源码和后续更新插件都需要。
  • 显卡驱动:更新到Adrenalin 2023及以上版本,旧驱动对DirectML的兼容性和性能都差很多。
  • 显卡显存:Z-Image在fp16精度下,6GB显存可以跑,但8GB会更舒服。

2. 环境搭建与核心依赖安装:手把手操作

环境搭好之前,一切都是空中楼阁。这里我把从零开始的完整操作命令都列出来,你可以直接照着执行。

2.1 Python虚拟环境创建

打开命令行,在你喜欢的目录下创建虚拟环境。这里建议用conda或者python自带的venv,不要直接用全局环境,免得以后依赖冲突。

python -m venv comfy_amd_env cd comfy_amd_env Scripts\activate

激活后,你会看到命令行前缀变成(comfy_amd_env),说明现在已经在虚拟环境里了。后面安装的包都只会装在这个环境里,不会污染系统全局。

2.2 安装PyTorch DirectML版

这是整个流程中最关键的一步。不要用pip直接装torch,一定要指定DirectML的索引地址:

pip install torch-directml

装完后,可以用下面的命令测试一下显卡是否被正确识别:

python -c "import torch; print(torch.cuda.is_available())"

注意,这里用torch.cuda.is_available()会返回False,这是正常的,因为走的不是CUDA通道。正确的测试方法是:

python -c "import torch_directml; print(torch_directml.device_count()); print(torch_directml.device_name(0))"

如果能看到你的显卡型号,比如AMD Radeon RX 6700 XT,说明DirectML通道已经打通了。这一步走通了,后面基本就顺了。

2.3 克隆ComfyUI的directml分支

网络上有各种版本的ComfyUI,有些是官方原版,有些是别人魔改过的。我们必须用官方专门为DirectML适配的分支:

git clone https://github.com/ComfyUI-Org/ComfyUI.git -b directml cd ComfyUI

这里-b directml参数特别重要,它拉取的是专门支持DirectML的分支代码,里面已经预设好了一些兼容逻辑,可以省掉很多手动调整的功夫。如果拉的是主分支,后面跑的时候十有八九会报torch_directml模块找不到或者某些算子不兼容的错。

拉取完成之后,安装依赖:

pip install -r requirements.txt

这个requirements.txt里面会拉取ComfyUI运行所需的基本依赖,包括transformers、safetensors、pillow这些。注意,因为前面已经装了torch-directml,所以不要用requirements.txt去覆盖安装,不然又把torch换回CUDA版了。在安装之前,可以把requirements.txt里的torchtorchvision相关行注释掉,或者装完依赖后再重新执行一次2.2的安装命令,确保torch还是DirectML版。

2.4 安装常用插件(可选)

ComfyUI的魅力在于插件生态。Desktop版安装插件很简单,在ComfyUI-Manager里搜一下就装了。但走命令行启动的话,就需要手动克隆插件到custom_nodes目录。我自己装了几个必备的:

cd custom_nodes git clone https://github.com/ltdrdata/ComfyUI-Manager.git git clone https://github.com/cubiq/ComfyUI_IPAdapter_plus.git git clone https://github.com/pythongosssss/ComfyUI-Custom-Scripts.git cd ..

ComfyUI-Manager是必须要有的,它不仅是插件管理器,还能在界面里直接搜索和安装缺失的节点。IPAdapter_plus用来做图像风格迁移,Custom-Scripts提供一些辅助小功能,看需求装。

3. Z-Image模型文件准备:下载、放置与工作流搭建

环境搭好了,接下来就是把Z-Image模型文件放到位。这一步看着简单,但很多人搞错目录,导致启动时加载不到模型。Z-Image模型跟SD系列的模型不一样,它不是单个巨大的ckpt文件,而是像大语言模型那样,由多个不同功能的权重文件组成。Z-Image官方选择了直接支持ComfyUI格式,也就是说你从HuggingFace(模型开源平台)下完文件,按目录放好,ComfyUI原生就能识别,不需要写额外代码。

3.1 模型文件获取与目录结构

Z-Image在网上的仓库名,一般可以搜到。下载时重点找这几个文件:

  • z-image-base-fp16.safetensors或者类似命名,这是核心权重文件,很大,可能有十几个GB。
  • z-image-vae-fp16-fix.safetensors,这是变分自编码器,负责图像压缩和还原。
  • t5-v1_1-xxl-encoder相关的CLIP文本编码文件夹,里面还有clip_model_config.json等配置文件。
  • autoencoder相关的模块(如果有单独的话),一般跟VAE混在一起了。

下载完之后,把它们放到ComfyUI目录下的models文件夹里,具体路径如下:

ComfyUI/ ├── models/ │ ├── checkpoints/ # 核心权重放这里,如果网上的文件自带子文件夹,记得把子文件夹内容放在这一层 │ ├── vae/ # VAE权重放这里 │ ├── text_encoders/ # CLIP/T5文本编码器放这里 │ └── clip/ # 早期版本可能用这个目录,看版本

我实际操作中,Z-Image的工作流需要的组件包括 Unet(放在diffusion_models目录下)、CLIP(放在text_encoders目录下)、VAE(放在vae目录下)。如果你的下载源给的文件结构跟我们印象中的目录不一样,不要慌,看扩展名.safetensors和目录意图去对应就行。

3.2 下载注意网络问题

HuggingFace直连速度时快时慢,经常下到一半断了。我建议用国内的镜像源,比如hf-mirror.com,速度快、稳定,而且不用开任何辅助工具。设置环境变量的方式:

set HF_ENDPOINT=https://hf-mirror.com

然后再执行下载脚本或使用HuggingFace的下载工具,速度会有质的提升。这是我的切身感受,第一次用原始地址下一个7GB的权重文件,愣是花了四个多小时,差点让我当场放弃。

3.3 构建Z-Image工作流的节点连接

模型文件放好之后,打开ComfyUI,用默认的空白工作流开始搭建。Z-Image的主工作流其实不复杂,核心节点比SDXL还简单:

  • CheckpointLoaderSimple:加载核心权重,它会自动关联对应的CLIP和VAE。
  • CLIPTextEncode:写正向提示词和负向提示词,各接一个。
  • KSampler:采样器,CFG、Steps、Sampler名、Scheduler名这些参数在这里配置。
  • VAEDecode:把潜空间数据还原成图像。
  • SaveImage:保存图片。

Z-Image对负向提示词的依赖比较低,很多时候空着就行;对采样步数要求也低,20到30步直出效果就相当能看。这些在搭建工作流时不用像我一开始那样上来就是40步、CFG 7折腾半天,纯属浪费时间。

4. 启动运行与首次生成:关键时刻

环境、模型、工作流都准备好了,最后一步就是启动ComfyUI并完成第一次生成。这一步也是A卡用户最容易受打击的地方,各种莫名其妙的报错都会在这里密集爆发。

4.1 启动命令与参数

ComfyUI目录下,执行:

python main.py --directml

这个--directml参数很关键。不加它,ComfyUI默认调用torch.cuda,AMD显卡直接歇菜。加了之后,ComfyUI会走DirectML通道。如果你的机器有多张AMD显卡(比如核显+独显),可以指定用哪张卡:

python main.py --directml:0

数字0代表第一张卡,1代表第二张。我的机器是AMD 5600G配RX 6700 XT,不开参数的话它会默认用第一张DirectML设备,也就是核显,性能拉胯得没法看。必须手动指定--directml:1才能强制走独显。这个坑,配置单里写清楚,能少好几个小时的困惑。

启动成功后,终端会显示To see the GUI go to: http://127.0.0.1:8188,浏览器打开这个地址就能看到ComfyUI的界面。

4.2 首次生成的正确姿势

第一次生成,建议用最简单的工作流,不要一上来就套复杂的姿态控制或IPAdapter。先确保基本链路通了,再去加花活。

点界面右下角的“Queue Prompt”按钮,第一次运行会有一个加载模型的过程,时间可能比较长,感觉像是卡住了。实际上它是在把那些几十GB的safetensors文件读入显存,耐心等待。终端会滚动输出加载日志。等看到类似Requested to load ...Model loaded in ... seconds的字样,说明模型加载完成,接下来就是采样过程了。

采样过程中,A卡和N卡最大的区别会直观暴露出来:速度确实慢。N卡4080跑Z-Image 20步512x768一秒出图,我的6700 XT得等个十秒左右。但这不影响使用,又不是做商业出图,慢一点完全可以接受。关键是质量,Z-Image渲染出来的画面感是真的好,色彩自然、明暗错落有致,尤其是人像皮肤质感和环境光融合,很容易给人一种照片级的感觉。

4.3 性能调优与显存优化

如果发现显存不够或者速度太慢,有几个立竿见影的调整项:

  • 降低分辨率:Z-Image虽然是新架构,但生成分辨率还是跟显存强相关。8GB显存的话,建议先跑512x512或者768x768,不要一上来就1024x1024。
  • 开启--lowvram参数:在启动命令后面加--lowvram,可以让模型权重低频换入显存,牺牲一点速度换稳定性。
  • 批量步数控制:Z-Image在20步左右就已经逼近收敛,没必要硬堆40步,只会增加等待时间而不提升细节。
  • 注意sampler和scheduler:Z-Image官方推荐用euler+normal或者euler_ancestral+normal,这些在KSampler节点里直接选就行,效果比默认的lms+karras要稳,色偏也少。

关于色偏,我遇到过一次比较严重的问题:出图整体发绿,像蒙了一层滤镜。排查了半天,发现是VAE的配置问题,Z-Image对VAE的精度和类型比较敏感,如果加载的是旧SD1.5的VAE就会导致色彩异常。去下载Z-Image专用的VAE文件替换后,问题就解决了。这是A卡用户容易踩的另一个坑,因为DirectML通道下有些默认配置会跟预期不一致。

5. 高频报错与问题排查:手把手带你排雷

这部分是重点中的重点,我把自己和群友们在A卡上跑ComfyUI遇到的高频问题全列出来,做一个“症状-原因-解法”的速查表。每一个都是实打实发生过的,照着做基本能解决九成问题。

5.1 常见报错速查表

报错信息/现象根本原因解决方案
AssertionError: Torch not compiled with CUDA enabled装了CUDA版PyTorch,但显卡是AMD卸载torch,重装torch-directml
ModuleNotFoundError: No module named 'torch_directml'没有安装DirectML版PyTorchpip install torch-directml装完后重启ComfyUI
CUDA error: no kernel image is available显卡驱动或PyTorch版本和显卡不兼容更新AMD驱动到最新版,并确保用的是DirectML分支的ComfyUI
启动卡在Loading model很久没反应第一个模型加载较慢,正常现象等待,不要强制关闭,观察终端日志是否还在滚动
出图色彩发绿、发红、发紫VAE下载不匹配或精度不对换用Z-Image专用VAE,确保是fp16版本且放在vae目录
生成速度极慢,只有预期1/5可能走的是核显而非独显启动时指定--directml:1--directml:0得到独显设备编号
OutOfMemoryError但任务管理器显示显存没满DirectML显存管理机制特殊,系统内存溢出会导致误报--lowvram,降低分辨率,关掉其他占用显存的程序
某些节点报No module named 'cv2'Without 'dml' support依赖不完整或插件的DML兼容问题pip install opencv-python;插件不兼容就卸载,找替代插件

5.2 显存不足的第二种解法

很多人不知道,DirectML模式下显存不足跟CUDA模式下表现完全不同。CUDA模式是直接抛异常,DirectML模式可能会在系统内存里硬撑,导致生成速度断崖式下降。这时候用任务管理器看“专用GPU内存”和“共享GPU内存”这两个指标,如果共享GPU内存被大量占用,说明显存爆了。除了降低分辨率,还可以试试把采样工作流里的Batch Size设成1,坚决不一次性出多张图。批量出图是显存杀手,宁可单张排队,也不要为了省事一次跑4张图,基本必炸。

5.3 核显reset bug的处理经验

热词里提到的 “amd核显reset bug” ,我也是受害者之一。症状是跑图跑着跑着,画面突然无信号,显示器黑屏几秒,然后驱动恢复,但ComfyUI已经崩了。这问题经常出现在同时用核显和独显输出的机器上。我的解决方案比较实用,如果你也遇到类似情况,可以参考:

  • 在Windows显示设置里,把主显示器接在独显输出口上,让核心的AI运算固定走独显,核显只做视频解码或待机。
  • 在设备管理器里禁用核显,强制所有应用走独显。这个方法最彻底,但笔记本用户慎用,有些本子没有独显直连选项,禁用核显会导致所有输出都黑屏。
  • 更新主板BIOS和AMD芯片组驱动,有些reset bug是老的AGESA版本导致的,更新后明显频次降低。

严格来说,这不是ComfyUI本身的bug,而是AMD驱动层的稳定性问题。但这问题一旦发生,对跑图的影响是灾难性的,因为可能白白消耗好几个小时。

5.4 秋叶整合包里的A卡用户出路

如果你已经装了秋叶整合包,公司电脑又不能用管理员权限装乱七八糟的东西,或者你实在不想自己管理环境,还有一个相对省事的方案:在秋叶整合包的启动器里,找“高级选项”或“自定义启动参数”,把--directml加进去,同时去包内python目录下手动安装torch-directml,替换掉原有的torch。这个方法有概率能跑通,但不保证100%,毕竟秋叶包内核依赖很多是为CUDA优化的,DML分支不一定都兼容。能手动搭环境的,我还是推荐手动搭,一劳永逸。

6. 进阶优化与日常工作流建议

基础链路通了之后,就是如何提升体验和效果的问题了。这部分不是必须的,但能让你后续用得更加顺手。

6.1 使用环境变量锁显存与内存

DirectML在Windows下对显存管理比较开恩,它允许系统内存作为“共享显存”来兜底,但这也造成了GPU和CPU之间频繁的数据搬运,严重拖慢速度。建议在启动ComfyUI之前,在命令行设置下面的环境变量来收紧共享显存策略:

set PYTORCH_DML_ENABLE_FALLBACK=1 set PYTORCH_DML_USE_FALLBACK_FOR_DEVICE=0

第二个参数是把fallback关掉,强制只用显存,如果显存不够就直接报错而不是用内存死撑。这样你至少能明确知道瓶颈在哪,而不是云里雾里等半天结果出一张慢吞吞的图。如果你显存确实小,可以不设置第二个参数,用默认的fallback策略,就是慢,但不至于跑不动。

6.2 批量生成与写实风格实践

Z-Image的强项是真实感和光影表现,所以我个人偏好在工作流里挂一个轻量级的局部重绘(Inpaint)节点,针对某些区域做精细修图。A卡跑局部重绘比跑全图要轻松得多,因为计算量小了很多。如果你想批量出图,可以写一个python脚本,循环调用ComfyUI的API接口,而不是在界面里一张张手动点。ComfyUI自带API模式,你只需要拿到工作流的JSON,然后用requests发送POST请求即可,这样配合A卡较慢的出图速度,可以实现排队生成,反而更高效。

6.3 与SD 1.5和SDXL的对比体验

从SD 1.5换到Z-Image,最直观的感受是提示词写起来更轻松了。Z-Image对自然语言的理解要远超SD系列,你可以直接用“一个穿着红色连衣裙的女孩站在阳光洒落的咖啡店门口,面带微笑,光线柔美,背景虚化”这种长句,而不需要堆砌一堆tag词。这对A卡用户来说也是一件好事,因为减少了错误的提示词带来的无效生成和重复试错,间接节省了时间成本。

6.4 模型扩展与LoRA

Z-Image目前支持LoRA微调。如果你嫌官方模型风格不够个性,可以自己训练LoRA,或者在社区找别人分享的LoRA模型。放置目录通常是models/loras,在ComfyUI里用对应的LoRA加载器节点加载。A卡训练LoRA说实话有点吃力,但跑推理完全没问题。如果只是想玩风格迁移,还不如直接用IPAdapter,那个对显存压力小,实时性高。

7. 从入门到进击:Z-Image进阶玩法与生态分享

当你能稳定出图,玩转了基础工作流,就可以往更深的方向探索了。Z-Image的设计思路跟SD有差异,它更像是一个多模态语言模型在视觉领域的延伸,所以衍生出的玩法也很有意思。

7.1 文字渲染能力的应用

Z-Image一个非常大的亮点是文字渲染能力。以往用SDXL生成带有文字的图片,中文字符十有八九是乱码,英文字母也歪歪扭扭。但Z-Image对文字的把握要强得多,你可以让它直接生成带有海报标题、Logo文字的图片,效果相当不错。这个特性做做社交媒体配图、短视频封面,非常实用。

7.2 多图融合与微调技巧

Z-Image对参考图的理解能力也更强。配合IPAdapter或者原生的参考图控制,你可以把多个参考图的风格融合进一张图。AMD GPU在当前版本下,并行处理多张参考图虽然慢,但效果并不差。我的习惯是先出一张底图,然后用局部重绘把不满意的区域修掉,最后再用图生图整体调一遍光影和色调,这样出来的成品率会高很多。

7.3 更新与升级的节奏把控

ComfyUI插件更新频率很快,但A卡用户千万别看着N卡用户更新了也跟着手痒。先看更新日志,确认没有引入DirectML不兼容的改动,再决定要不要更新。我经历过一次ComfyUI主程序更新后,DirectML分支没能同步合并最新改动,导致界面能开但生成直接报错,最后只能回滚代码。在git目录下,执行:

git checkout . git pull --rebase

回滚命令就是git checkout .,如果你发现更新的版本不兼容,立刻回滚再等下一版,别硬撑着。

8. 最后的几个实用建议

说了这么多,总结一下我对AMD显卡在Windows上跑ComfyUI + Z-Image这件事的整体感受。整个过程像是夜里在没有路灯的山路上开车,每一步都得小心翼翼地试探,但一旦走通了,终点风景是真的好。

和我一样用A卡的朋友,如果你看到这篇文章准备入坑,我再啰嗦几句:

  • 保持驱动更新,但不要追求预览版驱动的激进功能,稳定版足以覆盖DirectML的兼容需求。
  • 无论是ComfyUI还是Z-Image,都处在快速迭代期,有问题先搜GitHub的issue,基本能找到答案或绕过方案。
  • 请保管好一套能稳定运行的工作流JSON,对它的参数改动要保守,这不是N卡玩家的那种“随便造”,我们A卡用户折腾一次环境的时间成本太高了。
  • 出图慢的问题,没必要太焦虑。回到初衷,做AI绘画不是为了比拼速度,而是为了验证创意、记录灵感。我现在跑一张图平均要十几秒,但我用它做出来的一组“城市边缘”系列摄影作品,发在社交平台反而比那些秒出图的N卡作品收获更多关注。

AMD,Yes!这句话不只是一句口号,它是真的可以落地到AI绘画场景里的。希望这篇文章能帮你在Windows下把A卡跑ComfyUI的这条小路踩实,省下来的时间和精力,多出几张好图才是正经事。如果你在折腾过程中遇到我没写到的坑,欢迎在评论区分享,我们一起把它填平。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询