ゲームのスクリーンショットからLoraを作る試行メモ 第1回

技術

注意書き

  • 作成したLoraの配布はしません。
  • 当記事を参考にして生じたあらゆる損害について責任を負いません。

前書き

キャラLoraを作る練習として選んだキャラがあまりに難しくて面白いので途中からだけど適当に記録。今回はすべて敗北記録だから真似せずアンチパターンとして読めよ。あと記憶と残ってたメモを頼りに書いてるだけだから、生成画像はほとんど無い。次回以降はちょっと貼るかも。

ネガティブプロンプトは特に明記されてなければ常時EasyNegativeつけてるぐらい。

ベースモデルはずっとMeinaHentaiV4を指定してたが、これは明らかな間違い。Lora作るときは使いたいモデルではなく差分をきれいに取れるモデルを使わなければならないはず。

衣服着脱可能を目指しマルゼン式で学習させて敗北

着衣脱衣が選択できプロンプトで服を着せれるようにしたい。着衣時は私服を着せたい。

キャプションはマルゼン式。AdamWの400step。教師画像はこんな感じのをスクリーンショットから用意した。ベースモデルはMeinaHentaiV4を指定。

キャプション例

fe_huran, 1girl, solo, looking at viewer, simple background, shirt, thighhighs, long sleeves, hat, white background, bow, standing, jacket, full body, boots, shorts, black thighhighs, hand on hip, transparent background, brown footwear, pink jacket, tachi-e, brown shorts

プロンプト例

<fe_huran:1>, 1 girl, upper body, shirt, thighhighs, long sleeves, hat, bow, standing, jacket, upper body, boots, shorts, black thighhighs, brown footwear, pink jacket, brown shorts

出力画像は紛失した。まあ以下のような感じで敗北。

  • 顔周りの再現はOK
  • ウェイトによらず服が全く再現されない
  • ウェイトを上げると元の絵柄が強く出すぎる
  • ウェイトを下げると服と髪が再現できてない
  • 赤入りおさげがでないか、めちゃくちゃに表示崩れが起きる

キャプションを少し丁寧にしてstep数を上げて敗北

Lora作成の作業手順そのものは理解した。明らかにキャプションがカスだったのと、step数が低かったのでそれを修正する。

教師画像は前項と同様で、step数を800になるよう調整。服部分のキャプションを次のように変更。できるだけ色情報や詳細アクセサリー情報を付与、表現を全キャプションで統一することを意識して。

キャプション 服部分だけ抜粋

red jucket, white inner shirt, brown plaid shorts, hat with bow, black thighhighs, brown boots

プロンプト例

<fe_huran:1>, 1 girl, upper body, red jucket, white inner shirt, brown plaid shorts, hat with bow, black thighhighs, brown boots, upper body

出力画像は紛失した。まあ以下のような感じで敗北。

  • 顔周りの再現はOK
  • 服の再現度は少し上がったがまだ悪い
  • ウェイトを上げると元の絵柄が強く出すぎる
  • ウェイトを下げると服と髪が再現できてない
  • 赤入りおさげがでないか、めちゃくちゃに表示崩れが起きる

衣服着脱を諦め私服ごと学習させて敗北

服の再現度が低いのは別キャプションで指定しているからなのか、他の設定値が悪いのか。とりあえず傾向を理解するために服ごとまとめてそのキャラであるという学ばせ方を試す。

教師画像は変わらず10枚、AdamWの800step。服をセットで学習させるために次のようなキャプションにした。引き続きマルゼン式。

キャプション例

fe_huran, 1girl, solo, looking at viewer, simple background, white background, standing, full body, hand on hip, transparent background

出力画像は紛失した。まあ以下のような感じで敗北。

  • 顔周りの再現はOK
  • 服の再現度は更に上がった。しかしまだ悪い。
  • ウェイトを上げると元の絵柄が強く出すぎる
  • ウェイトを下げると服と髪が再現できてない
  • 赤入りおさげがでないか、めちゃくちゃに表示崩れが起きる

衣服以外の再現を目指し教師画像を用意しなおして敗北

この辺でやろうとしていることの難しさに気づく。

  • こいつの赤入りおさげ、一般的じゃなさ過ぎてキャプションむずすぎ
  • 教師画像の私服とおさげに入ってる赤の色同じなのダメだな
  • 特徴的なキャラと特徴的な衣服を同時に出力させるの実はルナティック?

ひとまず衣服は置いといて、衣服以外の再現を試みる。引き続きAdamWの800step。

教師画像をこんな感じで用意しなおした。最後見切れてるのは適当に加工して作った全裸。

キャプション例

fe_huran, 1girl, solo, long hair, looking at viewer, simple background, white background, navel, jewelry, closed mouth, swimsuit, bikini, cowboy shot, bracelet, halterneck, transparent background, criss-cross halter, red sarong, bare arms, bare shoulders, brown chest bikini, red ribbon bikini

(後から見返すとキャプションつけるのは慣れてきてるけど、重複箇所の排除がちゃんとできていませんねぇ)

プロンプト例

Positive: 
 <lora:fe_huran:0.5>, masterpiece, upper body, gray hair, yellow eyes

Negative: 
EasyNegative, (two braids: 30)

生成画像

正直自分で追加加工すれば済む範囲に近づいているが、それは趣旨に反するのでパス。

敗北ポイント

  • ウェイトを上げると元の絵柄が強く出すぎる
  • ウェイトを下げると赤入りおさげになってない
  • ウェイトを下げるとsingle braidではなくtwo braidsが出る
  • おさげに赤を入れるためにプロンプトを追加すると、プロンプト次第だがリボンが舞うか崩れる
  • single braid with red ribbon interwoven and tied with a ribbon
  • single braid colored in alternating red and gray

作業を一休みしてじっくり再調査

前項キャプションのように髪や顔情報をfe_huranにねじ込むマルゼン式で学習させたうえでも、追加で詳細プロンプトを入れた方が綺麗に出るように感じる。これはfe_huranというトリガーワードにちゃんと特徴をねじ込みきれてないことを意味するのではないか。

前知識として持っていたが、Loraはキャプションに書かれたことを学習しないわけではない。厳密には違うけど、イメージとしてはベースモデルにそのキャプションを流した時に出るものと教師画像にあるそのキャプションっぽいものとの差分を追加で学習するみたいな感覚でとらえればいいのか?

例えば”red hair”といっても色々な赤がある。通常”red hair”というプロンプトを使ったら原色寄りの赤髪が出るが、教師画像としてマゼンタ髪を用意して”red hair”というキャプションで学習させたLoraを使ったうえで”red hair”というプロンプトを入れるとマゼンタ色が出るはず。ならば追加で特徴を学習させたいだけなら、キャプションにすべての特徴を突っ込んで、プロンプトですべての特徴を再掲した方が精度が上がるんじゃねえのか?

そこで改めて調査して見つけた記事がこれ。

Today’s recommend is LECO|エマノン (note.com)

キャラクターLoRAには一つのジレンマがある。

学習させたい要素をキャプショニングから消す:Promptに何も入力せずともキャラクターが再現できるが、要素が残したキャプションで吸収しきれずに再現性が下がる

学習させたい要素をキャプショニングに残す:再現性が上がるがPromptにすべてのキャプションを入力しなければならない

そういうことですね。他にも同氏のnoteは全部読んだ方がいいです。

クレジット

本記事ではMeina様が制作したモデルであるMeinaHentaiV4を利用しております。

Meina Creator Profile | Civitai

次回

“Loraは指定モデルと教師画像の差分を取る”という基本的な性質に注目して色々やる。

ゲームのスクリーンショットからLoraを作る試行メモ 第2回 | naokam Tech & Game

コメント

タイトルとURLをコピーしました