「Dream Booth」とは?使い方をマスターして追加学習しよう!

Stable Diffusion

Stable Diffusion で色々な絵を描いていると、このプロンプトではこの絵が出てきてくれたら楽なのに!といったことはありませんか?

Seed値を固定してしまうと、他の構図に上手くできなかったりと、同じ顔で色々な絵を描くのは大変ですよね。

今回はそんな人向けに画像を学習することで、同じ顔を出す方法を説明します。

スポンサーリンク

Dream Boothとは?

Dream Boothは学習方法の一つです。

低品質な画像が数枚でも、お手軽に高画質・高再現性を実現できます。

既存のモデルに学習データを追加させるイメージなので、もともとのモデルに対して、自分の構想とプロンプトのずれが少なくなります。

ただしVRAMの容量が12GB以上必要と高価なビデオカードが必要になるのがネックです。

また実行するためにインストールしなければいけないファイルや学習データの容量が多く、容量を圧迫してしまうのもネックです。

Stable Diffusionの画像生成を最速で学びたいあなたへ!
  • Stable Diffusionの基礎を2時間でマスター!
  • 高スペックPCがない方向けに徹底解説。
  • ControlNetなど、必須級の拡張機能も網羅。
  • 今話題のSDXL、AI動画生成も。
  • 特典として、大人気「おすすめ拡張機能・モデル解説」「プロンプト大全」つき!
\このボタン限定!70%オフキャンペーン実施中!/
70%オフキャンペーン実施中!/

Dream Boothの導入方法

stable diffusionはgoogle colabで使用する方法もありますが、今回はstable diffusion-webUI、ローカルにインストールする方法について説明します。

「DreamBooth」をインストールするために、「Extensions」タブからAvailableを開きます。

拡張機能リストが表示出来たらその中から「Dreambooth tab, training」を選択し、「Install」ボタンを押します。

次にInstalledでsd_dreambooth_extensionがインストールされていることを確認して、「Apply and restart UI」 ボタンをクリックして適用して再起動します。

再起動して画面のタブに「Dreambooth」タブが出来ていれば準備完了です。

もし項目が出てきていないときは再起動ができておらず反映がされていないか、インストール途中でエラーになっている可能性がありますので、再起動とコマンドプロンプトの確認をしてください。

Verによってはインストールが上手くいかないこともあるので、自身のPythonのVerも確認してみてください。

またインストールは上手くいったのに「Dreambooth」タブ内で、「Train」のボタンが出ていない場合は「webui-user.bat」を下記に変更して自動インストールをしてください。

webui-user.bat

@echo off
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--xformers --no-half-vae
set "TORCH_COMMAND=pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116"
set "REQS_FILE=.\extensions\sd_dreambooth_extension\requirements.txt"
call webui.bat
romptn Q&Aで画像生成の悩みを解決しよう!
  • Stable Diffusionのエラーが解決しない
  • 画像生成がうまくできない
  • おすすめのモデルが知りたい
など、AIに関するお悩みがあれば投稿してみてください。
詳しい人が解決してくれるかもしれません。

Dream Boothでの学習方法

実際に学習を実行してみます。

手順1:Dream Boothを作成する

今回は「test」という名前で作成します。

「Dreambooth」の「Model」タブの中の「Create」を選択します。

「Name」には学習して生成するモデル名になります。

この時に保存したモデル名を後で、絵を描く時のモデルで選択します。

「ModelType」には、VAEのタイプを選択します。

「SourceCheckpoint」には、自分で使いたいckptファイルを選択します。

※Dreamboothでは追加学習は基本的に苦手なため、一度Dreamboothで学習して作成したckptファイルは選ばないようにしましょう。

初めはからのモデルを作成するだけなので、自身で用意した画像フォルダなどは選択しません。

準備が出来たら、「CreateModel」を押します。

手順2:トレーニング方法を設定する

「Model」タブの「Select」タブにModelに先ほど作成した「test」を選択します。

「Concepts」タブの「Instance Images」タブを選択します。

「Directory」には、学習用に用意したフォルダを選択します。

※用意したフォルダ内が画像データだけであることを確認して選択してください。エラー表示などがないまま、うまく学習できないことがあります。

「Prompt」には、トレーニング画像を説明するプロンプトを記述します(xxxが学校にいる画像、yyyが走っている画像など具体的に描くと良い)

「Instance Token」には学習内容を呼び出すための識別子。モデルが理解できない(記憶されていない)文字列を入れる。

「Class Token」には学習内容の大まかな説明を記載する(Boy/Girlやdog,cat,buildingなど)

次に「Concepts」タブの「ClassImages」タブを選択します。

「Prompt」には、クラスプロンプトを記述します(女の子が学校にいる画像、男の子が走っている画像などInstancePromptを抽象化するイメージで記述)

「Negative Prompt」には、除外したいプロンプトを記述します。

手順3:学習を実行する

準備が出来たら「Train」を押して、学習を開始します。

学習中は右下のような画像が出ます。

完了すると右下に「Training Finished」と出力されます。

実際に絵を出力

今回は学習データに「王女様」の画像を使用します。

画像枚数は12枚、全て512×512で学習させます。

そして「testqueen」を今回のキーワードにします。

プロンプト

(best quality, masterpiece, 16k, ultra detailed, beautiful skin, professional lighting)
A girl, testqueen

ネガティブプロンプト

worst quality, low quality, blurry,
flat color, flat shading, retro style, poor quality, bad face,
bad anatomy, bad hands, missing arms, text error, missing fingers, jpeg artifacts, long neck, signature, watermark, blurry, fisheye lens, animal, deformed mutated disfigured, mutated hands, missing hands, extra hands, liquid hands, poorly drawn hands, mutated fingers, bad fingers, extra fingers, liquid fingers, poorly drawn fingers, bad legs, missing legs, extra legs, bad arms, extra arms, long torso, thick thighs, partial head, bad face, partial face, bad eyebrows,
ugly, disfigured,

出力結果

特にgirl以外の指定はしていませんが、学習元になった画像に近いキャラが生成されました。

出力結果

元画像

比較すると絵柄だけでなく顔や体形が学習元と同じになっていることが分かります。

Dream Boothのおすすめ設定

学習の時間や実行有無はPCのスペック(メモリやグラボ)に依存するため、VRAM12GBのGeForceRTX3060で可能だった設定を記述します。

そこから自身のPCスペックに合わせて変更してください。

名前説明
Batch Size1ビデオカードのスペックが高ければ上げても良いです
Class Batch Size8学習効果の確認するのには高い方がいいが、高すぎると落ちます。
Learning Rate0.000002~0.000004学習の深度値なので高い方が良いですが、高すぎると落ちます。

まとめ

いかがでしたでしょうか?

Dream Booth」の使い方について解説してきました。

今回のポイントをまとめると、以下のようになります。

  • Dreamboothはもともとのモデルに学習データを追加学習させて新しいモデルを作成する
  • 一度学習したモデルには追加学習できない
  • PCのスペック(メモリやグラボ)に合わせて設定値を変更する必要がある

同じ顔や同じ背景のままちょっとだけ画像を変更するのはとても難しいです。

しかし今回の追加学習を使用すれば、理想の画像を簡単に生成できるようになります。

是非今回の記事を参考に、素晴らしい絵をたくさん描いてみてください!

romptn Q&Aで画像生成の悩みを解決しよう!
  • Stable Diffusionのエラーが解決しない
  • 画像生成がうまくできない
  • おすすめのモデルが知りたい
など、AIに関するお悩みがあれば投稿してみてください。
詳しい人が解決してくれるかもしれません。