comfyUI背后的一些技术——Checkpoints
Checkpoints
Checkpoints本来指的是使用tensorflow训练存储的中间节点,便于继续训练。对应的是yTorch保存模型参数的格式.pt。
在comfyUI中的Checkpoints特指的是基座大模型。它是生成图片的核心模块,潜空间中的前向扩散和反向扩散就是通过它做的,也决定了生成图片的基本风格。
来源
下载Stable diffusion 的渠道有很多,Hugging Face 、Civitai、LIbLib等等,下面几种常用的模型都来自以上的网站:
来源 | Base Model | 风格 | |
| Hugging Face | SD 1.5 | 最经典的模型,适用于通用场景 |
| Hugging Face | F.1 | |
| LIbLib | F.1 | ![]() |
wan2.2_t2v_low_noise_14B_fp16 | LIbLib | 通义万相2.2 | ![]() |
| Civitai | SD 1.5 | ![]() |
| Civitai | SD 1.5 | ![]() |
| Civitai | SD 1.5 | ![]() |
基础模型
看模型描述还可以发现很多都是基于SD1.5。需要把SD1.5的大模型放入ComfyUI/models/checkpoints
文件夹存放下面。
xet
另外一个特点是模型文件以xet格式管理。xet是一种比LFS更高效的管理大文件的方法,可以快速上传和下载
ema-prun
在一些模型中,会有一些关键字,pruned,emaonly等
加权平均即EMA(Exponential Moving Average),使用加权平均主要是减少短期波动的影响,这样得到的模型泛化性更好,也更稳定。EMA Only模型仅存储EMA权重,而传统模型(如v1-5-pruned.ckpt
)会同时保存EMA和非EMA权重。例如:
v1-5-pruned-emaonly.ckpt
:4.27GB(仅EMA权重),适用于inference阶段,快速部署v1-5-pruned.ckpt
:7.7GB(包含EMA和非EMA权重),适用于fine-tuning
体积缩减约45%,显著降低存储和传输成本。
safetensor
虽然名叫checkpoints,但是模型的格式大部分使用的是SafeTensor。如
flux1-krea-dev_fp8_scaled.safetensors,
这是因为 .ckpt 为了让我们能够从之前训练的状态恢复训练,好比从50%这个点位重新开始训练,从而保存了比较多的训练信息,比如模型的权重、优化器的状态还有一些Python代码。
这种做法有两个问题,一是可能包含恶意代码,因此不建议从未知或不信任的来源下载并加载.ckpt 模型文件;二是模型的体积较大,一般真人版的单个模型的大小在7GB左右,动漫版的在2-5GB之间。
而 .safetensors 模型则是 huggingface 推出的新的模型存储格式,专门为Stable Diffusion模型设计。这种格式的文件只保存模型的权重,而不包含优化器状态或其他信息,这也就意味着它通常用于模型的最终版本,当我们只关心模型的性能,而不需要了解训练过程中的详细信息时,这种格式便是一个很好的选择。
输出节点
看comfUI的工作流,checkpoint之后会有三个输出。因为工作流后面还有VAE和文本模块CLIP,所以在后续的文章中一起讲解。
reference:
1.SD教程|SD模型|关于Stable diffusion的各种模型,看这篇就可以了!_sd生成实物-CSDN博客
2.Stable Diffusion概要讲解_emaonly 模型-CSDN博客
3.ComfyUI 中为什么叫Checkpoint_comfyui 里 checkpoint-CSDN博客