一. 常见节点类型与作用
节点按照功能大致可以分为以下几类:
1. 加载模型节点
- 
Checkpoints Loader:加载 .ckpt或.safetensors模型,输出模型检查点(Model Checkpoint)。
- 
VAE Loader:加载对应的 VAE 文件。 
- 
CLIP Loader:加载用于文本编码的 CLIP 模型。 
2. 文本提示节点
- 
CLIP Text Encode:将用户输入的 Prompt 编码为语义向量(Text Condition),可作为生成条件。 
- 
CLIP Text Encode (Negative):负向提示词,用于去除不希望生成的元素。 
3. 采样节点
- 
KSampler:图像采样器,接收模型、提示、初始噪声等,生成最终图像。 
- 
KSampler (Advanced):带更多可控参数的采样版本。 
4. 噪声和图像节点
- 
Empty Latent Image:创建空白的潜空间图像张量(latent),用于起始输入。 
- 
Noise:生成随机噪声。 
- 
Latent to Image:将生成的 latent 图像解码为可见图像。 
- 
Image to Latent:将实际图像转换为 latent 表示。 
5. 图像处理节点
- 
Resize Image:改变图像分辨率。 
- 
Crop Image:裁剪图像。 
- 
Load Image / Save Image:读取/保存图像文件。 
6. 控制模块
- 
ControlNet Loader:加载 ControlNet 模型。 
- 
Apply ControlNet:在图像生成中应用 ControlNet 条件。 
- 
T2I Adapter:另一种控制模块,用于风格/姿态控制。 
二. 节点之间的数据类型传递
不同节点之间的连接线,传递的是特定类型的数据:
| 数据类型 | 说明 | 常见来源 | 常见去向 | 
|---|---|---|---|
| Model Checkpoint | 主模型结构及权重 | Checkpoints Loader | KSampler | 
| CLIP Text Condition | 文本提示的向量表示 | CLIP Text Encode | KSampler | 
| Latent Image | 潜空间图像(未解码) | Empty Latent Image / KSampler | Latent to Image | 
| Image | 普通 RGB 图像 | Load Image / Latent to Image | Resize / Save Image | 
| Noise | 随机噪声 | Noise 节点 | KSampler | 
| VAE | 解码器/编码器模型 | VAE Loader | Latent to Image 等 | 
| ControlNet Condition | 条件图像等 | Apply ControlNet | KSampler | 
| Prompt | 文本字符串 | 用户输入 | CLIP Text Encode | 
三. 常见模型格式
1. .safetensors(安全张量)
- 
开发者:由 Hugging Face 团队推出。 
- 
优点: - 
安全:不使用 Python pickle,防止执行恶意代码。
- 
更快加载:支持零拷贝映射(mmap),加载速度更快。 
- 
结构简单清晰:专门用于张量权重的存储。 
 
- 
- 
使用场景: - 
在 Hugging Face、ComfyUI、Diffusers 等生态中日益流行。 
 
- 
- 
适合谁:推荐在生产或部署时使用,因为它安全、加载快。 
 2. .ckpt(Checkpoint)
- 
全称:checkpoint,常见于 TensorFlow、PyTorch。 
- 
来源:Stable Diffusion 早期模型多使用此格式(如 v1-5-pruned.ckpt)。
- 
问题: - 
通常使用 Python 的 pickle保存,存在代码执行风险。
- 
体积通常大,因为可能包含训练中所有模块(如优化器、调度器等)。 
 
- 
- 
使用场景: - 
原始模型训练中保存断点,或早期模型发布格式。 
 
- 
- 
适合谁:用于开发调试或旧项目兼容。 
 3. .pth(PyTorch权重)
- 
来源:PyTorch 官方推荐格式,用于保存 state_dict。
- 
优点: - 
简洁,仅保存模型权重(不包含结构定义)。 
 
- 
- 
问题: - 
同样依赖 Python pickle,存在安全隐患。
- 
不跨平台,必须在 PyTorch 中读取。 
 
- 
- 
使用场景: - 
自己训练的模型中广泛使用。 
 
- 
- 
适合谁:熟悉 PyTorch 的用户、开发时保存模型权重。 
4. .onnx(Open Neural Network Exchange)
- 
来源:微软、Facebook 主导开发的 跨平台格式。 
- 
优点: - 
跨框架:可在 PyTorch、TensorFlow、ONNX Runtime、NVIDIA TensorRT 等中使用。 
- 
适合部署:结构与权重同时包含,适合导入推理引擎。 
 
- 
- 
使用场景: - 
导出模型用于 Web、移动、C++ 等非 Python 环境。 
 
- 
- 
适合谁:需要模型跨平台部署或优化推理性能的开发者。 
5. .gguf(Grokking General Unified Format)
- 
来源: ggml系列项目(如 llama.cpp)推出的新格式,继承自.ggml。
- 
目标:用于 轻量化模型的本地推理,尤其适用于 CPU-only 运行、边缘设备。 
- 
特点: - 
支持量化(如 Q4_0、Q5_K),文件体积小。 
- 
与 LLaMA、Mistral、Gemma 等 LLM 配合使用。 
 
- 
- 
使用场景: - 
本地轻量推理(例如在 Mac、树莓派、安卓手机上运行大模型)。 
 
- 
- 
适合谁:希望在设备端低资源环境中运行 LLM 的用户。 
四. 模型的量化与压缩
1. 什么是量化?
在原始训练后的模型中,权重通常是使用 32 位浮点数(float32) 存储的。
而“量化”就是将这些高精度浮点权重,转换为更低位数的整数表示,比如:
| 类型 | 原始精度 | 压缩后的精度 | 示例 | 
|---|---|---|---|
| FP32(float32) | 32位浮点数 | – | 原始模型 | 
| Q8 | 8位整数 | 精度略下降 | 常见于轻量推理 | 
| Q4_0、Q5_K | 4位/5位整数 | 进一步压缩 | gguf 格式中常见 | 
2.为什么要量化?
| 目的 | 效果 | 
|---|---|
| ✅ 减少文件体积 | 从几 GB 缩小到几百 MB,适合本地推理(尤其 CPU) | 
| ✅ 提升推理速度 | 整数计算比浮点计算快,适用于边缘设备 | 
| ✅ 降低内存占用 | 低位宽张量占用更少 RAM,可在内存有限设备运行 | 
| ⚠️ 略微精度损失 | 通常影响有限,尤其是在大模型中微不足道 | 
3. Q4_0、Q5_K 是什么?
它们是不同的 量化等级/方法,你可以理解为压缩的“清晰度级别”:
| 量化等级 | 位宽 | 精度 | 文件体积 | 说明 | 
|---|---|---|---|---|
| Q8_0 | 8 位 | 高 | 大 | 精度几乎不变 | 
| Q5_K | 5 位 | 中 | 中 | 性能和质量折中 | 
| Q4_0 | 4 位 | 低 | 小 | 极限压缩,精度略降 | 
4. 浮点精度降低(压缩) vs 整数量化(量化)
| 项目 | FP32 ➝ FP16/FP8 | FP32 ➝ INT8 / Q4_0 | 
|---|---|---|
| 类型 | 浮点 ➝ 浮点 | 浮点 ➝ 整数 | 
| 是否严格算量化 | ❌ 严格来说不是 | ✅ 是标准量化 | 
| 是否有指数位 | ✅ 有(保留范围) | ❌ 无(线性/分段) | 
| 计算精度 | 比较高,近似 FP32 | 精度低,依赖校准或训练 | 
| 加速平台 | GPU(如 NVIDIA Tensor Cores) | CPU / GPU / 推理芯片 | 







 关于本站
关于本站