🚀 FLUX.1-dev 模型转换项目
本项目将 black-forest-labs 的 FLUX.1-dev 模型转换为几种实验性的自定义格式,在 Q8_0、fp16 和 fp32 中混合张量。这一转换基于 black-forest-labs 原始的 bf16 权重,旨在探索不同格式对模型质量的影响。
✨ 主要特性
- 多格式混合:采用 Q8_0、fp16 和 fp32 混合的张量格式,从原始的 bf16 权重转换而来。
- 实验性探索:尝试不同的张量格式组合,以评估其对模型质量的影响。
- 量化处理:由 mo137 进行量化处理,提供多种量化版本的模型文件。
📦 安装指南
模型文件可与 ComfyUI-GGUF 自定义节点配合使用。将模型文件放置在 ComfyUI/models/unet
目录下,更多安装说明请参考 GitHub 上的 README 文件。
🔧 技术细节
动机
Flux 的权重最初以 bf16 格式发布。转换为 fp16 会有轻微损失,而转换为 fp32 则无损失。本项目尝试混合张量格式,以观察是否能提高模型质量。
评估
通过比较不同格式模型的输出,目前尚不能确定这些混合格式模型是否明显优于纯 Q8_0 模型。一般来说,使用 Q8_0 格式可能是更好的选择,但仍将这些实验性格式分享出来,或许对某些用户有帮助。
更高的每权重比特数(bpw)会导致计算速度变慢,以下是不同格式的计算时间对比:
20 s Q8_0
23 s 11.024bpw-txt16.gguf
30 s fp16
37 s 16.422bpw-txt32.gguf
310 s fp32
2024-08-26 更新
新增两个文件,此次仅将部分或全部以下层量化为 Q8_0:
double_blocks.*.img_mlp.0.weight
double_blocks.*.img_mlp.2.weight
double_blocks.*.txt_mlp.0.weight
double_blocks.*.txt_mlp.2.weight
double_blocks.*.img_mod.lin.weight
double_blocks.*.txt_mod.lin.weight
single_blocks.*.linear1.weight
single_blocks.*.linear2.weight
single_blocks.*.modulation.lin.weight
flux1-dev-Q8_0-fp32-11.763bpw.gguf
:该版本将上述所有层量化为 Q8_0。
flux1-dev-Q8_0-fp32-13.962bpw.gguf
:该版本保留前 2 种类型的所有层以及前 4 个 MLP 层为 fp32。
flux1-dev-Q8_0-fp32-16.161bpw.gguf
:该版本保留前 4 种类型的所有层以及前 8 个 MLP 层为 fp32。
在 txt16/32 文件中,仅将以下非一维层量化为 Q8_0:
img_mlp.0
img_mlp.2
img_mod.lin
linear1
linear2
modulation.lin
而将以下层分别保留为 fp16 或 fp32:
txt_mlp.0
txt_mlp.2
txt_mod.lin
最终的 bpw 数值仅为根据文件大小的近似值。
📄 许可证
本项目采用 flux-1-dev-non-commercial-license 许可证。
属性 |
详情 |
基础模型 |
black-forest-labs/FLUX.1-dev |
库名称 |
gguf |
许可证 |
other |
许可证名称 |
flux-1-dev-non-commercial-license |
许可证链接 |
LICENSE.md |
量化者 |
mo137 |
标签 |
text-to-image、image-generation、flux |
⚠️ 重要提示
这是一个量化模型,而非微调模型,因此所有原始的限制和许可条款仍然适用。
💡 使用建议
请参考 此图表 以获取量化类型的基本概述。
本模型卡大部分内容借鉴自 city96/FLUX.1-dev-gguf,该项目包含常规且实用的 GGUF 文件。