【ComfyUI】Flux.1 [dev]の詳しい使い方 GGUFを使った軽量化も紹介
これまでにFlux.1 [schnell]の記事を紹介てきましたが、今回はFlux.1 [dev]について解説します。Flux.1 [dev]はFlux.1 [schnell]と比べると生成時間や必要スペックは大きくなりますが高品質なイラストを生成する事ができます。また、Flux.1[schnell]と違いライセンスが非商用ライセンスで開発者やAI研究者向けに設計されたモデルです。生成された出力は、個人、科学、商用目的で使用できますが有料サービスやモデルの販売は禁止されています。ライセンスについて詳しくは🔗Black Forlest Labs公式のライセンスを確認してください。
Flux.1 [dev]の特徴
Flux.1 [dev]は120億パラメーターのガイダンス蒸留モデルのためFlux.1 [schnell]の潜在敵対的拡散蒸留モデル(latent adversarial diffusion distillation)より自由度が高くControlNet等も使う事ができます。
FLUX.1 [dev]のインストール方法
FLUX.1 [dev]を使用する前に、ComfyUIが古いと使えない標準ノードがありますので、最新版にアップデートしましょう。
モデルのダウンロード
FLUX.1 [dev]をインストールするにはベースモデル、テキストエンコーダーなどをインストールする必要があります。順を追ってみていきましょう。以前にFLUX.1 [schnell]のモデルをダウンロードして使用していた場合はベースモデルのみダウンロードしましょう。
- ベースモデルのダウンロード:black-forest-labsのHuggingFaceよりベースモデルの
flux1-dev.safetensors
をComfyUI/models/unet
ディレクトリにダウンロードします。 - VAEのダウンロード:コチラも公式のHuggingFaceより
ae.safetensors
をComfyUI/models/vae
ディレクトリにダウンロードします。 - テキストエンコーダーのダウンロード:ComfyUIのHuggingFaceよりflux用のテキストエンコーダーの
clip_l.safetensors
とt5xxl_fp16.safetensors
またはt5xxl_fp8_e4m3fn.safetensors
をComfyUI/models/clip
にダウンロードします。
FLUX.1 [dev]のComfyUI公式ワークフローの解説
ComfyUI公式ドキュメントにあるFlux Devの節にあるケーキを持った狐娘の画像をダウンロードして、ComfyUIにドラッグ アンド ドロップするか、WorkflowにあるOpenボタンより読み込みましょう。モデルが正しいフォルダーに置かれていれば「Queue」ボタンでダウンロードした画像と同じ画像が生成されます。初回の生成はデータをメモリに読み込む為、かなりの時間が掛かります。では、ここからは各ノードについて解説します。
Load Diffusion Modelモデルを読み込むノード。通常のLoadCheckpointModelでは読み込めないので注意しましょう。unet_nameはflux1-dev.safetensors
、weight_dtypeはdefault
(FP16)を使います。ただし生成時間がかかるのでfp8_e4m3fn
を使うのも良いでしょう。
テキストエンコーダーモデルを読み込みます。clip_nameにt5xxl_fp16.safetensors
とclip_l.safetensors
を選択しましょう。(PCメモリ不足の場合はfp16の代わりにt5xxl_fp8_e4m3fn.safetensors
を使います。)typeはflux
を使います。
VAEを読み込みます。vae_nameにはae.safetensors
を選択します。
FluxはSD3と同様SamplerCustomAdvancedに対応する為にBasicGuiderを使います。
FluxGuidanceFlux用のガイダンス(CFG)を設定します。デフォルトの3.5
で使用しましょう。
Fluxではネガティブプロンプトを使わないのでポジティブプロンプトのみを使用します。
EmptySD3LatentImageStable Diffusion3用に空のラテントイメージを作っていますが、通常の「Empty Latent Image」でも生成結果は同じになります。widthとheightは後ほど説明する「ModelSamplingFlux」と共有させるために外部化されています。
RandomNoise生成用のシードを指定します。サンプル画像と同じ結果を希望の場合はnoise_seedを219670278747233
にして、control_after_genetateをfixed
に設定しましょう。
サンプラーを選択します。基本的にはeuler
で問題ありません。
サンプリングのスケジュールを設定します。schedulerはsimple
でstepsを20
にしています。denoiseは元画像がないので1.00
のまま使用します。
Stable Diffusion 3で使われているタイムステップスケジューリングシフトのFlux版になります。max_shiftはシフトの最大値の設定です。base_shiftはシフトの基本値を入力しましょう。width / heightは生成画像サイズにします。この例ではデフォルトの値を使います。
SamplerCustomAdvanced次世代モデル向けサンプラーノード。パラメーターが外部化したことによりより細かな調整が可能となっています。
公式ワークフローをカスタムしてみる
ここでは公式ワークフローを実用的にカスタムしていこうと思います。組み込みたい項目は下記のようになります。
- 生成時間が長いのでGGUFの導入
- 複数のLoRAを導入
- Image chooserカスタムノード:1st Passの結果を確認する為に実装。これにより生成時間が短い1st Passを満足のいく生成が出るまで簡単に再実行できます。
- 2nd Passの導入でアップスケール
GGUFの導入
まずはGGUFを導入しましょう。下記のリンクよりcity96氏の公開しているFlux.1 [dev]のGGUFモデルの8-bit版をダウンロードしましょう。ダウンロード先はComfyUI\models\unet
になります。
前回の記事にてGGUF版のT5-xxlテキストエンコーダーを導入している方は必要ありませんが、導入していない方は下記のリンクよりダウンロードしましょう。ダウンロード先はComfyUI\models\clip
になります。
モデルをダウンロードできたら、次にカスタムノードの「ComfyUI-GGUF」が必要になるので、「Custom Nodes Manager」を使ってComfyUI-GGUF
を検索してインストールしましょう。
それでは、ノードを組み込んでいきましょう。「Load Diffusion Model」ノードを先ほどインストールしたComfyUI-GGUFから「Unet Loader (GGUF)」に差し替えましょう。unet_nameにはflux1-dev-Q8_0.gguf
を選択します。
次に「DualCLIPLoader」を「DualCLIPLoader (GGUF)」に差し替えます。順番は決まっていませんがclip_name1にclip_l.safetensors
、clip_name2に先ほどダウンロードしたt5-v1_1-xxl-encoder-Q8_0.gguf
を選択します。
- Unet Loader (GGUF):bootleg > Unet Loader (GGUF)
- DualCLIPLoader (GGUF):bootleg > DualCLIPLoader (GGUF)
LoRAの導入
今回は2つのLoRAを組み込みたいと思います。下記のLoRAをダウンロードします。ダウンロード先は通常のComfyUI\models\loras
になります。(複数のLoRAを使う場合、カスタムノードのrgthreeにあるPower Lora Loader等を使うと便利ですが、DCAIのワークフローでは、できるだけシンプルにしたいので、カスタムノードの使用は最小限にしています。)
Flux.1でLoRAを導入するのはそれ程難しくはなく先ほど差し替えた「Unet Loader (GGUF)」と接続先の「ModelSamplingFlux」の間に「LoraLoaderModelOnly」を入れるだけです。今回は2つ使いたいのでノードを2つ繋げます。
LoRAの読み込む順番もとくにはありませんが、1番目の「LoraLoaderModelOnly」ノードからlora_nameをaidmaImageUprader-FLUX-v0.3.safetensors
を選択して、strength_modelを0.25
にします。続いて2番目のノードのlora_nameをsifw-annihilation-fluxd-lora-v013-Beta-000015.safetensors
を選択して、strength_modelを0.85
にしましょう。
今回使用するLoRAにはそれぞれトリガーワードがあるので「CLIP Text Encode (Positive Prompt)」の最後に下記のプロンプトを追加します。※トリガーワードを入れなくても使うことはできます。
aidmaimageupgrader, sifwastyle, anime
- LoraLoaderModelOnly:loaders > LoraLoaderModelOnly
Image chooserのインストール
DCAIのワークフローではお馴染の「Image chooser」を使います。インストールされたいない方は「Custom Nodes Manager」を使ってImage chooser
を検索してインストールしましょう。詳しくインストール方法を知りたい方は下記の記事にて解説しています。
インストールが完了したらサンプル後の「VAE Decode」の後に「Preview Chooser」を繋ぎます。「Save Image」ノードは最後に使うのでとりあえず邪魔にならないところに移動しておきましょう。
- Preview Chooser:image_chooser > Preview Chooser
2nd Passの導入でアップスケール
ここからは少し複雑ですが、まずはアップスケールのノードを組み込みましょう。「Load Upscale Model」と「Upscale Image (using Model)」を配置してUPSCALE_MODELをupscale_modelに繋ぎます。「Load Upscale Model」のmodel_nameを4x-UltraSharp.pth
を選択します。
続いて「Scale Image to Total Pixels」を配置して「Upscale Image (using Model)」のIMAGEをimageに繋ぎます。upscale_methodをlanczos
に、megapixelsを3.00
に設定します。
「Scale Image to Total Pixels」を「VAE Encode」に繋いで2nd Pass用にラテントイメージにエンコードします。
次に2nd Passのサンプラーを組み込みます。1st Passの「BasicGuider」「FluxGuidance」「ModelSamplingFlux」「CLIP Text Encode (Positive Prompt)」「BasicScheduler」「SamplerCustomAdvanced」をCtrl + c
でコピーしてCtrl + Shift + v
でインプットを保ったままペーストします。ペーストしたら好みの場所に配置しましょう。
つづいてコピーした「CLIP Text Encode (Positive Prompt)」の内容を下記の様に書き換えます。
very detailed, masterpiece, intricate details, UHD, 8K
「BasicScheduler」のdenoiseを0.35
に変更しましょう。そして「ModelSamplingFlux」のmax_shiftを0.25
、base_shiftを0.00
に変更します。
1st Passの「VAE Decode」を先ほどと同じCtrl + Shift + v
使った方法でコピーして2nd Passの「SamplerCustomAdvanced」のdenoised_outputと繋ぎます。
最後にImage chooserのインストールで避けていた「Save Image」を繋げばカスタム完了です。
「Queue」ボタンで生成をしてみましょう。1st Passの結果が出たら画像を選択して次に進めます。しばらくすれば最終結果が生成されるでしょう。
- Load Upscale Model:loaders > Load Upscale Model
- Upscale Image (using Model):image > upscaling > Upscale Image (using Model)
- Scale Image to Total Pixels:image > upscaling > Scale Image to Total Pixels
- VAE Encode:latent > VAE Encode
最終結果
ワークフローはPatreonで公開していますが、有料サポーター様のみ閲覧・ダウンロードが可能となっています。1か月だけでも有料サポーターになっていただければ執筆の励みになりますので、よろしければ入会をお願い致します。
また、ワークフローがダウンロード出来なくでもここまでの解説を見ればご自身でも構成できるので、無理にダウンロードする必要はありません。
おまけ
おまけとして先ほどカスタムしたワークフローを使って今回の記事のアイキャッチのイラストを生成してみましょう。
LoRAの変更
始めに「LoraLoaderModelOnly」をもう1つ「Unet Loader (GGUF)」の後に追加します。追加したら下記の2つのLoRAをダウンロードしましょう。
ダウンロードが完了したらLoRAの設定を下記のように変更します。(順番はとくに重要ではありません。)
- Flux.1_Turbo_Detailer.safetensors:0.70
- aidmaFLUXpro1.1-FLUX-V0.2.safetensors:0.75
- sifw-annihilation-fluxd-lora-v013-Beta-000015.safetensors:0.90
パラメーターの変更
-
プロンプトを下記のプロンプトに書き換えます。
A masterful highly intricate detailed cinematic photo. (In the European medieval fantasy era:1.4), medium close shot of a very cute anime high wizard girl with light-pink-haired and blue-eyes is looking at viewer. She wears a white and dark-blue magic robe. A vibrant diverse people. A wide variety of people faces. The marketplace is offering a wide variety of fruits, vegetables, meats, breads, cheese, spices, flowers, and daily commodities. In the shoppers are adventurers with various armor, swords, magic sticks, and other equipment, as well as residents. In the background is a magnificent castle, and behind the castle is a mountain. The weather is blue with a summer-like sky and birds are flying. A hyper realistic, very detailed, masterpiece, intricate details, 50mm lens shot, soft edge line for girl's face, correct perspective, upper-body
- widthとheightの値を変更します。widthを
1280
に、heightを720
に変更しましょう。 - 「RandomNoise」のnoise_seedを
303013184412751
に変更します。 - 1st Passと2nd Pass用の「BasicScheduler」のschedulerを
beta
に変更します。 - 1st Pass用の「ModelSamplingFlux」のmax_shiftを
1.50
に、base_shiftを0.25
に変更します。 - 2nd Pass用の「FluxGuidance」のguidanceを
2.0
に変更しましょう。 - 最後に2nd Pass用の「BasicScheduler」のstepsを
30
に上げれば完了です。
「Queue」ボタンで生成をしてみましょう。1st Passの結果が出たら画像を選択して次に進めます。しばらくすれば最終結果が生成されるでしょう。
最終結果
このワークフローもPatreonで公開していますが、有料サポーター様のみ閲覧・ダウンロードが可能となっています。
まとめ
いかがでしたか?Flux.1 [schnell]と比べるとFlux.1 [dev]は生成にかなりの時間が掛かっています。GGUFやFP8版を使ってVRAMの消費を抑えればそれなりに使えることが伝われば幸いです。また、生成の品質はFlux.1 [schnell]と比べるとFlux.1 [dev]の方が良く思えますが、場合によっては低品質の結果が出るときもあります。とくにイラスト関係は実写と比べると品質はそれ程変わらない印象でした。AI生成が苦手としている手の生成も今回のワークフローでは失敗が多い印象です。しかし、Flux.1 [dev]ではControlNetやネガティブプロンプトも使えるので、またの機会にDCAIでも紹介したいと思います。
【最新第13世代 Core i9 HX & RTX 4090搭載・ウルトラハイエンド】MSIゲーミングノートPC RaiderGE78HX i9HX RTX4090/17型 WQXGA/240Hz/32GB/2TB/Windows11/Raider-GE78HX-13VI-2803JP
¥368,800
ASIN:B0BVBM5T8F
【最新第13世代 Core i9 HX & RTX 4080搭載・ウルトラハイエンド】MSIゲーミングノートPC RaiderGE78HX i9HX RTX4080/17型 WQXGA/240Hz/32GB/1TB/Windows11/Raider-GE78HX-13VH-1103JP
¥579,800
ASIN:B0BVBCNBLN
【整備済み品】ゲーミングPC デスクトップ パソコン ドスパラ GALLERIA Core i7-8700 - Geforce GTX 1080 8G - 16GBメモリ - SSD 1.0TB - Windows 11 - THIRDWAVE ゲームPC VR
¥81,510
値引き¥4,290 (5%)
ASIN:B0DJ29797H
【第13世代Core i9 HX & RTX 4080搭載・ウルトラハイスペック】MSIゲーミングノートPC Vector16HX 32GB/1TB/Core i9-13980HX RTX4080/16型 WQXGA/240Hz/Windows 11/Vector-16-HX-A13VHG-1003JP
¥379,800
ASIN:B0CTKC6JYH
mouse 【 RTX4070 SUPER 搭載 / 3年保証】 ゲーミングPC デスクトップ G-Tune DG (Ryzen 7 5700X RTX4070 SUPER 32GBメモリ 1TB SSD Windows 11 ゲーム 動画編集) DGA7G7SB3SJW103AZ
¥212,330
値引き¥37,470 (15%)
ASIN:B0CYGPQJBX
MSI Trident X2 14NUF7-293JP ゲーミングデスクトップPC Windows 11 Pro/インテル Core™ i7-14700KF/NVIDIA GeForce RTX 4070 Ti / DDR5 32GB/SSD 1TB/メーカー2年保証
¥398,000
値引き¥100,400 (20%)
ASIN:B0CSSS66NH
【14インチ小型・軽量1.6kg】【第13世代Core i7 & RTX 4060搭載・スケルトンデザイン】MSIゲーミングノートPC Cyborg14 Corei7 RTX4060/14インチ WUXGA/144Hz/32GB/1TB/Windows 11/Cyborg-14-A13VF-6003JP
¥199,800
ASIN:B0CTS2PCX1
【Amazon.co.jp限定】 ASUS ゲーミングノートPC TUF Gaming A15 FA507NVR 15.6型 RTX 4060 Ryzen 7 7435HS メモリ16GB SSD1TB リフレッシュレート144Hz RGB イルミネートキーボード Windows 11 動画編集 Xbox Game Pass 3ヶ月利用権付き FA507NVR-R74R4060T
¥149,800
値引き¥40,000 (21%)
ASIN:B0CWVCYZC5
【NEWLEAGUE】ゲーミングパソコン Ryzen 7 5700X / RTX4070 / メモリ32GB / NVMe SSD 1TB / Windows11Pro / WPS Office ミドルタワー デスクトップパソコン NGR75X-RTX47650 (RTX4070 GDDR6X 12GB, G6ホワイト)
¥203,830
値引き¥35,970 (15%)
ASIN:B0D41HWK5D
mouse 【 RTX4070 SUPER 搭載 / 3年保証】 ゲーミングPC デスクトップ G-Tune DG (Core i7 14700F RTX4070 SUPER 32GBメモリ 1TB SSD Windows 11 水冷CPUクーラー ゲーム 動画編集) DGI7G7SB3SJW103AZ
¥254,830
値引き¥51,570 (17%)
ASIN:B0CSSNGZ21