見出し画像

手足を細くしたり胴を短くしたり…。SDXL用のスライダーLoRAをコピー機学習法で作成してみた

 AIイラスト環境をほぼSDXLに移行させました。
 で、ちょっと困ったのが、以前使っていた「手足を細くするLECOとかスライダーLORA」が使えなくなったこと。
 体型の微調整が楽にできて気に入ってたんですよね、アレ。

 無ければ作ればいいじゃん…ということで体型微調整スライダーLORAを作ることにしました。
 今回作ったのは「痩せる太る」「手足を細く太く」「胴を長く短く」「足を長く短く」の4つ。
 すべて差分方式、いわゆる「コピー機学習法」で作ってみました。

 基本的な作り方はSD1.5のときと同じ(具体的なやりかたは「LORA コピー機学習法」で検索してください)。なんですが、大きく変わったのは、学習関連のパラメータ設定とSTEP数。
 SDXLだと、SD1.5よりも「コピー機化」するのに必要な学習量が大幅に増えようで、以前の設定のままだと、ぜんぜん学習内容が固定化されませんでした。

 DIMやALPHAなどの学習回りパラメータは弄らずに、同じ設定でSTEP数を増やすだけでいけそうだったんですけど、どうせならできるだけ短時間で学習を終わらせたかったので、試行錯誤を繰り返した結果、下記の設定に落ち着きました。


dim/alpha:Conv dim/Conv alpha : 16/16 8/8
オプティマイザー:AdamW(8bitじゃない方)
学習率:1e-3
スケジューラ:cosine
総STEP数:1400(1枚×50回繰り返し×2バッチ×14エポック)


 dim/alphaは8/8でも大丈夫そうだったけど、感覚的に「余裕がなさそう」だったのと学習時間がたいして変わらなかったので16/16に。

 オプティマイザーはいろいろ試したけど結局Adamに。
 VRAMは足りてるので通常版を使用。

 SD1.5時代はAdam/1e-3の組み合わせて500回ぐらいでよかったのですが、SDXLだと500だと全然足りず、1300~ぐらいでコピー完了。
 1200でもいけなくはないけど微妙に足りない感じです。

 元画像と変化(差分)画像のコピー機LORAが完成したら、その2つの差分を作成。
 SD-SCRIPTに付属しているマージ用スクリプトを使って差分マージすればスライダーLoRAの完成です。
 ファイルサイズがでかくて気になる人はSD-SCRIPT付属のリサイズスクリプトでサイズダウンすると幸せです。

 ざっくり試したところ、学習元モデルのPonyはもちろん、派生のebaraやmomoiroでもスライダーとして作動しました。
 ただSD1.5と比べると効きが悪い気がします。スライダーを作る際は、その辺を多少割り引いて考えておく方がいいかもしれません。


スライダー使用サンプル画像

足の長さスライダー。PonyV6
痩身スライダー。momoiro
手足の細さスライダー。momoiro
胴の長さ。ponyV6

 というわけで、いつもどおり作成したスライダーLORA4種を有料公開しておきます。
 ついでにコピー機を作ったときの学習設定も置いておきます。コピー機製作の参考にでもしてください。

  • Slider-Skinny:全身の細さを変える

  • Slider-LimbWidth:手足の細さを変える

  • Slider-BodyLength:胴の長さを変える

  • Slider-LegLength:足の長さを変える

 自作したい場合は「胴長と胴短」「足長と短足」「ガリガリとぽっちゃり」「ムチムチ手足とガリガリ手足」のイラストセットをそれぞれ作ればOKです。
 特徴がはっきりするように対象部位をデフォルメ気味に描くといいと思います。

 あと、上でも書きましたが、SD1.5よりもスライダーの効きが悪いかもしれないことをご了承ください。
 学習元モデルはPonyV6を使用。Momoiroとebaraでも動きました。
 その他の派生モデルも大丈夫だとは思いますが試してはいません。

 どのスライダーもシンプルに部位を対象としているだけで、伸び縮みしたあとの全体のバランスは考慮していません。
 胴を短くすると子供っぽくなったり、足を短くすると全体的に小さくなったりと、ある程度は勝手に調整されますが、人体的に不自然な構造になることもあります。

ここから先は

1,296字 / 4ファイル

¥ 500

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