コンテンツにスキップ

12.2.5 画像生成の微調整

画像生成の微調整ルート選択図

  • なぜ画像生成モデルにも微調整が必要なのかを理解する
  • DreamBooth、LoRA、Textual Inversion の違いを整理する
  • それぞれが「何を変えている」のかを理解する
  • とても実践的な選び方の感覚を身につける

画像生成の微調整は、「何を変えたいのか」が、概念・スタイル・専用主体のどれかで考えると理解しやすくなります。

flowchart LR
A["新しい概念語を追加したい"] --> B["Textual Inversion"]
C["低コストで差し替え可能な層を付けたい"] --> D["LoRA"]
E["特定の専用主体に強く結びつけたい"] --> F["DreamBooth"]

この節で本当に解決したいのは、次の点です。

  • どの方法が一番流行っているか、ではない
  • どの対象を微調整したいのか、です

一、なぜベースモデルだけでは足りないのか?

Section titled “一、なぜベースモデルだけでは足りないのか?”

ベースモデルはもちろん、すでにいろいろなものを生成できます。 でも、実際のニーズはもっと具体的なことが多いです。

  • 特定の専用キャラクターを生成したい
  • あるブランドらしいスタイルを固定したい
  • ある製品を、どんな場面でも一貫して見せたい

こういうとき、prompt だけでは安定しないことがあります。

だから微調整の本質は、まずこう覚えるとよいです。

モデルがもともと持っている能力を、より具体的な視覚目標に向けて寄せていくこと。

画像生成の微調整は、次のように考えるとわかりやすいです。

  • すでにいろいろ描ける絵師に、目的を絞った練習をしてもらう

ベースモデルは、いろいろな題材を描ける万能型のようなものです。 でも、実際にほしいのはたとえば次のようなものかもしれません。

  • 特定の IP キャラクター
  • 特定のブランドの見た目
  • 特定の専用スタイル

このとき必要なのは、ゼロから絵を覚え直すことではなく、 ある方向にもっと安定して描けるようにすることです。


二、画像生成の微調整で重要な三つの方法

Section titled “二、画像生成の微調整で重要な三つの方法”

一番軽い考え方です。 イメージとしては次のようになります。

新しいトリガー語 / 概念語を、モデルに覚えさせる。

より近いイメージは次の通りです。

ベースモデルの上に、小さな差し替え可能なアダプタを付ける。

こちらは次のようなイメージです。

特定の専用主体についての記憶を強くする。

この 3 つを最初に分けて考えられるようになると、あとで出てくる用語が混ざりにくくなります。


三、Textual Inversion:なぜ一番軽いと言えるのか?

Section titled “三、Textual Inversion:なぜ一番軽いと言えるのか?”

モデル全体を大きく変えるのではなく、もっと近いのは次のようなことです。

  • 新しい token の表現を学ぶ

つまり、

モデルに新しい「単語」を覚えさせる

と考えるとよいです。

textual_inversion = {
"new_token": "<my_style>",
"meaning": "特定の視覚スタイル",
"learned_object": "token embedding"
}
print(textual_inversion)

期待される出力:

Terminal window
{'new_token': '<my_style>', 'meaning': '特定の視覚スタイル', 'learned_object': 'token embedding'}

Textual Inversion token embedding 実行結果図

注目すべきは learned_object です。Textual Inversion は主に新しい token の embedding を学ぶため、軽量ですが制御力は限定的です。

  • スタイル用の trigger word
  • 軽い概念の追加

メリットは次の通りです。

  • 軽い
  • 速い
  • 変更範囲が小さい

ただし、能力はより重い方法ほど強くないことがあります。


四、LoRA:なぜ実務で最もよく使われるのか?

Section titled “四、LoRA:なぜ実務で最もよく使われるのか?”

LoRA は、元のモデルを丸ごと変えるのではなく、

低コストの追加アダプタを学ぶ

という発想です。

そのため、とても向いているのは次のようなケースです。

  • 大きなベースモデルに、複数のスタイルを載せる
  • いろいろなアダプタを切り替える
  • 学習コストや保存コストを下げる
base_model = "stable_diffusion_base"
lora_adapter = {
"target": "attention blocks / U-Net blocks",
"size": "small",
"effect": "スタイルや主体の制御能力を追加する"
}
print(base_model)
print(lora_adapter)

期待される出力:

Terminal window
stable_diffusion_base
{'target': 'attention blocks / U-Net blocks', 'size': 'small', 'effect': 'スタイルや主体の制御能力を追加する'}

LoRA adapter 共有土台の実行結果図

これが LoRA が実務で人気な理由です。ベースモデルは共有したまま、小さなアダプタがカスタマイズ能力を持ちます。

次のような形にしやすいからです。

  • 1つのベースモデル
  • 複数の異なるスタイルやキャラクターのアダプタ

つまり、

カスタム版ごとに、モデル全体を毎回保存しなくてよい

ということです。

これが、LoRA がとても人気な大きな理由です。


五、DreamBooth:なぜ「専用主体」でよく使われるのか?

Section titled “五、DreamBooth:なぜ「専用主体」でよく使われるのか?”

DreamBooth がよく使われる目的は、たとえば次のようなものです。

  • 特定の人物を覚えさせる
  • 特定の物体を覚えさせる
  • 特定の専用 IP の見た目を覚えさせる

なぜ Textual Inversion より「強い」のか?

Section titled “なぜ Textual Inversion より「強い」のか?”

単に 1 つの単語を学ぶだけでなく、 その主体が画像空間でどう見えるかに、より深く適応させるからです。

  • 重い
  • 過学習しやすい
  • データ品質への依存が大きい

なので、ざっくり覚えるなら次のように考えられます。

  • Textual Inversion:軽い
  • LoRA:バランス型
  • DreamBooth:より強力だが重い

六、どう選ぶ? とても実用的な判断方法

Section titled “六、どう選ぶ? とても実用的な判断方法”

軽いスタイル用トリガー語がほしいなら

Section titled “軽いスタイル用トリガー語がほしいなら”

まず考えるのは:

  • Textual Inversion

低コストで、差し替え可能で、保守しやすくしたいなら

Section titled “低コストで、差し替え可能で、保守しやすくしたいなら”

まず考えるのは:

  • LoRA

特定の専用主体に強く結びつけたいなら

Section titled “特定の専用主体に強く結びつけたいなら”

まず考えるのは:

  • DreamBooth

本当に大事なのは、次の問いです。

「どの方法が一番強いか?」ではなく、 「自分はいま、何を微調整したいのか?」

初学者が最初に覚えるとよい選び方の表

Section titled “初学者が最初に覚えるとよい選び方の表”
あなたの目的まずの有力候補
トリガー語や軽い概念を追加したいTextual Inversion
多くのスタイル版を低コストで保守したいLoRA
特定の人物 / 物体 / IP に強く結びつけたいDreamBooth

この表は、方法名の暗記ではなく、 「何を選ぶべきか」を目的から考えるために役立ちます。


七、なぜ画像生成の微調整は評価が難しいのか?

Section titled “七、なぜ画像生成の微調整は評価が難しいのか?”

分類タスクのように、正解率だけでは判断できないからです。

見るべきポイントは、たとえば次のようなものです。

  • 生成結果が目標のスタイルに見えるか
  • 主体が毎回きちんと一貫しているか
  • 学習画像に過学習していないか
  • prompt を変えても安定しているか

つまり、

評価は、数値だけでなく、見た目と創造性の質を見る作業に近い

ということです。

評価観点最初に確認したいこと
スタイルの一貫性目標のスタイルに見えるか
主体の一貫性同じ人物 / 同じ物体に見えるか
汎化の安定性prompt を変えても安定するか
過学習学習画像の繰り返しになっていないか

この表も、新人にとってはとても大切です。 「評価は主観的すぎる」という印象を、観察しやすい観点に分解してくれます。


八、とても実用的な経験まとめ表

Section titled “八、とても実用的な経験まとめ表”
方法何に近いかメリット代償
Textual Inversion新しい単語を学ぶ軽量、速い制御力は限定的
LoRA小さなアダプタを付ける低コスト、切り替えやすい対象モジュールの理解が必要
DreamBooth専用主体を学ぶ主体制御が強い重い、過学習しやすい

この表は丸暗記するためではなく、判断の型を作るためのものです。


いきなりフル微調整をやろうとする

Section titled “いきなりフル微調整をやろうとする”

多くの場合、そこまで必要ありません。

何を微調整したいのかがはっきりしていない

Section titled “何を微調整したいのかがはっきりしていない”

スタイルなのか、主体なのか、トリガー語なのか。 ここが曖昧だと、方法選びもずれやすくなります。

本当に重要なのは、次の点です。

  • たくさんの prompt で安定するか
  • 何回かサンプリングしても似ているか

これをプロジェクトや提案資料にするなら、何を見せるべきか

Section titled “これをプロジェクトや提案資料にするなら、何を見せるべきか”

本当に見せる価値が高いのは、次のような点です。

  • 「SD を微調整しました」ではなく
  • 目的が概念・スタイル・主体のどれだったのか
  • なぜその微調整方法を選んだのか
  • 評価でどの観点を見たのか
  • どの prompt では安定し、どの prompt では不安定だったのか

こうすると、見る側は次のことを理解しやすくなります。

  • 単に学習スクリプトを走らせただけではない
  • 選定と評価をちゃんと理解している

このページを終えたら、この evidence card を残します。

プロンプト記録
プロンプト、否定条件、参照、seed/model、バージョン番号
候補出力
生成結果またはシミュレーション結果と選択理由
技術メモ
diffusion step、latent、cross-attention、LoRA、またはアプリケーションモード
失敗確認
プロンプトのずれ、文体不一致、成果物、著作権、肖像、またはレビュー失敗
期待される成果
選定した画像/版の記録と却下候補のメモ

この節で一番大切なのは、DreamBooth、LoRA、Textual Inversion という名前を覚えることではありません。理解しておきたいのは、次の点です。

画像生成の微調整とは、スタイル・主体・概念に対する安定した制御を、異なるコストで手に入れること。

この見方ができるようになると、あとで具体的な学習フローを見るときも、ずっと理解しやすくなります。


  1. Textual Inversion、LoRA、DreamBooth が、それぞれ「何を変えている」のかを自分の言葉で説明してみましょう。
  2. モデルにスタイル用の trigger word を 1 つ追加したいだけなら、なぜ DreamBooth が必須とは限らないのでしょうか?
  3. 長期的にたくさんのスタイル版を管理したいなら、なぜ LoRA は実務上とても価値があるのでしょうか?
  4. 画像生成の微調整の評価が、テキスト分類よりも人の感覚に頼りやすいのはなぜでしょうか?
解法と解説
  1. Textual Inversion は新しい token embedding を追加するものに近く、LoRA はモデル層に小さく取り外し可能なスキルパッチを足すものに近く、DreamBooth は特定の対象やアイデンティティを直接的な例で教えるものに近いです。
  2. style trigger word を追加したいだけなら、Textual Inversion や LoRA で足りる場合があります。特定の対象知識を深く書き換える必要がないからです。
  3. LoRA は運用上価値があります。スタイル版を小さなファイルとして保存、組み合わせ、切り替え、レビュー、ロールバックでき、完全なモデルを何個も管理しなくて済むからです。
  4. 画像生成の評価には、スタイル再現、構図、アイデンティティ保持、アーティファクト、ユーザーの好みが含まれます。視覚的で主観的な判断が多いため、text classification より自動指標だけでは弱くなります。