「LoRA Block Weightを使ってみたいけど、使い方が分からない」といった疑問を持っている方も多いのではないでしょうか。
こういった疑問にお答えするため、この記事ではLoRA Block Weightの導入方法や使い方を解説していきます。
実際にLoRA Block Weightを使った結果も紹介しているので、読んで参考にしてください。
※Stable Diffusionの立ち上げ方・使い方については、以下の記事で詳しく解説しています。
拡張機能「LoRA Block Weight」とは?
「LoRA Block Weight」とは、LoRAの階層を調査できる拡張機能です。応用させれば、LoRAの重みを調整して、顔や服など一部分のみに反映させられます。
LoRAは17階層に位分かれており、それぞれの階層が顔や服、背景などに反映される仕組みです。
例えば「Yae Miko | Realistic Genshin LORA」を調査すると、以下のようなプリセットが表示されます。
NONE:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
ALL:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
INS:1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0
IND:1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0
INALL:1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
MIDD:1,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0
OUTD:1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0
OUTS:1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1
OUTALL:1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1
ALL0.5:0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5
上記10項目のプリセットがLoRAの階層で、0や1といった数字が適用されているかを表しています。
しかしどの階層がどこに影響しているかは分かりません。「LoRA Block Weight」を使って画像を生成すれば、以下のような画像が生成されます。
見比べると、それぞれの画像に違いがあるのが分かりますね。
このように「LoRA Block Weight」を使えば、どの項目がどこに反映されているかが、画像で比較できるわけです。
拡張機能「LoRA Block Weight」の導入方法
以下の手順で、「LoRA Block Weight」をStable Diffusionに導入します。
- Stable Diffusionを立ち上げる
- 「Extension」→「Install from URL」と進む
- https://github.com/hako-mikan/sd-webui-lora-block-weightをコピペ
- 「Install」をクリック
- 「Installed」のタブに移動し、「Apply and restart UI」をクリック
- 再起動されて導入完了
まずStable Diffusionを立ち上げて、「Extension」→「Install from URL」と開きます。
Install from URL内に「URL for extension’s git repository」の項目があるので、以下のURLをコピペしてください。
https://github.com/hako-mikan/sd-webui-lora-block-weight
URLをコピペしたら「Install」をクリックします。
「Installed」内に「sd-webui-lora-block-weight」の項目があればインストールされているので、「Apply and restart UI」をクリックして再起動すれば導入完了です。
今回紹介するLoRA Block Weight以外にも、優秀な拡張機能があるので、興味がある方は以下の記事を参考にしてください。
- Stable Diffusionのプロンプトの見本が知りたい
- 画像生成が思ったようにできない
- 色々なプロンプトを探したい
拡張機能「LoRA Block Weight」の使い方
まず、下の方にある「LoRA Block Weight」の項目を開いてください。
開くと、以下の画像のような画面が表示され、「LoRA Block Weight」で階層の調査を行います。
調査方法は、主に「Effective Block Analyzer」か「XYZ plot」のどちらかを使います。使うのは、使いやすい方でOKです。
「Effective Block Analyzer」の使い方
「Effective Block Analyzer」は、以下の手順で使います。
- 「Effective Block Analyzer」にチェック
- 「black」「change X-Y」にチェック
- 「difference threshold」「Range」は20に
- 「number of seed」は1
- LoRAのプロンプトに” :1:lbw=XYZ”を追加 (一例: <lora:YaeMiko_Test:1:1:lbw=XYZ>
- 画像を生成(約1分)
「XYZ plot」の使い方
「XYZ plot」は、以下の手順で使います。
- 下にある「LoRA Block Weight」を開く
- 「XYZ plot」にチェック
- 「X types」を『Original Weights』に変更
- 「Y Types」に”NONE,ALL,INS,IND,INALL,MIDD,OUTD,OUTS,OUTALL,ALL0.5”をコピペ (上に表示されている)
- LoRAのプロンプトに”1:lbw=XYZ”を追加(一例” <lora:YaeMiko_Test:1:1:lbw=XYZ>”)
- 生成
実際に「LoRA Block Weight」を試してみた!
今回LoRA Block Weightを利用して、顔だけにLoRAを適用させてみました。まずLoRA Block Weightで画像を生成します。
全ての階層を適用させている「ALL」と、顔が近い画像を探しましょう。比較すると、「MIDD」が一番近いと感じました。
MIDDのプリセットの”1,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0”を、以下のようにLoRAのプロンプトに追加します。
<lora:YaeMiko_Test:1:1:lbw=1,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0>
結果が、以下の画像です。
<lora:YaeMiko_Test:1:1:lbw=1,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0>, 1 girl,standing pose,face up,looking at viewer,facing front,break,smile,(open mouth:1.3),black hair,Blue eyes, acing front,evening walk
顔や髪型は近いですね。
続いて、服が近い「OUTD」で、服を再現してみました。
<lora:YaeMiko_Test:1:1:lbw=1,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0>, 1 girl,standing pose,face up,looking at viewer,facing front,break,smile,(open mouth:1.3),black hair,Blue eyes, acing front,evening walk
なんとなく服は似ている、という結果でした。
このように、一部だけLoRAを適用させれるので、いろいろ試してみてください。
まとめ
いかがでしたでしょうか?
今回は、LoRA Block Weightについて解説してきました。
今回のポイントをまとめると、以下のようになります。
- 「LoRA Block Weight」は、LoRAの階層を調査する拡張機能
- 応用で、顔や服などの一部だけにLoRAを適用させられる
LoRA Block Weightで調査した結果とプロンプトを組み合わせて、一部だけにLoRAを適用させた画像を生成してみてください。
- Stable Diffusionのプロンプトの見本が知りたい
- 画像生成が思ったようにできない
- 色々なプロンプトを探したい