メインコンテンツへスキップ
ComfyUI は、外部ツールやカスタムノードを必要とせずに LoRA(Low-Rank Adaptation)モデルのトレーニングをネイティブにサポートしています。このページではトレーニングワークフローの全体像を説明します。各ノードの詳細なパラメーター説明については、対応するノードドキュメントをご参照ください。
トレーニングノードは現在実験的機能としてマークされています。機能と動作は将来のリリースで変更される可能性があります。

ノード概要

ネイティブ LoRA トレーニングシステムは、データセットノードトレーニングノードの2つに分かれています。

データセットノード

トレーニングデータの準備と管理に使用します:
ノード用途
Load Image Dataset from Folder入力サブフォルダーから画像をバッチ読み込み
Load Image and Text Dataset from Folder画像とキャプションのペアを読み込み(kohya-ss フォルダー構造に対応)
Make Training DatasetVAE で画像を、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/ のサブフォルダーに配置したトレーニング画像
  • ベースモデル(チェックポイント)

典型的なトレーニングワークフロー

1

トレーニング画像の読み込み

ComfyUI/input/ 以下のサブフォルダーにトレーニング画像を配置します。
  • 画像のみの場合は Load Image Dataset from Folder を使用
  • 画像とキャプションのペアには Load Image and Text Dataset from Folder を使用(各画像に同名の .txt ファイルが必要)
10〜20 枚の高品質な画像から始めましょう。量より質が重要です。
2

データセットのエンコード

画像とテキストを VAE・CLIP モデルとともに Make Training Dataset ノードに接続します。latentsconditioning が出力されます。同じデータセットを複数回のトレーニングに使う場合は、Save Training Dataset で保存しておき、次回以降は Load Training Dataset から読み込むことで再エンコードを省略できます。
3

(任意)解像度バケット

画像のサイズが異なる場合は、エンコード済みデータを Resolution Bucket ノードで解像度ごとにグループ化し、Train LoRA ノードで bucket_mode を有効にすることで効率的なバッチトレーニングが可能になります。
4

Train LoRA の設定と実行

モデル、潜在表現、条件付けデータを Train LoRA ノードに接続し、必要に応じてパラメーターを調整します。推奨の初期設定:
パラメーター推奨初期値
steps100〜500
rank8〜16
learning_rate0.0001〜0.0005
optimizerAdamW
loss_functionMSE
ノードは学習済みの lora 重み、loss_map、完了した steps 数を出力します。
5

トレーニング進捗の監視

loss_mapPlot Loss Graph ノードに接続して損失曲線を確認します。損失が収束したらトレーニングを停止できます。
6

LoRA の保存とテスト

loraSave LoRA Weights に接続すると ComfyUI/output/loras/.safetensors ファイルが保存されます。推論ワークフローでは Load LoRA Model ノードを使ってトレーニング済み LoRA をベースモデルに適用し、結果を確認します。

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: none
  • quantized_backward: 有効
  • bypass_mode: 有効
推論時は Load LoRA Model でも bypass を有効にしてください。

トレーニングの続行

Train LoRAexisting_lora に保存済みの LoRA ファイルを指定すると、チェックポイントから学習を再開できます。総ステップ数は自動的に累積されます。

サポートされているアルゴリズム

Train LoRAalgorithm パラメーターで重みアダプターの種類を選択します:
アルゴリズム説明
LoRA標準の低ランク適応。ほとんどのケースで推奨
LoHaアダマール積を使った低ランク適応
LoKrクロネッカー積を使った低ランク適応。よりパラメーター効率が高い
OFT直交ファインチューニング(実験的)