マイナーゲームゆえに絵師様のファンアートもほとんど存在しない「幻塔」のキャラクターLoRAを、ゲーム内で撮影したスクリーンショットから作成したよ。
なお、LoRA学習について特に詳しいわけではないので、ただこうやってるよというだけのまとめだよ。
学習素材の用意
今回は、AIサーバント「レイヤ」を学習する。
ただでさえファンアートの少ない幻塔で、新登場で、しかも主要キャラクターでもなく、ただ戦闘を補助してくれるペットのようなキャラクターなので、当然ファンアートは存在しない。
スクリーンショットの撮影
とりあえず、スクリーンショットを撮りまくる。
後で背景を除去することを考えて、出来る限り背景が一色の場所を探して撮影。
トリミングする。
今更だが、後ろ姿の画像はおそらく分けて学習させないといけないと思う。
きちんとやればの話だが、幻塔の3Dはアニメ調で、かつ、非常に良く出来ているので、後ろ姿の学習もさせられるというのは良い。普通のイラストでわざわざ後ろ姿を描いているものは少ないため、頑張ればこれは逆に良いものが作れそうではある。
背景を除去する
素材画像の背景を除去する。
ここは「Transparent-Background」というコマンドライン操作の背景切り抜きツールで、バッチ処理で自動で全部やってもらう。
GitHub - plemeri/transparent-background: This is a background removing tool powered by InSPyReNet (ACCV 2022)
「transparent-background --source "画像のフォルダ" --type white --dest "出力先フォルダ"」
これを実行、自動でキャラクターを切り抜き、背景を白にさせる。
参考資料
サイズを合わせる
学習素材の画像のサイズを統一する。今回はすべて768*768pxに調整。
素材をきれいにする
ここは面倒だが1枚1枚チェック、うまく切り抜けなかった部分を修正したり、学習の邪魔になってしまう要素を消したりする。
これは「LamaCleaner」を使っているよ。
また、画像編集ソフトを使用して明るさを調整したり、画質の悪いものは画質を上げたりする。線がハッキリしないものはシャープさを上げると良さそうだ。
名前を連番にする
これは必要なのかよくわかっていないが、一応素材画像は001からの連番にしている。
自分はこの「お~瑠璃ね~む」とかいうやつを使用して一括で変更している。
Beefway - Download - AllRename
キャプションファイルを作成する
「Dataset Tag Editor」を使って、学習素材画像のタグを一括で変更する(使い方は自分で調べて)
GitHub - toshiaki1729/stable-diffusion-webui-dataset-tag-editor: Extension to edit dataset captions for SD web UI by AUTOMATIC1111
タグを抽出し、学習させる要素のタグを削除する。
まぁここは面倒だし、ぶっちゃけ変わらないとか聞くので、背景以外はすべて学習させるという意味で、雑に「simple background, white background」以外すべて削除。
そしてトリガーワードを追加。今回は「LeiaToF」とした。
学習開始
「Kohya's GUI」を使って学習させる。
正直ここからの設定項目は自分もよくわかっていないので使い方の説明はないぞ。
多くの人がすでにまとめてくれているから勉強頑張ろう。一緒に。
とりあえず、素材画像のフォルダ名称を「繰り返し回数_名称」に変更し、所定の場所に配置。最終的に画像枚数は15枚、正規化画像は無し。
Source modelには「AnyLoRA」を使用。
Train batch sizeは1、繰り返し回数1*画像枚数15に対してEpoch数を300で、とりあえずステップ数4500になるように調整した。
各種パラメータ(重要そうなとこ)
- Mixed precision と Save precision:bf16
- LR Scheduler:constant
- Optimizer:AdamW8bit
- Learning rate:0.0001
- Max resolution:768,768
- Network_Alpha/Network_Rank = 0
- Clip skip:2
参考資料
終わり
完成したLoRAファイル
最終的に出来上がったものがこちら。
Tower of Fantasy レイヤ Leia LoRA https://t.co/Q6EzoW8Xzc#幻塔 #ToF pic.twitter.com/R7RkppTSd2
— 🐟✏️ (@Sakana3ai) 2023年11月5日
同じくAIサーバントの雪絨ちゃんも作成し、試しにcivitaiに公開してあるよ。
AIサーバント(雑)
— 🐟✏️ (@Sakana3ai) 2023年11月5日
Snowy LoRAhttps://t.co/UFXTocybIS
Leia LoRAhttps://t.co/D5aiP5BJ93#幻塔ART #ToFanmade pic.twitter.com/7gmivBLvrG
自分の手元には学習途中で吐き出させたファイルもあるわけだが、どのくらいの学習強度のものが欲しいのかは人によりけりでわからんので、とりあえず強度0.7で使用したときにある程度は自由が利くくらいのものをシェアしてある。
また、自分が公開したLoRAを使用して画像を生成してくれた人のプロンプトを確認して思い出したのだが、「LoRA Block Weight」という拡張機能がある。
初めて見たときは意味わからなくて使っていなかったが、これがまたかなり使える。
細かい調整はlbwでしてほしい。
おまけ(生成した作品)
※エロあるよ(笑)
雪絨ちゃん#幻塔ART #ToFanmade pic.twitter.com/1AvNUVeWp0
— 🐟✏️ (@Sakana3ai) 2023年11月3日
レイヤ
— 🐟✏️ (@Sakana3ai) 2023年11月8日
私がつくりました#幻塔ART #ToFanmade pic.twitter.com/wBVWELiY9A
雪絨 Snowy ToF#幻塔ART #ToFanmade pic.twitter.com/zSWPTcD5n8
— 🐟✏️ (@Sakana3ai) 2023年11月8日