はじめに

お気に入りのオリジナルキャラクターを、プロンプトだけで正確に再現したい──
そんな願い、おありではないでしょうか?

前回の記事でLoRAの「使い方」を解説しましたが、 今回はいよいよ自分でLoRAを作る実践編です。
「kohya_ss」というツールを使って、あなたのキャラクターをAIに学習させる手順を
ステップバイステップで解説します。

📝 この記事でわかること
  • LoRA学習に必要な環境と準備
  • 学習画像の選び方・枚数の目安
  • キャプション(タグファイル)の作り方
  • kohya_ss GUIの設定と学習の実行方法
  • 学習結果の確認と最適なEpochの選び方
  • 過学習の見分け方と対処法
💡 前提知識

この記事は「LoRAとは?」の続編です。
LoRAの基本概念がまだよくわからない方は、先にそちらをお読みくださいませ。

第1章:準備するもの

🖥️ 必要なハードウェア

LoRA学習はGPU(グラフィックボード)のパワーが必要です。
料理にたとえるなら、LoRA学習は「火力のあるコンロ」が必要な料理ですの。

項目 最低要件 推奨
GPU(VRAM) 8GB(RTX 3060など) 12GB以上(RTX 3060 12GB / RTX 4070 Ti)
RAM 16GB 32GB
ストレージ 空き10GB SSD推奨(学習速度に影響)
Python 3.10 3.10(3.11以降は互換性に注意)
⚠️ NVIDIA GPUが必須です

kohya_ssはCUDA(NVIDIAのGPU計算ライブラリ)を使用するため、
NVIDIA製のGPUが必要です。AMD製やIntel製のGPUでは動作しません。
nvidia-smi コマンドでGPUが認識されているか確認しておきましょう。

📦 kohya_ssのインストール

kohya_ssは、LoRA学習のための定番GUIツールです。
コマンドラインの知識がなくても、ブラウザ上のGUIで設定・学習ができます。

GitHubからダウンロード

kohya_ss GitHub から リポジトリをクローンまたはZIPダウンロードします。

git clone https://github.com/bmaltais/kohya_ss.git
cd kohya_ss

セットアップを実行

Windowsの場合は setup.bat をダブルクリックします。
必要なPythonライブラリが自動でインストールされます(初回は10〜20分程度)。

GUIを起動

gui.bat をダブルクリックすると、ブラウザが開いて http://127.0.0.1:7860 でGUIが表示されます。

第2章:学習画像の準備

LoRA学習の品質は、学習画像の品質と多様性で決まります。
「良い材料なくして良い料理なし」──これはLoRA学習でもまったく同じですわ。

📸 必要な枚数の目安

用途 最低枚数 推奨枚数 備考
キャラクターLoRA 10枚 20〜50枚 多様なポーズ・衣装を含める
スタイルLoRA 20枚 50〜100枚 画風の特徴が広くカバーされるように
コンセプトLoRA 5枚 10〜30枚 コンセプトの複雑さ次第

🎨 画像のバリエーション

キャラクターLoRAでは、さまざまな状況のキャラクターを用意することが重要です。
同じ正面立ち絵ばかりだと、AIは「このキャラ = この衣装 + このポーズ」と覚えてしまいます。

🧍
ポーズ立ち・座り・走り・横向き
👗
衣装カジュアル・フォーマル・制服・水着
📷
構図全身・上半身・クローズアップ
😊
表情笑顔・真剣・ウインク
🔄
角度正面・横・後ろ・斜め
🖼️
背景白背景60〜70% + 別背景30〜40%

📐 画像の解像度

ベースモデル 推奨解像度
SD 1.5 512 × 512
SDXL 1024 × 1024

kohya_ssにはBucket機能があるため、すべての画像が正確に同じサイズでなくても大丈夫です。
ただし、極端にアスペクト比が異なる画像は避けましょう。

⚠️ NGな画像の例
  • ❌ ぼやけた画像、低解像度の画像
  • ❌ 同じポーズ・同じ構図ばかりの画像
  • ❌ 他のキャラクターが一緒に写っている画像
  • ❌ テキストや透かしが入った画像
  • ❌ 極端なトリミング(顔が切れている等)

🖼️ 背景の選び方 ─ 白背景は良い?悪い?

「白背景は過学習するから良くない」という意見を聞いたことがある方もいるかもしれません。
結論から言うと、白背景自体は悪くないのですが、使い方にコツがありますの。

白背景(単色背景) 別背景(屋外・室内等)
メリット キャラの輪郭が明確。
特徴だけに集中して学習できる
背景の固定化を防げる。
多様なシーンに対応可能
デメリット 全部白背景だと
「このキャラ = 白背景」と学習してしまう
複雑な背景だと
キャラと背景を混同するリスク
💡 推奨する背景の割合
  • 白背景 / 単色背景: 60〜70% ── キャラの特徴を確実に学ばせるため
  • 別背景(屋外・室内・ファンタジー等): 30〜40% ── 背景の固定化を防ぐため
⚠️ 最も重要なポイント:背景タグは必ず書く!

白背景の画像を使う場合、キャプション(.txtファイル)に
white backgroundsimple background必ず書いてください
これらのタグを書かないと、AIが「白い背景もキャラの体の一部だ」と
吸収してしまい、背景を変えたいのに白背景しか出ないという
使いづらいLoRAになってしまいます。
背景タグをきちんと書いておけば、AIは「白背景は white background というタグのおかげ」
と理解し、 別の背景プロンプトにも柔軟に対応できるようになりますわ。

📁 フォルダ構成

学習画像は特定のフォルダ構成で配置する必要があります。
フォルダ名が学習設定に直接影響するので、命名ルールをしっかり守りましょう。

学習フォルダ/
  └── 10_syasta/          ← 「繰り返し数_トリガーワード」の形式
        ├── 01.png
        ├── 01.txt           ← キャプション(タグファイル)
        ├── 02.png
        ├── 02.txt
        ├── 03.png
        ├── 03.txt
        └── ...

フォルダ名のルール:
  繰り返し数_トリガーワード
  例: 10_syasta → 画像1枚につき10回学習、トリガーワード「syasta」
💡 繰り返し数とは?

1 Epochあたり、各画像を何回学習に使うかの設定です。
画像が少ない場合(10〜20枚)は 10、 多い場合(50枚以上)は 5 程度が目安ですわ。

第3章:キャプション(タグファイル)の作成

📝 キャプションとは?

キャプションとは、各画像の内容をテキストで説明したファイルのことです。
画像ファイルと同じ名前で .txt 拡張子で作成します。

🎨 たとえ話

美術の授業で「この絵の説明を書いてください」と言われたことはありませんか?
キャプションはまさにそれ。AIに「この画像には何が写っているか」を教えるための説明文です。
説明が正確であるほど、AIは正しく学習できます。

🧠 キャプションの「引き算」── LoRA学習で最も重要な仕組み

キャプションの書き方を解説する前に、LoRA学習に欠かせない 「キャプションの引き算」
という仕組みを理解しましょう。
これを理解すれば、自分の目的に合ったキャプションを自力で設計できるようになります。

💡 AIがキャプションをどう学習するか

AIは「画像」と「タグ(テキスト)」を見比べて、以下のように解釈します。

【タグを残した場合】(例:画像に赤い髪があり、タグにも red hair と書いた場合)
👉 AI「なるほど、この赤い髪は red hair という呪文のおかげなんだな
= トリガーワード(キャラ名)と髪色を分離して覚えます

【タグを消した場合】(例:画像に赤い髪があるのに、タグから red hair を消した場合)
👉 AI「画像には赤い髪があるのに、タグで説明されていないぞ?
ということは、このトリガーワード(キャラ名)自体が、生まれつき赤い髪なんだな!

= 特徴をトリガーワードに吸収させて(固定して)覚えます

つまり、タグに書くか書かないかで、完成するLoRAの性質がまったく変わるのです。 この仕組みを踏まえると、キャプションの作り方には2つの方式がありますの。

✍️ 2つのキャプション方式 ── 目的に合わせて選ぶ

🎨 パターンA:柔軟性特化
(キャラ特徴のタグを「残す」)

キャラクターの構成要素(髪色、目の色など)をあえてすべてタグに書く方式です。

  • 使い方: 生成時に syasta, grey hair, red eyes... とキャラ名+身体的特徴をセットで書く
  • メリット: プロンプトを syasta, blonde hair に変えるだけで金髪バージョンが出せる
  • デメリット: 毎回長いプロンプトが必要
  • 向いている人: 色々なアレンジで遊びたい方

⚡ パターンB:再現度特化
(キャラ特徴のタグを「消す」)

Civitaiなどで配布されている多くのキャラLoRAで採用されている方式です。

  • 使い方: 生成時に syasta(トリガーワード)だけでOK
  • メリット: 短いプロンプトで完璧な「いつものキャラ」が一発で出る
  • デメリット: 髪色変更などがLoRAの力で戻されてしまいやすい
  • 向いている人: 服だけ着せ替えたい方、手軽に使いたい方
💡 どちらを選ぶ?
  • 👉 「髪色を変えたり、パラレルワールドの姿を作って遊びたい!」
      → パターンA(柔軟性特化)
  • 👉 「とにかく短いプロンプトで『いつものうちの子』をポンポン出したい!」
      → パターンB(再現度特化)

どちらも正解です。正解はあなたの目的次第ですわ。

📋 キャプション例の比較

同じ画像(ゴスロリ衣装で白背景に立つキャラクター)のキャプションを2方式で比較します。

🎨 パターンA(柔軟性特化)── キャラ特徴をタグに残す
syasta, 1girl, solo, full body, standing, grey hair, long hair,
dark red eyes, slightly pointed ears, petite, small breasts,
gothic lolita, black dress, simple background, white background

⚡ パターンB(再現度特化)── キャラ特徴をタグから消す
syasta, 1girl, solo, full body, standing, long hair,
gothic lolita, black dress, simple background, white background

【消えたタグの行方】
  grey hair → トリガーワード「syasta」に吸収(自動で灰色髪に)
  dark red eyes → トリガーワード「syasta」に吸収(自動で赤い瞳に)
  slightly pointed ears → トリガーワード「syasta」に吸収(自動で尖り耳に)
  petite, small breasts → トリガーワード「syasta」に吸収(自動で小柄な体型に)

キャプション作成の共通ルール

どちらの方式を選んでも、以下のルールは必ず守ってください

ルール 理由
トリガーワードを先頭に 生成時にトリガーワードでキャラを呼び出せるようにする
品質タグを除去する masterpiece, best quality 等は画像の品質を示すだけで
キャラの特徴ではない
背景タグは必ず残す ⚠️ simple background, white background 等を書かないと、
白背景がキャラに吸収され、別の背景を指定しても
白背景しか出なくなる
服装タグは必ず残す ⚠️ 服装タグを消すと、特定の衣装がキャラに固定され、
着せ替えができなくなる
衣装・ポーズは
画像ごとに変える
画像によって異なる部分を正確に記述する
キャラ固有の特徴は
方式に合わせて判断
パターンA: 残す(プロンプトで制御可能に)
パターンB: 消す(トリガーワードに固定)
⚠️ 絶対に消してはいけないタグ

どちらの方式でも、「変更したい要素」のタグは絶対に消さないでください
服装タグ(gothic lolita, hoodie 等)と 背景タグ(white background, park 等)を
消してしまうと、それらがキャラの体の一部として吸収され、
着せ替えも背景変更もできないLoRAになってしまいますわ。

🤖 自動タグ付けツール

手で24枚分のキャプションを書くのは大変です。
kohya_ss にはWD Tagger(自動タグ付け)機能が内蔵されています。

kohya_ss の「Utilities」タブを開く

GUIの上部メニューから「Utilities」を選択します。

「WD14 Captioning」を選択

画像フォルダを指定し、しきい値(Threshold)を設定します。 0.35 程度が推奨値です。
低すぎると不要なタグが大量に付きます。

生成されたタグを確認・修正

自動生成されたタグを確認し、トリガーワードの追加不要タグの削除を行います。
選んだキャプション方式(パターンA or B)に合わせて、 キャラ固有のタグを残すか消すかを判断しましょう。
ここが最も重要な工程です。

💡 手動 vs 自動、どちらがいい?

枚数が少ない(20枚以下)なら手動で書く方が確実です。 自動タグ付けは便利ですが、
キャラの特徴を誤認することがあるため、 必ず確認・修正が必要ですわ。

第4章:kohya_ss GUIの設定と実行

いよいよ本番です。kohya_ssのGUIで学習設定を行い、LoRA学習を実行します。
GUIの主要な設定箇所をひとつずつ見ていきましょう。

📁 Source Model タブ

学習のベースとなるモデルを指定します。

項目 設定内容
Pretrained model ベースモデルの .safetensors ファイルパスを指定
Model type SDXLモデルの場合は「SDXL」にチェック
⚠️ ベースモデルの選択は重要

学習したLoRAは、同じ系統のモデルでしか使えません
SD 1.5で学習したLoRAはSD 1.5のモデルで、
SDXLで学習したLoRAはSDXLのモデルで使用します。
自分が普段使っているモデルをベースに選びましょう。

📁 Folders タブ

項目 設定内容
Image folder 学習画像の親フォルダ C:\LoRA\lora_training
Output folder 学習済みLoRAの出力先 C:\LoRA\data
Model output name 出力ファイル名 my_character
📝 注意

Image folder には「10_syasta」フォルダの親フォルダを指定します。
「10_syasta」フォルダ自体ではありません。
kohya_ssは指定フォルダ内の「数字_名前」形式のサブフォルダを自動認識します。

⚙️ Training Parameters タブ

学習の核心となるパラメータ設定です。 細かいパラメータの意味については
パラメータ詳細解説の記事で 詳しく解説していますが、ここではまずおすすめ値を紹介します。

📋 推奨設定一覧

パラメータ SD 1.5 SDXL 解説
Epoch 10〜15 10 学習の周回数
Batch size 1〜2 1 一度に処理する画像数
Learning rate 1e-4 1e-4 学習の速さ
UNet LR 1e-4 1e-4 画像生成部分の学習率
Text Encoder LR 5e-5 5e-5 テキスト理解部分の学習率
LR Scheduler cosine cosine 学習率の減衰方式
Optimizer AdamW8bit AdamW8bit 最適化アルゴリズム
Mixed precision fp16 fp16 メモリ節約のための半精度計算
Resolution 512,512 1024,1024 学習解像度
Clip Skip 2 1 CLIPの層スキップ
Save every N epochs 1 1 Epochごとに保存(比較用)
Save as safetensors safetensors 安全な保存形式
Gradient Checkpointing VRAM 8GBはON VRAM 12GB以下はON VRAM不足時にON。速度は少し落ちるがメモリを大幅節約

🔗 Network タブ

LoRAの構造を決めるパラメータです。

パラメータ 推奨値 解説
Network Rank (DIM) 32(キャラクターLoRA推奨) LoRAの表現力。
大きいほど高精度だがファイルサイズ増
Network Alpha 16(Rankの半分) 学習の安定性を制御する正則化パラメータ
💡 迷ったらこの設定で!

上の推奨値をそのまま入力すれば、ほとんどのキャラクターLoRAでうまくいきます。
まずは推奨値で試して、結果を見てから微調整するのがおすすめですわ。
各パラメータの詳しい意味は 次の記事で解説しています。

🚀 学習の実行

すべての設定が完了したら、画面下部の「Start Training」ボタンをクリックします。

📝 学習時間の目安(画像24枚 × 10 Epoch)
GPU SD 1.5(512×512) SDXL(1024×1024)
RTX 3060 (12GB) 約15〜30分 約1〜2時間
RTX 4070 Ti (12GB) 約10〜15分 約30分〜1時間
RTX 4090 (24GB) 約5〜10分 約15〜30分

※ SDXLは解像度が4倍(512² → 1024²)のため、SD 1.5の約3〜4倍の時間がかかります。

💡 設定の保存

学習前に「Configuration file」セクションの「Save」で設定を保存しておきましょう。
次回同じ設定で学習する際に「Open」で読み込むだけで復元できます。

第5章:学習結果の確認と選択

学習が完了すると、出力フォルダに各EpochのLoRAファイルが保存されます。
save_every_n_epochs = 1 に設定していれば、Epoch 1〜10の全LoRAが揃います。

出力フォルダ/
  ├── my_character-000001.safetensors   ← Epoch 1
  ├── my_character-000002.safetensors   ← Epoch 2
  ├── my_character-000003.safetensors   ← Epoch 3
  ├── ...
  ├── my_character-000009.safetensors   ← Epoch 9
  └── my_character.safetensors          ← Epoch 10(最終版・番号なし)

※ 合計10ファイル(Epoch 1〜9 の番号付き + 最終Epochの番号なし)

🔍 最適なEpochの見つけ方

どのEpochが最も良いLoRAかは、同一条件で比較生成して判断します。
テストとしてこんな感じですわよ。

📝 比較テストの手順
  • プロンプトを固定(キャラ名 + シンプルな構成)
  • Seedを固定(同じ乱数で生成するため)
  • LoRAの強度を固定(0.7推奨)
  • 各EpochのLoRAファイルだけを差し替えて生成
  • 結果を並べて比較
テスト用プロンプト例:
syasta, 1girl, solo, upper body, smile, simple background

ネガティブ:
worst quality, low quality, blurry, bad anatomy, deformed

固定パラメータ:
Seed: 12345 / Steps: 25 / CFG: 7.5 / LoRA Weight: 0.7

📊 各Epochの傾向

1〜3
学習不足
特徴が薄い
4〜7
✅ 適正
バランス◎
8〜10
過学習リスク
要確認
📸
※ 比較画像は後日追加予定です
各Epochで同一プロンプト・Seedから生成した画像を並べて、
学習不足 → 適正 → 過学習 の変化を視覚的に比較します。

⚠️ 過学習のサインと対処法

Epochが多すぎると過学習(Overfitting)が発生します。
これは、学習画像を「暗記」してしまい、新しい状況に対応できなくなる状態です。

症状 具体的な現象
ポーズの固定化 何を指定しても同じポーズになる
背景の固定化 背景を変えても白背景しか出ない(学習画像が白背景の場合)
衣装変更不可 衣装プロンプトを変えても、学習時の衣装が出続ける
画質の劣化 ノイズっぽくなる、色が不自然になる
他プロンプトの無視 LoRAのキャラ以外の要素が一切効かなくなる
💡 過学習を防ぐには
  • 画像のバリエーションを増やす(衣装・ポーズ・構図を多様に)
  • Epochを適切に設定する(多すぎない)
  • Network Rankを高くしすぎない(32〜64推奨)
  • 学習率を低めに設定する(1e-4以下)
  • キャプションから品質タグを除去する(背景タグや服装タグは残す!)

まとめ

📋 この記事のまとめ
  • LoRA学習にはNVIDIA GPU(VRAM 8GB以上)が必要
  • kohya_ssのGUIで、コマンドライン不要で学習可能
  • 学習画像は20〜50枚、多様なポーズ・衣装で用意する
  • キャプションは品質タグを除去して作成。背景・服装タグは必ず残す
  • キャラ固有タグは目的に応じてパターンA(残す=柔軟性)orパターンB(消す=再現度)を選ぶ
  • トリガーワードをキャプションの先頭に含める
  • 推奨設定: DIM=32 / Alpha=16 / LR=1e-4 / cosine
  • 毎Epoch保存して、同じ条件で比較生成して最適なEpochを選ぶ
  • 過学習のサイン(ポーズ固定化等)に注意
📖 もっと詳しく知りたい方へ

各パラメータの意味と、値を変えると結果がどう変わるのかを詳しく知りたい方は、
続編のLoRA学習パラメータ完全ガイドをお読みくださいませ。

📖 関連記事
📚 参考資料

❀ この記事が役に立ったら

サイト運営のモチベーションになります。よろしければ応援お願いします!

❀ お布施する(OFuse)