見出し画像

Flux.1 を快適に使おう! Stable Diffusion webUI Forge と ComfyUI で GGUF 形式を利用する方法

はじめに

こんにちは、きまま / Easygoing です。

今回は、Flux.1 を快適に動かすことができる GGUF 形式について紹介します。

Flux.1 のモデルは容量が大きい

前回紹介したように、新しい画像生成AI の Flux.1 は、モデルの容量が大きいので、FP16 / FP8 形式で使うには VRAM 16GB が必要でした。

最近になって普及した GGUF 形式 は、量子化圧縮を行うことでメモリの使用量を大きく減らすことができるようになりました。

今回は、GGUF 形式の使い方をご紹介します。

実際のイラストを比較

まずは、実際のイラストを見てみましょう。

  • image to image

  • 1440 x 1440 → Hires 2576 x 2576

FP16(16bit)

滝行をするきれいな女性のアニメイラスト、anima_pencil-XL -> blue_pencil-flux1 FP16

FP8(8bit)

滝行をするきれいな女性のアニメイラスト、anima_pencil-XL -> blue_pencil-flux1 FP8
指が崩壊

Q8.gguf(8bit)

滝行をするきれいな女性のアニメイラスト、anima_pencil-XL -> blue_pencil-flux1 Q8.gguf
FP16 に近い

Q6_K.gguf(6bit)

滝行をするきれいな女性のアニメイラスト、anima_pencil-XL -> blue_pencil-flux1 Q6_K.gguf
少しずつ劣化

Q5_K_M.gguf(5bit)

滝行をするきれいな女性のアニメイラスト、anima_pencil-XL -> blue_pencil-flux1 Q5_K_M.gguf

Q4_K_M.gguf(4bit)

滝行をするきれいな女性のアニメイラスト、anima_pencil-XL -> blue_pencil-flux1 Q4_K_M.gguf

Q3_K_L.gguf(3bit)

滝行をするきれいな女性のアニメイラスト、anima_pencil-XL -> blue_pencil-flux1 Q3_K_L.gguf
ギリギリ使える

Q2_K.gguf (2bit)

滝行をするきれいな女性のアニメイラスト、anima_pencil-XL -> blue_pencil-flux1 Q2_K.gguf
崩壊

GGUF形式の特徴

FP8 と Q8.gguf は両方とも 8bit で同じ容量ですが、多くの場合 Q8.gguf 形式の方が精度が高く、画質も良く なります。

GGUF 形式でも bit 数が下がるにつれて画質は低下していき、背景の描き込みと色の深みが失われていきます。

一般的に、GGUF 形式は Q4 ~ Q5 あたりが容量と精度のバランスが良い とされていて、崩壊せずにギリギリ使えるのが Q3 です。

アルファベットの意味は?

Q4 を例にすると、後ろについているアルファベットには次の意味があります。

  • Q4:オリジナルの方式

  • Q4_K:K量子化(精度が向上)

  • Q4_K_S:K量子化した上で、容量が小さく精度が低い

  • Q4_K_M:K量子化した上で、中間的な形式

  • Q4_K_L:K量子化した上で、容量が大きく精度が高い

こちらは、下に行くほど精度が高くなります。

実際に使ってみよう!

それでは、実際の GGUF 形式のモデルの使い方をご紹介します。

まずはダウンロード

Flux.1 の GGUF 形式のファイルはこちらで配布されています。

モデル

Flux.1[dev]

Flux.1[shnell] と blue_pencil-flux1 は記事の最後にリンクを置いておきます。

テキストエンコーダー

T5xxl_v1_1

Flan-T5xxl(改良型 T5xxl)も最後にリンクを記載します。

どれを選べば良いの?

GGUF 形式にはいろいろな種類がありますが、私の環境で調べた VRAM の容量に収まる形式は次の通りです。

Stable Diffusion webUI Forge

Stable Diffusion webUI Forge の VRAM別の推奨の GGUF形式

ComfyUI

ComfyUI の VRAM別の推奨の GGUF形式

上記のモデルを利用して VRAM 使用量が超過した場合は、もう一段階小さい形式 の利用をお勧めします。

なお、ディスプレイモニターを内蔵出力ではなく GPU に接続している場合は、その分 VRAM も利用しているので、さらに小さいサイズが適切になるでしょう。

ダウンロードしたファイルの設置場所

ダウンロードしたファイルは、次の場所に設置します。

Stable Diffusion webUI Forge

モデル

インストールフォルダ/Models/StableDiffusion

テキストエンコーダー

インストールフォルダ/Models/CLIP

ComfyUI

モデル

インストールフォルダ/Models/Unet

テキストエンコーダー

インストールフォルダ/Models/CLIP

なお、EasyForge および Stability Matrix のモデルブラウザを使ってダウンロードした場合は、自動的に該当のフォルダに格納される ので特別な操作は不要です。

実際の使い方!

それでは、GGUF 形式のモデルを実際に使ってみます。

Stable Diffusion webUI Forge:とても簡単!

まずは、Stable Diffusion webUI Forge の生成画面です。

Stable Diffusion webUI Forge の生成画面、モデル選択部分とテキストエンコーダーの選択部分にコメント入り

いつもと同じように、モデルの選択画面で gguf 形式 のモデルを選択します。

テキストエンコーダーは、VAE / text encorder の項目で該当の gguf 形式 のファイルを選択します。

選択したものを解除するときは、右側の❌ボタンを押します。

  • T5xxl(任意の GGUF形式)

  • clip-l

  • ae.safetensors

VAE / text encorder に上の3つが選択されていることを確認して、あとはいつも通りプロンプトを入力して Generate を押せば画像が生成されます!

ComfyUI:カスタムノードが必要

ComfyUI で GGUF 形式を利用する場合、ComfyUI-GGUF カスタムノードのインストールが必要です。

ここでは、ComfyUI maneger を利用したインストールの方法を説明します。

まず、ComfyUI を起動して、Manager も起動します。

ComfyUI の操作画面、ComfyUI Manager を示すコメント入り

次に Custom Nodes Manager を選択します。

ComfyUI Manager の操作画面、Cuntom Node  Manager を示すコメント入り

検索で「gguf」と入力すると ComfyUI-GGUF というカスタムノードが表示されるので、これをインストールします。

Custom Node Manager  の操作画面、ComfyUI-GGUF を示すコメント入り

再起動するようにメッセージが表示されるので、ComfyUI を再起動します。

次に、ワークフローを作成するときに、Unet Loader (GGUF)  と Dual Clip Loader (GGUF) を選択します。

ComfyUI-GGUF の Unet Loader と DualClipLoader ノード

これで GGUF 形式のモデルを選択できるようになります。

なお、EasyForge を利用している場合は、最初から ComfyUI-GGUF カスタムノードはインストールされています!

GGUF 形式のデメリット

GGUF 形式は、RAM と VRAM の節約にメリットが大きいですが、特定のケースではデメリットが存在します。

VRAM に余裕があるなら、あまり速くならない

GGUF 形式のファイルは、元のファイル形式から量子化圧縮して生成されます。

  • 例:FP16 → Q8.gguf

Q8.gguf 形式は、量子化した整数で演算を行うため一般的に元の FP16 形式よりも高速ですが、重要な部分については FP16 形式に再変換 して演算を行っています。

滝行をするきれいな女性のアニメイラスト、腰まで水につかっている

そのため、VRAM に余裕があって元の FP16 形式で演算ができる場合は、gguf 形式を利用しても速くならない場合があります。

ComfyUI で逆に VRAM が超過する!?

ComfyUI は、可能な範囲でモデルを VRAM 保持して処理を高速化しています。

このとき、デフォルト以外のカスタムノードを使用すると、容量が適切にカウントされない場合があり、モデルのアンロードが行われず、逆に VRAM が超過する ことがあります。

このケースでは、VRAM が超過するプロセスの前に Unload All Models ノードを接続すると解決できます。

例:conditioning と Sampler の間に Unload All Models ノードを接続する

UnloadAllModels ノードの接続例

Unload All Models カスタムノードは、先ほどと同じくManeger で「ComfyUI-Unload-Model」を検索するとインストールできます。

最近は ComfyUI および ComfyUI-GGUF ともに連日アップデートが入っていて、私の環境では VRAM が超過するときとしない場合と、日によって状況が変わっています。

滝行をするきれいな女性のアニメイラスト、足が水につかっている

この問題はいずれ解決すると思いますが、Unload All Models ノードは他の場面でも利用できるので、使えるようになると良いでしょう。

GGUF 形式のファイルを自分で作ろう!

ここまで GGUF形式の使い方について解説しました。

ここからは、GGUF 形式のファイルを自分で作る方法を紹介します。

Flux_tool を使おう!

以前の記事 でも紹介しましたが、Zuntan さんが公開されている EasyForge の flux_tool には、GGUF 変換機能が搭載されています。

flux_tool を利用すると、任意の形式の GGUF ファイルを作成することができます。

EasyForge のインストール方法はこちらをご覧ください。

ConvertGguf.bat の使い方

それでは、flux_tool の ConvertGguf.bat の使い方を紹介します。

まずは、変換する元になるモデルを準備します。

GGUF 形式で量子化圧縮を行うときは、元のファイルが高精度のものほど生成されるファイルの精度が良く なります。

  • FP32 > FP16 > BF16 > FP8

従って、上の順番でなるべく精度の高いモデルを用意します。

ConvertGguf.bat を実行

次に、EasyForge の flux_tool のフォルダ内にある ConvertGguf.bat を実行します。

EasyForge フォルダの選択画面、flux_tool を示す印入り
flux_tool フォルダの選択画面、ConvertGguf.bat  を示す印入り

するとコマンドプロンプトの黒い画面が表示されるので、ここで変換したいファイルをドラッグ&ドロップします。

ConvertGguf.bat のコマンドプロンプトの操作画面、モデルファイルをドラッグ&ドロップするコメント入り

あとはメッセージに従って Enter を押せば GGUF 形式のモデルが生成されます!

他の形式を作りたい場合

ConvertGguf.bat を実行すると、デフォルトでは Q8 と Q6_K の2つの形式が作成されます。

ほかの種類の GGUF 形式を作りたい場合は、 flux_tool の env フォルダ内の ConvertGgufFormat.txt を書き換えてから上書き保存して、再度 ConvertGguf.bat を実行します。

flux_tool の env フォルダ内の ConvertGgufFormat.txt を選択する印入り
ConvertGgufFormat.txt の編集画面

記入例

  • Q8_0

  • Q6_K

  • Q5_K_M

  • Q4_K_M

  • Q3_K_L など

これで任意の形式の GGUF ファイルを作ることができます!

ComfyUI には --novram オプションもある

ComfyUI で VRAM の少ない環境で高画質のイラストを生成したい場合、--novram オプションを使う方法もあります。

--novram オプションを使うと生成時間は 1.5~2倍に伸びますが、VRAM が 6GB の環境でも高画質のイラストを生成 することができます。

まとめ:GGUF 形式はすごい!

GGUF 形式の使い方についてまとめました。

  • GGUF 形式でメモリを節約

  • 圧縮形式は VRAM 容量に合ったものを選ぶ

  • flux_tool で最適な形式を作成する

今回は Flux.1 を例に解説しましたが、GGUF 形式はすでに SD 3.5SDXL にも導入されています。

滝行をするきれいな女性のアニメイラスト、腰まで水につかってこちらを見ている

GGUF 形式は画期的な技術で、今後スマホなどの小型端末に対しても AI の普及を後押しするとみられています。

近い将来、誰でもスマホで画像生成ができる時代が来るのかもしれません。

最後までお読みいただきありがとうございます!


クリエイター紹介

さて、今回ご紹介する note クリエイター は hakuro さんです!

hakuro さんは、様々なジャンルの note を執筆されていますが、特にこちらの記事では、歴史小説を AIイラストで紹介する試みをされています。

私は今まで歴史小説にほとんど触れたことはありませんでしたが、きれいなイラストのおかげで、ストーリーを自然と読むことができました。

AIイラストの新しい使い方を感じます。皆様もぜひご覧ください!


GGUF形式のダウンロードサイト

Flux.1[shnell]

blue_pencil-flux.1(アニメモデル)

Flan-T5xxl(T5xxl の改良版)

こちらは、非蒸留モデルなので、通常の T5xxl より容量が大きいです。


English Article


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