コピー機LoRA学習の備忘録
少し前からLoRA学習をいろいろ試していますが、「コピー機学習」とはなんぞや、みたいなところにたどり着いたので、そのことについて備忘録を兼ねてまとめてみます。
そもそもの始まり
まず、はじめに参考にしたのはこの記事で、3Dキャラクターを使用してのLoRA学習についてのことが書いてありました。
この時点では、コピー機学習というものを知らず、記事をなぞって行くことだけを行っていました。
途中でコピー機学習についての言及があったものの、さらっとそういう物がある、程度で流していました。
この辺をよく理解していなかったため、何がどういう理屈で動いているのかの解像度が低く、単純に踏み台にした要素と教師データの要素の差分が取れる、といった理解でした。
しかし、そもそもの話LoRA学習においてどうやってその「要素」を学習しているのか、キャプションの意味などがわかっていないため、仮説と結果にかなりのズレが出ていました。
※記事にはちゃんとそのことも書いてたんですけど、頭に入ってなかった。
もう一回、記事を読み直す
そのため、もう一度上記の記事を読み直して、LoRA学習そのものの解像度をあげていきました。
・・・めっちゃ書いてあった。
これはいかん、と思いこのコピー機学習を一度試して見ないと、ということで、下記の記事をほぼ同じ手順でやってみました。
コピー機学習を実践
まず、結果としては、こんな感じです。
おおよそ、期待通りといった感じです。
もう少し太くてもよかったかな、というところはありますが、それでもLoRAを適用させるとアウトラインがついています。
実践手順としては元記事ほぼそのままで、元にした記事と違い3Dモデルを使用しましたが、アウトラインをつけるつけないの2種類の画像を用意しました。
まずは画像AをAnyLoRAモデルで過学習させたLoRAを作成し、AnyLoRAモデルとマージしたモデルを作成しました。
このモデルで、画像Bを使ってLoRA学習を行った結果が、最初にあげた画像となります。
結論
このコピー機LoRAがある程度頭に入ったので、最初にあげた記事の理解でふわっとしてたところがある程度かたまり、もちもち程度にはなったと思います。
まとめると
なぜ踏み台モデルと教師画像の差分が学習されるのか、というのはコピー機学習の手法の応用。
そもそもLoRA学習自体が教師画像とキャプションから生成された画像の差分を学習している。
通常であれば、生成画像と教師画像には学習させたい要素以外の要素も含まれるため、正則化画像などを使用して調整はできるものの、特定の要素”だけ”学習させるのは難しかった?
そこで、モデル側をどんなプロンプトが指定されようと、特定の画像しか生成しないモデルを準することで、差分の制御が行いやすい方法が考案される。これがコピー機学習。
3Dモデルを教師画像にした際に、3Dモデルの3Dっぽさを除きたいのであれば、コピー機学習を応用して、教師画像と似た3Dっぽい画像ばかりを生成するモデルで学習させれば良い。
そのモデルが生成する3Dっぽい画像と、教師画像の差分が学習される。
といった、感じに理解ができるようになりました。
この理解をもとに、今度こそジト目キャラのLoRAを・・・
※既にCivitaiにあるっぽいけど、自作したい・・・
この記事が気に入ったらサポートをしてみませんか?