AI Toolkit LoRAトレーニングガイド

Ostris AI Toolkitによる拡散モデル向けLoRA学習

このガイドは、Ostris AI Toolkitで画像/動画向けの最新拡散モデルをLoRAで微調整する手順を解説します。ツール構成、LoRAアダプタの仕組み、主要ハイパーパラメータの設定、そしてローカルまたはRunComfy Cloudでの学習・デバッグ方法を学べます。

Ostris AI Toolkitで拡散モデルをトレーニング

横にスクロールしてフォーム全体を表示

Ostris AI ToolkitOstrisAI-Toolkit

New Training Job

Job

Model

Quantization

Target

Save

Training

Datasets

Dataset 1

Sample

このページは、Ostris AI Toolkit を使った LoRA ファインチューニングの概要です。モデル別のレシピは、以下のガイドから該当するものへジャンプしてください。

このガイドを読み終えるころには、次のことができるようになります。

  • LoRA 学習のコア概念(ファインチューニング中に実際に何が起きているか)を理解する
  • AI Toolkit の構成と、各パネルが何を制御するのかを把握する
  • 主要パラメータ(learning rate / rank / steps / noise schedule / DOP など)が何を意味し、どう効くのかを理解し、意図を持って調整できる
  • 手元のマシンでも RunComfy Cloud 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 LatentsCache 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 つの学習行列 AB からなる低ランク更新を加えます。イメージとしては W_new = W + alpha A B で、W は凍結された元の重み、AB は小さく学習可能な行列、alpha は推論時に LoRA の効きを調整するスケールです。

rankAB の幅を決めるため、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 = 1Gradient 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 TypeTimestep 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 でライセンスに同意した上で .envHF_TOKEN を設定し、ダウンロードできるようにします。

モデルによっては Low VRAMLayer 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 TECache Text Embeddings などで text encoder を外す構成では、量子化の影響は小さくなります。

実務的には:

  • 24GB GPU で Flux/Wan を学習するなら、Transformer = 6-bitText 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 Type
    • BF16:安定で効率がよく、基本のおすすめ。
    • FP16:わずかに高精度だが、多くの場合差は小さい。
    • FP32:非常に重い。必要があるときだけ。
  • Save Every

    何 steps ごとに保存するか。例:Save Every = 250Steps = 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 = 1Gradient 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 は:

  1. ベースモデルLoRA 付きモデルの両方を、正則化(regularization)画像に対して実行
  2. 変えてはいけない出力が変わることを罰する 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 Rate
  • Num Frames(動画モデル)
  • Cache Latents
  • Is Regularization
  • Flip X, Flip Y
  • Resolutions(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 / DDPM
  • Width / Height – プレビュー解像度
  • SeedWalk Seed
  • Guidance Scale
  • Num FramesFPS(動画プレビュー)
  • Sample Steps
  • 追加トグル:Skip First Sample / Force First Sample / Disable Sampling

下部で複数の Sample Prompts を追加でき、各プロンプトに対してテキスト、(必要なら)解像度/seed、LoRA Scale、コントロール画像を設定できます。

学習との関係:

  • Sample EverySave Every:一致させると、各チェックポイントに対応するプレビューが揃って比較しやすくなります。
  • Sampler:プリセット推奨に従う(Flux/Wan/Z‑Image Turbo は FlowMatch、SD 1.5/SDXL は DDPM)。
  • プレビュー解像度と steps:
    • 画像モデルなら 1024×1024、Sample Steps = 20–25 は見やすさと速度のバランスが良い
    • 動画は Num Frames/FPS を上げるほど重くなるため、まずはプリセットを基準に
  • SeedWalk Seed
    • 固定 Seed + Walk Seed OFF:毎回同じノイズで比較できる(チェックポイント比較に最適)
    • Walk Seed ON: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 で:

  1. Datasets → New Dataset を開く
  2. 画像/クリップ + captions(または metadata)をアップロード
  3. 学習前の簡易チェック:
    • 枚数/本数が合っている
    • 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 ルートの .envHF_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" など)を設定する

トレーニングを開始する準備はできましたか?