見出し画像

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\activate

2. 追加のコンポーネント導入

cd custom_nodes
git clone https://github.com/comfyanonymous/ComfyUI_bitsandbytes_NF4.git

3. 追加パッケージのインストール

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し、ワークフロー呼び出し

drag&drop
ワークフローが自動構築されます

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

モデル(bnb-NF4のみ対応)
プロンプト

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.
ビーチで運動する健康な年配の男性の写実的なポートレート。この男性は引き締まった筋肉質の体格で、スリムでありながら引き締まった体格を誇っています。背景には「禁煙」と書かれた看板があります。

prompt

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が流用できないなど問題もあるよう。

おしょうしな

参考にさせていただきました。ありがとうございました。

いいなと思ったら応援しよう!

この記事が参加している募集