見出し画像

コピー機学習方法による制御可能な画風Loraの作成の試み。

コピー機学習と言う手法があるそうです。

基本的な実行方法

いくつかの方法があるようですが、私のやり方だと。

1)最終的に画風Loraを適用するモデル(例:PonyXL)で適切な画像(以降:Pony産画像)を1枚取得する。

2)適用したい画風が出力されるモデル(例:Hassaku)を使って、Pony産画像をimg2imgで出力する(以降:Hassaku産画像

3)PonyXLを学習元モデルにして、Pony産画像を教師画像として、過学習となるLoraを作る(目安として、ランダムなシードで連続出力しても破綻がない同じ画像が出続けること)。過学習となっていることを確認したら、このLoraをPonyXLにマージする(以降:過学習PonyXL)

4)過学習PonyXLを学習モデルにして、Hassaku産画像を教師画像として、過学習Loraを作ると、Hassaku産画像の特徴だけが学習されたLoraができる。

私のやり方だと上手くいなかった方法として、

Pony産画像で過学習したPony過学習Loraと、Hassaku産画像で過学習したHassaku過学習Loraを

Pony過学習Loraをウェイト-1、Hassaku過学習Loraをウェイト1

でLoraマージする。

ことでも理屈上は同じ効果が望めるそうです(私はうまくいきませんでした)。

具体例

1)PonyXLで適当な1枚を出力する



2)上の画像をimg2imgに送って、HassakuXLをモデルにパラメーターやプロンプト調整していい感じの1枚を得る。



3)Ponyで作った画像しか出ないLoraを作ってPonyにマージする。


違うのも混じってますけど概ねOK。

4)マージしたモデルで2)の画像を過学習すると、絵柄の特徴だけが残る


学習とは、学習元のモデルに含まれていない特徴を新たに学習する仕組みです。この方法では、特定の特徴を持つ人物のみの情報で過学習されたモデルを用い、同じ特徴を共有する人物の別の画像を学習させることで、その画像が持つ相違点(今回の場合は画風)のみを学習させます。

でも、それって普通の学習と何が違うん?

この方法だと、そもそも、目的の画風を出力できるモデルがないとどうにもなりません。

じゃあ、最初からそのモデル使うか、モデルから出した画像で普通に学習すればええやんって思ってました。

(多分)画風Loraを作る時に、ちょっと手間を加えて、差を出したい人向け

具体例の所で見た画像にちょっと調整します

Before

After

特に、瞳の部分を中心に修正しました。

瞳の輪郭を実線で書き足して、瞳孔をしっかり一色で塗りつぶしてはっきりとさせる。ハイライトを書き足して、色調補正でコントラストを強調しました。

以降、同じ手順で作ったLoraの結果。




瞳だけコントラストが強め、実線で描かれた主張の強い瞳の輪郭と瞳孔と言う特徴はしっかり反映されているようです。

ただ、この時点は元画像1枚からできたLoraであるせいか、シンプルなプロンプトでも人体が破綻する画像がちょくちょくでます。

(こう言うの

なので、このLoraを元に教師画像を作り、その教師画像で通常通りの手順で画風Loraを作ります。

結果



瞳の部分の描写はしっかり引き継げていますね。

ただ色味はガッツリ濃い系になっていますので、そのあたりの改良の余地はありそうです。

最初の画風Loraの作りやすさと試行錯誤のしやさすがメリットかも?

過学習Loraはそんなに作るのに時間がかかりません。

4070 ti12GBでPonyなら学習率1e-03、batch4で300ステップも回せば過学習が起きますし、5分もかかりません(むしろ過学習すぎて完全崩壊もたまに起きるレベル)

モデルのマージはちょっと時間がかかりますが、それでもコーヒーでも決めてれば終わります。

なので試行回数は回しやすいです。

最初の画風Loraは1枚の画像から作れるので、ベースとなる画風が出るモデルが決まっていれば、それを加筆修正することで、モデル画像+αの要素を持つ画風Loraが作れることが最大のメリットであるような気がします。

あ、なんかスライダー系のLoraもこの手法を応用して作られるそうです。

液体系をスライダーで増減量できるLoraとかいずれ作りたいですね。

参考記事

(…このお二人、日本で画像生成AIの技術的な情報にあたろうとするとまずあたるな)(あたりまえ体操)


いいなと思ったら応援しよう!