経験から学んだ私的LORA作成術

 学習の中身がそこそこブラックボックスなので、どんな設定がいいかは理屈がじゃなくて経験と勘頼り。
 過去の経験を鑑みて、最近のLORA設定で気にしていることいくつか紹介してみます。


・学習の基本は「学習率低め、STEP数は多め」

 学習率は1e5~1E7ぐらいを使っています。
 STEPは5000~1万でいいところを探る感じ。

 デフォの1e3とか1e4で学習すると、画像がガビりやすいです。
 またガビらないケースでも、他のLORAと同時に使うとすぐガビってしまい同時使用が難しくなりがち。

 低学習率でSTEPを重ねたものの方が、複数LORAの併用に対応しやすい印象です。

--------------------------------------------------------
※23/8/4 追記
最近はalpha=1で学習率1e4が多いです。あまりガビりません。
この記事を書いたときは「AdaFactorは学習効率が悪いので、alphaをdimの半分にするとよい」という説がありまして、それを守っていました。
で、あとで知ったんですけど、alpha=1と、alpha16・32では学習率がかなり違うようで、alphaをdimの半分にすると、学習率がかなり上がっていたっようです。
なので、1e4のalpha1でstepを多めにとれば大丈夫だと思います。
--------------------------------------------------------

・学習率設定は大事だけど沼りがち。AdaFacterが楽でイイ!

 LORAのデキは素材選択と学習率設定で決まるわけですが、学習率は素材の質や数や学習内容によって最適解が変化するため、正解を見つけるのが大変です。
 そこで登場するのが、学習率を自動調節してくれるオプティマイザ「AdaFactor」。

 こちらを使えば、過学習手前のベター学習率なLORAができあがります。
 ただし、AdaFactorは学習効率が良くないので、STEP数を多めに設定するのが成功のコツ。
 僕はだいたい5000~8000、それで足りなければ1万ぐらいまで回しています。

 通常のAdamと比べると必要VRAMが増えて、学習時間が長めになりますが、学習率の知識がなくても使えて、試行錯誤を繰り返す必要もないので、誰でも簡単に高クオリティLORAを作れます。
 通常のAdamだと過学習になってしまうようなケースでも、AdaFactorならうまくいくことが多いです。
 初心者な方ほどオススメです。

・LOCON(Conventional LoRA)とLyCoris

 通常のLORAより学習する層を増やして、より学習密度を上げるのがLOCON(SD--SCRIPTではConv2d-3x3)。
 密度が上がる分、細部の表現が細かくなりやすいのですが、その分、過学習にもなりやすい印象です。
 僕の場合、ディテールよりも「他のLORAとの共存」が最優先で、そのためにはできるだけ過学習していないLORAが望ましい。

 となると、過学習になりやすいLOCONはあまり都合がよくありません。
 というわけで、僕はLOCONはまり使ってないです。
 メガネとか器具みたいな小物だLORAで試すぐらい。
 キャラとか画風だと選択肢にも入らないですねぇ…

 LyCorisは完全に様子見。
 web-uiで一元的にコントロールできないextensionをゴテゴテ入れると、のちのちの互換性が不安だし、動作環境が不安定になるのも遠慮したい。


・タグはいちいち編集しなくても、わりといける。

 初心者ほど悩みがちな「タグの編集」ですが、正直、Deepdanbooruなどで自動タグ付けしたら、それをそのまま使っても「だいたいうまくいきます」。

 単語の重複を解消したりトリガーワードを整理したりすることが無意味ではないのですが、しなければダメ! というものでもないです。
 もちろん、ある程度編集した方がいいのは確かですが、神経質になるよりは、とりあえず無編集のまま学習しちゃって、プロンプトへの反応に問題があったら、そこをいじればいいと思います。

 僕の場合、画風LORAだとタグはいじらないことが多い。
 キャラLORAの場合は、「キャラ名をすべてのタグTXTファイルの先頭に入れる」「意味が重複する単語(1girlとsoloとか)を整理する」「キャラの大きな特徴(金髪長髪褐色など)は削除する」ぐらいのことをしています。
 やらなくてもプロンプト制御で対応できるのですが、使うたびにプロンプトに「金髪長髪褐色」とか入れるのが面倒なんで…。

・学習素材

 背景切り抜きはしない。

 文字はLAMAクリーナーで取る。ちょっとぐらいならネガティブに「TEXT」とか入れれば防げる。

 解像度はできるだけ高い方が安心。

 学習解像度は512か768。768のが出力画像の緻密さが高い気がする。

 学習解像度より低い画像は、補完拡大してくれるアップスケーラーを使って綺麗に拡大しておく。

 解像度は高いが画質が荒いヤツも、アップスケーラー使ってクオリティアップしておく。これをやっておくと出力画像がぼやけずクッキリしやすくなるのでオススメです。

正則画像は使うと「違いが生じる」。良いことも悪いこともあるので、変化を加えたいときのスパイス的な使い方で。

正則画像も学習するので絵柄への影響がそれなりにある。1girlなどで正則画像を作成する場合は絵柄(同一絵柄で染めると、その絵柄になりがち)にも注意する。

この記事が気に入ったらサポートをしてみませんか?