本机实测
ComfyUI FLUX 模型文件放哪里?UNet、T5、CLIP、VAE 目录对照
FLUX 模型放哪?GGUF→unet、T5 FP8→text_encoders、VAE→vae,放错目录就选不到。
先说结论
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 |

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

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

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 识别
文件放好之后,不用等到出图才知道对不对。有几种快速验证方法:
-
节点下拉菜单:在对应加载节点的下拉菜单里,应该能看到你的模型文件名。比如 Unet Loader (GGUF) 的 unet_name 里应该有 flux1-dev-Q6_K.gguf。
-
启动日志:ComfyUI 启动时会在终端打印扫描到的模型列表。搜一下文件名,看有没有出现。如果日志里没有,说明目录不对或文件未被识别。
-
重启 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,而不是只看文件扩展名。