見出し画像

【Stable Diffusion】拡張機能「LoRA Block Weight」で「XYZ Plot」が動かない時のメモ

■記事の対象ユーザ
1.Stable Diffusion WebUIをローカルに構築して、イラスト生成しはじめた
2.自作LoRAの検証の中で"LoRAの適用度合い”を調べたくなった
3.拡張機能の「LoRA Block Weight」の「XYZ Plot」がうまく動かないぞ?

この記事を書くまでの

■ようするに?

LoRA Block WeightとXYZ Plotを有効化したのに1枚しか画像が出来ない
こういうのが作りたいのにね

さっそくだけど答え

あれ・・・LoRA Block Weightが2つある・・・?
下の設定

下だけ有効化すれば良かったのかよぉぉぉぉおお!!
上だけ有効化して、うごかねーうごかねーって記事漁りまくってた私が馬鹿みたいじゃないですかー!

ちなみに下が有効になっていれば上が有効だろうが無効だろうが動いたよ!

動いたところで使い方も解説しておくね

1.Stable Diffusion拡張「LoRA Block Weight」とは

私も最初何を言っているのかわからなかったけど、
LoRAは17個の階層を持っていて、顔に影響する部分とか服に影響する部分とか細かに分かれているらしいんだよ。

公式より「彼には17通りの階層があるからな、イー〇ック」

生成イラストへの反映度合いを階層ごとに指定できるようになるのが
この「LoRA Block Weight」拡張というわけね。

インストールは他の拡張同様、上記リポジトリをURLからインストールで簡単にできるから割愛するね。

2.LoRA Block Weightの使い方

まず、普通にLoRAを当てるだけの場合はこうだよね

やたら長いLoRA名でごめん
LoRAあり、トリガーワードだけでも何かシッポと女の子は召喚されるね
ちなみにLoRAなし、何故かイケメン2人組が召喚される

LoRA Block Weightを使う時は上述の通り「下側」のLoRA Block Weightを有効化するよ。

スクリプトの下のほうだよ

有効化にしたら、プロンプトを次のように書き換えるよ。

適用度1の後ろに「:」を挟んで書き加える

ちなみにlbwは
「L」oRA 「B」lock 「W」eightの
頭文字をとったものらしいよ。
昔はいらなかったらしいけど、最近の更新で必要になったとか。
インターネットの記事でどっちのタイプの解説もあるけど
lbwが「ある方」が新しいからね、注意してね。

新しい方LBWある、オデ、覚えた

lbw=の後ろの数列は17個の数字がカンマ区切りされてるよ。
君の様な勘のいいガキには分かると思うけど、LoRAの階層だね。

上記の例だと17全ての階層の適用度を「1」に設定しているので
普通にLoRAを当てた場合と同じ画像が生成されるよ。
当然全部「0」にしたらLoRAなしと同じになるよ。

3.え?もしかして17階層を1個1個試していくの・・・?

先頭の1だけを0にして生成、今度は2番目の1だけ0にして生成・・・。
うん、気が狂いそうだね★

でも大丈夫、LoRA Block Weightには複数の組み合わせを一発で
比較画像にできるカンタン機能「XYZ Plot」が備わっているよ。

これよこれ、こういうのを作りたかったのよ

というか、ウチの子のLoRA、ALL以外基本ケダモノフレンズじゃない…?

たすけて

画像の上の文字を見てもらうと
「NONE」 → LoRAなし
「ALL」 → LoRAあり
の画像だとわかるよね?

それ以外はLoRA Block Weightにデフォルトで備わっているプリセットで、
それぞれが以下のような定義になっているよ。
もちろん手動で「TEST:1,1,1,1…」という風に定義することもできるよ。

ALL0.5のように、0or1ではなく各階層を0.5だけ適用させることもできるよ

どの階層が何に影響しているかざっくり分かるわけだけど、
有志がすごく為になる検証をしてくれて情報を公開しているよ。神だよ。
転載するわけにはいかないから「LoRA 階層」とかで画像検索すると
幸せになれるよ。

4.XYZ Plotの使い方

ちなみに「XYZ Plot」自体はStable Diffusion Web-UIの標準機能で搭載されていて、Step数が5回~20回とかで比較したりするのに使える機能だよ。
LoRA Block WeightでLoRAの比較に使えるようになったってことだね。

LoRA Block Weight 側の設定

まず、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に記載したパターンの数だけ比較画像が作られるよ。

たまに上手く動かない(1枚しか作られない)場合があるけど、
LoRA Block Weightの有効/無効切り替えると動くときあるから試してみるといいよ(なんかうまく有効化が反映されていない?)

バグちゃう?
ちゃんとプロンプトで補強したらこんな感じ

LoRAを適用するSTEPも指定できる

えぇ、すごいない?

下記みたいにすることで、適用するSTEPまで選べるので適用度と合わせるとLoRAの適用度の調整がすごい細かく指定できるね。

これは最初の1STEP目以降はLoRAを適用しない設定
当然LoRAによる差分は殆どでない

おわりに

今回もポカミス案件だったよ。理解度の足りないオツムを許してほしい。

髪型LoRAを作ってみたけど、髪以外に塗りとか衣装までLoRAに影響されちゃう問題のぶち当たり、あまり上手く行かないものだから
「適用度を絞ることで実用に耐えうるならそれでいいじゃないの?」
とか考えていたら逃げた先でポカミスに苦しめられたよ!って話だよ。


いいなと思ったら応援しよう!