FLUX.1を量子化モデルで遊ぶメモ
このメモを読むと
・画像生成を高速化できる
・VRAM使用量を減らせる
・FLUX.1[dev]モデルは約24GB→12GBまで節約
検証環境
・OS : Windows11
・Mem : 64GB
・GPU : GeForce RTX™ 4090
・ローカル(pyenv+venv)
・python 3.10.12
・2024/8/M時点
推奨環境
・Mem : 16GB 以上
・GPU : 12GB 以上
bitsandbytes nf4 モデル
4bit量子化されたモデル。
量子化を活用すると、VRAMを節約できます。
ComfyUIで使用可能になりましたので、試してみましょう!
事前準備
まずはComfyUIを導入します。
環境構築
とても簡単です!
1. ComfyUIを最新化し、仮想環境立ち上げ
cd ComfyUI
git pull
.venv\scripts\activate2. 追加のコンポーネント導入
cd custom_nodes
git clone https://github.com/comfyanonymous/ComfyUI_bitsandbytes_NF4.git3. 追加パッケージのインストール
cd ComfyUI_bitsandbytes_NF4
pip install -r requirements.txt
cd ../..4. 追加ファイルのダウンロード
こちら(Hugging Face) から下記をダウンロードします。
・flux1-dev-bnb-nf4.safetensors (11.5GB)
5. 追加ファイルの格納
ダウンロードしたファイルを下記の構成で格納します。
ComfyUI
└─ models
└─ checkpoints
└─ flux1-dev-bnb-nf4.safetensors
6. 画像(ワークフロー)のダウンロード
こちら から画像をダウンロードします。

完了です!
FLUX.1を動かしてみる
画像を生成してみましょう。
1. 下記コマンドにて、ComfyUIを起動
cd ComfyUI
.venv\scripts\activate
python main.py
2. 先ほど保存した画像をUI画面へdrag&dropし、ワークフロー呼び出し


3. モデルを選択し、好きな生成文(prompt)を記述


A photorealistic portrait of a fit elderly man working out on a beach. The man has a lean and muscular physique, showcasing a slim but toned build. In the background, there's a sign with the word 'No Smoking' written on it.
ビーチで運動する健康な年配の男性の写実的なポートレート。この男性は引き締まった筋肉質の体格で、スリムでありながら引き締まった体格を誇っています。背景には「禁煙」と書かれた看板があります。
4. 生成開始

5. できた

./output へ成果物が格納されます。
生成速度
下記条件でタスク完了までの時間を検証します。
・widgh : 1280
・height : 720
・batch_size : 10
16bitモデル:t5xxl_fp16.safetensors
生成時間 122.09 秒
VRAM消費 23 GB前後
8bitモデル:flux1-dev-fp8.safetensors
生成時間 109.84 秒
VRAM消費 16 GB前後
4bitモデル:flux1-dev-bnb-nf4.safetensors
生成時間 109.74 秒
VRAM消費 12 GB前後
当環境ではスピードに関してさほど優位性がありませんでした。
おわり
FLUX.1量子化モデルで画像生成できた。
元モデルの約半分のVRAMで実行できました。
VRAM使用量が減ったことで、特にVRAMが限られている場合に実行速度が向上しそうです。
ただし、非bnbモデルのLoRAが流用できないなど問題もあるよう。
おしょうしな
あ”ー盲点。新型Forge採用のflux1-dev-bnb-nf4。以下のカスタムnodeで #ComfyUI でも使えるけど、 #Flux.1 devで学習したLoRAが使えない…。おそらく新型Forgeも同様。< 今はそもそもType Errorで未サポートhttps://t.co/OSNEcHfqaE
— Photogenic Weekend (@PhotogenicWeekE) August 11, 2024
参考にさせていただきました。ありがとうございました。
