【必見】Stable DiffusionのLoRA Block Weight、そうだったのか!(前編)
こんばんは、AIイラスト研究室です。
皆様はLoRA Block Weightという機能をご存知でしょうか?
LoRAといえばStable Diffusionのモデルの表現力を上げる追加学習ソフトのようなもの(あってる?汗)で、イラスト生成を120%楽しむには必須ですね。
しかしこのLoRA、モデルの表現力を上げると申しましたが、イラスト全体に影響するものも多く、あれ、なんかこれじゃない!という出力結果になったりします。
このLoRAの影響をイラスト全体ではなく、部分的に使おう!というのがLoRA Block Weightという機能になります。(たぶん)
筆者はすこーしだけwebでLoRA Block Weightの解説サイトをみたことがありましたが、0とか1とかが並んでて「うん、これはいいや」とこれまで華麗にスルーしておりました。汗
がしかし、この度とうとうLoRA Block Weightなるものをインストールしたのですよ。
インストールの仕方はこちらのwebサイトをそのまま実行しました。
ありがとうございます。
LoRA Block Weightをインストールしてみての感想
うわやば、全然わかんね・・・。これまで出力できてたイラストもなんか出来なくなってね?
→なんてことはありませんでした。(not activeでも多少出力結果に影響はあるのかも?)
LoRA Block Weightを使ってみてパニックに。
もうLoRAわかんね状態。
どーしよ。
あ、そうだ、まずは全部LoRA無くしちゃえ。
LoRA Block Weight使う話じゃないんかい!
LoRA Block Weightの使用感を掴むため、LoRAを全部切るってなんぞ爆。
→自然科学ではこれをコントロール、あるいはコントロール実験というのである。
そしてLoRA諸々切り捨てて、プロンプトのみで出力したイラストがこちら。
※ベースモデルはBRAV7、embeddingは使用。
LoRAなし、いいじゃないの!
さて、ここから早速LoRAを入れてみましょう。
筆者がいつもお世話になっているLEOSAM様のFilmVelvia 3.0
これをプロンプトに入れる。
強度は最強?の1で。
<lora:FilmVelvia3:1>
それ以外は同じプロンプト、同じシードで4枚。
さすが、肌の質感がAIっぽさがなくなって写真みたい!
え、なんだって?
はい、お気づきになりましたね。
なんだか手足のバランスがおかスィー。
そんな時はどうするの?
答え:強度を下げるんですね。
知ってますよね。
そうですよね。はい。
ではでは、
<lora:FilmVelvia3:0.5>
とかにします。
同じシードで4枚生成。
ちょっと手が怪しかったりするけど、画質は写真風で構図は強度1よりはまともになりました。
LoRA Block Weight
ここからが記事の本題(長ぇ)。
LoRA block weightの使い方もこちらの記事に詳しいです。
ありがとうございます。
で、実際の使い方なんですが、次のようにLoRAを記述します。
<lora:FilmVelvia3:1:1:lbw=ALL>
はい、ここでわけわからんポイントが。
:1:1:lbw=…
の:1:1 って何よ?
今までは:1だったのに、いきなり二つに増えました。これがわからん。
上記リンク記事にて軽く解説してくださっています。
LoRAの名前:TEncの重み:UNetの重み:lbw=階層別の重み17個
なるほど!
つまり最初の1はTEncの重みで後の1がUNetの重みなんでしたか!
そうでしたか!
って、やっぱりわからない(AI詳しい人ならピント来るのでしょうか汗)。
とにかく、最初のBlock Weightを導入してLoRAわからん状態になったのはこの部分ですね。
こんな時はどうするの?
答え:手動でいじってみる
はい、最後はアナログが最強なんです。
以下の4種類で試してみて、イラストの変化を確認しましょう。
<lora:FilmVelvia3:1:1:lbw=ALL>
<lora:FilmVelvia3:0.5:1:lbw=ALL>
<lora:FilmVelvia3:1:0.5:lbw=ALL>
<lora:FilmVelvia3:0.5:0.5:lbw=ALL>
<lora:FilmVelvia3:0.7:0.7:lbw=ALL>
これを最初のLoRA Block Weight Not Activeの状態と比較すれば良いんですってよ!
<lora:FilmVelvia3:1>
<lora:FilmVelvia3:0.5>
と比較する。
これでLoRA Block WeightのTEncの重み:UNetの重みがどのように影響するかを可視化できます。(意外とこの部分を深く切り込んでいる記事はないのでは?)
そのためのLoRA全部切りプロンプト含む検討だったのです。
マジか、天才かよ!?
いえいえ。
自然科学の学位を持っているので、いつもこういう検討ばっかりやってるからこういうのは得意です。
それではLoRA Block Weight、早速行ってみよう。
検討1<lora:FilmVelvia3:1:1:lbw=ALL>
プロンプト、シードは同じ。
はい、これで最初の一歩が理解できました。
Block Weight導入前の<lora:FilmVelvia3:1>
=lbw導入後の<lora:FilmVelvia3:1:1:lbw=ALL>になります。
比較用です。
検討2<lora:FilmVelvia3:0.5:1:lbw=ALL>
プロンプト、シードは同じ。
おぉ、これはBlock Weight導入前にはなかったイラストが出力されました。
それでは反対に:1:0.5にしてみましょう。
検討3<lora:FilmVelvia3:1:0.5:lbw=ALL>
おぉ、これまた面白い。
全体的な構図はblock weightなしの強度1に近い感じ。
質感はLoRA適応前の雰囲気に近い?
お次は:0.5:0.5にしてみましょう。
検討4<lora:FilmVelvia3:0.5:0.5:lbw=ALL>
ババーンと出力されました!
これはまさにBlock weight導入前の<lora:FilmVelvia3:0.5>と同じイラストです。
比較用ですどうぞ。
結論、要するに、Block Weight導入前はママチャリ1段変速だったのが、lbwによってロードバイクの2段変速みたいに、二段階に変化できるようになったということですな。
めちゃくちゃ適当な解釈ですんません。
そしたら結局、どんな塩梅の強度がいいんだってばよ、の魔境状態になったことには変わりないですね。^o^;<時間がないねオワタ
こればっかりは色々試してしっくりくる塩梅を見つけるしかねぇでございます。
検討5<lora:FilmVelvia3:0.7:0.7:lbw=ALL>
脚が、変なとこから出てるけど、質感は好きかも。
これまでの検討から、FilmVelviaに関してはTEncの重みは大きめ:UNetの重みは小さめがよさそう。
ということで、こんな塩梅でどうでしょうか?
検討6<lora:FilmVelvia3:0.7:0.3:lbw=ALL>
なんだかこう、とても安定したイラストが生成できた気がします。
逆転させてみる。
検討7<lora:FilmVelvia3:0.3:0.7:lbw=ALL>
あれ、これも悪くない。
むしろこっちの方が、好きかもさえある。
出力結果はlbw未使用の0.5に近い。
これは、面白いですね。
ではせっかくなのでこの強度で残り3枚を生成してみましょう。
4枚目がとてもいい感じですね。
比較用にLBW未使用時0.5との比較を載せます。
はい、ということで、構図は大体LoRAの強度0.5に近い結果となりました。
感覚でしかないですが、FilmVelviaのいいとこ取り〜な強度になってるんではないでしょうか?
さて、本日はここまで。
次回はlbw=ALLの部分を深堀して行きましょう!
備忘録的にプロンプト、詳細設定を有料、メンバーシップにて公開します。
ここまでの検討が良いなと思った方はぜひ、応援お願いいたします。
ここから先は
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?