主题
模型精度与量化
概念
精度描述权重和计算使用的数值格式;量化则用更少位数表示权重,以降低显存或内存需求。
| 格式 | 特点 | 适用情况 |
|---|---|---|
| FP32 | 精度高、文件和显存占用大 | 主要用于训练或特定高精度场景 |
| FP16 | 精度与显存占用较均衡 | 显存充足时的常规选择 |
| BF16 | 与 FP16 占用接近,数值范围不同 | 模型和硬件明确支持时使用 |
| FP8 | 显存占用更低,可能损失少量质量 | 显存有限或更重视速度 |
| GGUF | 支持多种量化等级 | 低显存或低内存环境运行较大模型 |
FP16、BF16 与 FP8
FP16 通常是图像生成模型的常规版本。BF16 是否更合适取决于模型训练方式和硬件支持,不能将两者简单理解为质量高低。
FP8 可以减少模型权重占用,但实际显存还包括:
- 文本编码器和 VAE。
- 采样过程中的中间数据。
- 图像分辨率与批量。
- LoRA、ControlNet 和其他模型组件。
因此,模型文件缩小不等于整个工作流显存按相同比例下降。
GGUF
GGUF 模型通常提供多个量化等级。更低位量化可以进一步减少内存,但可能影响速度、质量或兼容性。
常见选择顺序是 Q8 → Q6 → Q4:高量化等级无法适配硬件时,再降低量化等级。文件名中的 K、S、M 等后缀还表示具体量化方法和变体,不能只比较 Q 数字。
GGUF 一般需要对应的 UNET Loader、CLIP Loader 等自定义节点,不能直接当作普通 Checkpoint 使用。扩散模型仍放在 models/diffusion_models/,GGUF 文本编码器仍放在 models/text_encoders/。
较小的模型不一定生成更快,实际性能受显卡、显存和驱动影响。不同版本应分别比较首次加载时间、后续生成时间与图像质量。
选择顺序
- 确认模型作者支持的精度和加载方式。
- 显存足够时优先使用模型发布页或配套工作流推荐的版本。
- 显存不足时先降低分辨率和批量大小。
- 再尝试 FP8 或合适的 GGUF 量化等级。
- 用相同提示词和固定
seed对比质量与速度。
区分文件格式
以下概念不在同一层级:
| 概念 | 示例 |
|---|---|
| 文件容器 | .safetensors、.ckpt、.gguf |
| 数值精度 | FP32、FP16、BF16、FP8 |
| 模型组织 | AIO、模块化 |
| 模型家族 | SD 1.5、SDXL、Flux、Z-Image |
判断模型能否使用时,需要同时确认四个维度。
