うちの子制服LoRA 階層別適用の調査
さてさて、これまで数回にわたって進捗報告をアップしてきた「うちの子制服LoRA」の開発ですが、学習結果は良好になってきたものの(ちなみにLoRA学習にあたっては学習向けデータモデル「ACertainy」を利用するようにしました)、適用すると背景や画風に強い影響(灰色になったりぼやけたり)を及ぼすようになっていました。
これらは学習データの背景をすべて灰色に塗りつぶしていたのと、淡い画風で作成した画像を使っていたのが原因と思われるため、適用する際に階層指定することで背景や画風への影響を回避することにしました。
LoRAの階層別適用は17個指定することができ、以下のパラメータがあります。LoRAではIN03やOUT02などいくつかの階層は省略されています。
BASE,IN01,IN02,IN04,IN05,IN07,IN08,MID,OUT03,OUT04,OUT05,OUT06,OUT07,OUT08,OUT09,OUT10,OUT11
階層別適用を行うための「LoRA Block Weight」拡張機能では、差分画像を出力して影響を調査するための「Effective Block Analyzer」機能も搭載されてはいるのですが、描写されるオブジェクトの位置のずれも変化として検出するためイマイチ使いにくいと感じ、手動で1階層ずつオンオフして結果を出してみました。
今回は服装LoRA向けの調査で顔についてははっきり指定していないため、髪色はランダムに変化していますが問題はありません。
階層指定はプリセットを使わなくても直接値を記述することができます。例えばIN02だけに適用するなら「<lora:(LoRA名):0.5:0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0>」となります。
これをBASEからOUT11まで1階層ずつ、17階層すべてに対して実施していきます。
LoRA未適用・全階層適用・17階層それぞれに適用、の全19パターンを作って結果を比較。その結果から、背景や画風への影響が強い階層(例えば背景はIN01の悪影響が顕著)を適用対象外として、それ以外の階層を複数有効にする組み合わせを何パターンか試した結果、ひとまず以下のパラメータがよさそうということになりました。
1,0,0,1,0,0,0,0,0,1,1,0,0,1,1,0,0
マトリックスの一番右下がこの調整結果を適用したものです。
なお、これはあくまで現在製作しているLoRA向けのパラメータであり、他で配布されている服装系LoRAもこのパラメータが良いかというとそうでもありません。また、使用するデータモデルによっても結果が変化するため、効果が出ない場合はパラメータを再調整する必要がありそうです。
そしてさらに、うちの子・ほたるちゃんの顔再現LoRA(こちらは背景への影響は少ない)も組み合わせ、4枚目や5枚目が完成しました。(顔LoRAは使わなくてもプロンプトだけで良い絵が出てくれることも多いですが)
ほたるちゃんやクラスメイト達の制服姿、当選率(明らかに異なるデザインのものが出ない率)は96~98%くらいまで引き上げられています。
そのほか
・LoRA適用をしていても本来出したい要素(ダークブルーのスカート、ストライプ蝶ネクタイなど)のプロンプトはしっかり入れておくこと
・出したくない要素(例えば胸ポケットや蝶ネクタイ・スカートの変色)はLoRA学習で矯正するよりNegativeに記述するほうが効きやすい
といった知見が得られました。
掲載プロンプトは最後の1枚、同級生の女の子達を呼び出したときのものです。
呪文
呪文を見るにはログイン・会員登録が必須です。
コメント
コメントをするにはログインをする必要があります。