【Stable Diffusion】拡張機能「LoRA Block Weight」で「XYZ Plot」が動かない時のメモ
■記事の対象ユーザ
1.Stable Diffusion WebUIをローカルに構築して、イラスト生成しはじめた
2.自作LoRAの検証の中で"LoRAの適用度合い”を調べたくなった
3.拡張機能の「LoRA Block Weight」の「XYZ Plot」がうまく動かないぞ?
■ようするに?
さっそくだけど答え
下だけ有効化すれば良かったのかよぉぉぉぉおお!!
上だけ有効化して、うごかねーうごかねーって記事漁りまくってた私が馬鹿みたいじゃないですかー!
ちなみに下が有効になっていれば上が有効だろうが無効だろうが動いたよ!
動いたところで使い方も解説しておくね
1.Stable Diffusion拡張「LoRA Block Weight」とは
私も最初何を言っているのかわからなかったけど、
LoRAは17個の階層を持っていて、顔に影響する部分とか服に影響する部分とか細かに分かれているらしいんだよ。
生成イラストへの反映度合いを階層ごとに指定できるようになるのが
この「LoRA Block Weight」拡張というわけね。
インストールは他の拡張同様、上記リポジトリをURLからインストールで簡単にできるから割愛するね。
2.LoRA Block Weightの使い方
まず、普通にLoRAを当てるだけの場合はこうだよね
LoRA Block Weightを使う時は上述の通り「下側」のLoRA Block Weightを有効化するよ。
有効化にしたら、プロンプトを次のように書き換えるよ。
lbw=の後ろの数列は17個の数字がカンマ区切りされてるよ。
君の様な勘のいいガキには分かると思うけど、LoRAの階層だね。
上記の例だと17全ての階層の適用度を「1」に設定しているので
普通にLoRAを当てた場合と同じ画像が生成されるよ。
当然全部「0」にしたらLoRAなしと同じになるよ。
3.え?もしかして17階層を1個1個試していくの・・・?
先頭の1だけを0にして生成、今度は2番目の1だけ0にして生成・・・。
うん、気が狂いそうだね★
でも大丈夫、LoRA Block Weightには複数の組み合わせを一発で
比較画像にできるカンタン機能「XYZ Plot」が備わっているよ。
画像の上の文字を見てもらうと
「NONE」 → LoRAなし
「ALL」 → LoRAあり
の画像だとわかるよね?
それ以外はLoRA Block Weightにデフォルトで備わっているプリセットで、
それぞれが以下のような定義になっているよ。
もちろん手動で「TEST:1,1,1,1…」という風に定義することもできるよ。
どの階層が何に影響しているかざっくり分かるわけだけど、
有志がすごく為になる検証をしてくれて情報を公開しているよ。神だよ。
転載するわけにはいかないから「LoRA 階層」とかで画像検索すると
幸せになれるよ。
4.XYZ Plotの使い方
ちなみに「XYZ Plot」自体はStable Diffusion Web-UIの標準機能で搭載されていて、Step数が5回~20回とかで比較したりするのに使える機能だよ。
LoRA Block WeightでLoRAの比較に使えるようになったってことだね。
まず、LoRA Block Weight側の設定だよ。
重ねて言うけど、スクリプトの下側の方を設定してね。
1.有効化して
2.XYZ Plotを選んで
3.X Typesを「Original Weights」にして
4.X Valuesを上側のテキストのコピペ「NONE,ALL,INS,IND,INALL,MIDD,OUTD,OUTS,OUTALL,ALL0.5」
5.YとZはnone、空欄に
プロンプト側はさっきまで
<lora:"LoRA名":適用度:lbw=17階層の適用度>
だった部分を
<lora:"LoRA名":適用度:lbw=XYZ>
に書き換えてね。
この2つを設定した状態で生成すると、X Valuesに記載したパターンの数だけ比較画像が作られるよ。
LoRAを適用するSTEPも指定できる
えぇ、すごいない?
下記みたいにすることで、適用するSTEPまで選べるので適用度と合わせるとLoRAの適用度の調整がすごい細かく指定できるね。
おわりに
今回もポカミス案件だったよ。理解度の足りないオツムを許してほしい。
髪型LoRAを作ってみたけど、髪以外に塗りとか衣装までLoRAに影響されちゃう問題のぶち当たり、あまり上手く行かないものだから
「適用度を絞ることで実用に耐えうるならそれでいいじゃないの?」
とか考えていたら逃げた先でポカミスに苦しめられたよ!って話だよ。