【免费下载链接】FLUX.1-schnell-FP8
FLUX.1-schnell-FP8是 Black Forest Labs 旗下 12B 参数文生图模型FLUX.1-schnell的FP8 / INT8 量化版本。它基于 rectified flow(整流流)transformer 架构,配合对抗式蒸馏训练,仅需 1~4 步推理即可生成高清图;本仓库再用 torchao 动态激活量化进一步压缩了模型的显存占用。这篇文章带你深入浅出地剖析它的模型架构与量化方案。
一、FLUX.1-schnell 是什么?12B 参数文生图模型速览
先看量化模型的出图效果,样本提示词为 "cute sloth typing on a computer",分辨率 1024×1024:
根据 README.md 的官方描述,FLUX.1 [schnell] 是一个12B 参数量的 rectified flow transformer文生图模型,核心特性(见 README.md):
- 顶级出图质量:生成质量与提示词遵循度对标闭源竞品;
- 1~4 步快速生成:采用**隐空间对抗扩散蒸馏(LADD)**训练;
- Apache-2.0 开源协议:个人、科研、商用均可使用。
💡 "schnell" 是德语"快"的意思,模型名字本身就点明了它的定位:快速文生图。
二、rectified flow:4 步出图的"高速公路"原理
传统扩散模型要从纯噪声"雕刻"出图像,需要沿复杂的弯曲轨迹反复去噪,往往几十上百步;而rectified flow把这条轨迹拉成近似直线,采样过程就变成"沿着直线从噪声走到图像",几步大步长即可完成。
再叠加隐空间对抗扩散蒸馏训练——把教师模型多步去噪的能力"压缩"进学生模型——FLUX.1-schnell 因此可以最少 1 步、常规 4 步就产出高质量图像,这是它区别于传统扩散模型的根源。
推理时的几个关键参数(新手重点关注):
| 参数 | 常用值 | 作用 |
|---|---|---|
num_inference_steps | 1~4 | 去噪步数,越少越快 |
guidance_scale | 0.0 | schnell 已蒸馏,无需无分类器引导 |
max_sequence_length | 256 | 文本编码最大长度 |
seed | 任意 | 随机种子,同种子结果可复现 |
三、模型架构拆解:三大核心组件
FLUX.1-schnell 的生成流水线由三个"部门"分工协作:
3.1 双文本编码器:CLIP-L + T5-XXL
两个编码器共同把提示词转成语义嵌入:轻量的CLIP-L捕捉关键词细节,大容量的T5-XXL(text_encoder_2)负责深度语义理解。CLIP-L 体积小,保留稠密格式即可。
3.2 12B 参数 DiT 主干网络
模型的心脏是12B 参数的扩散 transformer(DiT),在隐空间里沿整流流轨迹逐步去噪。这也是本仓库最大的两个文件:
- FLUX.1-schnell-INT8.pt(15.2 GB)
- FLUX.1-schnell-FP8.pt(11.9 GB)
3.3 VAE 隐空间
图像并不直接在像素空间生成:VAE 先把图像压缩成紧凑的隐表示,DiT 在隐空间完成去噪,最后由 VAE 解码回高清图。"latent adversarial distillation" 里的latent指的就是这一层。
四、核心亮点:FP8 / INT8 量化架构剖析
本仓库 的最大价值是提供预量化的 DiT 检查点:用torchao 动态激活量化从 bf16 稠密模型离线量化而来,加载时直接拿到量化权重,跳过"先加载完整模型再量化"的环节,启动更快、峰值显存更低。
4.1 INT8 量化:整数矩阵乘
Int8DynamicActivationInt8WeightConfig:激活按 token量化、权重按通道量化,走torch._int_mm整数矩阵乘指令,文件大小 15.2 GB。
4.2 FP8 量化:e4m3 浮点,更小更准
Float8DynamicActivationFloat8WeightConfig:权重采用e4m3浮点格式,激活按PerRow粒度动态缩放,走torch._scaled_mm计算,文件仅 11.9 GB,比 INT8小约 22%。
⚡ 两个关键工程细节(见 README.md):加载预量化检查点与即时量化逐位一致(bit-identical);FP8 加载器需将动态激活缩放下限设为
activation_value_lb=1e-12(torchao 0.13+),避免全零 token 产生零缩放。
| 对比项 | INT8 | FP8 |
|---|---|---|
| 文件大小 | 15.2 GB | 11.9 GB |
| 激活量化 | Per-token | PerRow 动态缩放 |
| 权重量化 | Per-channel | e4m3 |
| 计算内核 | torch._int_mm | torch._scaled_mm |
| 与 bf16 原版的 LPIPS(越低越好) | 0.151 | 0.157 |
上图为 FP8 量化的另一张 1024×1024 样本(seeds 0-2,完整对比见 samples/ 目录)。
五、T5 文本编码器 FP8 预转换:下载量 9.5 GB 省到 5.9 GB
仓库中的 FLUX.1-schnell-text_encoder_2-FP8.pt(5.9 GB)是 T5-XXL 编码器提前完成layer-wise fp8 存储转换后的产物(见 README.md):
- 共 220 个张量,其中144 个转为 fp8 存储;T5 中须保留 fp32 的
wo投影仍保持稠密; - 与"下载原版再转换"逐张量一致,零画质损失;
- T5 分片在 FLUX.1-schnell、FLUX.1-dev、FLUX.1-Krea-dev 中字节级相同(sha256 校验),一份工件三个基座通用。
六、如何获取并运行 FLUX.1-schnell-FP8
先克隆仓库(大文件由 Git LFS 管理):
git clone https://gitcode.com/hf_mirrors/unsloth/FLUX.1-schnell-FP8再参考 README.md 的官方示例,用 diffusers 的FluxPipeline运行,核心调用参数:
image = pipe(prompt, guidance_scale=0.0, num_inference_steps=4, max_sequence_length=256, generator=torch.Generator("cpu").manual_seed(0)).images[0]显存紧张时加上pipe.enable_model_cpu_offload()把模型卸载到 CPU 即可省显存。
七、效果验证与使用限制
- 质量验证:与同种子 bf16 原版渲染做了 SSIM、LPIPS-vgg、CLIP delta 及黑帧检查,LPIPS 为 0.151(INT8)/ 0.157(FP8),视觉差异极小;
- 使用限制:作为统计模型,输出不一定完全贴合提示词,且提示词风格对遵循度影响很大;它不能提供事实性信息(详见 README.md)。
总结
FLUX.1-schnell-FP8 展示了"大模型轻量化"的一条完整路径:rectified flow + 对抗蒸馏把推理步数从上百步压到 4 步,FP8/INT8 动态量化把 12B 参数模型装进 11.9~15.2 GB,T5 编码器预转换再省下 3.6 GB 下载量。如果你想在中等显存的 GPU 上跑 12B 级开源文生图模型,这套架构与量化方案非常值得借鉴。
【免费下载链接】FLUX.1-schnell-FP8
相关推荐
《FLUX.1 [schnell]:图像生成模型的颠覆者》
《FLUX.1 schnell :图像生成模型的颠覆者》 引言 在人工智能领域,模型的选择关乎着应用场景的成败。随着技术的不断发展,图像生成技术已成为AI研究的
FLUX.1 schnell 模型实践指南:基于 flux 仓库的 1-4 步蒸馏推理与文本生成图像全解析
FLUX.1 schnell 模型实践指南:基于 flux 仓库的 1 4 步蒸馏推理与文本生成图像全解析 本文以 model_cards/FLUX.1 sch
人工智能大模型本地部署媒体生成CANN/asc-devkit矩阵乘法样例
Mmad样例 概述 本样例介绍了输入为ND格式,B4 / B8 / B16 / B32输入数据类型(具体以int4_t / int8_t / bfloat16
人工智能深度学习算子库CANNAscend
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考