先说结论

FLUX 报错、节点找不到模型、下拉菜单为空——很多时候不是模型文件坏了,也不是节点装错了,而是模型文件放错了目录

我这台机器用的 GGUF Q6_K + T5 FP8 方案,4 个文件各就各位之后,ComfyUI 一切正常。这篇文章把我踩过的目录坑整理出来,方便对照排查。

本文基于 ComfyUI 0.24.0 便携版目录结构。如果你用的是其他发行版或自行配置的 ComfyUI,目录名可能不同,但 models/ 下的子目录结构基本一致。


我的测试环境

项目 配置
GPU RTX 4060 Laptop 8GB
ComfyUI 版本 0.24.0
方案 GGUF Q6_K + T5 FP8
模型目录根 ComfyUI/models/

GGUF 方案需要哪些模型文件

跑 FLUX GGUF Q6_K + T5 FP8 最少需要以下 4 个文件:

文件 应放目录 用途
flux1-dev-Q6_K.gguf models/unet/ GGUF 量化 UNet
t5xxl_fp8_e4m3fn_scaled.safetensors models/text_encoders/ T5 FP8 文本编码器
clip_l.safetensors models/text_encoders/ CLIP-L 文本编码器
ae.safetensors models/vae/ FLUX VAE

GGUF UNet 文件目录

flux1-dev-Q6_K.gguf 应放在 models/unet/ 目录。GGUF 文件不要放到 models/checkpoints/。

T5 和 CLIP 文本编码器目录

t5xxl_fp8_e4m3fn_scaled.safetensors 和 clip_l.safetensors 应放在 models/text_encoders/ 目录。

FLUX VAE 文件目录

ae.safetensors 应放在 models/vae/ 目录。 如果还没有这些文件,需要先下载。下载后按上面表格放到对应目录,然后重启 ComfyUI。不需要改文件名,不需要额外的配置。


每个文件放错会怎样

flux1-dev-Q6_K.gguf → 必须放 models/unet/

常犯错误:放到 models/checkpoints/。

症状:Unet Loader (GGUF) 节点的 unet_name 下拉菜单里找不到这个文件。

原因:ComfyUI-GGUF 节点只扫描 models/unet/ 目录下的 .gguf 文件。checkpoints 目录不在它的扫描范围里。

如果你用的是普通的 Load Checkpoint 节点(加载 .safetensors 格式),那才需要放 models/checkpoints/。GGUF 不是这个逻辑。


t5xxl_fp8_e4m3fn_scaled.safetensors → 必须放 models/text_encoders/

常犯错误:放到 models/clip/。

症状:DualCLIPLoader 的 clip_name2 下拉菜单里找不到 T5 FP8 文件。如果放到了 clip/ 目录,clip_l.safetensors 可能能被扫到(因为它在 clip/ 也能被找到),但 T5 不行。

原因:T5 不是 CLIP 模型。ComfyUI 的 DualCLIPLoader 在 type=flux 时,clip_name2 从 models/text_encoders/ 目录读取。放错目录就不会出现在候选列表里。


clip_l.safetensors → 放 models/text_encoders/

常犯错误:这个文件比较宽容,放到 models/clip/ 或 models/text_encoders/ 都可能被识别。但为了统一管理,建议和 T5 放在同一个目录。

症状:如果放到 clip/ 可能也能加载,但不保证所有版本都兼容。如果放到其他目录就看运气了。


ae.safetensors → 放 models/vae/

常犯错误:放到 models/unet/ 或 models/checkpoints/。

症状:VAELoader 节点的 vae_name 下拉菜单里找不到 ae.safetensors。没有 VAE,VAEDecode 节点会报错,最终无法解码出图。

原因:VAE 有自己独立的目录 models/vae/。ComfyUI 只在这个目录下扫描 VAE 文件。


检查模型是否被 ComfyUI 识别

文件放好之后,不用等到出图才知道对不对。有几种快速验证方法:

  1. 节点下拉菜单:在对应加载节点的下拉菜单里,应该能看到你的模型文件名。比如 Unet Loader (GGUF) 的 unet_name 里应该有 flux1-dev-Q6_K.gguf。

  2. 启动日志:ComfyUI 启动时会在终端打印扫描到的模型列表。搜一下文件名,看有没有出现。如果日志里没有,说明目录不对或文件未被识别。

  3. 重启 ComfyUI:放好文件后,如果下拉菜单里还没有,试试 ComfyUI 完全重启(关闭终端重新运行)。偶尔节点有 Refresh 按钮也可以点一下。


常见错误

GGUF 文件放到了 models/checkpoints/

这是最常见的错误。看到 .gguf 觉得它也是一种 checkpoint,就放进去了。不对。GGUF 文件必须放 models/unet/。

T5 和 CLIP 一起放到了 models/clip/

CLIP-L 放 clip/ 可能碰巧能加载,但 T5 FP8 一定不行。统一放 models/text_encoders/ 最稳妥。

改了文件名导致识别不到

ComfyUI 扫描模型时可能会检查文件扩展名。如果你把 lux1-dev-Q6_K.gguf 改成了 my-model.gguf.bak 或去掉了 .gguf 扩展名,节点就认不到了。不要改文件名和扩展名

放对目录了但节点类型用错了

Unet Loader (GGUF) 加载 flux1-dev-Q6_K.gguf,DualCLIPLoader 加载 T5 和 CLIP,VAELoader 加载 ae.safetensors。如果用 Load Checkpoint 去加载 .gguf 文件,放对目录也没用——节点本身就不对。


FAQ

flux1-dev-Q6_K.gguf 应该放哪里?

ComfyUI/models/unet/。不是 models/checkpoints/。

T5 FP8 应该放 text_encoders 还是 clip?

models/text_encoders/。放 clip/ 会导致 DualCLIPLoader 选不到。

ae.safetensors 是什么?

FLUX 的 VAE(变分自编码器)模型文件。用于把 Latent 空间的数据解码成最终图片。放在 models/vae/。

模型放错目录会不会直接 OOM?

不会。放错目录的后果是节点找不到文件,连加载都加载不了,不会到 OOM 那一步。OOM 是加载成功之后显存不够才会出现的。

为什么文件明明在硬盘里,ComfyUI 里却看不到?

三个可能:目录不对、扩展名不对、没重启 ComfyUI。优先检查目录是不是和本文表格一致,然后看扩展名是不是 .gguf / .safetensors,最后试试重启。

我用的不是 GGUF 方案,目录还一样吗?

不一定。如果你用的是 FP8 Checkpoint 方案(.safetensors 格式的完整 checkpoint),UNet 通常放在 models/checkpoints/ 或 models/diffusion_models/,通过 Load Checkpoint 加载。本文只覆盖 GGUF 方案的路径。其他方案我没在这台机器上实测,不能替你确认。


核对来源

ComfyUI Desktop、Portable 与手动安装的根目录可能不同;本文截图记录的是本站测试环境。判断文件类型与加载节点时,应同时核对对应项目 README,而不是只看文件扩展名。

数据与更新说明

配置会随 ComfyUI、自定义节点和显卡驱动更新而变化。复现前请先核对本文测试日期;发现错误可通过联系方式反馈。

同一测试链的相关文章