许可证:其他
许可证名称:flux-1-dev-non-commercial-license
标签:
- 图像到图像
- SVDQuant
- INT4
- FLUX.1
- 扩散模型
- 量化
- ControlNet
- 深度到图像
- 图像生成
- 文本到图像
- ICLR2025
- FLUX.1-Canny-dev
语言:
- 英语
基础模型:
- black-forest-labs/FLUX.1-Canny-dev
基础模型关系:量化
管道标签:图像到图像
数据集:
- mit-han-lab/svdquant-datasets
库名称:diffusers
svdq-int4-flux.1-canny-dev
是 FLUX.1-Canny-dev
的 INT4 量化版本,能够根据文本描述生成图像,同时遵循输入图像的 Canny 边缘。它提供了约 4 倍的内存节省,同时运行速度比原始 BF16 模型快 2-3 倍。
方法
量化方法 —— SVDQuant
SVDQuant 概述。阶段1:原始情况下,激活 X 和权重 W 均包含异常值,使得 4 位量化具有挑战性。阶段2:我们将激活中的异常值迁移到权重中,得到更新后的激活和权重。虽然激活变得更容易量化,但权重现在变得更难处理。阶段3:SVDQuant 进一步通过 SVD 将权重分解为低秩分量和残差。因此,低秩分支以 16 位精度运行,减轻了量化难度。
Nunchaku 引擎设计
(a) 直接以秩 32 运行低秩分支会引入 57% 的延迟开销,这是由于在下投影中额外读取 16 位输入和在上投影中额外写入 16 位输出所致。Nunchaku 通过内核融合优化了这一开销。(b) 下投影和量化内核使用相同的输入,而上投影和4 位计算内核共享相同的输出。为了减少数据移动开销,我们将前两个和后两个内核融合在一起。
模型描述
- 开发团队: MIT、NVIDIA、CMU、Princeton、UC Berkeley、SJTU 和 Pika Labs
- 模型类型: 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 controlnet_aux import CannyDetector
from diffusers import FluxControlPipeline
from diffusers.utils import load_image
from nunchaku.models.transformer_flux import NunchakuFluxTransformer2dModel
transformer = NunchakuFluxTransformer2dModel.from_pretrained("mit-han-lab/svdq-int4-flux.1-canny-dev")
pipe = FluxControlPipeline.from_pretrained(
"black-forest-labs/FLUX.1-Canny-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 = CannyDetector()
control_image = processor(
control_image, low_threshold=50, high_threshold=200, detect_resolution=1024, image_resolution=1024
)
image = pipe(
prompt=prompt, control_image=control_image, height=1024, width=1024, num_inference_steps=50, guidance_scale=30.0
).images[0]
image.save("flux.1-canny-dev.png")
Comfy UI
正在开发中,敬请期待!
限制
- 该模型仅支持 NVIDIA GPU 架构 sm_86(Ampere:RTX 3090、A6000)、sm_89(Ada:RTX 4090)和 sm_80(A100)。详情请参阅此问题。
- 您可能会在细节上观察到与 BF16 模型的轻微差异。
引用
如果您发现此模型有用或与您的研究相关,请引用:
@inproceedings{
li2024svdquant,
title={SVDQuant: Absorbing Outliers by Low-Rank Components for 4-Bit Diffusion Models},
author={Li*, Muyang and Lin*, Yujun and Zhang*, Zhekai and Cai, Tianle and Li, Xiuyu and Guo, Junxian and Xie, Enze and Meng, Chenlin and Zhu, Jun-Yan and Han, Song},
booktitle={The Thirteenth International Conference on Learning Representations},
year={2025}
}