見出し画像

【2024年最新】無料で始めるFlux画像生成の爆速化!🖼️ GGUF・NF4モデルで30分→3分へ短縮✨ LoRA・ControlNet対応の量子化テクニック完全解説💡 ComfyUIでVRAM60%節約!MacBookでも使える驚異の高速ワークフロー公開🔥

みなさん、こんにちは!葉加瀬あいです!

今回は、Fluxの量子化についてお話ししていきたいと思います!

実は、本家のFlux fp16モデルを使っていると、画像生成に30分もかかってしまうことがあるんです…。「えっ、そんなに時間がかかるの?」と驚かれた方もいらっしゃるのではないでしょうか?

でも、ご安心ください!今回ご紹介するGGUFやNF4などの量子化の知識があれば、画像生成をもっと早く行えるようになりますし、LoRAやControlNetも一緒に使えるようになるんです!すごいですよね!

量子化って難しそう…と思われるかもしれませんが、実は皆さんが普段使っている画像生成AIのモデルを少し変更するだけなんです。簡単ですよ!

今回は、以下のような疑問にお答えしていきます。

  • そもそも量子化って何?

  • なぜ量子化が必要なの?

  • どの量子化モデルを使えばいいの?

  • どのプラットフォームで量子化モデルを使った画像生成ができるの?

これらの疑問を包括的に解説していきますので、ぜひ最後までお付き合いくださいね!

そして、私のメンバーシップに入門されている方は、いつものように記事の内容を動画でも確認できます!スキマ時間で最新のAI情報をキャッチしたい方は、ぜひこちらからどうぞ!

それでは、今回もよろしくお願いします!


はい!ということで改めて、みなさんこんにちは!最近、文明の利器を捨てて、紙にペンで色々メモしたり図解したりするのがマイブームな葉加瀬あいです。

ただ、飼い猫が新しいリフレクトペンに興味津々で遊びまくっているので、全然メモがはかどらないんです…。「あら、困った…🥲」と思いつつも、猫の可愛らしさに癒されている毎日です!

さて、今回はFluxの重い処理とLoRAが使えない問題を解決する方法をご紹介します!さらに、ControlNetも使えちゃう最新のGGUF・NF4事情を初心者向けに解説していきますね。

これを知れば、より少ない容量で高速にFluxの画像生成が何不自由なく行えるようになるんです。すごいですよね!

今回の内容

  1. Fluxの画像生成が重い問題

  2. GGUFによる軽量化と高速画像生成

  3. ControlNetやLoRAの使用方法

量子化って何?

そもそも量子化(Quantization)って何なのでしょうか?簡単に言うと、容量を軽くしたり、計算量を減らしたりすることなんです。

例えば、20GBのモデルが12GBになったり、必要なVRAMの量が16GBから14GBに減ったりするんです。すごいですよね!

PCやITにあまり詳しくない方は、「VRAM」って聞いてもピンとこないかもしれません。VRAMは簡単に言うと、AIが画像生成などをする際に発生する計算の記憶領域のことです。つまり、どれだけ画像生成にかかる計算を同時に行えるかを決める重要な要素なんです。

量子化を使うメリット

量子化を使うと、計算量が減ってVRAMの消費量が減り、計算速度も向上します。ただし、計算を簡略化した分、生成される画像にも多少の変化が出る可能性があります。

つまり、量子化すると:

  • 容量が少なくなる

  • VRAMでの計算量が減る

  • 画像生成の結果が少し変わったり品質が落ちたりする可能性がある

基本的には、PCのスペックが高ければ量子化していないモデルを使った方が良いのですが、Fluxの画像生成には高スペックのPCが必要になってしまいます。

特に、LoRAControlNetを使うとVRAMの消費量がさらに増えてしまうんです。そうすると、PCが頑張りすぎて画像生成がすごく遅くなってしまうことがあるんです…。

そこで今回は、量子化技術を使って、Fluxの画像生成をより少ないVRAMで行ったり、PCがフリーズするのを防いだりする方法をご紹介します!

ちなみに、Fluxの量子化モデルは現在、NF4GGUFが主流となっています。これらについても詳しく解説していきますね!

なぜFluxの量子化モデルはNF4ではなくGGUFが使われているのか?

みなさん、ここからが本題です!Fluxの量子化モデルには、NF4GGUFがあるんです。「えっ、どっちを使えばいいの?」と思われた方もいらっしゃるかもしれませんね。

それでは、NF4とGGUFの量子化モデルの違いについて、詳しく解説していきましょう!

結論から申し上げますと、現在はGGUFを使っている人が多いんです。ただ、ここはちょっと難しい話になるので、あまり興味のない方は読み飛ばしてもOKですよ!

NF4とGGUFの違いを一言で言うと、理論上はNF4の方が優れているのですが、実際の使用では現在GGUFの方が便利なんです。

なぜGGUFの方が使われているかというと、GGUFの方がLoRAやMacBookにも対応しているからなんです。すごいですよね!

理論上NF4の方が良いと言いましたが、これはNF4が画像生成AIの量子化に最適化されているからなんです。NF4は、少ないビット数で数値を表現できるため、モデルのサイズを縮小し、処理速度を向上させることができるんです。これにより、AIモデルのメモリ使用量を削減し、より高速な処理が可能になります。

先ほども申しました通り、通常は量子化を行うと画像生成の質が落ちるんですけども、Fluxの場合はかなりそこの部分が対策されていて、量子化されたモデルでももとのモデルに近いような高品質な画像が生成できるんです!

ただし、人によっては「手の破綻が量子化の方だとより顕著になる」という意見もあるんです。でも、それでもPCが重くなったりするよりは良いので、個人的にはFluxの量子化モデルは積極的に使っていいんじゃないかと思っています。

さて、ここからはNF4とGGUFの違いについて、もう少し詳しく見ていきましょう。

NF4は、画像生成AIに適した量子化の方法を取っていて、精度を保ったまま、綺麗な画像生成ができるんです。しかも、プロンプトの効き目もいいし、高速になっているんですよ!

一方、GGUFは単純な圧縮を行っているので、LoRAやControlNetにも対応していて使いやすいんです。

ここで、もう少し踏み込んで説明すると、NF4はGPUでの利用に適した形式になっているんです。特に画像生成AIの量子化に最適化されているんですよ!そのため、より少ないビット数で数値を表現できたり、モデルのサイズを縮小して処理速度を向上させたりすることができるんです。すごいですよね!

さらに、NF4はAIモデルのメモリ使用量を削減して、より高速な画像生成の処理ができるとされています。これって、画像生成が好きな方にとっては嬉しいポイントですよね!

それで、本来であれば量子化を行うと画像の質が落ちるんですけども、FluxのNF4のAIモデルの場合は、この品質をあまり落とさずに画像生成ができるんです。これって、本当にすごいことなんですよ!

ここで言う品質っていうのは、画像生成AIの中では結構「精度」という風に言われたりします。例えば、手の破綻が量子化の方が多くなったり、プロンプトの効き目が少し悪くなったりするんです。これらをまとめて精度とか品質とか言ったりするんですよ!

なので、FluxのNF4モデルはこの精度が結構保たれたまま量子化されているので、本家のFluxのモデルよりも高速だし、容量は抑えられるし、しかも、VRAMの計算量も減らしてくれるんです。これって、まさに一石三鳥ですよね!

ただし、このNF4、仕組み的にNVIDIAというGPUのブランドでしか動作しないのが欠点なんです。つまり、Windows PCでNVIDIA製のGPUを搭載したPCでないと動かないということになるんです。ちょっと残念ですよね…。

もちろん、クラウド環境、例えば私がよく解説しているPaperspaceとかAmazon SageMaker Studioとかでのクラウド環境では、このNF4も動くんです。でも、その反面、MacBookとかでは動かないんですよ。

ここら辺のStable DiffusionとかFluxとかをクラウド環境で使う方法に関しては、こちらのマガジンで詳しくまとめているので、よかったら見てみてくださいね!

しかも、このNF4は量子化が、少しGGUFと比べて複雑なものだったり、計算のリソースの使い方が違ったりするので、画像生成AIでFluxと一緒にLoRAを使おうとしても、使えなかったりすることがあるんです。

なので、MacBookでは使うことができなくて、さらに、LoRAも使うことができないといった感じになってしまうんです。ちょっと残念ですよね…。

ちなみに、Stable Diffusion Web UI Forgeのディスカッションによると、実は、Forgeの制作者さんが、NF4でもLoRAを使えるようにしてくれたみたいなんです。つまり、Stable Diffusion Web UI ForgeからFluxの画像生成を行いたいという方に関しては、FluxでLoRAを使うことができるんです!すごいですよね!

ですが、ComfyUIの方では使えないんです。「むむ…」と思われた方もいるかもしれませんね。

それで、Fluxって結構最先端な画像生成AIなんです。Stable Diffusion Web UI Forgeの方で使えるようになるのは、その技術がリリースされてから少し経ってからなんですよ。

このラグが1ヶ月か2ヶ月くらいあることが多いんです。なので、Fluxで最新技術を使いたい!という方は、ComfyUIを使うのがおすすめなんです。

ComfyUIを使った方がいい理由については、こちらの記事でも詳しく解説しているんですよ。Fluxで最新技術を使う場合、NF4を使うとLoRAの適用がComfyUIでできないので、NF4ではなく、本家のFluxモデルを使う必要があるんです。

もちろん、Stable Diffusion Web UI ForgeのようにNF4でLoRAがComfyUIでも使えるようになれば、NF4を使った方がいいんですけど…。現状では、私の知る限りそういった技術がないんです(作ろうと思えば作れると思うんですけどね)。なので、基本的には本家のFluxモデルを使って画像生成することになります。

ただし、ここで問題が…。実は、この画像生成に関しては、お使いの環境によっては、結構遅くなったり重くなったりすることがあるんです。「えぇ~」と思われましたか?

そこで、今回は、使っているPCのスペックがそんなに高くない方や、なぜかとても画像生成が遅くなってしまう人のために、量子化モデルの使用をおすすめします。そこで登場するのが、GGUFという圧縮モデルなんです!

このGGUFは、実はLLamaというLLMでも使われていた圧縮方式なんです。単純にモデルサイズを圧縮して量子化することができるので、NF4では使えなかったLoRAがそのまま使えたりするんですよ。すごいですよね!

GGUFの場合、量子化のレベルも好きなように選べるんです。例えば、8GBのVRAMとか12GBのVRAMとか16GBのVRAMとかに適した量子化モデルのGGUFを使い分けられるんです。つまり、皆さんのPCに合ったGGUFの量子化モデルを選んで、ストレージの容量を節約しつつ、高速な画像生成ができるんです。VRAMの計算量を減らして、15GB以下とか12GB以下のVRAMで画像生成できるようにもなるんですよ!

ただ、このGGUFモデルにも少し注意点があります。先ほど申し上げた通り、画像生成AIに適した量子化というわけではなくて、ただの単純な圧縮なんです。そのため、NF4に比べて精度の部分が落ちてしまうんです。でも、心配しないでください!結構高品質なものもあるので、そういったものを選んで画像生成すれば、割と問題なく綺麗な画像が生成できたりするんですよ。

ちなみに、GGUFの各モデルの違いや量子化のレベルについて、簡単に説明すると、こんな感じになります。

GGUFモデル

GGUFモデルには、量子化レベルの異なる様々な種類があるんです。量子化レベルが高いほど、ファイルサイズは小さくなりますが、精度は低下する傾向があります。

各モデルの違い

主なGGUFモデルの種類と特徴は以下の通りです。

  • Q8_0: 量子化レベルが低く、精度が高いんです。ただし、ファイルサイズはやや大きくなります。

  • Q4_K_M: 量子化レベルが高く、ファイルサイズが小さいんです。精度はQ8_0より低くなります。

  • Q3_K_S: さらに量子化レベルが高く、ファイルサイズが非常に小さいんです。ただし、精度はQ4_K_Mより低くなります。

基本的には、VRAMが16GBくらいある場合は、このQ8とかQ6を使えばいいんです。それ以外の12GBとか8GBくらいのVRAMの場合は、Q4とかQ3を使うのがおすすめですね。

ちなみに、8GBでできるかどうかはまだ詳しく調べていないんですけど、コミュニティでは4GBのVRAMからでも画像生成できるみたいな話が多いんです。すごいですよね!

そういった理由から、実は今GGUFのモデル(特にQ8の量子化モデル)が、生成AIを使っているユーザーに人気なんです!

基本的な精度としては、1位がFluxのFP16モデル、次にNF4、そしてGGUFモデルといった感じになるんですけど、LoRAを使ったり、最新技術をComfyUIから使用するといった観点では、このGGUFモデルが一番注目されているんです!

ただ、ユーザーの評価ではGGUFのQ8は結構優秀なんですよね。

別の例で、ClipモデルのQ8もあるんですけど、これも優秀なんですよね。

FP8だと少し画像が変わるのわかりますかね?

ちなみに、本家のFluxモデルとNF4、GGUFモデルの容量を比べるとこんな感じになります。結構違いますよね!

  • 本家:FP16 33.7 GB

  • 本家:FP8 17.1 GB

  • Q_8.gguf 12.7 GB

  • Q_4_K_M.gguf 6.8 GB

  • NF4 16.6 GB

精度、FP16 >> Q8 > Q4 は、詳しくはこちらのReddit投稿を見てみてくださいね!

https://www.reddit.com/r/StableDiffusion/comments/1fcuhsj/flux1_model_quants_levels_comparison_fp16_q8_0_q6/

それと、これまでの話に少し関連することなんですけども、こういった計算とかの関係で、LoRAをトレーニングする時のFluxモデルも変更した方が良いことがわかっています。

1つ挙げるとすると、こんな感じでFlux fp16のfp8版のLoRAトレーニング用のモデルが出ているので、こちらを使用してトレーニングをするのが良いかと思います。

GGUFの量子化モデルのラインナップに関しては、こちらこちらから見ることができるんです。よかったら確認してみてくださいね!

ちなみに、テキストエンコーダーやCLIPモデルの量子化モデルも存在するんですよ。例えば、Q8のGGUFモデルを使用する場合は、CLIPモデルもQ8で量子化されたものを使うと、もっと容量の削減になるんじゃないかと思います!

よかったら使ってみてくださいね。

こちらからダウンロードできますよ!

今回は使用しませんが、NF4(BNBとも呼ぶんです)を使いたい方はこちらこちらからダウンロードできますよ!

それと、一応本家のFluxモデルについても少しだけ解説しておくと、以下のようになるんです!

本家Fluxモデルは、FP16またはFP32の精度で学習されているんです。量子化モデルと比較して最も高い精度を持つと考えられるんですよ。ただし、ファイルサイズが大きく、メモリ消費量も多いため、動作させるには高性能なGPUが必要なんです。

なので、ここまでをまとめるとこんな感じになるかと思います。

まず、NVIDIA製とかに関係なく、16GBのVRAMを搭載したPCをお使いで、64GBとかのメモリがある方は、本家のFlux fp16モデル。

そして、少し本家のFlux fp16モデルで画像生成が遅いと感じる場合は、GGUFモデル。

最新技術とかは特に使わないけど、Stable Diffusion Web UI、Forgeで気軽にLoRAを使ったりして画像生成したいという方は、NF4(fp16とも呼ぶんです)を使うといった感じにすればよろしいかと思います。

ちなみに、それぞれのモデルの違いとか、CLIPモデルの違いに関してはこちらこちらから見れるので、よかったら確認してみてくださいね!

1つ目の方がGGUFのモデルと本家のFluxモデルとかとの違いで、2つ目の方がCLIPモデルの方の違いになるんです。

はい、それではいよいよGGUFモデルのダウンロードと画像生成に進んでいきましょう!わくわくしますね!

GGUFのモデル自体は、Hugging Faceなどのサイトからダウンロードすることができるんです。

それと、ミラー版でCivitaiというサイトでもモデルを見つけることができますよ!

こちらこちらからモデルを探せますので、ぜひチェックしてみてくださいね!


ComfyUIでGGUFを使う準備

今回はComfyUIでGGUFを使っていきますので、まずはGGUFをダウンロードしていきましょう!

えっと、基本的には皆さんのPCにあった、皆さんのPCのVRAMの容量にあったものを選べば良いのですが、私の場合は16GBなので、q8のGGUFモデルを使っていきます。

12GBのVRAMの方は、q4とかあたりを使うといいんじゃないかと思います。

それで、GGUFのモデルについてなんですけども、こんな感じで選択してダウンロードを行ったら、ComfyUI/models/unetなどというフォルダに、GGUFのモデルを移動させておいてくださいね!

ちなみに、私はこんな感じでStability Matrixを使っておりますので、DATA/models/unetという場所に保存いたします。

CLIPモデルのダウンロード

次はダウンロードしたCLIPモデルの方ですね!
それと、それに合わせてこちらから、FluxのテキストエンコーダーのGGUF量子化版も出ているので、一緒にこちらもダウンロードしていきます。

こちらにつきましても、まずダウンロードを行いたいCLIPモデルでダウンロードボタンを押していただいて、

ダウンロードを行いましたら、こんな感じでComfyUI/models/CLIPというフォルダに保存してくださいね!

最新版CLIPモデルのダウンロード

それと、あともう一つ用意するものがありますよ。

こちらのURLをクリックしていただいて、同じようにCLIPモデルをダウンロードしてください!

こちらに関しては、GGUFで使うことができる最新版のCLIPモデルになります。

さっきダウンロードしたCLIPと同じ感じで使っていくので、こちらに関してもComfyUI/models/CLIPフォルダに保存してくださいね。

なので、GGUFのFluxの画像生成に関しては、先ほどダウンロードしたGGUFのq8とかq6とかのモデルと2つのCLIPモデルを使って画像生成をしていくっていう感じになりますよ!

ちょっとここら辺大事なので、よく覚えておいてくださいね!

ちなみに、FluxのVAEに関してはこちらからダウンロードして、ComfyUI/models/vaeのところに配置してください!

はい、ということで、こんな感じでGGUFを使用する準備が整いました!わくわくしますね!

GGUFでFluxの画像生成を行う

さて、次はいよいよGGUFを使ってFluxで画像生成を行っていきます。今回はComfyUIを使って画像生成をしていきますよ!

ComfyUIを選んだ理由は、次回ご紹介する予定のLoRAを使わずに顔の一貫性を保つ画像生成技術でもGGUFを使うからなんです。なので、今のうちにComfyUIの使い方に慣れておくと良いかもしれませんね!

ComfyUIの起動

まずは、ComfyUIを起動しましょう。

「むむ、ComfyUIの起動方法がわからない…」という方もいらっしゃるかもしれませんね。そんな方は、こちらの記事で解説していますので、ぜひ参考にしてくださいね!


ワークフローの準備

さて、ComfyUIが起動できたら、次はワークフローを準備します。

今回は、次回の記事でも使うPuLIDという、LoRAを使わずに顔の一貫性を保持できる画像生成AIの技術のワークフローを少しだけご紹介しますね。

ただし、これはまだ調整中のものです。今回使うのは単純なGGUFとLoRAを使った画像生成の部分だけになりますので、PuLIDの詳しい設定方法などは次回の記事でお話しします。今は「こんな感じのワークフローになるんだな」くらいに頭に入れておいてもらえれば十分ですよ!

それでは、以下のリンクからワークフローをダウンロードしてくださいね。

ここから先は

2,790字 / 19画像 / 2ファイル

🎈葉加瀬のAI研究室 ~あいラボ~ 記事/動画/質問プラン

¥2,599 / 月
あと3人募集中
このメンバーシップの詳細

この記事が気に入ったらチップで応援してみませんか?