Flux Dev 簡単クッキング - Zuntan03/EasyForge GitHub Wiki
Flux Dev モデルに Flux Dev 用 の LoRA をマージしつつ、自分好みのモデルに調理するチュートリアルです。
画像生成時にさらに追加の Dev 用 LoRA を使えるようにします。
成人向けの作例は こちら です。
画像には生成情報が残してあり、Forge の PNG Info
などで確認できます。
![]() |
![]() |
![]() |
![]() |
![]() |
---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
チュートリアルではマージした 3 LoRA にキャラとシチュエーションで、計 5 種の LoRA を使って画像生成しています。
- Dev 用 LoRA との互換性を保ちつつ、8 ステップ高速生成な Hyper Flux を重み 1.0 でマージ
- 2024/8 時点で Civitai 一番人気アニメ LoRA の Flat Color Anime v3.3 を重み 0.5 でマージ
- 上記と相性のよかった NSFW LoRA の FLUXTASTIC v3 を重み 0.8 でマージ
- キャラ LoRA 3種比較、LoRA の相性順で レベッカ、ターニャ、めぐみん で画像生成
- シチュ LoRA 3 種比較、LoRA の相性順で Flashing Tits v6、OnOff for Flux v2.5、Pussy Spread で画像生成
モデルに LoRA をマージすると LoRA の適用時に発生しうる Patching LoRAs
の時間 をゼロにできます。
複数 LoRA 使用時の生成時間の増加も、モデルにマージした LoRA の分だけ低減できます。
デメリットとしては画像生成時にマージした LoRA の組み合わせや強度を変更できません。
ですので自分好みのモデルの方向性が定まっていると、特に有用です。
LoRA の学習は取り扱いませんが、マージする LoRA を自分で作成する こともできます(要 VRAM 12GB)。
好みの LoRA が他の LoRA との相性が悪い時に、LoRA で生成した画像で LoRA を作成する手もありそうです。
[ 注意 ] モデルへの LoRA マージには 64GB のメインメモリが必要です。
-
flux1-dev-hyper8
(かflux1-dev
)にマージする LoRA を選んで、画像生成で LoRA の重みを決めます。- LoRA の重みを低めに抑えると、最終的なモデルで他の LoRA を追加しやすくなります。
-
flux_tool/ModelMergeLora.bat
を実行して、モデルや LoRA をドラッグ&ドロップでマージします。- ファイル名末尾が
-sds
(sd-scripts),-ait
(ai-toolkit) の2つのモデルが出力され、どちらかが当たりです。
- ファイル名末尾が
- マージしたモデルで画像を正常に生成できたら、
GGUF
のQ8_0
やQ6_K
やQ4_K_S
に圧縮します。-
flux_tool/ConvertGguf.bat
を実行して、モデルをドラッグ&ドロップで圧縮します。 fp8
やnf4
では画像生成時に追加の LoRA が効きにくくなります。
-
- 圧縮済みのモデルで様々なプロンプトや追加 LoRA で画像を生成して、動作に問題がないことを確認します。
チュートリアルで作成したモデル『FluxDev8AnimeNsfw』です。
Dev 用 LoRA の効果がとても下がってしまう fp8
や nf4
は用意していません。
download/Flux-Recommended.bat
を実行すると、FluxDev8AnimeNsfw-Q8_0
をダウンロードします。
-
FluxDev8AnimeNsfw-Q8_0
(12GB+) -
FluxDev8AnimeNsfw-Q6_K
(9GB+) -
FluxDev8AnimeNsfw-Q4_K_S
(6GB+)
NSFW 抜きモデル
8step 生成とアニメ調に対応した FluxDev8Anime です。
NSFW LoRA が混ざっていない分、画像生成時に他の LoRA を扱いやすくなってます。
-
FluxDev8Anime-Q8_0
(12GB+) -
FluxDev8Anime-Q6_K
(9GB+) -
FluxDev8Anime-Q4_K_S
(6GB+)
- [ 重要 ] Forge の画面上部の設定
-
VAE / Text Encoder
にt5xxl_fp16.safetensors
,ae.safetensors
,clip_l.safetensors
を設定します。 公式解説-
*.safetensors
はdownload/Flux-Minimum.bat
でダウンロードします。
-
-
Diffusion in Low Bits
にAutomatic (fp16 LoRA)
を設定します。 公式解説 -
GPU Weights (MB)
に(VRAM サイズ - 3GB) * 1024
を設定します。 公式解説- Geforce RTX 3060 12GB なら
12 - 3
から9 * 1024
で9216
を設定します。 - もし
OutOfMemoryError
が発生したら、エラーが出なくなるまで512~1024MB
ずつ下げます。
- Geforce RTX 3060 12GB なら
-
Checkpoint
にFluxDev8AnimeNsfw-Q8_0
を指定します。-
[]
カッコ内のfca_style anime
がアニメ調のキーワードですので、プロンプトの最初に入力します。 -
Q8_0
より軽量なQ6_K
やQ4_K_S
がありますが、画像生成時に追加する LoRA の効果が悪くなります。
-
-
- Forge の
Generation
の設定-
Sampling steps
に8
を忘れず設定します。- 画像生成時に追加する LoRA との相性で、
10
や12
に上げることもあります。
- 画像生成時に追加する LoRA との相性で、
-
Sampling method
にEuler
、Schedule type
にSimple
を設定します。- 複数 LoRA との相性がある都合上、オーソドックスな設定が無難です。
-
Width
に896
、Height
に1152
など、896~1280
程度の解像度を設定します。- Flux Dev は FullHD を直接生成できますが、LoRA が高解像度との相性が悪い場合があります。
- 普通の解像度で生成できることを確認したうえで、高解像度にチャレンジしてください。
-
Distilled CFG Scale
に3.5
、CFG Scale
に1
を設定します。-
Sampling steps
を上げた場合に、Distilled CFG Scale
を2
あたりまで下げる場合があります。 - 複数 LoRA との相性がある都合上、オーソドックスな設定が無難です。
-
-
- プロンプトの設定
-
プロンプトの最初に
fca_style anime,
を含めてください。
-
プロンプトにはなるべく写真関連の単語を含めないようにしてください。
-
realistic
,photo
,camera
,selfie
などで、写実的な表現に引き寄せられます。
-
-
LoRA 用のキーワードなどで同じモノを指す言葉が複数ある場合は、より詳細なひとつのみを残してください。
- 要素を引き出すために
hat
とcap
の両方を定義すると、画像のその部分が崩れがちです。
- 要素を引き出すために
- 各種サンプル画像を Forge の
PNG Info
で読み込んで、プロンプトを参考にしてください。
-
プロンプトの最初に
モデルへの LoRA マージは、どのモデルに・どの LoRA を・どんな強度でマージするかの 3点からなります。
マージ対象のモデルは LoRA が大量にリリースされている Flux Dev を選択します。
手順と時間の節約のため、オリジナルの flux1-dev.safetensors
(23GB, 20step) ではなく flux1-dev-hyper8.safetensors
(23GB, 8step) で進めますが、オリジナルに読み替えても問題はありません。
マージする LoRA はいつも使う・できの良い LoRA をマージします。
キャラやシチュエーションの LoRA は画像生成時に変更するため、マージせずに普通に利用します。
まずはアニメ画風の LoRA をマージしてみます。
できの良い LoRA を自分で調べるのは大変ですので、Civitai の週間や月間ランキングの上位から選択するのが楽です。
今回はflux1-dev-hyper8.safetensors
に『Flat Color Anime v3.3』をマージします。
-
download/Stable-diffusion/FluxD-Base/flux1-dev-hyper8.bat
を実行して、モデルをダウンロードします。 - LoRA 強度の調査用として
flux1-dev-hyper8-Q8_0.bat
(高精度)もダウンロードします。-
download/Flux-Minimum.bat
ですでにダウンロード済みであれば、実行してもスキップされます。
-
- Forge の
Civitai Helper
タブでDownload Model
のCivitai URL
に Flat Color Anime v3.3 の URLhttps://civitai.com/models/180891?modelVersionId=776656
を入力してGet Model Info by Civitai Url
します。 -
Sub-folder
で保存先のサブフォルダを指定して、Download Model
します。
X/Y/Z plot
で LoRA の最適な強度を探ります。
基本的な設定(必要がなければデフォルト値を採用します)
-
Checkpoint
:flux1-dev-hyper8-Q8_0
-
VAE / Text Encoder
:t5xxl_fp16
,ae
,clip_l
-
Diffusion in Low Bits
:Automatic (fp16 LoRA)
まずは LoRA 配布元のサンプルプロンプトを元にして、X/Y/Z plot
します。
-
Y type
をPrompt S/R
にして、Y values
で:1>,:0.8>,:0.6>,:0>
などとして LoRA の強度による変化を比べます。- LoRA が実際に効いているかどうかの確認のために、最初は強度 0 を含めたほうが安全です。
-
0.6
近辺が良さそうなら:0.7>,:0.6>,:0.5>
とさらに細かく調べます。 - LoRA 定義が複数ある場合は
<lora:AAA:1.0>
と<lora:BBB:1>
と数値の表記を使い分けることで、別々にプロットできます。
-
X type
に-1,-1,-1
とすると、3枚のシード値違いを生成できます。 -
X type
に"プロンプトA","プロンプトB"
とすることで、複数のサンプルプロンプトを切り替えられます。- プロンプトにダブルクォーテーションが含まれている場合は、シングルクォーテーションに置き換えます。
サンプル以外のプロンプトなども試して、最適と思える LoRA の重みを決定します。
なるべく低い重みにすると、オリジナルの Flux Dev と近くなり、他の LoRA が効きやすくなります。
今回はキーワードの fca_style
に anime
も加えることで、LoRA の重みを 0.5
まで抑えています(selfie
などの写真系単語への耐性も付くようです)。
ただし、anime
キーワードを加えることで Flat Color Anime LoRA 特有のアニメ表現が薄れてしまう点にはご注意ください。
- LoRA の重みを決めたら
flux_tool/ModelMergeLora.bat
を実行してモデルに LoRA を混ぜます。 - マージの準備が整ったら
Flux モデル (*.safetensors) をドラッグアンドドロップして Enter してください。
とコンソールに表示されますので、モデルをドラッグ&ドロップして、コンソールで Enter します。 - 同様に
Flux LoRA (*.safetensors) をドラッグアンドドロップして Enter してください。
と表示されますので、LoRA をドラッグ&ドロップして Enter します。 -
Flux LoRA の強度を数値で入力してください(デフォルト: 1.0 )。
と表示されますので、LoRA の重みを入力して Enter します。
-
[モデル名]+[LoRA名]x[重み]-(sds|ait).safetensors
のふたつのモデルが元デルの場所に生成されます。- ファイル名の末尾が
-sds
なら sd-scripts で作成した LoRA としてマージされています。
同じく-ait
なら ai-toolkit で作成した LoRA としてマージされています。
- ファイル名の末尾が
- プロンプトから LoRA 呼び出しを削除して、
-sds
と-ait
の両方のモデルで画像を生成し、正しくマージされているモデルを選びます。
モデルへの LoRA マージが完了したら、モデル品質と生成速度のコスパに優れた GGUF に圧縮します。
-
flux_tool/ConvertGguf.bat
を実行してFlux モデル (*.safetensors) をドラッグアンドドロップして Enter してください。
と表示されたら元モデルをドラッグ&ドロップして Enter です。
- 元モデルの場所に
Q8_0
とQ6_K
とQ4_K_S
が保存されます。- 他の量子化レベルを追加したい場合は、
flux_tool/env/ConvertGgufFormat.txt
を編集します。
- 他の量子化レベルを追加したい場合は、
LoRA の強度さえ決まればマージは単なる作業なのですが、LoRA の数が増えると互いの相性や強度が影響しあい、LoRA や強度を決めるのが難しくなります。
何を守って何を諦めるかは好みの問題ですので、X/Y/Z plot
で地道に調べます。
LoRA の重みが相互に影響するため、マージするふたつの LoRA の重みを同時に調査します。
画像生成時に使いたい LoRA も、プロット用のプロンプトに含めます。
LoRA の相性もありますが、すべての LoRA の重み合計が一線を超えると、絵が崩れだします。
-
Y type
やZ type
のPrompt S/R
で"<lora:AAA:1.0> AAA keyword","<lora:BBB:1.0> BBB keyword"
とすると、複数の LoRA を切り替えられます。 - ふたつの LoRA の重みをそれぞれプロットする場合は、プロンプトを
<lora:AAA:1> AAA keyword, <lora:BBB:1.0> BBB keyword
として、Y type
のPrompt S/R
で:1>,:0.8>,:0.6>
、Z type
で:1.0>,:0.7>,:0.4>
のようにすることで別々の重みをプロットできます。
ふたつの LoRA の重みを仮決めできたら、自身が求める範囲の X/Y/Z plot
で動作に問題が無いことを確認します。
NSFW の動作確認プロット例 | SFW の動作確認プロット例 |
---|---|
![]() |
![]() |
動作確認が済んだ LoRA の重みでマージを 2回して、GGUF に圧縮します。
GGUF の Q8_0
を設定し、プロンプトから LoRA 定義を取り除いて、再び自身が求める範囲の X/Y/Z plot
で問題が無いことを確認できれば完了です。
大量に配布されている Flux Dev の LoRA をちゃんと使おうとすると、Schnell やそのマージモデルおよび fp8
や nf4
の高速低精度を使うのは難しい印象です。
GGUF の高精度で Flux Dev のオリジナルからなるべく離れないようにすることで、より快適に Flux Dev 用 LoRA を利用することができるのではないでしょうか。