🚀 FLUX.1-mini-GGUF
FLUX.1-mini-GGUF 是一款基于文本生成图像的模型,它从 Flux-dev 蒸馏而来,在保持较强图像生成能力的同时,模型规模更小,更适合在消费级设备上使用。
🚀 快速开始
本模型仅由 gpustack/llama-box v0.0.86+ 提供实验性支持。
模型创建者:ARC Lab, Tencent PCG
原始模型:flux-mini
GGUF 量化:基于 stable-diffusion.cpp ac54e 并由 llama-box 进行补丁处理。
量化方式 |
OpenAI CLIP ViT-L/14 量化 |
Google T5-xxl 量化 |
VAE 量化 |
FP16 |
FP16 |
FP16 |
FP16 |
Q8_0 |
FP16 |
Q8_0 |
FP16 |
(纯) Q8_0 |
Q8_0 |
Q8_0 |
FP16 |
Q4_1 |
FP16 |
Q8_0 |
FP16 |
Q4_0 |
FP16 |
Q8_0 |
FP16 |
(纯) Q4_0 |
Q4_0 |
Q4_0 |
FP16 |
✨ 主要特性
🔥 Flux-Mini
如今,文本到图像(T2I)模型的性能不断提升,但模型规模也越来越大,这限制了它们的实际应用,尤其是在消费级设备上。为了缩小这一差距,我们将 12B 的 Flux-dev
模型蒸馏成了 3.2B 的 Flux-mini
模型,并努力保留其强大的图像生成能力。具体来说,我们通过将原始 Flux-dev
的深度从 19 + 38
(双块和单块的数量)减少到 5 + 10
来进行剪枝。剪枝后的模型在精心策划的图像 - 文本数据集上,以去噪和特征对齐为目标进行了进一步微调。
然而,由于计算和数据资源有限,我们的 Flux-mini 在某些领域的能力仍然有限。为了促进基于 Flux 的模型的发展,我们在 此文件夹 中开源了蒸馏 Flux 的代码。我们呼吁对这个项目感兴趣的人共同合作,构建一个更实用、更强大的文本到图像模型!
⏰ 时间线
[2024.11.26] 我们很高兴地发布了 Flux-Mini 的第一个版本!
⚡️ 效率对比
我们在 单块 H20 GPU
上,以 BF16
精度、batch-size=1
、deepspeed stage=2
、gradient_checkpoint=True
的条件下,对我们的 Flux-Mini 和 Flux-Dev 进行了比较。推理时,我们采用 num_steps=50
,并包含了 T5、CLIP 和 VAE 的成本。OOM
表示内存不足。
分辨率 |
训练策略 |
模型 |
训练速度(秒/图像) |
训练内存(GB) |
推理速度(秒/图像) |
推理内存(GB) |
512 |
LoRA(r=16) |
Flux-dev |
1.10 |
35.91 |
11.11 |
35.11 |
512 |
LoRA(r=16) |
Flux-Mini |
0.33 |
19.06 |
3.07 |
18.49 |
512 |
全量微调 |
Flux-dev |
OOM |
OOM |
11.11 |
35.11 |
512 |
全量微调 |
Flux-Mini |
0.57 |
83.7 |
3.07 |
18.49 |
1024 |
LoRA(r=16) |
Flux-dev |
2.93 |
38.03 |
38.26 |
42.24 |
1024 |
LoRA(r=16) |
Flux-Mini |
1.05 |
22.21 |
10.31 |
25.61 |
1024 |
全量微调 |
Flux-dev |
OOM |
OOM |
38.26 |
42.24 |
1024 |
全量微调 |
Flux-Mini |
1.30 |
83.71 |
10.31 |
25.61 |
⛅ 局限性
与先进的文本到图像模型相比,我们的模型是在有限的计算资源和质量一般的合成数据上训练的。因此,我们的模型在某些类别中的生成能力仍然有限。
当前模型在生成常见图像(如人脸、动物脸、风景、奇幻和抽象场景)方面表现尚可。但不幸的是,它在许多场景中仍然表现不佳,包括但不限于:
- 细粒度细节,如人和动物的结构
- 排版
- 透视和几何结构
- 动态和运动
- 常识知识,如品牌标志
- 物理合理性
- 文化多样性
由于我们的模型是使用 JourneyDB 中的提示进行训练的,我们建议用户使用 类似的提示格式(名词和形容词的组合)来应用我们的模型,以获得最佳质量。例如:"悲伤的苏格拉底半身像,全身,高细节,戏剧性场景,史诗般的动态动作,广角,电影感,超写实,概念艺术,由 Bernie Wrightson、Frank Frazetta 绘制的温暖柔和色调。"
我们欢迎社区中的每个人为这个模型进行协作和提交拉取请求。
💻 Flux-NPU
NPU 的广泛发展为模型训练和推理提供了额外的设备选择。为了方便 Flux 的使用,我们提供了一个代码库,可以在 NPU 上运行 FLUX 的训练和推理代码。
更多详细信息请参考 此文件夹。
⚡️ NPU 上的效率对比
我们在单块 Ascend 910B NPU
上,以 BF16
精度、batch-size=1
、deepspeed stage=2
、gradient_checkpoint=True
的条件下,对我们的 Flux-Mini 和 Flux-Dev 进行了比较。推理时,我们采用 num_steps=50
,并包含了 T5、CLIP 和 VAE 的成本。OOM
表示内存不足。
分辨率 |
训练策略 |
模型 |
训练速度(秒/图像) |
训练内存(GB) |
推理速度(秒/图像) |
推理内存(GB) |
512 |
LoRA(r=16) |
Flux-dev |
1.07 |
38.45 |
11.00 |
58.62 |
512 |
LoRA(r=16) |
Flux-Mini |
0.37 |
20.64 |
3.26 |
19.48 |
512 |
全量微调 |
Flux-dev |
OOM |
OOM |
11.00 |
58.62 |
512 |
全量微调 |
Flux-Mini |
OOM |
OOM |
3.26 |
19.48 |
1024 |
LoRA(r=16) |
Flux-dev |
3.01 |
44.69 |
OOM |
OOM |
1024 |
LoRA(r=16) |
Flux-Mini |
1.06 |
25.84 |
10.60 |
27.76 |
1024 |
全量微调 |
Flux-dev |
OOM |
OOM |
OOM |
OOM |
1024 |
全量微调 |
Flux-Mini |
OOM |
OOM |
10.60 |
27.76 |
📄 许可证
我们的 Flux-mini 模型权重遵循 Flux-Dev 非商业许可证。
其他代码遵循 Apache-2.0 许可证。
🐾 免责声明
用户可以自由使用我们的模型和工具创建图像,但应遵守当地法律并负责任地使用。开发者不对用户可能的不当使用承担任何责任。
👍 致谢
我们感谢以下仓库的作者做出的杰出贡献!