こんばんは、スタジオ真榊です。今回は、タグ付けをしっかりと使いこなすことで、1つのキャラLoRAに複数の容姿(服装や髪型バリエーション)を学習させる方法についてまとめたいと思います。追加学習にはいつも通りanimagineXL3.1を使用し、こちらの「SDXL用LoRA学習が理解る!」でひととおり基本的なLoRA学習のやり方を理解していることを前提として書いていきます。

今回検証したのは、このような「複数の容姿バリエーションを持つ1人のキャラクター」のLoRAを作る際に、それぞれ「スーツミオリネLoRA」「ドレスミオリネLoRA」を個別に作るのではなく、一回のLoRA学習でこれらすべての容姿をいっぺんに覚えさせ、独自タグで自由に呼び出すやり方です。

着せ替え可能な高性能キャラLoRAを作ろう!:図版1

このLoRAを適用して「miorine_rembran」と打ち込むと制服姿に、「suitmio」と打ち込むとスーツ姿に、「dressmio」と打ち込むとドレス姿で生成することができ、服装だけでなく髪型やアクセサリなどもそれに応じて変化させることができます。

この手法は、いわゆる「マルゼンスキーム(マルゼン式、マルゼン法)」と日本で呼ばれるものとは少し異なります。マルゼンスキームは「キャラの顔立ちのみ」「衣装のみ」を個別に覚えさせて組み合わせる手法ですので、例えば衣装だけを別のキャラクターに着せることも可能ですが、ミオリネスキームはあくまで「それぞれの姿のそのキャラクター本人」を顔や髪型も含めて覚えさせる手法ですので、そうしたことはできません。

それぞれ異なるルールのタギングが必要なので、この記事では両方のやり方について取り上げたいと思います。

1.画像収集とフォルダ分け

この手法は、フォルダ分けとタギングが非常に重要です。まず、集めた画像を正しくフォルダ分けする手法から説明していきます。

例えば、一人のキャラクターに5つの容姿があるとします。その場合、画像保存フォルダを5つ作るのがこの手法の第一歩になります。下図をご覧ください。

LoRA/ ←ルートフォルダ(名前はなんでもよい)

 └ training/ ←学習データを入れるフォルダ(名前はなんでもよい)

  └ miorineloraXL/ ←LoRAごとに作るフォルダ(名前はなんでもよい)

    ├ 4_miorine_rembran/ ←デフォルト(制服)姿の画像を保存

    ├ 4_bosarine/ ←ぼさぼさ頭の画像を保存

    ├ 4_suitmio/ ←スーツ姿の画像を保存

    ├ 4_3ylatermio/ ←3年後の姿の画像を保存

    └ 4_dressmio/ ←ドレス姿の画像を保存

普段は数字とアンダーバーから始まる画像保存フォルダは一つのみで作ってきましたが、今回はこのように、名前の異なるフォルダを5つ用意し、それぞれの名前に対応する画像を振り分けることにします。制服姿の画像がスーツ姿のフォルダに混入したりしないよう、注意して振り分けましょう。各フォルダのリピート数(頭の数字)はとりあえず4としておきます。

用意する画像は各フォルダ最低20枚あれば十分で、それぞれのフォルダで画像数をそろえる必要はありません。いつも通り「量より質」を念頭に、魅力的な画像ではなく「再現したい容姿の特徴をよく捉えている画像」をできるだけバリエーション豊かにそろえてください。ほかのキャラクターが描かれているイラストは避けるか、soloで描かれているものを使ったほうが容姿の混在を避けられるでしょう。

<創作的表現の模倣に注意>

教師データの収集には「imgbrd-grabber」などのダウンローダを使うと便利ですが、自己防衛のため、サイト規約や国内の関連法、米国のフェアユースの概念などをきちんと理解した上で、学習段階でやってはならないことを踏まえて利用しましょう。

例えば「あるイラストレーターの作品である少量のイラストのみを学習データとして、その創作的表現の全部または一部を出力させるために著作物を収集する場合」、イラストレーターから許諾を得ないと画像の複製行為(LoRA学習目的のダウンロード)が違法となる可能性があります。

創作的表現の模倣に注意:図版1

(※文化庁「AI と著作権に関するチェックリスト&ガイダンス」(令和6年7月31日)より引用)

収集したデータセットを基にこれからLoRAで再現しようとしているものが、著作権保護されない「アイデア」にとどまるものなのか、それとも著作権保護される「表現」に至っているのかのラインは司法判断になりますが、いまだ判例はありません。ただ、もし訴えられたらその時点で大トラブルに巻き込まれているわけですから、法廷で勝てるかどうかではなくまずはラインに近づかないこと、ウェブ上で露悪的な振る舞いをしないことが何より大切な自己防衛策であろうと個人的に考えています。

2.狙ったキャラのみをトリミングするには

さて、そのキャラクターが大きく映った画像だけで学習させたほうが高品質なLoRAができますが、普通に集めると、別のキャラクターが映り込んでいる画像も多く集まるのではないかと思います。完全にsoloの画像だけでデータセットを構築すると、2girlsと指定してもsoloになりがちな現象が起こるのでそれはそれで問題ですが、できれば他のキャラクターはフレームアウトし、覚えさせたいキャラが大きく描かれた画像を多めにしたいところです。

多数の画像を一枚一枚画像編集ソフトで開き、トリミングし、サイズを指定して保存するのはなかなか面倒ですので、私は有償のファイル管理アプリ「Eagle」を使ってトリミングしました。

2.狙ったキャラのみをトリミングするには:図版1

まずはトリミングしたい画像をフォルダごとドラッグアンドドロップ。各画像をクリックして開くと、右上に「クロップ」ツールのボタンがあります。

2.狙ったキャラのみをトリミングするには:図版2

これをクリックしてトリミングしたい範囲を選択したら、もう一度同じボタンを押せば、一瞬で上書きトリミング完了。あとは次々に手作業でやっていくだけでOKです。(※上書きせず、元画像を残す場合は「として保存」を押します。日本語訳が変ですねw)

2.狙ったキャラのみをトリミングするには:図版3

導入方法やアプリの詳細はこちらから。LamaクリーナーなどもEagle上で動かせるので、購入する価値は十分にあると思います。

3.リネーム&背景削除&画像サイズをそろえる

①リネームから始めよう

だいたい1フォルダあたり20~100枚程度の画像をそろえられたら、背景削除やリサイズを行う前に、まずNameryなどのソフトを使って一斉リネームすることを強くお勧めします。名前はフォルダごとに「suitmio01、02、03…」「bosarine01、02、03…」のように、もし混じってしまってもどのフォルダの画像だったか分かるようにリネームしましょう。(※下記はランダムなファイル名をzarakimina01~に一括変更した例)

①リネームから始めよう:図版1

②背景削除

今回作るのはキャラLoRAですので、背景は基本的に必要ありません。「SDXL用LoRA学習が理解る!」で説明したやり方で、用意した画像をすべて背景削除してください。このとき、5つのフォルダを一つずつ処理するのは面倒なので、フォルダ分けした画像をいったんどこかのフォルダにまとめて、一斉に処理すると良いでしょう。

②背景削除:図版1

エクスプローラーの検索窓に「*」もしくは「*png」や「*jpg」と打ち込むと、その階層以下の全ての該当ファイルが一斉表示されますので、画像だけを選択して別の場所にカットアンドペースト(コピペではなく)するのが手っ取り早いです。背景削除がうまくいかなかった画像(キャラの一部まで削除されたしまったもの)を見つけたら、削除前の背景ありの画像を使用することにしましょう。背景のある画像が一部混在していても、LoRAの出来に悪影響はありません。

(※そのキャラクターの背の高さなどを覚えさせたい場合は、多少他のキャラクターや背景を残して学習させたほうが良いこともあります)

③リサイズ

最後に、背景削除されたデータセットを一斉リサイズします。私はいつもどおり「縮小革命」で短辺1024pxに統一しました。長辺も短辺も1024pxに大きく足りていないものが多い場合は、いったんSDwebUの「Extra」タブでアップスケーラを使って大きくした後に、縮小革命で縮小すればOKです。

さきほど画像をコピペでなくカットアンドペーストしてあったはずなので、5つのフォルダはそれぞれカラになっているはずです。別の場所のフォルダに「背景除去済」「リサイズ済」の画像が揃ったら、さきほどリネームしたファイル名を頼りに、再びもとの5つのフォルダに画像を戻していきましょう。

そう、最初にリネームしたのはこのとき元のフォルダに加工済の画像を戻すのが楽だからです。もしランダムなファイル名だったら「これはドレス姿のフォルダで、これはスーツ姿のフォルダで…」と目視で整理しなければならないところでした。

下記のようなフォルダ構成になっており、サイズも1024px前後にそろっていれば、画像の準備は終了です。

LoRA/ ←ルートフォルダ(名前はなんでもよい)

 └ training/ ←学習データを入れるフォルダ(名前はなんでもよい)

  └ miorineloraXL/ ←LoRAごとに作るフォルダ(名前はなんでもよい)

    ├ 4_miorine_rembran/ ←制服姿の画像を保存(背景除去・リサイズ済)

    ├ 4_bosarine/ ←ぼさぼさ頭の画像を保存(背景除去・リサイズ済)

    ├ 4_suitmio/ ←スーツ姿の画像を保存(背景除去・リサイズ済)

    ├ 4_3ylatermio/ ←3年後の姿の画像を保存(背景除去・リサイズ済)

    └ 4_dressmio/ ←ドレス姿の画像を保存(背景除去・リサイズ済)