こんにちは!悠です!
「Stable Diffusion」で使える色んなLoRAを探していると、たまに次のような表記を見かけることがありませんか?
これはLoRAを適用する際に、作用する階層ごとの強さを設定する書き方で、拡張機能「LoRA Block Weight」を導入することで使えるようになります。

今回はその使い方について詳しく紹介していきます!
「LoRA Block Weight」とは?
普通に使っていると気にならないんですが、実はLoRAは17個の階層に分かれており、生成するAIイラストに対して各階層ごとに違った影響を及ぼします。
上の青い17個の数字は、各階層ごとに作用する比重を設定した表記になります。
ちなみにLoHAやLoCon(LyCORIS)は26層に分かれているそうです。
この各層ごとの強さを個別に設定した表記を、WebUIで使えるようにする拡張機能が「LoRA Block Weight」です。
各階層ごとにどんな影響があるのかは明確に判明しておらず、LoRAの種類によっても変わってくるようですが、前の方の階層はキャラの顔に作用しやすかったり、後ろの方はポーズや構図に作用しやすかったりと法則があるようです。
LoRAの各層による影響の情報は非常に少なく、下記のツイートで紹介されている4chan由来の画像や、
皆様もこの図を参考にしたり、https://t.co/MBd4KlnbtN
lora-block-weight使って試行錯誤で良い感じに背景もキャラ描写も両立するWeightをさぐってみてくださいまし
ちなみに背景LoRAでもLoRAによって全然違ってくるよ pic.twitter.com/tGR6SoWawA— morisato (@swingwings) March 17, 2023
下記のRedditのスレッドや
Block weights: Give LoRA a second breath
byu/ruSauron inStableDiffusion
下記の記事が参考になりそうです。

「LoRA Block Weight」の導入方法
Google Colaboratory版の場合
下記の方法で紹介している「maintained by Akaibu」のノートブックを使って、拡張機能「LoRA Block Weight」を導入していきます。
まだご覧になっていない方は、まず最初にこちらを準備しておいてください。


Google Driveからモデルデータを読み込むセルの下に新しくセルを作成し、下記のコードを入力してください。
#LoRA Block Weightをインストール %cd /content/stable-diffusion-webui/extensions/ !git clone https://github.com/hako-mikan/sd-webui-lora-block-weight /content/stable-diffusion-webui/extensions/sd-webui-lora-block-weight %cd /content/stable-diffusion-webui
WebUIを起動し、txt2imgタブにLora Block Weightの欄が追加されていれば導入成功です。
ローカル版の場合
「Extensions」→「Install from URL」の「URL for extension’s git repository」に下記のURLを入力しInstallをクリックしましょう。
https://github.com/hako-mikan/sd-webui-lora-block-weight
「LoRA Block Weight」の使い方
わかりやすいように例として、「M_Pixel 像素人人」という画像をピクセルアート化するLoRA(Civitaiでダウンロードできます)を使って説明していきます。

こういうのが作れます!

これもかわいい!
「LoRA Block Weight」のActiveにチェックを入れるだけで、txt2imgタブでLoRAの階層表記が使用できるようになります。
階層表記の使い方ですが、例えばすべての階層で1を使用する場合は次のようになります。
通常のLoRAの比重の後に、階層ごとの比重を設定する感じですね。
半角スペースなどを挿入したり、数字が17個より少ないと使えないので注意してください。
また、あらかじめプリセットとして登録してあるWeights settingの比重を使いたい場合は、次のように表記します。
WebUI Ver1.5.0以降の場合
2023年7月25日に更新された「Stable Diffusion WebUI」のVer1.5.0を適用後は、下記の記述形式を使う必要があるようです。
<lora:lora_name:1.0:lbw=MIDD>
X/Y/Z plotを使って各階層の効き方を調べる
X/Y/Z plotを使って、LoRAの各階層ごとの効き目をチェックする方法もあります。XYZ plotに関しては下記の記事で紹介しているので、参考にしてください。

「LoRA Block Weight」で使う場合は、通常のX/Y/Z plotと違ってScriptsを使用しないので注意しましょう。
まず、プロンプト内のLoRAに次のようにXYZを付けます。
「LoRA Block Weight」の中にあるXYZ plotのタブを開き、ActiveをXYZ plotに設定します。
X typesにOriginal Weightsを選択し、X valuesに「NONE,ALL,INS,IND,INALL,MIDD,OUTD,OUTS,OUTALL,ALL0.5」と入れてGenerateボタンを押すと、
下記のようにあらかじめ設定してある階層比重を使った表が生成されます。
これを見ると、このピクセルアートLoRAは、OUTALLのように後半の階層が生成画像に大きく影響を与えていそうだと推測できますね!
「a1111-sd-webui-lycoris」で使用する場合
「a1111-sd-webui-lycoris」(下記)を導入済みで、<lyco:lora_name:1.0>の形式を使っている場合は注意が必要です。

<lyco:lora_name:1.0>の形式で層別適用を使用するには、下記のように記入する必要があります。
【DyLoRAではない場合】
<lyco:lora_name:1.0:lbw=MIDD>
DyLoRAの場合はUnet weightとDyLoRA Dimを設定する必要があるそうですが、DyLoRAが現在全く流通していないので試せません。
もし運よく入手することができたら実際に試して紹介いたします。
「Weight Helper」を導入してより便利に!
層別比重をスライダーを使って簡単に適用できるようにする拡張機能「Weight Helper」を導入すると、「LoRA Block Weight」がより使いやすくなります。
詳しくは下の記事で紹介しています。

まとめ
以上が「Stable Diffusion」で、LoRAを適用する際に作用する階層ごとの強さを設定できる拡張機能「LoRA Block Weight」の使い方でした。
これを上手く活用することで、今まで使っていたLoRAの効果を向上させることができるかもしれませんので、ぜひ皆さんも試してみてくださいね!
では、ここまで読んでいただきありがとうございました。
コメント
こんにちは。先日まではLoRA Block Weightを使用出来ていたのですが、昨日の夜から同じようにインストールしても
LoRA Block Weight : Not Activeと表示されてしまい、反映されなくなってしまいました。
試しに使用出来ていたころの画像を同じプロンプト、同じシードで生成したところやはり画像が違ってしまいました。
下記の画像のように表示されてしまいます。
https://imgur.com/6KADlBV.jpg
私はpaperspaceを利用して画像を生成しています。
不慣れなため、説明に不備がありましたら申し訳ございません。解決方法がありましたら、教えて頂ければ幸いです。
コメントありがとうございます!
paperspaceに関しては私自身一度も使用したことがないので、申し訳ないですがよく分からないです…
なんか独特の記述形式が必要だったりするらしいですね。
ただもしcolabと同じ感じだったら、数日時間を置けば使えるようになっているかもしれません
こんにちは。
何時も拝見させていただいております。
最近Stable Diffusionを使用し始めたのですが、lora block weightに関して困っております。
こちらのブログの記載通り操作をしてみたのですが何度試してもすべての画像が同じ(全てLORAが効いていない?)
状態で出てきます。
階層別の効き方をXYZ plotで調べたいのですがうまくいかずご助言いただけますと幸いです。
こんにちは!
Ver1.5.0以降ですとlora:lora_name:1.0:lbw=MIDDのように、lbw=の形で記述しないと階層比重が適用されないのですが、ここを忘れていたりはしませんでしょうか?
あ、添付していただいた画像を見たんですが、左上にloconって書いてありますね。MIDD等の記述はLoRA専用なので、LyCORISだと使えないはずです。
LyCORISで階層適用をしたい場合は26個(LoRAは17個)の比重を適用する必要があります。
この記事内で紹介しているWeght helperを使うと設定しやすいですよ!