1.Colabで768版のStable Diffusion2.0でDreamBoothするまとめ
・解像度が768 x 768のStable Diffusion 2.0もhuggingfaceでDreamBooth対応
・原理的には無料版ColabでDreamBoothで好きなキャラを取りこみ可能に
・過学習なのか学習が足りないかの判断は画像を見て判断するしかなさそう
2.Stable Diffusion2.0のvモデルでDreamBooth
アイキャッチ画像はstable diffusion2.0のvモデルにDreamBooth拡張で生成したスタジオジブリの風の谷のナウシカ
2022年12月3日追記:
苦戦しましたが、Stable Diffusion 2.0のVモデル(解像度768 x 768版)のDreamBooth拡張を無料版Colabで動かすNoteBookをアップしました。
一昨日、DreamBoothで拡張してみたStable Diffusion 2.0はBaseモデルです。
つまり画像解像度は512 x 512で、且つ追加学習用のBaseとなるモデルであり、完全体とは言い難いモデルです。
一昨日時点ではBaseモデルしかDreamBooth拡張に対応していなかったのですが、相変わらずの開発速度で、昨日、解像度が768 x 768のStable Diffusion 2.0、つまりvモデルの方もhuggingface/diffusersでDreamBoothに対応したと言うお話を読んだので、早速、試してみました。
以下、その際に気づいたコツなどです。
NVIDIA Tesla T4でDreamBooth可能
つまり原理的には無料版ColabでDreamBooth可能です。
ただし、–learning_rate=1e-6で4000ステップ学習させるのに丸一日かかっています。
そして、24時間経過してしまったためか、問答無用にRuntimeを削除されて600ステップ分のcheckpointを失いました。
何で従量課金にしたのに勝手にRuntimeを消す仕様をそのままにしておくんじゃーい!と大変怒って速攻でColab pro+の定期購入をキャンセルしておりますので皆様もご注意ください。
まだ試してませんが無料版だと24時間の連続稼働は出来ないはずなのでlearning_rateをもう少し上げて時間短縮を図る等の工夫が必要になると思います。
また、A100ではライブラリ関係と思われるエラーがでて動かす事がまだ出来ませんでした。
私が使ったColabのリンクを張っておこうと思ったところ、何らかの理由でエラーが出るようになってしまいました。本記事アップ後に修正し、別記事で修正版Colabをアップしています。
過学習なのか学習が足りないかの判断の難しさ
Stable Diffusion 2.0はStable Diffusion 1.5に比べると過学習しにくくなっていると言う説があります。
画像がX枚だったら大体いくつくらいで学習を止めるのが良い、的なベストプラクティスや目安が欲しいという気持ちがありますが、少なくとも私の知る限り、汎用的に判断に使える目安や数値はまだ模索されている段階と思います。
モデル、学習しようとしているスタイルの多様性、与える画像の枚数等によって話が全然違ってきてしまうためです。
そのため、過学習なのか学習が足りないかの判断は画像を見て判断するしかなく、これが非常に難しいです。
ちょっとしたコツなのですが、判断しやすい画像と判断しにくい画像があるのでシードとプロンプトを固定して複数画像を並べてみた方が良いです。
例えば以下のような画像で判断しようとすると学習が進んでるんだか止まってるんだか非常にわかりにくいです。
以下は比較的わかりやすい画像
Baseモデルで実験した際に知った目安から、2800くらいでそろそろかな、と思って以降は200単位でcheckpointを吐き出すようにし、3400(2800+600)時点の出力画像が以下です。
前髪の部分が歪んで人工物が映り込み始めているように見えるので、おそらく過学習になり始めているのではないかと思うのですが、前述のように後半のcheckpointを失ったため、完全に確かめる事はまだ出来ていません。
DreamBoothはマルチクラストレーニングなど、新しい手法が考案されているため、今後もチューニングを追及してみようと思っています。
以下、割と出来が良いと思えたナウシカ画像を数枚お楽しみください。Baseモデルで感じた均一性はほぼ感じないですね。それにしても最初に作成したDreamBooth拡張のナウシカと比べるとモデルの能力も私のスキルもだいぶ向上してますね。
3.Colabで768版のStable Diffusion2.0でDreamBoothする関連リンク
1)github.com
huggingface/diffusers/examples/dreambooth/