ノード概要
ネイティブ LoRA トレーニングシステムは、データセットノードとトレーニングノードの2つに分かれています。データセットノード
トレーニングデータの準備と管理に使用します:| ノード | 用途 |
|---|---|
| Load Image Dataset from Folder | 入力サブフォルダーから画像をバッチ読み込み |
| Load Image and Text Dataset from Folder | 画像とキャプションのペアを読み込み(kohya-ss フォルダー構造に対応) |
| Make Training Dataset | VAE で画像を、CLIP でテキストをエンコードしてトレーニングデータを生成 |
| Resolution Bucket | 効率的なバッチ学習のために解像度ごとにグループ化 |
| Save Training Dataset | エンコード済みデータセットをディスクに保存して再エンコードを省略 |
| Load Training Dataset | 保存済みのエンコード済みデータセットをディスクから読み込み |
トレーニングノード
トレーニングの実行、結果の保存、LoRA の適用に使用します:| ノード | 用途 |
|---|---|
| Train LoRA | 潜在表現と条件付けデータから LoRA をトレーニング |
| Save LoRA Weights | トレーニング済み LoRA の重みを safetensors ファイルとして出力 |
| Load LoRA Model | トレーニング済み LoRA の重みをモデルに適用(推論用) |
| Plot Loss Graph | トレーニング損失の推移を可視化 |
必要条件
- 十分な VRAM を持つ GPU(トレーニングは推論よりも多くのメモリを必要とします)
ComfyUI/input/のサブフォルダーに配置したトレーニング画像- ベースモデル(チェックポイント)
典型的なトレーニングワークフロー
トレーニング画像の読み込み
ComfyUI/input/ 以下のサブフォルダーにトレーニング画像を配置します。- 画像のみの場合は Load Image Dataset from Folder を使用
- 画像とキャプションのペアには Load Image and Text Dataset from Folder を使用(各画像に同名の
.txtファイルが必要)
データセットのエンコード
画像とテキストを VAE・CLIP モデルとともに Make Training Dataset ノードに接続します。
latents と conditioning が出力されます。同じデータセットを複数回のトレーニングに使う場合は、Save Training Dataset で保存しておき、次回以降は Load Training Dataset から読み込むことで再エンコードを省略できます。(任意)解像度バケット
画像のサイズが異なる場合は、エンコード済みデータを Resolution Bucket ノードで解像度ごとにグループ化し、Train LoRA ノードで bucket_mode を有効にすることで効率的なバッチトレーニングが可能になります。
Train LoRA の設定と実行
モデル、潜在表現、条件付けデータを Train LoRA ノードに接続し、必要に応じてパラメーターを調整します。推奨の初期設定:
ノードは学習済みの
| パラメーター | 推奨初期値 |
|---|---|
steps | 100〜500 |
rank | 8〜16 |
learning_rate | 0.0001〜0.0005 |
optimizer | AdamW |
loss_function | MSE |
lora 重み、loss_map、完了した steps 数を出力します。VRAM の最適化
| 手法 | 説明 |
|---|---|
| gradient_checkpointing(デフォルトで有効) | 逆伝播時にアクティベーションを再計算して VRAM を削減 |
| batch_size を下げる | 最も直接的な VRAM 削減方法 |
| grad_accumulation_steps を上げる | 追加 VRAM なしで大きなバッチサイズと同等の効果 |
| offloading | モデルの重みを CPU に移動。gradient_checkpointing の有効化が必要 |
| bypass_mode | 重みを直接変更せずフォワードフックでアダプターを適用。量化モデル(FP8/FP4)に必要 |
量化モデルのトレーニング
FP8/FP4 などの量化モデルで LoRA をトレーニングする場合、Train LoRA に以下の設定を使用します:training_dtype:nonequantized_backward: 有効bypass_mode: 有効
bypass を有効にしてください。
トレーニングの続行
Train LoRA のexisting_lora に保存済みの LoRA ファイルを指定すると、チェックポイントから学習を再開できます。総ステップ数は自動的に累積されます。
サポートされているアルゴリズム
Train LoRA のalgorithm パラメーターで重みアダプターの種類を選択します:
| アルゴリズム | 説明 |
|---|---|
| LoRA | 標準の低ランク適応。ほとんどのケースで推奨 |
| LoHa | アダマール積を使った低ランク適応 |
| LoKr | クロネッカー積を使った低ランク適応。よりパラメーター効率が高い |
| OFT | 直交ファインチューニング(実験的) |