高性能グラボをお持ちなら正則化画像なしで手軽にキャラ学習のためのwindows環境でのDreamBoothを用いたファインチューニングができるようguiの使い方・方法を解説します。
4~20枚程度の画像さえあれば、現状のモデルで再現できないキャラを自由に登場させることができます。
私はwebUI(1111版)を愛用していますが、1111版の拡張機能DBはまだ試せていないため、DBを簡単に実行できる機能が搭載(v1.6で実装された)NMKD Stable Diffusion GUIを使ってファインチューニングしていきます。
今回はnai.ckptをファインチューニングしていきます。
大まかな手順は次の通り
- NMKD Stable Diffusion GUIをインストール
- 学習させたいキャラの画像を4~20枚集める
- webUI(1111版)の学習事前準備機能を使い512×512サイズにする
- NMKD Stable Diffusion GUIに学習したいモデルを読ませる
- 学習元画像フォルダを指定
- NMKD DreamBooth GUIを実行(まずは6分で結果の分かる簡易版で効果を実感しましょう)
- 学習されたモデルをwebUI(1111版)のモデルフォルダにコピー
- 学習成果を楽しもう!!
記事通りに進めれば何ら迷うことはありません。
なおVRAM24GB以上のNVIDIA製GPUが必要です。
そこまでのVRAMが無い方は、VRAM8GBからできるLoRA(DreamBooth)がおすすめです。
追記:最適な設定値について10パターン程検証しました。
3090を8時間ぶん回して得られた成果をぜひご覧ください!!
0,とりあえず学習成果をお見せする
今回紹介する方法は、正規化画像が不要、つまりとある単語の概念そのものを上書きする方法です。キャラ名などを上書きすることで学習前と使い勝手を変えることなく使用できます。
例として錦木千束(リコリスリコイル)を再現します。
2022年夏アニメのキャラクターのため、学習元データセットが2021年までのNovelAIのモデルでは上手く再現できません。
今回は「nishikigi chisato」という単語の概念を上書きしたのでプロンプトは「nishikigi chisato,」のみとし、ネガティブプロンプトは無しでいきます。
目指すべき姿はこちら(公式キャラ紹介ページの姿)
未学習(ピュアなNovelAI)
ランダムシード512×768で4枚生成します。
まずは学習元となるNAIモデルに生成させてみます。
まあそら再現もクソもないわな。。。
学習6分のお試しコース(Low Quality)
この画像の意味は後で解説します。
NAIを250step、6分だけファインチューニングしました。
プロンプトは相変わらず「nishikigi chisato,」のみ。
かなり特徴が出ています。髪飾り、髪型、髪色、瞳色は言う事ありません。
制服は体の側面の灰色やリボンの青色がまだ学習不足のようですが、赤色ということは教えられたようです。
学習20分のそこそこコース(Medium Quality)
この設定で学習しました。(後で解説します)
制服の青リボンなど、上半身はおよそ問題ありません。
側面の灰色がまだ学習されていないようです。
あと、今回学習元画像を適当に正方形にしたため、頭が見切れる構図で学習されてしまったようです。これは教訓ですね。
たった数枚の学習元画像でいいからこそ、1枚1枚の品質にはこだわりましょう!
High Quality(40min),Very HIgh Quality(80min)はまだ試していません。
頭見切れたまま80分コースしなくてよかった~
1,学習元画像の準備 DreamBoothに必要な枚数は?
段ボールで高品質なキャラの絵を探しましょう。NAIと親和性高そうだし探しやすいですね。
pixivで人気順ソートするのもおすすめです。(無料でできます)
DreamBooth用 学習元画像の選び方
- 枚数は画像は4~20枚
- 量より品質が大事
- キャラ単体が描かれている
- バリエーションあるポーズ
- 多様な背景(白背景ばかりで学習させると、生成される画像も白背景ばかりになる)
次の3点に気をつけて良くない画像を避けましょう。
- 低画質(短辺512px以上ならOK)
- キャラがはっきりしない
- 奇妙なポーズ
要するに、学習元となる複数の画像でキャラだけが共通しており、背景やポーズなどはバラけているのが理想です。
学習元画像を正方形にする方法
今回は厳選した8枚を使うことにしました。モザイクはブログ用掲載用にかけたものです。
webUI(1111版)を起動して、学習タブの「画像の前処理」を選択します。
入力フォルダに画像8枚入ったフォルダを指定し、出力フォルダをわかりやすい名前で指定します。
「前処理開始」を押せば完了!
出力フォルダを見てみると画像サイズが512×512pxになっていることがわかります。
なお、「Auto focal point crop」にチェックを入れると顔中心に切り抜きます。こんな感じに。