DreamBooth(ドリームブース)学習

Dreamboothガイド

DreamBooth学習は、特定の人や物を、AI画像生成モデルに覚えさせる学習方法で、Stable Diffusionなどの既存モデルに対して、たった数枚の写真(通常3~30枚)を使って、対象の外見や特徴を学習させることができます。
これにより、その人・その物を自由なポーズやシーンで生成可能になります。

この記事では、Kohya_ssなどのツールで使用できる、DreamBoothについて、解説しています。

目次

DreamBoothでできること

できること具体例
人物やキャラクターの再現ペット、コスプレ、自作キャラなどを忠実に生成できるようになる
少量データで学習可能数枚の写真で特定の対象を覚えさせる(数十万画像の学習不要)
背景や衣装のバリエーション生成例:「自分のキャラが宇宙で戦う」「猫がスーツを着る」など
商品写真の応用自作の雑貨や衣類を、さまざまなシーンで画像化してPR可能
アートスタイル適用覚えさせた対象を、浮世絵風や油絵風などにも変換できる

DreamBoothの特徴

項目内容
モデルサイズbaseモデル(例:v1-5、SDXL)に上書きする形
学習対象特定の人・キャラ・物体など
学習画像数通常3〜30枚(最適10〜20枚程度)
学習時間環境やパラメータによるが、RunPodで1〜2時間前後
モデル保存形式.ckpt.safetensors、またはLoRA形式でも保存可能
キャプション主に「クラス名」と「特定名詞」(例:a photo of zwx dog)が必要

よくある使い方例

  • クリエイター:自作キャラをAIで描いてもらう
  • コスプレイヤー:自分の姿を元に別ポーズ生成
  • 企業:商品やキャラのプロモ素材量産
  • 個人:ペットのさまざまな表情や場所での写真風画像生成

DreamBooth vs LoRAの違い(ざっくり)

DreamBoothとLoRAは「分類としては同じ“ファインチューニング(追加学習)手法”の一種」ですが、仕組みや特徴は大きく異なります。したがって、「同じ分類に入るが、用途や目的・重さ・適用方法は別」と考えるのが正確です。LoRAはDreamBoothの代替・簡易版として登場したものですが、今ではLoRAのほうが主流になりつつあります。

比較項目DreamBoothLoRA(Low-Rank Adaptation)
モデル本体元のモデルに直接上書きする元のモデルはそのまま、追加学習ファイルだけを使う
ファイルサイズ数GB以上(通常3〜8GB)数MB〜100MB前後(軽量)
学習対象人物・キャラ・物体の「再現性重視スタイル・表情・ポーズなど「調整性重視
環境負荷(VRAM)高い(16GB以上推奨)軽量(8GBでも可能)
再利用のしやすさ別モデルとの併用が難しい複数LoRAの組み合わせが簡単
学習方法単体画像でも可・画像数は多めキャプション付き画像推奨・構造も必要
推論時の自由度出力が固定されがち(狙ったキャラしか出ない)出力の調整がしやすい(強さを調整できる)

DreamBoothでの学習

  • 自分の顔写真10枚を使って、「自分」を完全再現するモデルを作る
    → その人の顔・髪型・肌色などをモデルに埋め込むような感覚。
    → 生成される画像は、どれも「自分の顔」になる。

LoRAでの学習

  • 自分のキャラ絵20枚程を使って「そのキャラの絵柄・特徴・雰囲気」を覚えさせる
    → いろんなポーズや表情で出力できるが、他キャラにも適用可能。
    weight=0.7 などで「混ぜる」ことが可能。

使い分けのコツ

目的おすすめ
自分の顔やペットを忠実に再現したいDreamBooth
キャラの絵柄や表情、服装のパターンを自由に出したいLoRA
軽量で複数併用したいLoRA
1つのモデルに全て詰め込みたいDreamBooth(ただし容量が重い)

たとえば「キャラクターを覚えさせたい」場合

ポイント内容
ポーズのバリエーション正面・横・後ろ・斜めなど 10〜20パターン
表情のバリエーション無表情・笑顔・怒り・驚きなど
衣装・色違いも可学習用として許容される(ただしLoRAは統一した方が安定)
背景は白・透過が理想背景ノイズを減らしてモデルがキャラに集中しやすくなる
キャプション(txt)も忘れずにa photo of sks1 girl のように「トリガーワード+種別」

→ これらを合わせて最低10枚、できれば20〜30枚が理想的です。

DreamBoothの為のデータセット

フォルダ構成(例)

/dataset/
├── char1/
│   ├── img001.png
│   ├── img002.png
│   ├── img003.png
│   ├── img001.txt  ← キャプション(LoRAで使用)
│   ├── ...
  • 画像ファイル(.png / .jpg)
  • 可能ならキャプション(.txt)

この構成は LoRAでもDreamBoothでも使えます

項目LoRADreamBooth
キャプション必須?ほぼ必須(タグ精度に関わる)なくてもOK*トリガーワードとクラスで十分なことも)
使う語句複数タグ(1girl, hat, smile…)a photo of sks1 character など簡潔な構文
画像の精度背景あっても可できるだけクリーン(白背景推奨)
正則化画像(optional)通常不要DreamBoothでは「学習の偏りを防ぐため」に正則化画像が必要な場合もある(後述)

トリガーワード(固有トークン)

トリガーワード(固有トークン) は、絶対に必要というわけではありませんが、非常に強く推奨される要素です。

目的説明
他のデータと混同しないようにするため例えば「girl」だけだと、世の中の「女の子」の平均像になってしまう。sks1を使えば、「この子=sks1」という固有キャラとして覚えさせられる。
画像生成時に呼び出すトリガーになる学習した後は、sks1をプロンプトに入れることで、そのキャラを出すことができる。
キャラの出力精度が大きく変わる固有トークンがあるだけで再現度・安定性が格段に上がる。

LoRAでもDreamBoothでも「ほぼ必須」と考えるとよい

トリガーワードがなければ「何を学習したか」がぼやけてしまい、
出力もランダム気味になりやすいです。

LoRAの場合

  • 必要性:多くの場合必要。ただし、既存のタグ(例:1girl, long hair, smileなど)だけで出せる場合は省略も可。
  • 目的:学習した内容を特定のキーワードで呼び出せるようにする。
    • sks1 girl, mychar, originalcat など、自分で決める。
    • captionファイル(txt)やtrain_data.tomlなどに含めておく。

DreamBoothの場合

  • 必要性:基本的に「必須」です。
  • 目的:全く新しいキャラクターやスタイルを、他の一般的なプロンプトから区別するため。
    • photo of sks1 person, painting of sks1 dogなど。
    • 「sks1」はあくまで一例で、自分で指定可能(abcxyz, mylolaなどでもOK)。
    • ただし 「sks1」などの無意味な単語にしておくと他と被らず安全 です。

トリガーワードの命名ポイント

  • 既存のタグ(Danbooru、Prompt)と被らない名前にするのがコツ。
  • 半角英数字で3〜6文字程度が一般的。
  • 学習データの全キャプションに入れておくことが望ましい。

どんな文字列でもOK!

  • sks1, abc123, sakasa01 など、他に使われていない文字列なら何でも大丈夫。
  • できれば 3~6文字+数字 にすると、既存トークンと被りづらい。
  • 日本語は使わない方が良い(トークナイザーがうまく扱えません)

キャプション例(LoRA)

a photo of sks1 girl, short brown hair, school uniform, smiling

→ この「sks1」が「この画像はこのキャラのもの」とAIに伝えるカギになります。

生成時に「トリガーワード+補足プロンプト」で構成。
例:sks1 girl in school uniform, masterpiece, 1girl, smile など。

DreamBooth特有の「正則化画像」とは?

  • 正則化(regularization)画像とは、一般的な同じクラスの画像のこと。
    • 例:あなたのキャラが「anime girl」なら、他の一般的な「anime girl」の画像を使う。
  • 目的:AIが「sks1 = anime girl」と覚えてしまわないよう、カテゴリの平均像を維持するために使います。

| フォルダ例(Kohya GUI用) |

/dataset
  /my_character
    image1.png(自作キャラ)
    image2.png
    ...
  /regularization
    /person_ddim
      person1.png(一般的な「anime girl」画像など)
      person2.png
      ...

※学習時には、正則化画像のフォルダパスを指定します

instance:自分のキャラ画像
regularization:正則化用の一般画像(枚数=instanceと同じが理想)
caption不要でも学習可能(Kohya GUIの--caption_extensionなしでOK)

  • --prior_loss_weight--class_data_dir を使う場合に使用
  • ➡ ただし最近のLoRAベースのDreamBoothでは 正則化画像なしでも十分うまくいくケースが多い

LoRA / DreamBooth 共通の構成ルール

  • 学習用画像: 自キャラ画像(LoRAもDreamBoothも同様)
  • 正則化画像: DreamBooth時のみ必要(LoRAではオプション)
  • class name としてフォルダ名を揃える必要あり(例:sks1anime_512

Kohya GUIおすすめ学習パラメータ(LoRA or DreamBooth)

項目8GB (低VRAM)12〜16GB (中VRAM)24GB以上 (高VRAM)
resolution512512〜640640〜768
batch_size12〜44〜8
max_train_steps1000〜20002000〜40003000〜6000
learning_rate1e-41e-4〜5e-55e-5
network_dim(Rank)4〜88〜3232〜64
network_alphaRankと同じか半分同じ同じ
save_every_n_epochs11〜21〜2
optimizer_typeAdamW8bitAdamW8bitAdamW
mixed_precisionbf16 or fp16bf16fp16

DreamBooth系のフルモデル学習手法

DreamBoothのようにStable Diffusionモデルに新しい情報(人物・スタイル・キャラクターなど)を学習させるための手法(ファインチューニング手法)には、他にもいくつかの類似手法があります。

手法名概要備考
DreamBooth元のモデルを直接改変し、人物やキャラを強く反映忠実な再現が可能、モデルサイズは大きい
Textual Inversion画像に固有の単語(トークン)を関連付ける非常に軽量だが、再現力はやや弱い
Native Fine-Tuning(ノーマルFine-tune)DreamBoothよりさらに自由度の高い全体学習上級者向け。LoRAよりも自由度は高いが重い

DreamBoothやFine-tuneは「モデルを書き換えるタイプ」で、再現性に優れますが重く、用途が限定されます。

  • URLをコピーしました!
目次