はじめに
AI画像生成で自分の画風を再現しようとLoRAを学習させたとき、「形は似ているのに、質感が違う」と感じたことはないでしょうか。厚塗りの段差は均され、筆の掠れは滑らかに補正され、キャンバスの布目はつるりとした平面に置き換えられる。
この問題の原因は、拡散モデルの根本的な設計にあります。拡散モデルはノイズを除去して「明瞭で破綻のない画像」を生成することを目的としています。しかし、表現者がマチエル(絵具の凹凸、岩絵具のざらつき、筆跡)と呼ぶものは、AIの目には「まだ除去しきれていないノイズ」 に映ります。
本記事では、この問題に対する「引き算」のアプローチを技術的に解説します。
問題の構造:なぜ質感が消えるのか
拡散モデル(Diffusion Model)の推論プロセスは、ガウスノイズから段階的にデノイズして画像を生成します。
ノイズ画像 → デノイズStep 1 → ... → デノイズStep N → 生成画像
各ステップで、モデルは「ノイズ成分」と「信号成分」を分離し、ノイズを除去します。ここで問題になるのが、マチエル(筆致の物理的痕跡)がノイズとして分類されることです。
| 要素 | AIの認識 | 表現者の意図 |
|---|---|---|
| 絵具の凹凸 | ノイズ(除去対象) | 質感の核心 |
| 筆の掠れ | 不完全な描画 | 意図した表現 |
| キャンバスの布目 | テクスチャノイズ | 物質性の証拠 |
| 層の段差 | エッジアーティファクト | 時間の集積 |
これがAI画像が「のっぺり」する根本原因です。
「引き算」の原理
多くのLoRA学習では「足し算」のアプローチが取られます。
- 学習画像を増やす
- タグを詳細にする
- パラメータを複雑にする
- モデルを混合する
しかし、300回以上の試行錯誤から得られた結論は真逆でした。
原則:不要なものを引いて、本質を残す
これは日本美術における「切り捨ての美学」と同じ構造です。俵屋宗達は背景を描かず金箔で埋めることで、主題だけを浮かび上がらせました。
LoRA学習でも同じことが起きます。
実践1:学習データの引き算
全体画像ではなく「質感の断片」だけを渡す
# 一般的なアプローチ(足し算)
training_data = [full_painting_1, full_painting_2, ...] # 作品全体
# 引き算のアプローチ
training_data = [texture_crop_1, texture_crop_2, ...] # 質感部分のみクロップ
作品全体を学習させると、AIは「何が描いてあるか」(構図・モチーフ)を優先し、筆致を付随的な情報として平均化します。
質感の断片だけを20〜30枚渡すと、AIは「この学習データにおいて最も重要な情報は、この筆致の重なりそのものだ」 と認識を改めます。
実践2:タグの引き算
LoRA学習におけるタグの仕組みを正確に理解する必要があります。
タグに記述した情報 → AIが「既知の事実」として処理 → 学習対象から除外
タグに記述しなかった情報 → AIが「残差」として認識 → トリガーワードに凝縮
つまり、タグに書いたものは引かれ、書かなかったものが残ります。
多くの人が逆の直感を持ちますが、厚塗りの質感をトリガーワードに込めたいなら:
# 誤ったアプローチ
tags: "thick_paint, impasto, texture, brush_stroke" # 質感をタグに書く → 質感が引かれる
# 正しいアプローチ
tags: "1girl, flower, blue_sky, mountain" # 質感以外をタグに書く → 質感だけが残る
質感以外の要素(少女の顔、花の色、背景の空)をしっかりタグで記述して「切り離す」ことで、残された筆致だけが純粋な表現としてトリガーワードに凝縮されます。
実践3:光の引き算(撮影データの前処理)
アナログ作品をLoRA学習用にデータ化する場合、正面光を引いて斜光を残すことが重要です。
| 照明条件 | 記録される情報 | LoRA学習への影響 |
|---|---|---|
| 正面光 | 色の分布のみ | マチエルが平面に還元される |
| 斜光(レーキングライト) | 色+物理的構造 | 凹凸が「保存すべき構造」として認識される |
正面光 → 色は正確、構造は消失 → AIがマチエルをノイズとして除去
斜光 → 色はやや不正確、構造が明確 → AIがマチエルを「保存すべき構造」として処理
保存修復の現場では「斜光撮影(レーキングライト)」として確立された手法です。スマートフォンのライトを横から当てるだけで、質感の記録精度は劇的に変わります。
実践4:ベースモデルの引き算
複数のチェックポイントモデルを混合する(足し算)のではなく、一つの懐の深いモデルに絞る(引き算)ことで、質感の再現精度が上がります。
# 足し算のアプローチ
merged_model = merge(model_A, model_B, model_C) # 混合 → 特徴が平均化
# 引き算のアプローチ
base_model = "DreamShaperXL_alpha2" # 単一モデル → 質感の解像度が維持
DreamShaperXL alpha2は、画像中の微かな色の境界や濃淡を、単なる色むらではなく物質の構造として拾い上げる能力が高いモデルです。
実践5:設定値の引き算
触るパラメータを3つだけに絞り、残りは初期値のまま触らない。
# 触るべき3つ
learning_rate: 1e-4 # 学習率
network_dim: 32 # LoRAのランク
train_batch_size: 1 # バッチサイズ
# 触らない(初期値のまま)
optimizer: AdamW
scheduler: cosine
# ... 他の数十のパラメータ
パラメータを増やすほど「何が効いているか」が不明確になります。引き算で因果関係を明確にすることが、再現性のある学習に繋がります。
まとめ:引き算の5原則
| 領域 | 足し算(一般的) | 引き算(本手法) |
|---|---|---|
| 学習データ | 作品全体を大量に | 質感の断片だけを20〜30枚 |
| タグ | 質感の特徴をタグに書く | 質感以外をタグに書く |
| 光(撮影) | 正面光で色を正確に | 斜光で構造を記録 |
| モデル | 複数モデルを混合 | 単一モデルに限定 |
| 設定 | 多くのパラメータを調整 | 3つだけ触り残りは初期値 |
引いた先に、本質が残る。 これがLoRA学習における「マイナスの仕事」です。
補足:質感の「来歴」を証明する課題
引き算のアプローチで質感を守れたとして、その成果物——学習済みLoRAモデルと生成画像——の帰属はどう証明するのか。
300回の試行錯誤、データの前処理、タグ設計、パラメータチューニング。この一連のプロセスは、従来の絵画における「筆致」に相当する、デジタル時代の創作の痕跡です。しかし、C2PAやSynthIDが証明するのは「AIが生成した」という事実であり、「誰が、どのような思想で作ったか」は記録しません。
AI和指紋くんは、生成プロセスの記録をブロックチェーンに刻むことで、この構造的な空白を埋めます。引き算の技法で守った質感に、さらに「作者の来歴」を紐づける。美術作品のプロヴナンス(来歴証明)をデジタル生成物に拡張するインフラとして、ぜひチェックしてみてください。
本記事は質感LoRA研究所(note)からのクロスポストです。書籍『引き算のAI: 質感(テクスチャ)を守るLoRA学習の技法』の内容を技術記事として再構成しています。