AI Toolkit LoRA Training Guides

Ostris AI ToolkitでのWan 2.2 I2V 14B Image-to-Video LoRA学習

このガイドは、Ostris AI ToolkitでWan 2.2 I2V 14B(Image-to-Video)LoRAを学習する手順をまとめたものです。Wanのhigh-noise/low-noise expertsの仕組み、モーション/スタイル/キャラクター向けクリップデータセット設計、Multi-stage・Num Frames・解像度バケット・量子化の調整方法を解説し、24GBローカルGPUやH100/H200環境で安定して回すためのポイントを紹介します。

Train Diffusion Models with Ostris AI Toolkit

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

Ostris AI ToolkitOstrisAI-Toolkit

New Training Job

Job

Model

Quantization

Target

Save

Training

Datasets

Dataset 1

Sample

Wan2.2 I2V 14B 画像→動画 LoRA学習は、1枚の画像を制御可能なモーション、カメラワーク、時間的一貫性を持つ5秒クリップに変換します。このガイドを終えると、以下のことができるようになります:

  • モーション、スタイル、キャラクターのユースケースに対応したWan I2V LoRAデータセットを設計する(実際に必要なクリップ数も把握できます)。
  • Wanのデュアルhigh-noise / low-noiseエキスパート、タイムステップ設定、Num Frames、解像度がトレーニング中にどのように相互作用するかを理解する。
  • AI Toolkitパネル(JOB、MODEL、QUANTIZATION、MULTISTAGE、TARGET、TRAINING、DATASETS、SAMPLE)を24GBで安定して動作するように、またH100/H200クラウド環境向けに設定する。
この記事はAI Toolkit LoRAトレーニングシリーズの一部です。Ostris AI Toolkitが初めての方は、このガイドに入る前にAI Toolkit LoRAトレーニング概要からお読みください。

目次


1. Wan 2.2 I2V 14Bの特徴とは?

Wan 2.2 I2V 14B(「A14B」)はWan 2.2画像→動画バリアントです。アーキテクチャ的にはデュアルステージMixture-of-Experts(MoE)トランスフォーマーです。14Bパラメータのトランスフォーマーが2つあります。high-noiseトランスフォーマーは初期の非常にノイズの多いタイムステップを処理し、グローバルな構成、モーショントラジェクトリ、カメラ移動を担当します。low-noiseトランスフォーマーは後半のクリーンなタイムステップを処理し、細部、アイデンティティ、テクスチャを担当します。

推論時、パイプラインはノイズスケジュールの約875/1000の境界でタイムステップを分割し、high-noiseまたはlow-noiseトランスフォーマーにルーティングします。実際には、各エキスパートがデノイジングプロセスの約半分を処理します。Wan 2.2 I2Vは16 FPSで最大81フレームを生成し、約5秒の動画になります。

Wan2.2 I2V 14B 画像→動画 LoRA学習において、これは3つの重要な結果をもたらします。1つまたは両方のステージをトレーニングすることを選択できます。構成とモーション(high noise)またはアイデンティティと詳細(low noise)に向けてトレーニングをバイアスできます。そして、フレームのシーケンスを処理するため、フレーム数、解像度、VRAM、量子化/オフロード設定が画像のみのモデルよりもはるかに重要になります。

AI Toolkitは主にMULTISTAGETRAININGTARGETDATASETSパネルを通じてこれらのコントロールを公開します。


2. WAN 2.2 LoRA トレーニング I2Vの実行環境

このWan 2.2 I2V LoRAトレーニングワークフローは、RunComfyのクラウドAI ToolkitまたはローカルAI Toolkitインストールのいずれかで実行できます。UIとパネルは同じで、ハードウェアだけが異なります。

2.1 RunComfy クラウドAI Toolkit(初回実行に推奨)

CUDA、ドライバー、大規模モデルのダウンロードを管理したくない場合は、RunComfyのクラウドAI Toolkitを使用してください:

👉 RunComfy AI Toolkit trainer

このページでは、ブラウザにプリインストールされたAI Toolkit UIを取得できます。データセットをアップロードし、このガイドとまったく同じようにジョブを設定し、H100(80 GB)またはH200(141 GB) GPUでトレーニングを実行できます。これはローカルセットアップに触れることなく、チュートリアルを確実に再現する最も簡単な方法です。


2.2 ローカルAI Toolkit

ローカルで実行したい場合:READMEに従ってAI Toolkitリポジトリをインストールし(トレーニング用のPython + PyTorchとUI用のNode)、UIを実行します(ui/npm run build_and_start)。http://localhost:8675を開くと、ここのスクリーンショットと説明と同じパネルが表示されます。


3. Wan I2V LoRA向けデータセット設計

Wan 2.2 I2Vは動画クリップ + キャプションのペアでトレーニングされます。各トレーニングサンプルはフレームのシーケンスとテキストです。AI Toolkitでは、すべてのクリップを手動で同じ長さに切り取る必要はありません。代わりに、DATASETSパネルでNum Framesを設定すると、データローダーが各動画からそのフレーム数を均等にサンプリングし、異なる長さのクリップを自動的に処理します。

3.1 どのタイプのLoRAをトレーニングするか決める

ハイパーパラメータの設定方法は目標に大きく依存します:

  • モーション/カメラLoRAは「被写体の周りを360度回転」「スローなドリーズーム」「手持ちカメラの揺れ」などのパターンや特定のアクションビートに焦点を当てます。
  • スタイルLoRAは、Wanのベースモーションとシーン構成を維持しながら、動画を特定のフィルムストック、アニメスタイル、または絵画的な外観にします。
  • キャラクターLoRAは、多くのシーンとモーションにわたって特定のキャラクターまたは顔を一貫して保持しようとします。

Wan 2.2 I2Vは3つすべてを行うことができます。モーションLoRAはhigh-noiseステージに重点を置き、スタイルとキャラクターLoRAはlow-noiseステージと非常に一貫したビジュアルに重点を置きます。


3.2 動画クリップとクロッピング

GIFではなく、実際の動画クリップ(.mp4.movなど)を使用してください。クリップの長さは異なっても構いません(例:5〜30秒)。AI ToolkitはNum Frames設定に従って各クリップに沿ってトレーニングフレームを均等にサンプリングします。

常に手動で行うべきことの1つは、関心のあるモーションがすぐに始まり、最初や最後に多くの「立ち止まり」がないように各クリップをクロップしてトリミングすることです。特にモーションLoRAの場合、モーションがクリップのほぼ全体を占めるようにしたい—例えば、完全な周回、完全なドリー移動、または完全なジェスチャー。


3.3 何クリップ必要ですか?

大まかな目安として:

  • 単一タイプのカメラ移動を教えるシンプルなモーションLoRAは通常、ターゲットモーションが非常に明確でフレームの大部分を占める10〜30の短いクリップ(〜3〜8秒)でうまくトレーニングできます。
  • スタイルLoRAは通常、異なるシーン、照明、被写体をカバーしながらすべて同じルックとカラートリートメントを共有する10〜40の画像またはクリップが必要です。
  • I2VのキャラクターLoRAは画像LoRAに近い動作をします。最低でも、さまざまなポーズ、スケール、角度、背景で同じキャラクターの10〜30の短いクリップを目指してください。快適に20〜40クリップに到達できれば、類似性と堅牢性が通常向上します。

3.4 I2Vクリップのキャプション

各動画ファイルは、同じベース名の.txtキャプションをオプションで持つことができます(例:castle_orbit.mp4castle_orbit.txt)。AI Toolkitは、クリップにファイルごとのキャプションがない場合に使用されるDefault Captionもサポートします。

良いキャプションパターン:

  • モーションLoRAの場合、テキストにモーションを明示的にエンコードします。例:

    orbit 360 around the subjectorbit 180 around the subject、またはslow dolly in toward the character

  • スタイルLoRAの場合、シーンの内容ではなく外観を説明します。例:

    grainy 16mm film look, high contrast, warm tint

  • キャラクターLoRAの場合、トリガーワードとクラスを含めます。例:

    frung, young woman, casual clothingfrungがトリガートークン)。

JOBパネルで設定したTrigger Wordと、[trigger]を含むキャプションを組み合わせることもできます。AI Toolkitはデータセットのロード時に[trigger]を選択したトリガー文字列に置き換えるため、すべてのキャプションにトリガー名をハードコードする必要がありません。


4. 理解すべきWan 2.2 I2Vの特性

4.1 High-noise vs Low-noiseトランスフォーマー

Wanの2つのトランスフォーマーは大まかに次のように動作します:

high-noiseトランスフォーマーは拡散プロセスの開始近くのタイムステップ(約1000から〜875)で動作します。グローバルな構成と粗い形状を設定し、オブジェクトの配置、カメラの動き、モーショントラジェクトリを決定します。モーションとレイアウトに重要です。

low-noiseトランスフォーマーは約875から0のタイムステップで実行されます。詳細、テクスチャ、顔の類似性、マイクロモーションを洗練します。アイデンティティ、テクスチャ、シャープネスに重要です。

実際には、high-noiseステージのみをトレーニングすると、新しいタイプのモーションと構成を教えることができますが、詳細がアンダートレーニングになる傾向があります。low-noiseステージのみをトレーニングすると、モーションやレイアウトを大幅に変更することが困難です。ほとんどのLoRAでは両方のステージをトレーニングし、TRAININGパネルのTimestep Biasを使用して強調を調整する必要があります。


4.2 フレーム、FPS、速度

Wan 2.2 I2V 14Bは16 FPSで最大81フレームを生成でき、5秒です。実際には、有効な動画フレーム数は「4n+1」ルールに従います(例:9、13、17、21、33、41、81…)。そのファミリーで動画の長さを考えることができます。1フレームもサポートされており、AI Toolkitで Wan 2.2 I2V 14B LoRA を学習する際に、I2Vを効果的に単一フレームの画像のようなモードに縮小します。

AI Toolkitには2つの別々のNum Framesノブがあります。DATASETSパネルのNum Framesはトレーニング用にクリップごとにサンプリングするフレーム数を制御します。SAMPLEパネルのNum Framesはプレビュー動画の長さを制御します。正確に一致する必要はありませんが、同様に保つと動作が理解しやすくなります。

トレーニングの良い出発点は41フレーム(約2.5秒)です。80〜96 GB GPU(H100クラス)では、完全な81フレーム設定まで行くことができます。21や33フレームなどの短い長さは、小さなGPUでVRAM負荷とステップ時間を減らすために使用できますが、時間的コンテキストのキャプチャが少なくなります。


4.3 解像度とピクセル面積

Wanの公式デモは通常、有効面積を約480×832 ≈ 400kピクセルに保ち、Hugging Face Spacesは寸法を16または32の倍数にスナップします。

AI ToolkitでのWan2.2 I2V 14B 画像→動画 LoRA学習の場合:

  • 24 GB GPUでは、512768などの解像度バケットを使用します。非常に積極的に量子化したり、レイヤーオフロードを使用していない限り、1024×1024は避けてください。1024²で41〜81フレームの動画は重いです。
  • 48 GB以上のGPUまたはH100/H200では、安全に1024バケットを追加でき、1024×576、1024×608、1024×640などの値を中心としたシネマティックワイドスクリーン解像度も使用できます。

AI Toolkitはデータセットのロード時に動画を選択した解像度に自動的にバケット化してダウンスケールします。


5. AI ToolkitでWan 2.2 I2V 14B LoRAを学習する手順

少なくとも24GBクラスのGPUを持っていると仮定しているため、以下の設定は安全なベースラインです。より大きなカードを持っているか、RunComfyのクラウドAI Toolkitを使用している場合、一部のパネルには設定をスケールアップする方法についての短いメモも含まれています。


5.1 JOBパネル

JOBパネルでは、基本的なメタデータとオプションでトリガートークンを設定します。

  • Training Name

    任意の説明的な名前を使用します。チェックポイントとサンプルのフォルダ名になります。例:wan_i2v_orbit_v1wan_i2v_style_neonwan_i2v_char_frung_v1

  • GPU ID

    ローカルインストールでは、物理GPUを指します。RunComfyクラウドAI Toolkitでは、デフォルトのままにできます。実際のマシンタイプ(H100/H200)は後でTraining Queueで選択されます。

  • Trigger Word(オプション)

    frungwan_cam_orbitなどの専用トークンが必要なキャラクターまたはスタイルLoRAにトリガーを使用します。データセットのキャプションに[trigger]が含まれている場合、AI Toolkitはロード時にそれらのキャプションにTrigger Word値を自動的に代入します。

    純粋なモーションLoRAの場合、動作は「orbit 360 around the subject」などのフレーズにすでにエンコードされているため、トリガーワードは必要ないことが多いです。キャラクターとスタイルの場合、後でLoRAのクリーンなオン/オフスイッチを持つためにトリガーを使用することを強くお勧めします。


5.2 MODELとQUANTIZATIONパネル

これらのパネルは、どのWanモデルチェックポイントが使用され、どの程度積極的に量子化されるかを制御します。

MODELパネル

  • Model Architecture

    Wan 2.2 I2V (14B)を選択します。

  • Name or Path

    ベースチェックポイントのHugging Faceモデルid(リポジトリid)。例:ai-toolkit/Wan2.2-I2V-A14B-Diffusers-bf16

    ほとんどのAI Toolkitビルドでは、Wan 2.2 I2V (14B)を選択すると、この値が自動入力されます。変更する理由がない限り、そのままにしてください。

  • Low VRAM

    24GBコンシューマーGPUまたはディスプレイも駆動しているカードの場合、Low VRAM ONにします。48 GB以上のカード(H100/H200を含む)では、トレーニング負荷を合理的に保つ限り(例:512/768バケットと〜41フレーム)、速度のためにOFFにできることが多いです。断続的なOOM(多くの場合、最大解像度バケットによって引き起こされる)が発生したり、1024バケットや81フレームをプッシュしたい場合は、安定性のためにLow VRAM ONにしてください。

  • Layer Offloading

    このトグルは、すべてのレイヤーをVRAMに常駐させる代わりに、モデルの一部をCPU RAMにストリーミングします。非常に小さなGPU(約10〜12 GB VRAM)でWan I2Vを実行しようとしていて、多くのシステムRAM(64 GB以上)がある場合にのみ必要です。ステップ時間を約2倍にする可能性がありますが、ピークVRAMを〜9 GB未満に抑えることができます。24 GB GPUの場合、Layer Offloading OFFで開始し、それでもメモリ不足エラーが発生する場合にのみオンにしてください。

大型GPU / RunComfyの場合:

48 GB以上またはH100/H200では、Layer Offloading OFFで開始します。最大速度が必要な場合はLow VRAM OFFのままにしますが、最初は保守的なバケット(512/768)とフレーム(≈41)と組み合わせてください。1024/81をプッシュしてOOMスパイクが発生した場合は、Low VRAM ONにする(または1024を削除する)ことで実行を安定させます。

QUANTIZATIONパネル

  • Transformer

    24〜32 GB GPUでは、Transformer4bit with ARAに設定します。これは4ビット量子化とAccuracy Recovery Adapterを使用して、VRAM使用量が単純な4ビットに近い一方で、品質がbf16にはるかに近くなります。

  • Text Encoder

    Text Encoderfloat8(またはqfloat8)に設定します。これにより、Wan 2.2 I2V LoRA品質への影響がほとんどなく、テキストエンコーダーのVRAMと計算が削減されます。

これはWan 2.2ビデオLoRAの公式AI Toolkitサンプル設定を反映しており、24 GBカードでトレーニングが実用的である主な理由です。特定のセットアップでARAの安定性の問題や重大な速度低下が発生した場合は、Transformerをqfloat8にフォールバックできます。VRAMをより多く使用しますが、品質面では非常に類似した動作をします。

大型GPU / RunComfyの場合:

H100/H200または48〜96 GBワークステーションカードでは、4bit with ARAを維持して追加のVRAMをより高い解像度、より多くのフレーム、またはより高いLoRAランクに使用するか、Transformerを純粋なfloat8 / qfloat8オプションに切り替えてよりシンプルなスタックにすることができます。musubi-tuner Wan2.2 I2V LoRA学習でフルbf16に完全に戻ることはほとんど必要ありません。


5.3 MULTISTAGEパネル(high / low noise)

MULTISTAGEパネルでは、どのWanエキスパートをトレーニングするか、トレーナーがそれらの間でどのくらいの頻度で切り替えるかを決定できます。

  • Stages to Train

    ほとんどのLoRAではHigh NoiseLow Noiseの両方をONに保ちます。High noiseは構成とモーションを制御し、low noiseは詳細とアイデンティティを制御します。

  • Switch Every

    この値は、別のエキスパートに切り替える前に1つのエキスパートで実行するステップ数を制御します。High Noise = ONLow Noise = ONSwitch Every = 10Steps = 3000の場合、AI Toolkitは次のようにトレーニングします:

    • ステップ1〜10:high-noiseトランスフォーマー
    • ステップ11〜20:low-noiseトランスフォーマー
    • トレーニングが完了するまでこの交互を繰り返します。

大型GPUでは、両方のエキスパートがVRAMに常駐している場合にのみ(Low VRAM/オフロード/スワップなし)、Switch Every = 1(毎ステップ交互)を使用できますLow VRAMまたはオフロード/スワッピングが関与している場合、各スイッチは高価なアンロード/ロードをトリガーする可能性があり、Switch Every = 1は非常に遅くなります。その場合、スワップオーバーヘッドを減らすためにSwitch Every = 10〜50を好んでください。

24 GB GPUベースラインの場合:

  • High Noise = ON
  • Low Noise = ON
  • Switch Every = 10-50

大型GPU / RunComfyの場合:

両方のエキスパートが常駐している場合(Low VRAM OFF、オフロードなし)、わずかにスムーズな交互のためにSwitch Every = 1を設定できます。ステップ時間が遅いかスワッピングが見られる場合は、代わりに10〜50を使用してください。


5.4 TARGETパネル(LoRAネットワーク設定)

TARGETパネルでは、どのタイプのアダプターをトレーニングし、どのくらい「広い」かを設定します。

  • Target Type

    Target TypeLoRAに設定します。

  • Linear Rank

    Linear RankはブロックごとのLoRA容量を制御します。ランクが高いほど容量は増えますが、VRAM使用量とオーバーフィッティングのリスクも増加します。Wan 2.2 I2Vの場合、実用的なデフォルトは:

    • モーションとカメラLoRA:Rank 16は通常十分です。小さな視覚的詳細よりも動作を変更するためです。
    • スタイルLoRA:Rank 16から開始します。スタイルが複雑でVRAMに余裕がある場合にのみ32に移動します。
    • キャラクターLoRA:Rank 16から開始します(大型GPUでも)。実行が安定していて(OOMスパイクなし)、クローズアップの高解像度顔に特に容量が必要な場合にのみ32に移動します。

非常に大型のGPUでは、Rank 32はリッチなスタイルや要求の厳しいキャラクター作業に役立つ可能性がありますが、良いLoRAを得るために必要ではなく、大きなバケットと多くのフレームと組み合わせるとOOMスパイクがより発生しやすくなる可能性があります。


5.5 SAVEパネル

SAVEパネルは、チェックポイントの書き込み頻度と精度を制御します。

  • Data Type

    BF16またはFP16を使用します。どちらもLoRAに適しています。BF16は最新のGPUでわずかに数値的に安定しています。

  • Save Every

    Save Everyを約250に設定します。これにより、250ステップごとにチェックポイントが得られます。

  • Max Step Saves to Keep

    Max Step Saves to Keep4から6の間に設定します。これにより、ディスク使用量を抑えながら、フォールバック用の以前のチェックポイントを残すことができます。

最後のチェックポイントを使用する必要はありません。非常に多くの場合、最も見栄えの良いサンプルは2000〜4000ステップあたりから来ます。以下のSAMPLEパネル設定は、これを判断する方法を説明しています。

トレーニング中のサンプリングを無効にする場合(現在のWan I2Vビルドに推奨)、いくつかのチェックポイント(例:250ステップごと)を保持し、後で別の推論ワークフローを使用して評価してください。


5.6 TRAININGパネル

TRAININGパネルには、バッチサイズ、学習率、タイムステップ、ロス、テキストエンコーダーの処理など、ほとんどの重要なノブがあります。

コアハイパーパラメータ

24 GB Wan I2VビデオLoRAのコアトレーニング設定を次のように構成します:

  • Batch Size

    1から開始します。ビデオモデルは重く、24 GBカードでも1が現実的です。H100/H200では、後で2〜4のバッチサイズを試すことができます。

  • Gradient Accumulation

    最初はGradient Accumulation1のままにします。実効バッチサイズはバッチサイズ×勾配累積です。VRAMが非常にタイトで、わずかに大きな実効バッチが必要な場合は、2または4に上げることができますが、ビデオでは利点は控えめです。

  • Learning Rate

    Learning Rate = 0.0001から開始します。これはAI Toolkitの例のデフォルトであり、Wan LoRAに安定しています。トレーニングがノイズっぽく見えたり、LoRAがすぐにオーバーシュートしたりする場合は、実行中に0.00005に減らし、最新のチェックポイントから再開できます。

  • Steps – 典型的な範囲:
    • 〜10〜20クリップの小さく焦点を絞ったモーションLoRA:1500〜2500ステップ
    • 20〜50クリップのキャラクターまたはスタイルLoRA:2000〜3000ステップ
    • 非常に大きなデータセットはより高くできますが、通常は3000〜4000ステップをはるかに超えるよりも、データ品質(キャプション、多様性)を改善する方が良いです。
    • 1000ステップ:〜12〜18時間
    • 1500ステップ:〜18〜27時間
    • 2000ステップ:〜24〜36時間
    • 3000ステップ:〜35〜55時間
  • Weight Decay

    変更する特別な理由がない限り、Weight Decay0.0001のままにしてください。穏やかな正則化を提供します。

  • Loss Type

    Loss TypeMean Squared Error(MSE)のままにしてください。Wan 2.2はフローマッチングノイズスケジューラーを使用し、MSEはこのセットアップの標準的な損失です。


タイムステップとスケジューラー

  • Timestep Type

    Wan 2.2 I2Vの場合、LinearがデフォルトのTimestep Typeであり、ほとんどのLoRAタイプでうまく機能します。フローマッチングスケジュールに沿って更新を均等に分散し、high-noiseとlow-noiseエキスパート間の分割とうまく連携します。

  • Timestep Bias

    Timestep Biasは、トラジェクトリのどの部分を強調するかを制御します:

    • Balanced – 更新はhigh-noiseとlow-noiseタイムステップに分散されます。これはすべてのLoRAタイプの安全なデフォルトです。
    • Favor High Noise – Wanがグローバルレイアウト、モーション、色を決定する初期のノイズの多いステップにより焦点を当てます。
    • Favor Low Noise – 細かい詳細とアイデンティティが存在する後半のクリーンなステップにより焦点を当てます。
    • モーション/カメラLoRATimestep Type = LinearTimestep Bias = Balancedから開始します。非常に「純粋な」カメラ移動LoRAの場合、Favor High Noiseを試してhigh-noiseエキスパートにより重点を置くことができます。
    • スタイルLoRATimestep Type = Linear(またはShift)Timestep Bias = Favor High Noiseを使用して、LoRAがグローバルなトーンと色を書き換え、ベースモデルが後半の詳細を処理するようにします。
    • キャラクターLoRATimestep Type = Sigmoid(またはLinear)Timestep Bias = Balancedを使用します。アイデンティティと類似性はlow-noiseステップにより依存しますが、バイアスをBalancedに保つと両方のエキスパートが貢献できます。マイクロディテールに特に焦点を当てたい場合にのみ、わずかなlow-noiseバイアスを試してください。

内部的に、Wan 2.2 I2Vはフローマッチングノイズスケジューラーを使用します。AI ToolkitはWan 2.2アーキテクチャのスケジューラーと対応するサンプラーを自動的に設定するため、主に上記のTimestep TypeTimestep BiasMulti-stage設定を介して動作を制御します。


EMA(指数移動平均)

  • Use EMA

    LoRAの場合、EMAはオプションであり、追加のVRAMと時間を消費します。ほとんどのWan LoRAユーザーはUse EMA OFFにしており、フルモデルのファインチューニングを行っていない限り、ほとんど必要ありません。


Text Encoder最適化

TRAININGパネルの下部にはText Encoder Optimizations設定があります。これらは、テキストエンコーダーがどの程度積極的にオフロードまたはキャッシュされるかを制御します。

  • Unload TE

    このモードは、ステップ間でVRAMを消費しないようにテキストエンコーダーの重みをアンロードします。Wan 2.2 I2V LoRAでは、ほぼ常にリッチなクリップごとのキャプションに依存するため、通常のキャプションベースのトレーニングではUnload TE OFFのままにする必要があります。データセットのキャプションをまったく使用しない非常に狭い「トリガーのみ/空白プロンプト」LoRAを意図的にトレーニングしている場合にのみ、Unload TEを検討してください。

  • Cache Text Embeddings

    このオプションは、キャプションのエンベディングを一度事前計算して再利用し、テキストエンコーダーの繰り返しパスを回避します。キャプションが静的で、各ステップでプロンプトを変更またはランダム化する機能を使用していない場合にのみ、Cache Text Embeddings ONにしてください。Differential Output Preservation、キャプション内の動的な[trigger]書き換え、またはキャプションドロップアウトの動作に大きく依存するものなどです。その場合、AI Toolkitはすべてのトレーニングキャプションを一度エンコードし、エンベディングをディスクにキャッシュし、テキストエンコーダーをVRAMから削除できます。

DOP、Caption Dropout、またはその他の動的プロンプトトリックを使用する予定の場合は、テキストエンコーダーがバッチごとに実際のプロンプトを再エンコードできるように、Cache Text Embeddings OFFのままにしてください。Differential Output PreservationとDatasetsセクションでは、これらの相互作用について詳しく説明しています。


正則化 – Differential Output Preservation(DOP)

RegularizationセクションはDifferential Output Preservation(DOP)を公開しており、LoRAがベースモデルを上書きするのではなく、残差編集のように動作するのを助けます。

DOPは、ベースモデルの出力(LoRAなし)とLoRA有効出力を比較し、LoRAがターゲットコンセプトに関連しない側面を変更した場合にペナルティを追加します。「モデル全体を再トレーニングする」のではなく、「トリガーが存在する場合に何が変わるか」を教えようとします。

モーション/カメラLoRAの場合、モーション動作はすでにかなりローカライズされているため、通常DOPは必要ありません。DOPを有効にすると、追加のフォワードパスにより計算がほぼ2倍になります。

スタイルとキャラクターLoRAの場合、DOPはWanの強力なベースリアリズムを維持するのに非常に役立つことが多いです。良い開始設定は:

  • Differential Output Preservation:ON
  • DOP Loss Multiplier1
  • DOP Preservation Class:キャラクターLoRAの場合はperson、スタイルLoRAの場合はビルドがそれらのオプションを提供している場合はscenelandscapeなどの適切なクラス。

重要な互換性の注意: Differential Output Preservationは、各ステップでプロンプトテキストを書き換えたり拡張したりします(例:トリガーワードを保存クラスワードに交換)。このため、DOPはCache Text Embeddingsと互換性がありません。DOP ONにした場合、テキストエンコーダーがバッチごとに更新されたプロンプトを見るように、Cache Text Embeddings OFFにしてください。


5.7 ADVANCEDパネル(Differential Guidance)

AI ToolkitビルドがこのモデルのADVANCEDパネルを公開している場合、Do Differential GuidanceDifferential Guidance Scaleが含まれている可能性があります。

Differential Guidanceは「LoRAあり」vs「LoRAなし」の予測を計算し、それらの間の差に向けてトレーニングを誘導します。精神的にはDOPに似ていますが、別の損失項ではなくガイダンスレベルで実装されています。

実用的な推奨事項:

  • LoRAがクリーンな修飾子のように動作してほしいターゲット編集スタイルLoRA(例:「カメラを軌道させる」、「ネオンスタイルを適用する」)の場合、Do Differential Guidance ONDifferential Guidance Scaleを約3にしてください。
  • 全体のルックを書き換える非常に広く重いスタイルLoRAの場合、より低いスケール(1〜2)を試すか、LoRAが弱すぎると感じたらOFFにしてください。

計算がタイトな場合は、最初の実行ではDifferential Guidance OFFにして、後で実験できます。


5.8 DATASETSパネル

AI Toolkitの各データセットブロックはdatasets:リストの1つのエントリにマップされますが、UIでは単純に1つ以上のデータセットカードを設定します。

典型的な単一Wan I2Vデータセット設定は次のようになります:

  • Target Dataset

    アップロードしたWan I2Vビデオデータセットフォルダを選択します。例:wan_orbit_clips

  • Default Caption

    このキャプションは、クリップに.txtキャプションファイルがない場合に使用されます。例:

    モーションLoRA:orbit 360 around the subject

    スタイルLoRA:cinematic neon cyberpunk style

    キャラクターLoRA:frung, person, portraitfrungがトリガートークン)。

  • Caption Dropout Rate

    これは、トレーニングサンプルのキャプションがドロップ(空のキャプションに置き換え)される確率です。Wan I2V LoRAの場合、少量のドロップアウトはモデルが視覚的コンテキストとテキストの両方を使用することを促進します。テキストエンコーダーがロードされたままの場合、典型的な開始範囲は0.05〜0.10(5〜10%)です。TRAININGパネルでCache Text Embeddingsを有効にする場合、クリップのサブセットがキャプションなしで永続的に残ることを避けるために、Caption Dropout Rate = 0に設定する方が簡単なことが多いです。

  • LoRA Weight

    通常は1に設定します。複数のデータセットを混合していて、1つのデータセットをトレーニングでより多くまたは少なくカウントしたい場合にのみ変更します。

  • Settings → Cache Latents

    Wan I2Vビデオデータセット(Num Frames > 1)ではこれをOFFに保ってください。多くの現在のAI Toolkitビルドはマルチフレームデータセットのlatentsのキャッシュをサポートしておらず、次のようなエラーでdataloader initの間に失敗します:

    caching latents is not supported for multi-frame datasets

    意図的にNum Frames = 1(画像のようなトレーニング)に設定する場合、latentキャッシングが機能し、速度が向上する可能性があります。

  • Settings → Is Regularization

    メインデータセットではIs Regularization OFFのままにします。後で別の正則化データセットを追加する場合は、そのデータセットのIs RegularizationをONに設定します。

  • Flipping

    Flip XFlip Yはフレームを水平または垂直に反転します。ほとんどのビデオタスクでは、特にフリップが左/右モーションの意味を反転する可能性があるモーションLoRAや、非対称な特徴を持つキャラクターの場合、両方をOFFに保つ必要があります。純粋にスタイルのみのLoRAの場合、Flip Xを試してバリエーションを増やすことができます。

  • Resolutions

    1つ以上の解像度バケットを選択します。24 GB GPUでは通常512を有効にし、768と1024を無効のままにします。48 GB以上またはH100/H200では、安定性のために512と768から開始し、明確なVRAMの余裕があり実行が安定している場合にのみ1024を追加します(バケットトレーニングは最大のバケットにヒットするとVRAMがスパイクする可能性があります)。AI Toolkitはクリップを最も近いバケットに自動的に割り当て、必要に応じてダウンスケールします。

  • Num Frames

    Num Framesをトレーニング用にサンプリングしたいクリップあたりのフレーム数に設定します。良い出発点は41です。重い量子化とオフロードを使用した非常に小さなGPU(10〜12 GB)では、短い時間的コンテキストを犠牲にして、トレーニングを実行するためだけにこれを21または9に減らすことができます。

複数のデータセットが必要な場合(例:メインのモーションデータセット+小さな「スタイル」データセット)、すべてをDATASETSパネルに追加し、LoRA WeightIs Regularizationフラグを使用して相対的な影響を制御できます。


5.9 SAMPLEパネル(トレーニングプレビュー)

SAMPLEパネルはトレーニングに直接影響しません。AI Toolkitが定期的にプレビュービデオを生成する方法を制御し、最良のチェックポイントを選択できるようにします。

重要(Wan I2V要件): Wan 2.2 I2Vのサンプリングは画像→動画です。すべてのサンプルにはプロンプト+コントロール画像のペアを含める必要があります。

トレーニング中にサンプリングが実行される場合(例:disable_sampling: falseskip_first_sample: false、またはforce_first_sample: true)で、いずれかのサンプルにctrl_imgがない場合、プレビューサンプリングステップが失敗し、ジョブが早期に停止する可能性があります。多くの環境では、これは次のような紛らわしいテンソル不一致エラーとして現れます:

RuntimeError: The size of tensor a (36) must match the size of tensor b (16)

修正:samplesで、すべてのpromptに対応するctrl_imgがあることを確認してください(常にペアとして表示される必要があります)。プロンプトのみのサンプル行を残さないでください。

推奨サンプリング設定(プレビュー有効)

トレーニング中のプレビューが必要な場合は、次の設定を使用してください:

  • Sample Every

    Sample Every250に設定します。これはSave Every設定と一致するため、各チェックポイントには対応するプレビュービデオセットがあります。

  • Sampler

    Wanのフローマッチングスケジューラーと互換性のあるサンプラーを使用します。通常、ビルドではFlowMatchまたは同様のものとして表示されます。

  • Width / Height

    24 GB GPUでは、サンプル用に768 × 768または704 × 1280などの縦型フォーマットを使用します。サンプリングが遅くても構わない場合を除き、1024×1024プレビュービデオは避けてください。トレーニング自体には1024²のプレビューは必要ありません。

  • Guidance Scale

    多くのWan 2.2デモ設定と一致する3.5〜4程度のGuidance Scaleから開始します。

  • Sample Steps

    Sample Steps25に設定します。より多くのステップがモーション品質を劇的に変えることはほとんどなく、主に時間が増加します。

  • Seed / Walk Seed

    42のような固定Seedを設定します。各プレビューが元の近くにクラスタリングされながら異なるシードを取得したい場合は、Walk Seed ONにしてください。

  • Num Frames

    SAMPLEパネルのNum Framesをトレーニング値と同じか近い値に設定します。41フレームでトレーニングした場合は、41でサンプリングしてください。LoRAが良く見えたら、81フレームで長いクリップを生成して一般化をテストできます。41でのトレーニングは81フレーム推論に驚くほどよく一般化することが多いです。

  • FPS

    通常はFPS = 16のままにします。FPSを変更すると再生速度のみに影響し、学習したモーション自体には影響しません。

プロンプトには、トレーニング分布を反映する2〜4のプロンプト行を追加します。各行には、推論時に使用するものと同様のコントロール画像を添付します。


6. モーション、スタイル、キャラクター向けWan2.2 I2V 14B 画像→動画 LoRA学習設定

一般的なWan 2.2 I2V LoRAタイプのクイックレシピを以下に示します。これらを出発点として扱い、チェックポイント評価に基づいて調整してください(トレーニング中のプレビューは無効になっている可能性があります。SAMPLEパネルを参照してください)。

6.1 モーション/カメラLoRA

目標: Wanにorbit 360、orbit 180、または特定のカメラスイングなどの新しいモーションを教える。

ターゲットモーションが非常に明確でクリップの大部分を占める10〜30の短いクリップ(〜3〜8秒)を使用します。キャプションはorbit 180 around the subjectorbit 360 around a futuristic cityなど、モーションを明示的に説明する必要があります。

パネルガイドライン:

  • MULTISTAGE:High Noise = ON、Low Noise = ON、Switch Every = 10(Low VRAM/オフロードが遅いスワッピングを引き起こす場合は20〜50)。
  • TARGET:Linear Rank = 16。
  • TRAINING:Learning Rate = 0.0001、Steps ≈ 1500〜2500、Timestep Type = Linear、Timestep Bias = Balanced、DOP OFF。
  • DATASETS:Resolutionsは512/768、Num Frames = 33〜41(41から開始。H100/H200では81も可能ですが、〜2×の時間とより高いVRAMを期待)、Caption Dropout Rate ≈ 0.05〜0.1。マルチフレームデータセットではlatentキャッシングOFF。

Save Every = 250でトレーニングします。サンプリングプレビュー: トレーニング中のプレビューを有効にする場合は、Sample Every = 250に設定し、samplesのすべてのエントリにpromptctrl_imgの両方が含まれていることを確認してください(Wan I2Vサンプリングにはコントロール画像が必要です)。

チェックポイントを評価する際は、ターゲットモーションがさまざまなプロンプトとシーンで安定しているかどうかに焦点を当ててください。トレーニングクリップのほぼ重複でのみ機能する場合は、バイアスをBalancedから遠ざけるよりも、データの多様性を改善するか、ステップをわずかに増やすことを好んでください。


6.2 スタイルLoRA(ビデオルック/グレード)

目標: Wanのベースモーションと構成を尊重しながら視覚スタイルを変更する。

すべて同じルックを共有しながら、さまざまなシーンと被写体をカバーする10〜40の画像またはクリップを使用します。例:grainy 16mm film look, high contrast, warm tint

パネルガイドライン:

  • MULTISTAGE:High Noise = ON、Low Noise = ON、Switch Every = 10(Low VRAM/オフロードが遅いスワッピングを引き起こす場合は20〜50)。
  • TARGET:Linear Rank = シンプルなスタイルには16、複雑またはシネマティックなルックには16〜32
  • TRAINING:Learning Rate = 0.0001、Steps ≈ 1500〜2500、Timestep Type = Linear(またはShift)、Timestep Bias = Favor High Noise
  • Regularization(DOP):Differential Output Preservation ON、DOP Loss Multiplier = 1、DOP Preservation Classは主要な被写体に一致(多くの場合personまたはscene)、Cache Text Embeddings = OFF。
  • DATASETS:24 GBでは512/768の解像度(大型GPUでは512/768、安定後にオプションで1024)、Num Frames = 24 GBでは33〜41(時間を取れる場合はH100/H200で41〜81)、Cache Text EmbeddingsがOFFの場合Caption Dropout Rate約0.05。マルチフレームデータセットではlatentキャッシングOFF。

スタイルがシーンと照明全体で一貫して適用されているかどうかを観察してください。コンテンツを圧倒し始めたり、すべてを同じに見せ始めた場合は、実行中に学習率を下げたり、以前のチェックポイントに戻ったり、LoRAランクを減らしてみてください。


6.3 キャラクターLoRA(ビデオ類似性)

I2VのキャラクターLoRAはtext-to-imageモデルよりも困難ですが、実現可能です。

さまざまなポーズ、スケール、角度、背景で同じキャラクターの10〜30の短いクリップを使用します。キャプションには常にTrigger Wordとクラスを含める必要があります。例:frung, young woman, casual clothing20〜40クリップを集めることができれば、アイデンティティの堅牢性が通常向上しますが、使用可能な結果を得るために厳密に必要ではありません。

パネルガイドライン:

  • MULTISTAGE:High Noise = ON、Low Noise = ON、Switch Every = 10(Low VRAM/オフロードが遅いスワッピングを引き起こす場合は20〜50)。
  • TARGET:Linear Rank = 24 GBでは16、高VRAMGPUでは16〜32(余裕があり、クローズアップの高解像度顔を気にする場合は32を使用)
  • TRAINING:Learning Rate = 0.0001、Steps ≈ 2000〜3000、Timestep Type = Sigmoid(またはLinear)、Timestep Bias = Balanced
  • Regularization(DOP):Differential Output Preservation ON、DOP Loss Multiplier = 1、DOP Preservation Class = person
  • DATASETS:512/768から開始(安定後にのみ1024を追加)、Num Frames = 24 GBでは33〜41、またはH100/H200では41〜81(81は大幅に遅い)。マルチフレームデータセットではlatentキャッシングOFF。

コミュニティの経験は、アイデンティティと類似性がlow-noiseエキスパートにより依存することを示唆していますが、Timestep Bias = Balancedを維持し、成形されたTimestep Type(Sigmoid)を使用すると、通常、low noiseに強くバイアスするよりも、類似性と全体的なビデオ安定性のバランスが良くなります。


7. Wan I2V LoRAのトラブルシューティング

The size of tensor a (36) must match the size of tensor b (16) at non-singleton dimension 1

発生理由: WAN 2.2 14B I2V(arch: wan22_14b_i2v)では、トレーニング中のプレビューサンプリングは画像→動画であり、コントロール画像が必要です。samplesいずれかのエントリにpromptがあるがctrl_imgがない場合、プレビューサンプリングステップがクラッシュし、上記のテンソル不一致として表示される場合があります。

対処法: samplesで、すべてのpromptに対応するctrl_imgがあることを確認してください(常にペアとして表示される必要があります)。プロンプトのみのサンプル行を残さないでください。


caching latents is not supported for multi-frame datasets

これは、ビデオデータセット(Num Frames > 1)でlatentキャッシングが有効になっている場合に発生します。

修正:DATASETSパネルで、Wan I2Vビデオデータセットに対してCache Latents / Cache Latents to Disk = OFFに設定してください。


モーションがソースに比べて速すぎる

これは通常、推論設定よりも少ないフレーム数でトレーニングした場合に発生します。例えば、21または41フレームでトレーニングしたが、FPSが16に固定された81フレームでサンプリングしている場合。同じモーションが異なる方法で「引き伸ばされ」ます。

SAMPLEパネルでFPSを下げる(再生のみ)か、時間的動作がより予測可能になるように41などの一貫したNum Framesでトレーニングとサンプリングを行うことで修正できます。


カメラが動かない、または構成がほとんど変わらない

カメラがほとんど動かないか、構成がベースモデルのように見える場合:

実際にhigh-noiseステージをトレーニングしていること、およびTimestep Biasが低いタイムステップに強く設定されていないことを確認してください。MULTISTAGEパネルでHigh NoiseがONであること、モーションLoRAの場合Timestep BiasがFavor Highであることを確認してください。また、キャプションが目的のモーションを明確に説明していることを確認してください。Wanは見えていない、または名前が付けられていないモーションを学習できません。


詳細と顔がベースWanより悪く見える

LoRAが詳細を削除したり、顔を悪化させたりする場合:

Linear Rankをわずかに増やし(例:16から32)、アイデンティティと詳細が存在する後半のタイムステップにより多くのトレーニング信号が落ちるようにTimestep Biaslow noiseを優先してみてください。学習率を下げて、以前のチェックポイントから再開することもできます。


LoRAがオーバーフィットしてトレーニングに似たシーンでのみ機能する

LoRAがトレーニングデータに非常に似たシーンでのみ正しく見える場合:

Stepsの合計数を減らし(例:5000から3000)、データセットの多様性を増やし、現在オフになっている場合はDifferential Output Preservationを有効にすることを検討してください。DOPがすでにONで効果がまだ狭すぎる場合は、LoRAランクや学習率をわずかに下げてください。


VRAMメモリ不足エラー

トレーニングが頻繁にVRAMを使い果たす場合:

以下のいずれかの組み合わせを減らしてください:

  • 解像度バケット(1024を削除して512/768を保持)
  • Num Frames(例:41から21)
  • バッチサイズ(まだでなければ1に保持)

Low VRAM ONにし、10〜12 GB VRAMしかなく多くのシステムRAMがある場合はLayer Offloading ONにし、QUANTIZATIONパネルでトランスフォーマーとテキストエンコーダーの両方にquantizationfloat8に設定されていることを確認してください。ローカルVRAMがまだ不十分な場合は、H100またはH200 GPUを使用してRunComfyのクラウドで同じAI Toolkitジョブを実行することを検討してください。そこでは設定をはるかにシンプルに保つことができます。

大型GPU(例:H100)でもOOMが発生する場合、通常はバケットスパイクの問題です:

  • 実行が安定するまで1024バケットを削除し、後で再追加してください。
  • Num Framesを減らしてください(41 → 33 → 21)。
  • 本当に必要でない限りLayer Offloading OFFのままにしてください(実行が遅くなり、スワップが多くなる可能性があります)。
  • スワッピングが関与している場合は、ステップごとのアンロード/ロードオーバーヘッドを避けるためにMULTISTAGE Switch Everyを増やしてください(10〜50)。
  • メモリにはより積極的な量子化を好んでください:Transformer 4bit with ARA(ARAが不安定な場合はqfloat8)、Text Encoder float8/qfloat8

トレーニングが予想よりもはるかに遅い(ステップあたり数十秒)

Wan 2.2 I2V LoRAトレーニングは本質的に遅いです:各ステップは多くのフレームを処理し、両方のエキスパートをトレーニングすることは、各ステージに十分な更新を与えるためにより多くの合計ステップが必要になることを意味します。

リアリティチェック(典型的な時間予測):41フレームと混合512/768/1024バケットで、H100での3000ステップは通常数十時間(多くの場合〜35〜55時間)です。81フレームでのサンプリングは大まかに〜2×その計算/時間です。小さなGPU(特に量子化+オフロードを使用)では、ステップあたり数十秒が見られるのは正常です。

不当に遅く感じたり、時間の経過とともに遅くなり続ける場合:

  • Num Framesを減らしてください(41 → 33 → 21)。
  • 1024バケットを削除してください(512/768のままにする)。
  • 本当に必要でない限りLayer Offloadingを避けてください。
  • Low VRAM/オフロード/スワッピングが有効になっている場合は、Switch Every = 1を使用しないでください。10〜50を使用してください。
  • プレビューが有効になっている場合は、サンプリングがトレーニングを頻繁に中断しないように、サンプリングを少なく保ってください(例:Sample Every = 250)。

👉 RunComfy AI Toolkit trainer


8. Wan I2V LoRAのエクスポートと使用

トレーニングが完了したら、Wan 2.2 I2V 14B LoRAを2つの簡単な方法で使用できます:

  • モデルプレイグラウンドWan 2.2 I2V 14B LoRAプレイグラウンドを開き、トレーニング済みLoRAのURLを貼り付けて、ベースモデルでどのように動作するかをすぐに確認できます。
  • ComfyUIワークフローComfyUIインスタンスを起動し、ワークフローを構築し、LoRAを接続し、その重みやその他の設定を微調整してより詳細な制御を行います。

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

Ready to start training?