前にStableDiffusion追加学習のサーベイを書いたが、次は実際に追加学習やってみよう!というわけで、試行錯誤の記録を残しておきたい。
まず、現状で世に出回ってる追加学習の手段をあらためて整理する。
・Textual-inversion
・Dreambooth
・Waifu Diffusion式追加学習
・LambdaLabs式追加学習(ポケモン・ファインチューン)
An Image is Worth One Word: Personalizing Text-to-Image Generation using Textual Inversion
これは、AIに”新しい単語”(例えばS*)を与えて、「この単語はこういう意味ですよ」という感じで3~5枚の画像を見せて、覚えさせるみたいなもんだ。
Textual-inversion(以下TI)はAIモデルそのものは全く変更しない。ごく小さいサイズの埋め込みファイル(プラグインみたいなもん)が生成されるだけらしい。つまり、AIはなにかを追加で学習してるわけではない。単に「”新しい単語”(S*)ってこういう雰囲気の事よね」という感じで既存の学習内容の範囲で表現しようとするだけらしい。
この手法は学習に必要なVRAMが少ないのがメリットだ。birdman氏は「neomimic」という名前で、無料版のGoogle ColabでTIの学習を実行できるColabノートブックを公開している。つまり、VRAM16GB未満で実行できるわけだ。
https://birdmanikioishota.blog.fc2.com/blog-entry-10.html
TIは色んな情報を見てる限りはそれほどいい結果が出ないように見えていたが、こちらでは少女終末旅行のユーリを学習させて、かなりいい感じの結果が出ている。→
https://twitter.com/kaigyoPG/status/1572866511202816000
Dreambooth(以下DB)は「あなたの愛犬が生成した画像に登場しまくります!」みたいな売り込みだ。