🚀 svdq-int4-flux.1-depth-dev
svdq-int4-flux.1-depth-dev
は、FLUX.1-Depth-dev
のINT4量子化バージョンです。このモデルは、与えられた入力画像の構造に沿いながら、テキスト記述に基づいて画像を生成することができます。また、元のBF16モデルに比べて約4倍のメモリ節約と2 - 3倍の高速実行が可能です。

✨ 主な機能
このモデルは、画像生成やテキストから画像への変換など、多様な画像関連タスクに対応しています。また、量子化技術を用いることで、メモリ使用量を削減し、高速な推論を実現しています。
📦 インストール
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 = "A robot made of exotic candies and chocolates of different kinds. The background is filled with confetti and celebratory gifts."
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
開発中です。近日公開をお楽しみに!
📚 ドキュメント
手法
量子化手法 -- SVDQuant
SVDQuantの概要です。ステージ1では、元々活性化 X と重み W の両方に外れ値が含まれており、4ビット量子化が困難です。ステージ2では、活性化から重みへ外れ値を移動させ、更新された活性化と重みを得ます。活性化は量子化しやすくなりますが、重みはより困難になります。ステージ3では、SVDQuantが重みを低ランク成分と残差にさらに分解します。これにより、16ビット精度で実行される低ランクブランチによって量子化の難易度が軽減されます。
Nunchakuエンジン設計
(a) ランク32の低ランクブランチを単純に実行すると、Down Projection での16ビット入力の追加読み取りと Up Projection での16ビット出力の追加書き込みにより、57%のレイテンシオーバーヘッドが発生します。Nunchakuはカーネル融合によってこのオーバーヘッドを最適化します。(b) Down Projection と Quantize カーネルは同じ入力を使用し、Up Projection と 4-Bit Compute カーネルは同じ出力を共有します。データ移動のオーバーヘッドを削減するために、最初の2つと後の2つのカーネルを融合します。
モデルの説明
属性 |
详情 |
開発者 |
MIT、NVIDIA、CMU、Princeton、UC Berkeley、SJTU、Pika Labs |
モデルタイプ |
INT W4A4モデル |
モデルサイズ |
6.64GB |
モデル解像度 |
ピクセル数は65,536の倍数である必要があります。 |
ライセンス |
Apache-2.0 |
🔧 技術詳細
制限事項
- このモデルは、アーキテクチャがsm_86 (Ampere: RTX 3090、A6000)、sm_89 (Ada: RTX 4090)、sm_80 (A100) のNVIDIA GPUでのみ実行可能です。詳細はこのissueを参照してください。
- 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}
}
📄 ライセンス
このモデルはApache-2.0ライセンスの下で提供されています。