このページは、Ostris AI Toolkit を使った LoRA ファインチューニングの概要です。モデル別のレシピは、以下のガイドから該当するものへジャンプしてください。
- AI Toolkit で FLUX.2 Dev の LoRA を学習する
- AI Toolkit で LTX-2 の LoRA を学習する
- AI Toolkit で Z‑Image Turbo の LoRA を学習する
- AI Toolkit で Qwen Image 2512 の LoRA を学習する
- AI Toolkit で Qwen‑Image‑Edit‑2511 の LoRA を学習する
- AI Toolkit で Qwen‑Image‑Edit‑2509 の LoRA を学習する
- AI Toolkit で Wan 2.2 I2V 14B の LoRA を学習する
- AI Toolkit で Wan 2.2 T2V 14B の LoRA を学習する
このガイドを読み終えるころには、次のことができるようになります。
- LoRA 学習のコア概念(ファインチューニング中に実際に何が起きているか)を理解する
- AI Toolkit の構成と、各パネルが何を制御するのかを把握する
- 主要パラメータ(learning rate / rank / steps / noise schedule / DOP など)が何を意味し、どう効くのかを理解し、意図を持って調整できる
- 手元のマシンでも RunComfy Cloud AI Toolkit でも LoRA を学習し、普段の生成ワークフローに再利用できる
目次
- 1. Ostris AI Toolkit とは?(拡散モデル向け LoRA トレーナー)
- 2. Ostris AI Toolkit が対応するモデル(Flux / Wan / Z‑Image / Qwen‑Image / SDXL)
- 3. Ostris AI Toolkit をローカル導入・RunComfy Cloud AI Toolkit で使う
- 4. Ostris AI Toolkit Web UI 概要(Dashboard / Datasets / New LoRA Job)
- 5. AI Toolkit の LoRA 学習基礎と主要ハイパーパラメータ
- 6. LoRA の概念を AI Toolkit のパラメータへ対応づける
- 7. クイックスタート:AI Toolkit で実用的な LoRA を学習する
- 8. AI Toolkit の LoRA 学習トラブルシュート:よくあるエラーと対処
1. Ostris AI Toolkit とは?(拡散モデル向け LoRA トレーナー)
Ostris AI Toolkit は、画像・動画向けの拡散モデルに特化した学習スイートです。言語モデルや音声モデルには対応しておらず、サポート対象は古典的な DDPM 系拡散モデル(SD 1.5 / SDXL など)か、Flux / Wan / Qwen‑Image / Z‑Image / OmniGen2 のような Diffusion Transformer 系のモデルです。AI Toolkit は LoRA 形式のアダプタを中心に設計されているため、実際の学習ではネットワーク全体を再学習するのではなく、凍結されたベースモデルの上に小さな LoRA(または同等の軽量アダプタ)を学習します。
Ostris AI Toolkit の主な特徴(LoRA 学習)
AI Toolkit は、対応するすべてのモデルファミリーに共通のトレーニングエンジンと設定システムを提供します。Flux / Z‑Image Turbo / Wan 2.2 / Qwen‑Image / SDXL など、モデルごとにプリセットはありますが、どれも同じ枠組み(モデルロード、量子化、LoRA/LoKr 定義、学習ハイパーパラメータ、データセット処理、サンプリング規則)に載っています。だからこそ、Flux の LoRA を学習しても、Z‑Image Turbo の LoRA を学習しても、Wan 2.2 の動画 LoRA を学習しても、Web UI の見た目や考え方が一貫しています。
このエンジンの上に、AI Toolkit は CLI とフル機能の Web UI を提供しています。CLI は YAML 設定から直接ジョブを実行し、Web UI はその YAML を操作するためのグラフィカルなレイヤーです。UI 上で「AI Toolkit」と言うと、多くの場合 New Job 画面(モデルファミリー選択、LoRA 種別と rank、learning rate と steps、データセットの紐付け、学習中のサンプル生成ルールの設定など)を指します。Job / Model / Quantization / Target / Training / Regularization / Datasets / Sample といった専用パネルが揃っているため、YAML を直接編集する必要はほとんどありません。ローカル実行でも、クラウド環境(例:RunComfy Cloud AI Toolkit)でも、このワークフローは同じです。
Ostris AI Toolkit に組み込まれた LoRA 学習機能
AI Toolkit には、通常なら自分でスクリプトや“糊付け”が必要な機能が最初から揃っています。
- 量子化と Low‑VRAM モード – 8/6/4bit(3bit は recovery adapter 付き)の Transformer 量子化とレイヤーオフロードにより、Flux や Wan のような巨大モデルでも 24–48GB GPU で学習できるようにします(品質/速度のトレードオフは調整可能)。
- LoRA / LoKr アダプタ – 標準 LoRA と、よりコンパクトだが互換性が下がり得る LoKr をサポート。
Target Typeで切り替え、互換性重視か、より小さく高容量なアダプタ重視かを選べます。 - Differential Output Preservation(DOP) – 正則化用画像でベースモデル出力と LoRA 付き出力を比較し、望ましくない変化を損失として罰することで、「LoRA が漏れて何でも学習対象っぽくなる」現象を抑えます。
- Turbo 系向け Differential Guidance – Z‑Image Turbo で多用される学習時ガイダンス項で、ベースとの差分を学習に反映して「何を変えるべきか」に更新を集中させ、few‑step/turbo でも適応を深めつつ速度の利点を壊しにくくします。
- マルチステージノイズ学習 – 高ノイズ段階と低ノイズ段階を分け、構図・大まかな形(高ノイズ)と質感・輪郭(低ノイズ)の学習バランスを取ります。
- Latent / Text Embedding のキャッシュ –
Cache LatentsとCache Text Embeddingsにより、ディスク容量と引き換えに速度・VRAM を改善します。小さめ GPU やクラウドで素早く反復する際に有効です。 - EMA(Exponential Moving Average) – LoRA 重みの平滑化コピーを保持して収束を安定させるオプション。小規模データセットで特に役立つ場合があります。
Web UI ではこれらが分かりやすいコントロールとして提供され、モデル間でもレイアウトが一貫しているため、たとえば Flux の LoRA 学習の理解を、Z‑Image Turbo や Wan、Qwen‑Image などにそのまま横展開できます。
2. Ostris AI Toolkit が対応するモデル(Flux / Wan / Z‑Image / Qwen‑Image / SDXL)
AI Toolkit は現在、以下のモデルファミリーに対応しています。
- IMAGE モデル – 単一画像(Flux / Z‑Image Turbo / Qwen‑Image / SD など)
- INSTRUCTION / EDIT モデル – 画像編集・指示追従(Qwen‑Image‑Edit / Flux Kontext / HiDream E1)
- VIDEO モデル – Text‑to‑Video / Image‑to‑Video(Wan 2.x 系列)
2. Ostris AI Toolkit が対応するモデル(Flux / Wan / Z‑Image / Qwen‑Image / SDXL)
AI Toolkit は現在、以下のモデルファミリーに対応しています。
- IMAGE モデル – 単一画像(Flux / Z‑Image Turbo / Qwen‑Image / SD など)
- INSTRUCTION / EDIT モデル – 画像編集・指示追従(Qwen‑Image‑Edit / Flux Kontext / HiDream E1)
- VIDEO モデル – Text‑to‑Video / Image‑to‑Video(Wan 2.x 系列)
| カテゴリ | AI Toolkit UI 上のモデルファミリー | システム要件 / VRAM 目安 |
|---|---|---|
| IMAGE | FLUX.1 / FLUX.2 | VRAM: LoRA 学習は 24GB+ が最低ライン。推奨: rank 32–64 や 1024+ bucket を攻めるなら 48GB+。補足: 量子化 + Low VRAM で 24GB でも成立しやすく、latent/text キャッシュには SSD が有利。 |
| INSTRUCTION | FLUX.1‑Kontext‑dev | VRAM: 24GB+ がベース。推奨: 高解像度・重い conditioning・大きい rank を使うなら 48GB+。 |
| IMAGE | Qwen‑Image, Qwen Image 2512 | VRAM: 24GB+ 推奨。快適ライン: 32GB+(1024 bucket や高 rank を維持する場合は特に)。 |
| INSTRUCTION | Qwen‑Image‑Edit, Qwen‑Image‑Edit‑2509, Qwen‑Image‑Edit‑2511 | VRAM: 32GB+ 推奨。目安: 1024px は ~27–28.5GB、768px は ~25–26GB になりやすく、24GB は厳しいことが多い。補足: text embedding キャッシュ + 低ビット ARA 量子化に依存する構成もある。 |
| IMAGE | Z‑Image Turbo | VRAM: 16–24GB に収まりやすい設計。補足: rank は控えめ(例:8–16)にし、512/768/1024 bucket を優先。 |
| VIDEO | Wan 2.2 (14B), Wan 2.2 T2V (14B), Wan 2.2 I2V (14B) | VRAM: 24GB は慎重な設定(短いクリップ + 量子化/Low VRAM)でベースライン。推奨: 48GB+ だと快適で、長尺/高解像度/高 rank でも安定しやすい。ホスト RAM/SSD: フレーム/latent キャッシュ用に余裕を見込む。 |
| VIDEO | LTX-2 | VRAM: 量子化/オフロードで 24–48GB は成立しやすい。推奨: フレーム数や bucket を増やすなら 48GB+ が快適。補足: まず frames を 121→81→49 と落とし、512–768 から開始。rank 32 は実用的な基準。 |
| VIDEO | Wan 2.2 T12V (5B) | VRAM: 解像度 + フレーム数次第で 16–24GB。推奨: 24GB+ だと反復がスムーズ。 |
| VIDEO | Wan 2.1 (1.3B / 14B) | VRAM: バリアントで大きく変動。目安として 1.3B は小さめ GPU を狙える一方、14B は LoRA 学習に 24GB+ を要することが多い。 |
| VIDEO | Wan 2.1 I2V (14B‑480P / 14B‑720P) | VRAM: I2V LoRA は 24GB+ がベース。720P のようにベース解像度が高いほど、安定には 48GB+ が有利。 |
| IMAGE | SD 1.5, SDXL | VRAM: SD 1.5 LoRA は 8GB+ からが一般的。SDXL LoRA は 12–16GB+ が目安(解像度/rank で増える)。 |
| IMAGE | OmniGen2 | VRAM: モデル依存。1024 学習の安全ラインは 24GB。16GB なら bucket を下げ、キャッシュと小 rank から始める。 |
| IMAGE | Chroma | VRAM: モデル依存。現代的な画像モデルと同様に(24GB ベース、48GB+ 快適)で考える。 |
| IMAGE | Lumina2 | VRAM: モデル依存。現代的な画像モデルと同様に(24GB ベース、48GB+ 快適)で考える。 |
| IMAGE | HiDream | VRAM: ハイエンド寄り。1024+ の安定学習は 48GB クラス(またはクラウド GPU)を想定。 |
| INSTRUCTION | HiDream E1 | VRAM: 追加 conditioning の負荷があるためハイエンド寄り。通常 48GB+ 推奨。 |
| IMAGE | Flex.1 / Flex.2 | VRAM: 軽量寄り。解像度や text encoder を学習するかで変わるが、12–16GB でも成立する場合が多い。 |
3. Ostris AI Toolkit をローカル導入・RunComfy Cloud AI Toolkit で使う
3.1 Ostris AI Toolkit を Linux / Windows にローカルインストールする
GitHub の公式 README に、Linux と Windows 向けの分かりやすい導入手順があります。
Linux の場合:
git clone https://github.com/ostris/ai-toolkit.git
cd ai-toolkit
python3 -m venv venv
source venv/bin/activate
# CUDA 版 PyTorch をインストール(必要に応じてバージョンを調整)
pip3 install --no-cache-dir torch==2.7.0 torchvision==0.22.0 torchaudio==2.7.0 \
--index-url https://download.pytorch.org/whl/cu126
pip3 install -r requirements.txt
Windows では、python -m venv venv と .\venv\Scripts\activate で同様に進めるか、コミュニティ提供の AI‑Toolkit Easy Install バッチ(ワンクリックで一連の作業をまとめ、最新バージョンの UI をブラウザで開く)を使う方法があります。
依存関係を入れたあとに Web UI を起動するには:
cd ui
npm run build_and_start
インターフェースは http://localhost:8675 で開けます。リモートマシンで動かす場合は、第三者がアクセスできないように AI_TOOLKIT_AUTH にパスワードを設定してください(セキュリティ面の注意は AI Toolkit GitHub リポジトリ を参照)。
3.2 RunComfy Cloud AI Toolkit を使って LoRA を学習する(ローカル不要)
GPU ドライバや CUDA、ローカル導入を一切触りたくない場合は、RunComfy Cloud AI Toolkit を使えます。このモードでは:
- AI Toolkit はクラウド上で動作し、ブラウザを開くだけで UI に入れます。
- 80GB / 141GB VRAM の強力な GPU が使えるため、FLUX / Qwen‑Image / Z‑Image Turbo / Wan のような重い LoRA 学習に向いています。
- データセット、設定、チェックポイント、過去ジョブが RunComfy アカウントに紐づいた永続ワークスペースに保存されます。
- 学習、モデルのプレイグラウンド検証、ComfyUI ワークフローが一箇所に統合されています。
こちらから直接開けます: RunComfy の Cloud AI Toolkit
4. Ostris AI Toolkit Web UI 概要(Dashboard / Datasets / New LoRA Job)
Web UI(ローカル/RunComfy)を開くと、左サイドバーに重要なページが並びます。
4.1 Dashboard と Training Queue
Dashboard はアクティブ/最近のジョブを一覧できる、主にステータス確認用の画面です。
Training Queue では次のことができます。
- 各ジョブの状態(queued / running / finished / failed)を確認する
- ログを開いてデバッグする
- ジョブを停止/削除する
- 出力チェックポイントやサンプル画像をダウンロードする
ここは言わば「ジョブ管理センター」です。学習した LoRA はすべてここに並びます。
4.2 データセット管理
Datasets ページでは、ジョブに紐付ける“名前付きデータセット”を作成できます。
- 画像フォルダや動画クリップを選択/アップロードします。
- UI がスキャンし、解像度や枚数、caption/metadata の有無などを表示します。
- データセットには内部名が付き、後でジョブの
Target Datasetドロップダウンに表示されます。
ここで作るのは:
- メイン学習用データセット(キャラクター、スタイル、商品写真など)
- 必要に応じた 正則化データセット(別人、別トラック、一般的な背景など):DOP や従来型正則化に使用
4.3 New Job:LoRA 設定の中核画面
New Job は AI Toolkit の中心です。ジョブとは要するに:
モデル Y に対して、データセット Z を使い、タイプ X の LoRA をこのハイパーパラメータで学習する
画面はパネルに分かれています。
- JOB – 命名と GPU 選択
- MODEL – どのベースモデルを学習対象にするか
- QUANTIZATION – ベースモデルをどれだけ圧縮するか
- TARGET – LoRA / LoKr と rank
- SAVE – チェックポイントの精度と保存間隔
- TRAINING – learning rate / steps / optimizer / timestep schedule
- ADVANCED / Regularization – EMA / Differential Guidance / DOP
- DATASETS – どのデータセットをどう学習するか
- SAMPLE – 学習中にどの頻度でサンプルを生成するか
以降のセクションでは、これらのパネルが LoRA の基本概念とどう対応しているかを整理します。
5. AI Toolkit の LoRA 学習基礎と主要ハイパーパラメータ
AI Toolkit の各スイッチを触る前に、LoRA 学習が裏側で何をしているかを理解しておくと迷いません。
5.1 拡散モデルの中で LoRA がどう効くか
現代的な拡散モデルは、大きな重み行列を持つ Transformer ブロックのスタックです。通常のファインチューニングではそれらを直接更新しますが、計算コストが高く、過学習もしやすいです。
AI Toolkit が対応するモデル(Flux / Z‑Image Turbo / Wan / Qwen‑Image など)では、バックボーンは巨大な diffusion‑transformer です。LoRA は元の重み行列 W を置き換えるのではなく、2 つの学習行列 A と B からなる低ランク更新を加えます。イメージとしては W_new = W + alpha A B で、W は凍結された元の重み、A と B は小さく学習可能な行列、alpha は推論時に LoRA の効きを調整するスケールです。
rank は A と B の幅を決めるため、LoRA の表現力(どれだけ複雑な更新ができるか)に直結します。rank が高いほど表現力は増えますが、パラメータ・計算・VRAM も増え、少量データでは過学習しやすくなります。rank が低いとファイルが小さく、より“絞った”アダプタになり、過学習しにくい傾向があります。
5.2 主要な LoRA ハイパーパラメータ
これらはどのトレーナーでも出てくる用語で、AI Toolkit はそれを UI で分かりやすく見せています。
Learning Rate(Learning Rate)
- Optimizer が LoRA を更新するたびに、パラメータ空間をどれだけ動かすかを決めます。
- 低すぎる:学習が遅く、データに十分フィットしない可能性があります。
- 高すぎる:loss が振動/発散し、サンプルがノイジーになったり、学習が不安定になったり、強烈に過学習したりします。
拡散 LoRA では 0.0001 が非常に堅実なデフォルトです。Wan や Flux の公開設定でも 0.0001 – 0.0002 がよく見られます。
Batch Size と Gradient Accumulation
Batch Sizeは 一度に並列で見る画像/クリップ数です。Gradient Accumulationは「N バッチ分の勾配を溜めてから 1 回更新する」ことで、VRAM を増やさずに大きいバッチを疑似的に実現します。
有効バッチサイズ:Batch Size × Gradient Accumulation
有効バッチが大きいほど勾配が滑らかになり一般化しやすい一方、計算コストは増えます。24GB GPU では Batch Size = 1、Gradient Accumulation = 2–4 がよく使われます。
Steps(Steps)
これは optimizer の更新回数です。学習時間(どれだけ長く学習するか)を決める最大のつまみです。
- 少なすぎる → underfitting:LoRA がほとんど効かない
- 多すぎる → overfitting:学習画像を暗記し、意図せず“漏れる”
適切な steps は、データセットの規模/多様性、rank、learning rate に依存します。
モダンモデルで 20–50 枚程度のキャラクター LoRA なら、2,000–3,000 steps が良い出発点です。
Rank(Linear Rank)
- rank は LoRA の 自由度(表現力)を決めます。
- rank を倍にすると、おおむね容量・パラメータ数も倍になります。
実用的な目安:
- Flux や Wan のような大きいモデルでは、キャラクター/スタイル LoRA の多くが rank 16–32 で十分です。
- 小さなデータセットでは rank が高いほど過学習しやすく、低いほど一般化しやすい傾向があります。
Weight Decay(Weight Decay)
weight decay は標準的な正則化で、毎ステップ重みをわずかにゼロ方向へ引っ張ります。
- 学習画像を“丸暗記”するような極端な値に行きにくくなり、一般化を助けます。
0.0001のような値は一般的で安全です。明確な過学習が見えるまで触らないことも多いです。
Timestep schedule
拡散モデルはノイズ量の違う timesteps で復元(denoise)を学びます。どの timesteps を多くサンプルするかで学習傾向が変わります。
- 高ノイズ:大まかな形、構図、配置
- 低ノイズ:テクスチャ、エッジ、細部
- 中間:構造と細部が交わる領域。顔・キャラクターで効きやすい
AI Toolkit の Timestep Type と Timestep Bias は、この分布を調整する UI です(後で詳しく扱います)。
データセット構成と captions
ハイパーパラメータが適切でも、データが悪いと LoRA は良くなりません。
- 綺麗で多様な画像を用意しつつ、核となる概念(同一人物/同一ブランド/同一スタイル)は揃える
- captions には 固有のトリガーワードを明確に結びつける(推論時にそのワードで呼び出せるようにする)
動画 LoRA(Wan / HiDream E1)でも基本は同じで、違いは画像ではなく 短いクリップを扱い、フレームサンプリングもデータ設計に入る点です。
6. LoRA の概念を AI Toolkit のパラメータへ対応づける
ここからは New Job 画面をパネルごとに見て、各パラメータが上の概念とどうつながるかを整理します。
6.1 JOB パネル:プロジェクト、GPU、トリガーワード
JOB パネルはシンプルですが重要です。
Training Name - ジョブのラベルで、出力フォルダやファイル名にも反映されます。例:flux_dev_skschar_v1
GPU ID - ローカル環境では実 GPU を指定します。RunComfy のクラウドではデフォルトのままでOKで、実際の GPU(H100/H200 など)は Training Queue からジョブ起動時に選びます。
Trigger Word - ここに単語を入れると、AI Toolkit は学習時に すべての caption の先頭に自動で付与します(ファイル自体は書き換えません)。caption に統一トリガーがない場合に便利です。ベースモデルが既に知っている意味と競合しないよう、sks_char_neo のような 造語トークンを使うのがコツです。
6.2 MODEL パネル:ベースモデルの選択とロード
Model Architecture でモデルファミリー(Flux / Z‑Image Turbo / Wan 2.2 / Qwen‑Image など)を選びます。選択すると:
- モデルに合わせた プリセット(サンプラー、ノイズスケジュールのデフォルト、場合によってはアダプタパスなど)が読み込まれます。
Name or Path はベースモデルの Hugging Face モデル ID(repo id)です。
- 多くのビルドでは、
Model Architectureを選ぶと推奨 ID が 自動入力されます。理由がない限りそのまま使ってください。 - 上書きする場合は
org-or-user/model-name(必要なら@revision)形式にします。
モデルが gated(Flux.1‑dev / Flux.2‑dev / 一部 Wan など)の場合は、Hugging Face でライセンスに同意した上で .env に HF_TOKEN を設定し、ダウンロードできるようにします。
モデルによっては Low VRAM や Layer Offloading といった追加スイッチが表示されます。
Low VRAM:メモリ節約のために圧縮/オフロードを行い、速度と引き換えに小さめ GPU で動かしやすくします。Layer Offloading:CPU↔GPU 間でより積極的にレイヤーを移動します。通常の Low VRAM で足りない場合の最終手段で、遅くなったり不安定になることがあります。
これらは「LoRA が何を学ぶか」ではなく、「ベースモデルをどうメモリに載せるか」を変えるスイッチです。
6.3 QUANTIZATION パネル:精度と VRAM のトレードオフ
QUANTIZATION パネルには通常:
Transformer(例:float8/6-bit/4-bit/3-bit ARA)Text Encoder(多くはfloat8 (default))
が表示されます。
意味としては:
- transformer:画像 latent とテキストの cross‑attention を処理する巨大パート
- text encoder:プロンプトをトークン埋め込みに変換するパート
Transformer の量子化:
float8:最も安全・高精度。VRAM は多めだが品質劣化が小さい。6-bit:24GB クラスでは強い妥協点。小さな品質低下でVRAMを節約。4-bit/3-bit ARA:より攻めた圧縮。3-bit ARAは 3bit 重みに 精度回復アダプタを組み合わせます。
Text encoder の量子化:
- text encoder は小さいので、通常は
float8のままにします。 Unload TEやCache Text Embeddingsなどで text encoder を外す構成では、量子化の影響は小さくなります。
実務的には:
- 24GB GPU で Flux/Wan を学習するなら、
Transformer = 6-bit、Text Encoder = float8は堅実な出発点です。 - 48GB+ があるなら、必要がない限り
float8を維持するのが安全です。
6.4 TARGET パネル:LoRA 種別と rank
TARGET は学習する アダプタそのものを定義します。
Target Type- たいていはLoRA。ビルドによってはLoKr(Low‑Rank Kronecker)も出ます。LoKr はコンパクトですが互換性が落ちる場合があるので、幅広い環境(ComfyUI / A1111 など)で使いたいならLoRAが無難です。Linear Rank- 先ほどの LoRA rank です。高いほど容量・VRAM・ファイルサイズが増え、少量データでは過学習リスクも上がります。モダン diffusion‑transformer の目安:- 8–16:小さく汎化しやすい。Z‑Image Turbo や小規模データセットの SDXL/SD 1.5 でも出発点として優秀。
- 16–32:Flux / Wan / Qwen のような大きめベースでの標準レンジ。基本は 16 から始め、足りなければ 32 に上げる。
- 64+:ほとんど不要。大規模・多様なデータがあり、意図的に強い変化を狙う場合のみ検討。
SD 1.5 / SDXL では Conv Rank(畳み込み rank)が表示されることがあり、こちらはテクスチャ/スタイル寄りの効きが強くなります。
6.5 SAVE パネル:チェックポイント精度と保存頻度
SAVE は LoRA チェックポイントの書き出しを制御します。
Data TypeBF16:安定で効率がよく、基本のおすすめ。FP16:わずかに高精度だが、多くの場合差は小さい。FP32:非常に重い。必要があるときだけ。Save Every何 steps ごとに保存するか。例:
Save Every = 250、Steps = 3000なら最大 12 個程度の checkpoint が出ます(ただし後述の上限設定に依存)。多くの場合、SAMPLE パネルのSample Everyと 揃えるのがおすすめです。Max Step Saves to Keep保存するチェックポイントの最大数。
4にすると最新 4 個のみ残り、古いものは削除されます。
6.6 TRAINING パネル:optimizer / steps / ノイズスケジュール
Batch Size と Gradient Accumulation
前述の通り:
Batch Size:1 回の forward で処理する画像/クリップ数Gradient Accumulation:何回分の勾配を溜めてから update するか
VRAM が厳しい場合は:
Batch Size = 1、Gradient Accumulation = 4→ 有効 batch 4 相当(ただしパス数は 4 倍)
有効バッチサイズは データセット総数を超えないようにします。
Steps
これは epochs ではなく optimizer の steps です。
- Flux / Qwen / Z‑Image Turbo / OmniGen2 / Chroma(および多くの Wan 2.x)では、20–50 枚程度のデータなら 2000–3000 steps がよくある基準です。
「最後まで回す」より、少し短めに回して中間の良い checkpoint を選ぶ方がうまくいくことが多いです。
Optimizer(Optimizer)
代表的には:
AdamW8Bit:optimizer 状態を 8bit 化してメモリを節約。小〜中規模データで非常に使いやすい。Adafactor:よりメモリ効率が良いが、調整が難しい場合がある。
多くの LoRA では AdamW8Bit が基本の選択です(optimizer 状態の OOM が出る場合は例外)。
Learning Rate
基本は 0.0001。もし:
- ほとんど学習していない →
0.00015–0.0002 - すぐ過学習する/サンプルが荒れる →
0.00005–0.00008
といった調整が目安です。いきなり 0.0005 のような高い値へ飛ばすのは、モデル別ガイドに理由がある場合を除き避けます。
Weight Decay
0.0001 は“弱めの正則化”として扱いやすい値です。過学習が明確なら少し上げるのも手です。
Timestep Type と Timestep Bias
これらは学習バッチがどの timestep を多くサンプルするかを形作ります。
Timestep Type:Linear:全域を均等にサンプルSigmoid:中間域に集中(顔/キャラクターに向く)Weightedなど:モデル別プリセットTimestep Bias:Balanced:偏りなしHigh Noise:高ノイズ側に寄せる(構図/大形状)Low Noise:低ノイズ側に寄せる(質感/細部)
FlowMatch 系モデルのキャラクター LoRA では、Weighted + Balanced は非常に堅実な出発点です。
学習時の Sampler / Noise Type
SD 系は DDPM、Flux / Z‑Image Turbo / Wan 2.x のような FlowMatch 系は FlowMatch がデフォルトです。通常は変えず、プリセットに従ってください。
EMA(Exponential Moving Average)
Use EMA:LoRA 重みの平滑化コピーを保持するかどうかEMA Decay:0.99 など。値が高いほど滑らかだが追従が遅い
小規模データで安定する場合がある一方、メモリも消費します。VRAM が厳しいなら無理にオンにしなくて大丈夫です。
Text Encoder の最適化
Unload TE:ステップ間で text encoder を VRAM から外す(省メモリだが遅くなり得る)Cache Text Embeddings:caption ごとに embedding を 1 回だけ計算し、以降は使い回す(ディスクを使う)
基本方針:
- VRAM が足りるなら両方 OFF
- VRAM が厳しいが caption が実質固定なら
Cache Text Embeddingsを ON - DOP や動的 prompt など ステップごとにテキストが変わる構成なら
Cache Text Embeddingsは OFF(毎回正しい prompt を再エンコードする必要があるため)
6.7 ADVANCED / Regularization パネル:DOP と Differential Guidance
Differential Output Preservation(Differential Output Preservation)
オンにすると AI Toolkit は:
- ベースモデルとLoRA 付きモデルの両方を、正則化(regularization)画像に対して実行
- 変えてはいけない出力が変わることを罰する loss を追加
します。
主なコントロール:
DOP Loss Multiplier:この preservation loss の強さ(0.1–1.0 が典型)。1.0 は「強く守る」。DOP Preservation Class:守りたい対象のクラス名(例:"person"/"truck")。text encoder が正則化 caption を解釈する助けになります。
DOP を有効に使うには:
- DATASETS パネルで
Is Regularizationを付けたデータセットが最低 1 つ必要 - その正則化画像の caption には trigger word を入れない(一般例として扱う)
DOP が効く典型例:
- キャラクター LoRA が、トリガーなしでも人物を全部“その人化”してしまう
- 商品 LoRA が、トリガーなしでもロゴが全部“そのブランド化”してしまう
Blank Prompt Preservation は、正則化を空プロンプトで回す変種で、トリガーなしのベース挙動を乱さないように促します。
Do Differential Guidance(Do Differential Guidance)
主に Z‑Image Turbo の LoRA で使われます。
- ベースと適用後の差分を取り、その差分信号で「何を変えるべきか」を学習に反映します。
Differential Guidance Scaleで強さを調整します。具体例は Hugging Face の Z‑Image Turbo LoRA ガイド にあります。
Turbo 以外(Flux / Qwen / SDXL など)では、モデル別チュートリアルが推奨しない限り OFF にするのが普通です。
6.8 DATASETS パネル:実際に何で学習するか
DATASETS パネルの各ブロックは、Datasets ページで作った 1 つのデータセットを参照します。
主なフィールド:
Target Dataset– 参照するデータセットLoRA Weight– 複数データセット時の相対重要度Default Caption– caption がない画像のフォールバックCaption Dropout RateNum Frames(動画モデル)Cache LatentsIs RegularizationFlip X,Flip YResolutions(256–1536 bucket)
実務的な意味:
LoRA Weight:重み 2 のデータセットは、重み 1 に比べておよそ 2 倍の頻度でサンプルされます。Default Caption/Caption Dropout Rate:Default Caption:caption が抜けた画像に最低限の説明(+トリガー)を付けたいときに便利。Caption Dropout Rate:一部サンプルで caption を消す/空にする。- 0 に近い → トリガー依存が強い LoRA
- 1 に近い → “常時スタイル”に近い挙動
Is Regularization:DOP/正則化用途のデータセットに付けます。trigger word を含めない“一般例”にします。Cache Latents:潜在表現を事前計算して保存し、学習を高速化しますが、ディスク使用量が増えます。不要なら後で手動で削除する必要があります。Num Frames(動画):各クリップから何フレーム使うか。増やすほど動き学習は良くなりますが VRAM が増えます。Flip X/Flip Y:自動拡張。特にFlip Xは文字や左右非対称に悪影響が出ることがあるため、顔/ロゴ/商品では慎重に。Resolutions:bucket の選択。AI Toolkit は 縮小のみで合わせ、拡大はしません。bucket を増やすほど VRAM 使用は上がります(特に 1280+)。24GB なら 768 と/または 1024 が定番です。
6.9 SAMPLE パネル:学習の進みをリアルタイムで見る
SAMPLE パネルは、学習中にプレビュー画像/動画をどう生成するかを定義します。
主なフィールド:
Sample Every– 何 steps ごとに生成するかSampler– モデルに応じてFlowMatch/DDPMWidth/Height– プレビュー解像度SeedとWalk SeedGuidance ScaleNum FramesとFPS(動画プレビュー)Sample Steps- 追加トグル:
Skip First Sample/Force First Sample/Disable Sampling
下部で複数の Sample Prompts を追加でき、各プロンプトに対してテキスト、(必要なら)解像度/seed、LoRA Scale、コントロール画像を設定できます。
学習との関係:
Sample EveryとSave Every:一致させると、各チェックポイントに対応するプレビューが揃って比較しやすくなります。Sampler:プリセット推奨に従う(Flux/Wan/Z‑Image Turbo は FlowMatch、SD 1.5/SDXL は DDPM)。- プレビュー解像度と steps:
- 画像モデルなら 1024×1024、
Sample Steps = 20–25は見やすさと速度のバランスが良い - 動画は
Num Frames/FPSを上げるほど重くなるため、まずはプリセットを基準に SeedとWalk Seed:- 固定
Seed+Walk SeedOFF:毎回同じノイズで比較できる(チェックポイント比較に最適) Walk SeedON:seed を進めてバリエーションを出す(閲覧には良いが比較はやや難しい)
実務では:
Sample Every = Save Every = 250- 3–6 個のサンプルプロンプト
- うち 1 つは 固定 seed で“比較用”
がよく使われます。
7. クイックスタート:AI Toolkit で実用的な LoRA を学習する
この章は意図的に簡潔です。5〜6 章で意味を理解した上で、最短で「使える LoRA」を作るための手順だけをまとめます。
7.1 データ準備(設定ではリカバリできない部分)
- まずは小さく綺麗なデータから(画像 LoRA:20–50 枚程度、動画 LoRA:短く高品質なクリップ数本)。
- 固有のトリガートークン(造語)を選び、caption で一貫させる(またはジョブ側の trigger 付与を使う)。
- 量より多様性:角度、照明、背景、構図は変えつつ、核となる概念はブレさせない。
必要なら(“漏れ”が不安なときのみ):
- 同クラスの別例を集めた 正則化データセットを用意し、trigger は入れない(後で DOP を使う場合のみ)。
7.2 Ostris AI Toolkit でデータセットを作る
Ostris AI Toolkit の UI で:
- Datasets → New Dataset を開く
- 画像/クリップ + captions(または metadata)をアップロード
- 学習前の簡易チェック:
- 枚数/本数が合っている
- captions が認識されている(または default caption / trigger 付与を使う前提)
- 解像度が bucket 想定と整合している
7.3 新規ジョブ作成:プリセットから入り、変えるのは 5 つだけ
New Job を開き、モデルファミリーを選びます(FLUX.2 / Z‑Image Turbo / Qwen‑Image‑Edit / Wan 動画は、リンク先のモデル別ガイドに従うのが安全です)。
次の “効きが大きい 5 項目” だけに集中します。
1) トリガーの扱い
- captions にトリガーが既に入っている → ジョブの trigger は空
- 入っていない → Trigger Word を設定して自動付与
2) LoRA の容量
- まずは Rank 16
- それでも弱いなら(データが十分ある前提で)Rank 32 を検討
3) 学習長(Steps)
- 20–50 枚の画像 LoRA なら 2,000–3,000 steps から
4) Learning Rate
- 基本は 0.0001(モデル別レシピがある場合はそちら優先)
5) 解像度 bucket
- GPU が安定して回る “快適 bucket” を 1 つ(768 or 1024 が定番)
- 上位 bucket は VRAM に余裕がある時だけ追加
時間を節約する小技:
- Save Every = Sample Every(例:250 steps)でチェックポイントとプレビューを同期
- 固定 seed のサンプルプロンプトを 1 つ入れて比較しやすくする
7.4 チェックポイント選びに効く Sampling 設計
プロンプトを増やすより、3 本で十分に診断できます。
- Activation(トリガーあり):LoRA が“効く”ことを確認
- Generalization(トリガーあり・属性変更):柔軟性を確認
- Leak test(トリガーなし):トリガーなしで“乗っ取り”が起きないか確認
Leak test が概念に寄ってきたら、そこが過学習のサインなので、より早い checkpoint を採用します。
7.5 速い切り分け:つまみを 1 個だけ動かす
うまくいかないときは、次のいずれか 1 つだけを変えます。
- 弱い → まず steps を増やす、次に rank を検討
- 強すぎる/漏れる → まず早い checkpoint を選ぶ、次に steps/rank を下げる
それでも漏れるなら、正しい正則化データセットを用意して DOP を有効化
- OOM → まず bucket/解像度を下げ、次に rank を下げる。最後により強い省メモリ手段へ
7.6 LoRA をエクスポートして使う
Training Queue または AI Toolkit の出力フォルダから:
- 最適な checkpoint(
.safetensorsの LoRA ファイル)をダウンロード - RunComfy Cloud AI Toolkit を使っている場合、LoRA ファイルは Custom Models ページ にも保存されるため、リンクをコピーしてダウンロードし、プレイグラウンドや ComfyUI でテストできます
8. AI Toolkit の LoRA 学習トラブルシュート:よくあるエラーと対処
Dataset が見つからない / 空
症状:
- ジョブがすぐ終了する
- ログに “no images found” などが出る
確認:
- Datasets で枚数が期待通りか確認
- ジョブ側の
Target Datasetが正しいデータセットを指しているか確認 - JSONL metadata を使っている場合は、ファイルの存在と形式を確認
ベースモデルのダウンロード / Hugging Face エラー
症状:
- 403/404 でダウンロードできない
- アクセス権限不足のログが出る
対処:
- gated モデル(Flux dev、Wan の一部など)は Hugging Face 上でライセンスに同意する
- AI Toolkit ルートの
.envにHF_TOKEN=your_read_tokenを追加する
学習またはサンプリングで CUDA out‑of‑memory
症状:
- ジョブ開始時またはサンプル生成時に “CUDA out of memory”
対策:
- DATASETS:
- 高解像度(1280 / 1536)を外し、768/1024 に絞る
- TARGET:
Linear Rankを下げる(32 → 16)- QUANTIZATION / MODEL:
Low VRAMを ON- Transformer 量子化を強める(float8 → 6‑bit)
- TRAINING:
Batch SizeまたはGradient Accumulationを下げる- SAMPLE:
- プレビュー解像度と
Sample Stepsを下げる - 動画プレビューは
Num Framesを下げる
RunComfy Cloud AI Toolkit で動かしている場合は、より VRAM の多い GPU ティアに上げて再実行するのが最も簡単な逃げ道です。多 VRAM なら、攻めた量子化/Low VRAM 設定を戻しつつシンプルな config にでき、1 step あたりが速くなって反復も増やせます。
LoRA が過学習してベースモデルを“乗っ取る”
症状:
- どの人物も学習対象に似てしまう
- トリガーなしでもトラックやロゴが全部同じになってしまう
緩和策:
Linear Rankを下げる- 早い checkpoint を使う(例:3000 より 2000)
Weight Decayを少し上げる- 同クラスの正則化データセットを追加し、
Is Regularizationを ON Differential Output Preservationを有効化し、適切なDOP Loss Multiplier(例:0.2–0.5)とDOP Preservation Class("person"/"truck"など)を設定する
トレーニングを開始する準備はできましたか?

