見出し画像

画像生成AIモデル「FLUX.1」のローカル及びオンラインでの利用

 こんにちは、Browncatです。
 前回、Black Forest Labsの画像生成AIモデル「FLUX.1」の使用経験ということで、他の画像生成プラットフォームとの比較結果を掲載いたしました。またFLUX.1のローカルでの運用も掲載いたしましたが、その後の記事の改訂や、XのGrokによるFLUX.1ベースの画像生成対応という状況もあったため、FLUX.1のローカルとオンラインでの利用について別途この記事を立てました。
【前回記事】


FLUX.1のローカルでの利用

 前の記事の通り、FLUX.1のうちdevとschnellはオープン化されていて、推論・生成をローカルで利用できる環境が提供されています。
 ComfyUIを用いたFLUX.1ローカル運用方法は、以下のMakiさんのブログを参考にさせていただきました。Makiさん、ありがとうございました。

 ComfyUIのワークフローは以下のページからダウンロードします。

 ただし前述の通り、FLUX.1のモデル「flux1-dev.safetensors」のサイズが24GB近くに及ぶため、グラフィックボードのVRAMが24GB未満(例えば12GB)の場合、フルスペックで運用しようとするとメモリ不足で実質的に動きません。
 そこで、以下のいずれかの方法で、推論処理をFP16(16ビット浮動小数点)でなくFP8(8ビット浮動小数点)の精度で行うようにします。

FP8版のモデルの利用

 以下のHugging Faceページからモデル「flux1-dev-fp8.safetensors(またはflux1-schnell-fp8.safetensors)」をダウンロードし、ComfyUIのモデルに指定します。
 FP8版モデルのサイズは11.9MBで、ダウンロードにかかる時間が元のモデルより少なくて済みます。

ComfyUI 「Load Diffusion Model」ノードの weight_dtype を FP8に設定

 ComfyUI 「Load Diffusion Model」ノードには、 weight_dtypeを選ぶオプションがあり、これをFP8にします。

 FP8には、「E4M3FN」と「E5M2」があり、それぞれデータ形式が以下ののようになっています。

  • E4M3FN:符号1ビット、指数4ビット、仮数3ビット、無限大値(FN)なし

  • E5M2:符号1ビット、指数5ビット、仮数2ビット

 仮数部のビット数は数値の精度に、指数部のビット数は数値のダイナミックレンジに効いてきます。すなわち、精度重視ならE4M3FN、ダイナミックレンジ重視ならE5M2を選びます。
 ちなみにFP8版モデルはE4M3FNです。

Stable Diffusion Forgeの利用

 以上、ComfyUIで利用する方法を紹介しましたが、8月11日、Stable Diffusion ForgeがFLUX.1の生成に対応するメジャーアップデートを行いました。
 Forgeで推奨されるFLUX.1モデルは、新たなデータ型「NF4」で4ビットに量子化された「flux1-dev-bnb-nf4」です。このモデルは、以下のリンク先からダウンロードできます。

FLUX.1のオンラインでの利用

 以上のように、FLUX.1はローカルでも利用可能ではありますが、モデルのサイズが大きく、FP8やNF4を使うにしても、現実的に対応可能なGPUは最近の上位機種に限られるうえ、SD1.5やSDXLに比べると生成に時間がどうしてもかかります。
 またローカル環境では、オープン化されているdev版やschnell版は生成できますが、pro版は生成できません。
 それに対して、FLUX.1の画像ををオンラインで生成する方法は、有償にはなりますが、操作者はGPUを気にすることなく、比較的早く生成画像を得られます。
 いまのところ、FLUX.1の画像をオンラインで生成する方法は、以下の2種類があります。

生成AIモデルホスティングサービスの利用

 Black Forest LabsはFLUX.1のリリース当初から、生成AIモデルホスティングサービス「Replicate」「fal.ai」とパートナーを組み、pro版含むFLUX.1の画像生成サービスを提供しています。

【Replicate】

【fal.ai】

 fal.aiの例では、Stable Diffusion WebUIに似たユーザインタフェースで、プロンプト・画像サイズ・ステップ数・シード値等の生成条件を入力し、実行ボタンを押すと画像を生成できます。またAPIを利用してpythonなどのコードから画像を生成することも可能です。
 価格ですが、fal.aiではFLUX.1[pro]は1回生成当たり0.05USD(米国ドル)、FLUX.1[dev]は0.025USDになっています。
 ちなみにStability AI Developer Platformでは、Stable Image Ultraが0.08USD(8クレジット)、Stable Diffusion 3 Largeが0.065USD(6.5クレジット) で、品質・コストのバランスはFLUX.1[dev]が最も優れているように思います。

Xの「Grok」の利用

 8月13日、xAI(X Corp.の生成AI開発部門)は、大規模言語モデル(LLM)の新バージョン「Grok-2」「Grok-2 mini」のベータ版をリリースしましたが、同時に、Black Forest Labsと協力してFLUX.1モデルを使用した画像生成への対応のテストも開始しました。以下のxAIの公式リリース記事にFLUX.1対応が明記されています。

 Xのプレミアム以上の会員は誰でも簡単に、GrokによるFLUX.1の画像生成を試すことができます。
 以下はGrokによる画像生成の状況です。プロンプトは前の記事と共通にしました。なお、記事執筆時点では、画像の縦横比は横長(1024 x 768ピクセル)のみ対応しています。またGrokではプロンプトを日本語で書くことも可能になっています。

FLUX,1(Grok)::黒いドレスを着た女性

まとめ

 FLUX.1のローカルおよびオンラインでの利用方法について述べました。
 ローカル運用では特に、VRAMが少ない場合の対処法についても述べました。
 オンラインでの利用方法については、生成AIモデルホスティングサービスの利用について、「fal.ai」の事例に言及しました。また別の方法として、XのLLM「Grok」を利用する方法にも言及しました。
  以上、記事を最後までお読みくださりありがとうございました。



この記事が気に入ったらサポートをしてみませんか?