许可证: 其他
许可证名称: flux-1-dev-non-commercial-license
标签:
- 图像到图像
- SVDQuant
- INT4
- FLUX.1
- 扩散模型
- 量化
- ControlNet
- 深度图转图像
- 图像生成
- 文本转图像
- FLUX.1-Depth-dev
- ICLR2025
语言:
- 英文
基础模型:
- black-forest-labs/FLUX.1-Depth-dev
基础模型关系: 量化版本
管道标签: 图像到图像
数据集:
- mit-han-lab/svdquant-datasets
库名称: diffusers
svdq-int4-flux.1-depth-dev
是FLUX.1-Depth-dev
的INT4量化版本,能够根据文本描述生成图像,同时遵循输入图像的结构。相比原始BF16模型,该版本可节省约4倍内存,运行速度提升2-3倍。
方法
量化方法——SVDQuant
SVDQuant工作流程。阶段1:原始激活值X和权重W均包含异常值,导致4-bit量化困难。阶段2:将激活值中的异常值迁移至权重,更新后的激活值更易量化,但权重量化难度增加。阶段3:通过SVD将权重分解为低秩成分和残差,低秩分支以16-bit精度运行,从而缓解量化压力。
Nunchaku引擎设计
(a) 直接运行秩为32的低秩分支会因降维投影额外读取16-bit输入和升维投影额外写入16-bit输出,导致57%延迟开销。Nunchaku通过内核融合优化该开销。(b) 降维投影与量化内核共享输入,升维投影与4-bit计算内核共享输出。通过融合前两组和后两组内核,减少数据移动开销。
模型说明
- 开发团队: 麻省理工学院、英伟达、卡内基梅隆大学、普林斯顿大学、加州大学伯克利分校、上海交通大学及Pika实验室
- 模型类型: INT W4A4量化模型
- 模型大小: 6.64GB
- 分辨率要求: 像素数需为65,536的整数倍
- 许可证: Apache-2.0
使用指南
Diffusers框架
请参照mit-han-lab/nunchaku配置环境,并安装ControlNet依赖:
pip install git+https://github.com/asomoza/image_gen_aux.git
pip install controlnet_aux mediapipe
运行示例代码:
import torch
from diffusers import FluxControlPipeline
from diffusers.utils import load_image
from image_gen_aux import DepthPreprocessor
from nunchaku.models.transformer_flux import NunchakuFluxTransformer2dModel
transformer = NunchakuFluxTransformer2dModel.from_pretrained("mit-han-lab/svdq-int4-flux.1-depth-dev")
pipe = FluxControlPipeline.from_pretrained(
"black-forest-labs/FLUX.1-Depth-dev",
transformer=transformer,
torch_dtype=torch.bfloat16,
).to("cuda")
prompt = "由各种奇异糖果和巧克力制成的机器人,背景充满彩带和庆祝礼物。"
control_image = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/robot.png")
processor = DepthPreprocessor.from_pretrained("LiheYoung/depth-anything-large-hf")
control_image = processor(control_image)[0].convert("RGB")
image = pipe(
prompt=prompt, control_image=control_image, height=1024, width=1024, num_inference_steps=30, guidance_scale=10.0
).images[0]
image.save("flux.1-depth-dev.png")
Comfy UI界面
开发中,敬请期待!
限制说明
- 目前仅支持NVIDIA sm_86架构(安培:RTX 3090/A6000)、sm_89架构(Ada:RTX 4090)及sm_80架构(A100)GPU,详见此问题
- 细节表现可能与BF16原始模型存在微小差异
引用文献
若该模型对您的研究有所帮助,请引用:
@inproceedings{
li2024svdquant,
title={SVDQuant:通过低秩成分吸收异常值实现4-bit扩散模型量化},
author={李*, 牧阳 and 林*, 宇君 and 张*, 哲凯 and 蔡天乐 and 李修宇 and 郭俊贤 and 谢恩泽 and 孟晨霖 and 朱俊彦 and 韩松},
booktitle={第十三届国际学习表征会议},
year={2025}
}