Appearance
常见模型路径:HuggingFace 文件与 ComfyUI models 目录对照
用 ComfyUI 玩 AI 绘画时,经常需要从 HuggingFace 下载模型,但下载完不知道该放进 ComfyUI 的哪个文件夹,放进去了又报错。本文帮你搞清楚 HuggingFace 里的模型文件都是什么,以及它们分别该放到 ComfyUI models 目录下的哪个子文件夹。
一、先认识 HuggingFace 常见的文件类型
一个模型仓库里通常混合着「核心模型文件」和「配置文件」,先分清它们:
| 文件 / 目录 | 是什么 | 典型文件名 |
|---|---|---|
| 全量 Checkpoint | 把 UNet + 文本编码器 + VAE 打包成一个文件,开箱即用 | sd_xl_base_1.0.safetensors |
unet/ 目录 | 拆分式的扩散模型本体(新版大模型常见) | unet/diffusion_pytorch_model.safetensors |
vae/ 目录 | VAE 解码器(把潜空间图像还原成像素) | vae/diffusion_pytorch_model.safetensors |
text_encoder/ 等 | 文本编码器(把提示词转成向量),拆分的叫 CLIP-L / CLIP-G / T5 | text_encoder/model.safetensors |
clip_vision/ 或 image_encoder/ | 图像编码器(IP-Adapter 等用) | clip_vision/model.safetensors |
controlnet/ 目录 | ControlNet 控制网络(控制姿势、线稿等) | controlnet/diffusion_pytorch_model.safetensors |
lora/ 或 *.lora.safetensors | LoRA 低秩适配器(给模型做风格微调的小文件) | pytorch_lora_weights.safetensors |
embeddings/ 目录 | 文本反演 Embedding(特殊提示词,如 EasyNegative) | embeddings/easynegative.pt |
config.json、model_index.json | 模型配置说明,推理时一般不需要 | — |
tokenizer/、vocab.json、merges.txt | 分词器文件,一般不需要单独下载 | — |
二、与 ComfyUI models 文件夹的对应关系
ComfyUI 的 models 目录按用途分了多个子文件夹,把上面每种文件对号入座:
| HuggingFace 上的文件 / 目录 | 对应 ComfyUI 目录 | 说明 |
|---|---|---|
根目录的全量 .safetensors(如 sd_xl_base_1.0.safetensors) | models/checkpoints/ | 完整大模型,放入后可直接用「Load Checkpoint」节点加载 |
unet/ 下的权重 | models/unet/ | 新版模型(如 SD3.5、Flux、HunyuanVideo)拆出的 UNet 本体 |
vae/ 下的权重 | models/vae/ | 放入后可用「Load VAE」节点加载 |
text_encoder/、text_encoder_2/ | models/clip/ | CLIP-L / CLIP-G 文本编码器 |
text_encoder_3/(T5,常见多分片) | models/text_encoders/ | 新版模型的 T5-XXL 文本编码器,如 t5xxl_fp16.safetensors |
clip_vision/、image_encoder/ | models/clip_vision/ | 图像编码器(IP-Adapter、Flux 参考图等用到) |
controlnet/ 下的权重 | models/controlnet/ | 控制网络 |
lora/ 或名称带 .lora 的权重 | models/loras/ | LoRA 模型 |
embeddings/ 下的 .pt / .safetensors | models/embeddings/ | 文本反演 Embedding |
RealESRGAN、ESRGAN、*upscaler* | models/upscale_models/ | 图像放大模型 |
config.json、model_index.json、tokenizer/、vocab.json 等 | 不需要放入 | 配置 / 分词器文件,仅下载模型权重即可,不用拷进 ComfyUI |
三、典型模型结构举例
例 1:传统大模型(如 Stable Diffusion XL 全量版)
仓库根目录就是一个大文件 sd_xl_base_1.0.safetensors(约 7GB):
├── sd_xl_base_1.0.safetensors → 放入 models/checkpoints/
├── README.md
└── config.json → 不需要例 2:拆分型新模型(如 Flux、SD3.5)
模型被拆成三部分,三部分都要分别下载,放到对应目录:
├── diffusion_pytorch_model.safetensors → models/unet/
├── text_encoder_3/model-00001-of-00002.safetensors ... → models/text_encoders/(合并或转存为 t5xxl_fp16.safetensors)
├── clip_vision/model.safetensors → models/clip_vision/
└── vae/diffusion_pytorch_model.safetensors → models/vae/拆分型模型在 ComfyUI 里需要配合「Load Diffusion Model / Load CLIP / Load VAE」三个节点分别加载,而不是一个节点搞定。
例 3:扩展类(LoRA / ControlNet / Embedding)
├── lora/xxx_lora.safetensors → models/loras/
├── controlnet/xxx.safetensors → models/controlnet/
└── embeddings/yyy.pt → models/embeddings/四、用 Model Downloader 下载并归档
- 在模型详情页的文件列表中,按上表勾选需要的文件(拆分型模型记得把 unet / vae / 文本编码器都勾上)。
- 下载时建议把保存路径直接设为 ComfyUI 的对应子文件夹,例如
D:\ComfyUI\models\loras,下载完即到位。 - 下载完成后,在「下载管理」里点「文件夹中显示」可快速核对文件是否在正确位置。
五、常见问题
Q:模型放进 ComfyUI 后加载报错 / 提示 missing keys? 大概率是文件放错目录,或拆分型模型只下了其中一部分。对照上表检查路径,并确认 unet、vae、文本编码器三部分都齐全。
Q:全量 Checkpoint 能拆开用吗? 能,但没必要。全量文件直接放 models/checkpoints/ 用「Load Checkpoint」加载最省事;只有遇到拆分型模型时才需要分开处理。
Q:配置文件(config.json、tokenizer 等)要下载吗? 一般不需要。ComfyUI 加载的是权重文件,配置类文件仅在使用 Python 原生 Diffusers 推理时才需要。
Q:模型文件已经放到ComfyUI中models对应的子文件夹,但是工作流仍然报错,怎么解决? 重启ComfyUI服务或者在ComfyUI画布页面,按键盘「R」键进行刷新。