地方競馬から中央競馬に挑みそのレベル差を物ともせず並み居る強豪に勝利して大ブームを起こしたすごい馬なんだよ
というわけではなく
新しいコンテンツで英語圏では未展開ということで当然Stable Diffusionは知らない*1オグリキャップというウマ
前回の記事で触れたいらすとやでのファインチューニングはStyle(画風)のファインチューニング
今回はsubject(主題)、Object(物体)のファインチューニングでそれそのものを学習させるのが意図
やり方ガイド
使ってるGoogleColabノート
https://colab.research.google.com/drive/1MggyUS5BWyNdoXpzGkroKgVoKlqJm7vI?usp=sharing
ここにもガイドを細かく書かれてるのでよく読む
ファインチューニングはVRAM20GB推奨ということでローカルでは動かない
Colabで割り当てられやすいGPUも20GBに満たないがそれ用の調整についてもノート内にかかれている
用意する画像の基準
- 512x512サイズ
- 文字やエフェクトなど学習対象のオグリキャップ以外のノイズになるものはなるべく入れない
- 縦を方向を合わせる
- 画像の枚数は3~5個
- Subjectは同じモチーフを別角度で描写したもの
- Styleは配色と画風が統一されたもの
基準は推奨ってことなんで守らずにいろんなパラメータにして遊べ
画像サイズはでかいと動かなくなるのでちゃんと合わせるのが最低限ぐらいで大丈夫
きれいに出力されるかは保証しない
好きな漫画家の漫画を学ばせて画風を再現した絵を書いてもらおうとか思っても俺には無理だった
コマ割りと吹き出しが学習には邪魔になる
元のモデルデータも透かし入り画像は学習させていない
AI学習禁止なんて言葉もTwitterにトレンド入りしたりしたが出来上がりの画像にサインを入れるって事は結構な抑止効果にはなる
学習させたデータはPinterestでオグリキャップで検索したら出てくる上記の絵に構図が似たものとか素行の悪いデータを使用
別の構図のも使ったしセリフありやデフォルメバージョンも使った
枚数も多ければ多いほうが学習として質が良くなるというわけでもないが推奨量の何倍も使ったりもした
チューニングベース
元となる学習データを自分で用意したデータを用いて尖らせていくのがファインチューニングなのでベースの違いで結果も当然違う
stable-diffusion-v-1-4-original
基本のやつ(以下SD14)とfull-ema2(以下fullema)種類がある
実際どう違うのかは今度調べる*2
TrinArtと呼ばれるアニメ漫画特化したファインチューニング済みモデル
今後もっとモデルのckptファイルは色々出てくると思うのでこの辺を色々変えてみたら面白くなる
パラメーター
よくわからんがガイド参照
v1-finetune.yamlをいじって色々変えてみるといい
every_n_train_steps: 5000
batch_frequency: 5000
学習したデータとそのデータで作成された画像の出力間隔 5000step
デフォルト500だが頻度が高すぎるのでこれ
推奨のstep数は5~6000で十分という話ではあったがとりあえずいっぱいステップ刻む
initializer_words: ["Oguri Cap","OguriCap","Uma Musume","UmaMusume","Subject"]
複数の語句を使って学習する場合の変更
色んな要素こうするといいらしいが、それによって何が変わるのかわからない
推奨は一つの語句
num_vectors_per_token: 8
何か知らないがこれを8にすると早くなるらしい
batch_size: 1
num_workers: 16
Google Colab Pro+でもVRAM20GB以上のGPUはなかなか割り当てられないのでバッチザイズは2から1に減らしてメモリー消費を抑える必要がある
結果
注意としては使う画像の枚数やチューナーのパラメーターとか正確に条件を揃えて学習させたわけではない
あくまでどれだけオグリキャップっぽいのが出てくるかという参考に崩れがひどくなくてオグリキャップ要素があると感じたものをより抜きで
TrinArtをファインチューニングで15000
— NEXTAltair (@NEXTAltair) 2022年9月2日
タマモキャップに pic.twitter.com/CBWcIPaMv6
Step35000
— NEXTAltair (@NEXTAltair) 2022年9月2日
TrinArt
目にハイライト入れればいける?
腕が折れてるけど pic.twitter.com/zDYDcaml1m
Step45000
— NEXTAltair (@NEXTAltair) 2022年9月2日
いい線いってる pic.twitter.com/SHNaJEfWhl
SDv1.4<ー> trinArt
— NEXTAltair (@NEXTAltair) 2022年9月3日
80000 pic.twitter.com/q4DNdMf91S
貴様はオグリキャップではない!
勝手に生み出しといてガンダム判定機の如くキレてる理不尽さ
が、自分の手で書こうとしてもここまでオグリキャップに寄せられるかは自信ない
人間にとっては単純な構造の母の形見*3の髪飾りはAIには解釈しにくいのかヘアスタイルと一体化してたり
トレセンの制服と勝負服両方を食わせた結果勝負服の色合いが変わったり
狙いど真ん中のセッティングはなかなか出ない
stepを見ると推奨通り回数を増やせばいい結果になるとは限らない
気に入ってるのがあればそのステップ数で作られたチェックポイントのptファイルを統合(マージ)して更に狙いを絞ることもできるみたいだ
まだ試してないからその認識で合ってるかは知らない
*1:laion-aesthetic-6pls: images: 12,096,835 rows SDはここで検索できる画像の0.5%を学習させている
*2:誰か教えてください
*3:バリバリ元気です。