Wan 2.2 I2V 14B LoRA 训练(图像转视频)可以将单张图像转化为具有可控运动、摄像机移动和时间连贯性的 5 秒短片。通过本教程,你将能够:
- 为运动、风格和角色用例设计 Wan I2V LoRA 数据集(并了解真正需要多少片段)。
- 理解 Wan 的双专家 high-noise / low-noise 架构、timestep 设置、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 有何特别之处?
- 2. 在哪里运行 WAN 2.2 LoRA 训练
- 3. Wan I2V LoRA 数据集设计
- 4. 需要了解的 Wan 2.2 I2V 特性
- 5. 使用 AI Toolkit 逐步训练 WAN 2.2 I2V 14B LoRA
- 6. AI Toolkit WAN 2.2 LoRA 训练:运动、风格和角色的配置
- 7. Wan I2V LoRA 常见问题排查
- 8. 导出和使用你的 Wan I2V LoRA
1. Wan 2.2 I2V 14B 有何特别之处?
Wan 2.2 I2V 14B("A14B")是 Wan 2.2 的图像转视频变体。从架构上看,它是一个双阶段 Mixture-of-Experts (MoE) Transformer,包含两个独立的 14B 参数 Transformer。High-noise Transformer 处理早期高噪声的 timestep,负责全局构图、运动轨迹和摄像机移动。Low-noise Transformer 处理后期低噪声的 timestep,负责精细细节、身份特征和纹理。
在推理过程中,pipeline 会在噪声调度大约 875/1000 处分割 timestep,并将其分配给 high-noise 或 low-noise Transformer。实际上,每个专家大约处理一半的去噪过程。Wan 2.2 I2V 可以在 16 FPS 下生成最多 81 帧,约为 5 秒视频。
对于 WAN 2.2 I2V 14B LoRA 训练(图像转视频),这有三个关键影响。你可以选择训练一个或两个阶段。你可以将训练偏向构图和运动(high noise)或身份和细节(low noise)。由于你处理的是帧序列,帧数、分辨率、显存以及量化/卸载设置比纯图像模型重要得多。
AI Toolkit 主要通过 MULTISTAGE、TRAINING、TARGET 和 DATASETS 面板提供这些控制选项。
2. 在哪里运行 WAN 2.2 LoRA 训练
你可以在 RunComfy 云端 AI Toolkit 或 本地 AI Toolkit 安装上运行此 Wan 2.2 I2V LoRA 训练工作流。界面和面板相同,只是硬件不同。
2.1 RunComfy 云端 AI Toolkit(推荐首次使用)
如果你不想管理 CUDA、驱动程序或大型模型下载,请使用 RunComfy 云端 AI Toolkit:
在这个页面上,你可以获得一个预装好的浏览器版 AI Toolkit 界面。你可以上传数据集,按照本教程配置任务,并在 H100 (80 GB) 或 H200 (141 GB) GPU 上运行训练。这是无需本地设置即可可靠复现本教程的最简单方式。
2.2 本地 AI Toolkit
如果你更喜欢本地运行:按照 README 安装 AI Toolkit 仓库(训练需要 Python + PyTorch,界面需要 Node),然后启动界面(在 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 可以实现这三种。运动 LoRA 更多依赖于 high-noise 阶段,而风格和角色 LoRA 更多依赖于 low-noise 阶段以及高度一致的视觉效果。
3.2 视频片段和裁剪
使用真实视频片段(.mp4、.mov 等),不要用 GIF。片段长度可以变化(例如 5-30 秒)。AI Toolkit 会根据你的 Num Frames 设置沿每个片段均匀采样训练帧。
你总是需要手动做的一件事是裁剪和修剪每个片段,使你感兴趣的运动快速开始,开头或结尾没有太多"静止"时间。特别是对于运动 LoRA,你希望运动占据几乎整个片段——例如,完整的环绕、完整的推进运动或完整的手势。
3.3 你需要多少片段?
作为粗略规则:
- 简单的运动 LoRA,训练一种摄像机运动类型,通常用 10-30 个短片段(约 3-8 秒)就能训练好,其中目标运动非常清晰并占据大部分画面。
- 风格 LoRA 通常需要 10-40 张图像或片段,覆盖不同场景、光线和对象,但都具有相同的外观和调色。
- 角色 LoRA 在 I2V 上的表现更像图像 LoRA。至少需要 10-30 个短片段,包含同一角色的各种姿势、比例、角度和背景;如果你能舒适地达到 20-40 个片段,相似度和可靠性通常会提高。
3.4 I2V 片段的字幕
每个视频文件可以选择性地有一个同名的 .txt 字幕文件(例如 castle_orbit.mp4 和 castle_orbit.txt)。AI Toolkit 还支持 Default Caption,当片段没有自己的字幕时使用。
好的字幕模式:
- 对于运动 LoRA,在文本中明确编码运动,例如:
orbit 360 around the subject、orbit 180 around the subject或slow dolly in toward the character。 - 对于风格 LoRA,描述外观而非场景内容,例如:
grainy 16mm film look, high contrast, warm tint。 - 对于角色 LoRA,包含触发词加类别,例如:
frung, young woman, casual clothing(其中frung是你的触发 token)。
你还可以将 JOB 面板中设置的 Trigger Word 与包含 [trigger] 的字幕结合使用。AI Toolkit 会在加载数据集时将 [trigger] 替换为你选择的触发字符串,这样你就不需要在每个字幕中硬编码触发名称。
4. 需要了解的 Wan 2.2 I2V 特性
4.1 High-noise vs Low-noise Transformer
Wan 的两个 Transformer 大致行为如下:
High-noise Transformer 在接近扩散过程开始的 timestep(约 1000 到 ~875)上工作。它确定全局构图和粗略形状,决定物体位置、摄像机移动方式以及运动轨迹。它对运动和布局至关重要。
Low-noise Transformer 在约 875 到 0 的 timestep 上工作。它细化细节、纹理、面部相似度和微运动。它对身份、纹理和锐度至关重要。
实际上,只训练 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 LoRA 训练中将 I2V 简化为类似图像的单帧模式。
在 AI Toolkit 中有两个独立的 Num Frames 控件。DATASETS 面板中的 Num Frames 控制每个片段采样多少帧用于训练。SAMPLE 面板中的 Num Frames 控制预览视频的长度。它们不需要完全匹配,但保持相似可以使行为更容易理解。
一个好的训练起点是 41 帧(约 2.5 秒)。在 80-96 GB GPU(H100 级别)上,你可以达到完整的 81 帧配置。较短的长度如 21 或 33 帧可用于降低小型 GPU 上的显存负担和步进时间,代价是捕获较少的时间上下文。
4.3 分辨率和像素面积
Wan 的官方演示通常将有效面积保持在约 480×832 ≈ 400k 像素左右,Hugging Face spaces 会将尺寸四舍五入到 16 或 32 的倍数。
对于使用 AI Toolkit 进行的 WAN 2.2 I2V 14B LoRA 训练(图像转视频):
- 在 24 GB GPU 上,使用 512 和 768 等分辨率桶。避免 1024×1024,除非你进行了非常激进的量化和/或使用层卸载;1024² 加 41-81 帧的视频非常占用资源。
- 在 48 GB+ 或 H100/H200 上,你可以安全地添加 1024 桶,甚至使用电影宽银幕分辨率,如 1024×576、1024×608 或 1024×640。
AI Toolkit 会在加载数据集时自动分配并缩放你的视频到选定的分辨率。
5. 使用 AI Toolkit 逐步训练 WAN 2.2 I2V 14B LoRA
我们假设你至少有 24 GB 级别的 GPU,因此以下设置是一个安全的基线。如果你有更强大的显卡或使用 RunComfy 云端 AI Toolkit,某些面板还包括如何扩展设置的简要说明。
5.1 JOB 面板
在 JOB 面板中,你设置基本元数据和可选的触发 token。
- Training Name
使用任何描述性名称;它成为检查点和样本的文件夹名称。例如:
wan_i2v_orbit_v1、wan_i2v_style_neon、wan_i2v_char_frung_v1。 - GPU ID
本地安装时,这指向你的物理 GPU。在 RunComfy 云端 AI Toolkit 上,你可以保持默认;实际的机器类型(H100/H200)稍后在 Training Queue 中选择。
- Trigger Word(可选)
为角色或风格 LoRA 使用触发词,其中你需要一个专用 token 如
frung或wan_cam_orbit。如果你的数据集字幕包含[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 model id(repo id),例如:
ai-toolkit/Wan2.2-I2V-A14B-Diffusers-bf16。在大多数 AI Toolkit 构建中,选择
Wan 2.2 I2V (14B)会自动填充此值;除非有理由更改,否则保持原样。 - Low VRAM
对于 24 GB 消费级 GPU 或任何同时管理显示器的显卡,启用 Low VRAM ON。在 48 GB+(包括 H100/H200)上,如果你保持训练负载合理(例如 512/768 桶和约 41 帧),通常可以保持 OFF 以提高速度。如果你看到偶发 OOM(通常由最大分辨率桶引起)或想要推进 1024 桶和/或 81 帧,请启用 Low VRAM ON 以保持稳定。
- Layer Offloading
此开关将模型的部分传输到 CPU RAM 而不是将所有层保留在显存中。只有当你尝试在非常小的 GPU(约 10-12 GB 显存)上运行 Wan I2V 并且有大量系统 RAM(64 GB+)时才需要。这可能会使步进时间大约翻倍,但可以将峰值显存降到约 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 上,将 Transformer 设置为
4bit with ARA。这使用 4 位量化配合 Accuracy Recovery Adapter,使显存使用接近纯 4 位,同时质量保持更接近 bf16。 - Text Encoder
将 Text Encoder 设置为
float8(或qfloat8)。这降低了文本编码器的显存和计算量,对 Wan 2.2 I2V LoRA 质量影响很小。
这反映了 AI Toolkit 对 Wan 2.2 视频 LoRA 的官方示例配置,也是训练在 24 GB 显卡上可行的主要原因。如果你在特定配置上遇到 ARA 的稳定性问题或严重减速,可以将 Transformer 回退到 qfloat8;这会使用更多显存,但质量表现非常相似。
在大型 GPU / RunComfy 上:
在 H100/H200 或 48-96 GB 工作站上,你可以保持 4bit with ARA 并将额外显存用于更高分辨率、更多帧或更高的 LoRA rank,或者将 Transformer 切换为纯 float8 / qfloat8 变体以简化堆栈。完全回退到全 bf16 对于 WAN 2.2 LoRA 训练来说很少需要。
5.3 MULTISTAGE 面板(high / low noise)
MULTISTAGE 面板允许你决定训练哪个专家以及训练时切换频率。
- Stages to Train
对于大多数 LoRA,保持 High Noise 和 Low Noise 都为 ON。High noise 控制构图和运动;low noise 控制细节和身份。
- Switch Every
此值控制在切换到另一个专家之前,在一个专家上执行多少步。当 High Noise = ON、Low Noise = ON、Switch Every = 10 且 Steps = 3000 时,AI Toolkit 训练:
- 步骤 1-10 在 high-noise transformer 上,
- 步骤 11-20 在 low-noise transformer 上,
- 并重复此交替直到训练完成。
在大型 GPU 上,只有当两个专家都保留在显存中(无 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 Type 设置为
LoRA。 - Linear Rank
Linear Rank 控制每个块的 LoRA 容量。更高的 rank 增加容量,但也增加显存使用和过拟合风险。对于 Wan 2.2 I2V,实用的默认值:
- 运动和摄像机 LoRA:Rank 16 通常足够,因为它们更多地修改行为而非细微视觉细节。
- 风格 LoRA:从 Rank 16 开始;只有当风格复杂且你有显存余量时才升至 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 Keep 设置在
4到6之间。这控制磁盘使用,同时为你留下几个较早的检查点以备回滚。
你不需要使用最后一个检查点。最佳样本通常来自 2000-4000 步左右的某处。下面的 SAMPLE 面板配置解释了如何判断。
如果你在训练期间禁用采样(对于当前 Wan I2V 构建推荐如下),保存多个检查点(例如每 250 步)并稍后使用单独的推理工作流评估它们。
5.6 TRAINING 面板
TRAINING 面板包含大多数重要控件:batch size、learning rate、timestep、损失函数和文本编码器处理。
基本超参数
为 24 GB Wan I2V 视频 LoRA 配置基本训练参数如下:
- Batch Size
从
1开始。视频模型很重,即使在 24 GB 显卡上 1 也是现实的。在 H100/H200 上,你可以稍后尝试2-4的 batch size。 - Gradient Accumulation
最初保持 Gradient Accumulation 为
1。有效 batch size 是 batch size 乘以 gradient accumulation。如果显存非常有限且你想要稍大的有效批次,可以增加到 2 或 4,但对于视频来说收益有限。 - Learning Rate
从 Learning Rate =
0.0001开始。这是 AI Toolkit 示例中的默认值,对 Wan LoRA 稳定。如果训练看起来嘈杂或 LoRA 很快超出范围,你可以在运行中降至 0.00005 并从最后一个检查点继续。 - Steps – 典型范围:
- 小型、专注的运动 LoRA,约 10-20 个片段:1500-2500 步。
- 角色或风格 LoRA,20-50 个片段:2000-3000 步。
- 非常大的数据集可以更高,但通常提高数据质量(字幕、多样性)比远远超过 3000-4000 步更好。
- 1000 步:~12-18 小时
- 1500 步:~18-27 小时
- 2000 步:~24-36 小时
- 3000 步:~35-55 小时
- Weight Decay
除非有特定原因更改,否则保持 Weight Decay 为
0.0001;这提供轻度正则化。 - Loss Type
保持 Loss Type 为
Mean Squared Error(MSE)。Wan 2.2 使用 flow-matching 噪声调度器,MSE 是这种设置的标准损失函数。
Timestep 和调度器
- Timestep Type
对于 Wan 2.2 I2V,
Linear是标准的 Timestep Type,对大多数 LoRA 类型效果良好。它沿 flow-matching 调度均匀分布更新,与 high-noise 和 low-noise 专家的分离配合良好。 - Timestep Bias
Timestep Bias 控制你强调轨迹的哪个部分:
- Balanced – 更新分布在 high-noise 和 low-noise timestep 之间;这是所有 LoRA 类型的安全默认值。
- Favor High Noise – 更多关注 Wan 决定全局布局、运动和颜色的早期嘈杂步骤。
- Favor Low Noise – 更多关注细节和身份所在的后期干净步骤。
- 运动/摄像机 LoRA – 从 Timestep Type = Linear、Timestep Bias = Balanced 开始。对于非常"干净"的摄像机运动 LoRA,你可以尝试 Favor High Noise 以更多依赖 high-noise 专家。
- 风格 LoRA – 使用 Timestep Type = Linear(或 Shift)和 Timestep Bias = Favor High Noise,让 LoRA 覆盖全局色调和颜色,同时基础模型仍处理后期细节。
- 角色 LoRA – 使用 Timestep Type = Sigmoid(或 Linear)和 Timestep Bias = Balanced。身份和相似度更多依赖 low-noise 步骤,但保持 Balanced 偏置让两个专家都贡献;只有当你特别想要额外关注微细节时,才应该尝试轻微偏向 low-noise。
在底层,Wan 2.2 I2V 使用 flow-matching 噪声调度器。AI Toolkit 为 Wan 2.2 架构自动设置调度器和相应的采样器,所以你主要通过上面的 Timestep Type、Timestep Bias 和 Multi-stage 设置来引导行为。
EMA(指数移动平均)
- Use EMA
对于 LoRA,EMA 是可选的,会消耗额外的显存和时间。大多数 Wan LoRA 用户保持 Use EMA OFF,除非你在做完整模型微调,否则很少需要。
文本编码器优化
在 TRAINING 面板底部是 Text Encoder Optimizations 设置。这些控制文本编码器卸载或缓存的激进程度。
- Unload TE
此模式卸载文本编码器权重,使其在步骤之间不再消耗显存。对于 Wan 2.2 I2V LoRA,你几乎总是依赖每个片段的丰富字幕,所以在正常的基于字幕的训练中应该保持 Unload TE OFF。只有当你故意训练一个根本不使用数据集字幕的非常窄的"仅触发/空提示"LoRA 时,才考虑 Unload TE。
- Cache Text Embeddings
此选项预先计算一次字幕嵌入并重复使用它们,避免重复的文本编码器传递。只有当你的字幕是静态的且你没有使用在每步修改或随机化提示的功能时,才启用 Cache Text Embeddings ON,例如 Differential Output Preservation、字幕中的动态
[trigger]重写,或任何严重依赖 caption dropout 行为的功能。在这种情况下,AI Toolkit 编码所有训练字幕一次,将嵌入缓存到磁盘,并可以从显存中移除文本编码器。
如果你计划使用 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 大约会使计算翻倍,添加额外的前向传递。
对于风格和角色 LoRA,DOP 通常非常有助于保持 Wan 强大的基础真实感不受影响。一个好的起始配置:
- Differential Output Preservation:ON
- DOP Loss Multiplier:
1 - DOP Preservation Class:角色 LoRA 用
person,如果你的构建提供这些选项,风格 LoRA 用scene或landscape等合适的类别。
重要的兼容性说明:Differential Output Preservation 在每步重写或增强提示文本(例如用保留类别词替换你的触发词)。因此,DOP 与 Cache Text Embeddings 不兼容。如果你启用 DOP ON,确保 Cache Text Embeddings OFF,以便文本编码器在每个批次看到更新的提示。
5.7 ADVANCED 面板(Differential Guidance)
如果你的 AI Toolkit 构建为此模型展示了 ADVANCED 面板,它可能包含 Do Differential Guidance 和 Differential Guidance Scale。
Differential Guidance 计算"有 LoRA"vs"无 LoRA"的预测,并将训练推向它们之间的差异,精神上类似于 DOP,但在 guidance 层面而非单独的损失函数项实现。
实用建议:
- 对于有针对性的风格编辑 LoRA(例如"让摄像机旋转"、"应用霓虹风格"),启用 Do Differential Guidance ON 并将 Differential Guidance Scale 设为约
3,当你希望 LoRA 表现为纯修改器时。 - 对于重写整个外观的非常宽泛、厚重的风格 LoRA,你可以尝试较低的比例(1-2)或保持 OFF 如果 LoRA 看起来太弱。
如果你在计算上受限,可以安全地在首次运行时保持 Differential Guidance OFF,稍后再试验。
5.8 DATASETS 面板
AI Toolkit 中的每个数据集块对应 datasets: 列表中的一个条目,但在 UI 中你只是配置一个或多个数据集卡片。
典型的单一 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, portrait(其中frung是你的触发 token)。 - Caption Dropout Rate
这是训练样本的字幕被丢弃(替换为空字幕)的概率。对于 Wan I2V LoRA,少量 dropout 鼓励模型同时使用视觉上下文和文本。当文本编码器保持加载时,典型的起始范围是 0.05-0.10(5-10%)。如果你决定在 TRAINING 面板中启用 Cache Text Embeddings,通常更容易设置 Caption Dropout Rate = 0 以避免某些片段永久缺少字幕。
- LoRA Weight
通常设为
1。只有当混合多个数据集且你希望一个数据集在训练中权重更大或更小时才更改。 - Settings → Cache Latents
对于 Wan I2V 视频数据集(Num Frames > 1),保持此项 OFF。许多当前的 AI Toolkit 构建不支持多帧数据集的潜在变量缓存,会在数据加载器初始化期间失败并报错:
caching latents is not supported for multi-frame datasets如果你故意设置 Num Frames = 1(类似图像的训练),潜在变量缓存可能有效并加速训练。
- Settings → Is Regularization
对于主数据集保持 Is Regularization OFF。如果你稍后添加单独的正则化数据集,将该数据集的 Is Regularization 设为 ON。
- Flipping
Flip X 和 Flip Y 水平或垂直翻转帧。对于大多数视频任务,应该保持两者 OFF,特别是对于运动 LoRA(翻转可能反转左/右运动语义)或具有不对称特征的角色。对于纯风格 LoRA,你可以尝试 Flip X 以增加变化。
- Resolutions
选择一个或多个分辨率桶。在 24 GB GPU 上,你通常启用 512 并禁用 768 和 1024。在 48 GB+ 或 H100/H200 上,从 512 和 768 开始以保持稳定,然后只有在你有明确的显存余量且运行稳定时才添加 1024(桶训练在遇到最大桶时可能导致显存峰值)。AI Toolkit 会自动将片段分配到最近的桶并根据需要缩小。
- Num Frames
将 Num Frames 设置为你希望每个片段采样用于训练的帧数。一个好的起点是
41。在非常小的 GPU(10-12 GB)上使用大量量化和卸载时,你可以降到 21 甚至 9 只是为了让训练运行,代价是较短的时间上下文。
如果你需要多个数据集(例如主运动数据集加小型"风格"数据集),你可以在 DATASETS 面板中全部添加,并使用 LoRA Weight 加 Is Regularization 标志来控制它们的相对影响。
5.9 SAMPLE 面板(训练预览)
SAMPLE 面板不直接影响训练;它控制 AI Toolkit 如何定期生成预览视频,以便你选择最佳检查点。
重要(Wan I2V 要求):Wan 2.2 I2V 采样是图像→视频。每个样本必须包含 提示 + 控制图像 配对。
如果采样在训练期间触发(例如 disable_sampling: false、skip_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 Every 设置为
250。这与 Save Every 设置匹配,所以每个检查点都有对应的预览视频集。 - Sampler
使用与 Wan 的 flow-matching 调度器兼容的采样器,通常在你的构建中显示为
FlowMatch或类似名称。 - Width / Height
在 24 GB GPU 上,使用
768 × 768或垂直格式如704 × 1280作为样本。避免 1024×1024 预览视频除非你能接受较慢的采样;训练本身不需要 1024² 预览。 - Guidance Scale
从约
3.5-4的 Guidance Scale 开始,这与许多 Wan 2.2 演示配置一致。 - Sample Steps
将 Sample Steps 设置为
25。更多步骤很少显著改变运动质量,主要是增加时间。 - Seed / Walk Seed
设置固定的 Seed 如
42。如果你想让每个预览获得不同的种子同时保持接近原始值,启用 Walk Seed ON。 - Num Frames
将 SAMPLE 面板中的 Num Frames 设置为等于或接近你的训练值。如果你用 41 帧训练,也用 41 采样。当 LoRA 看起来不错时,你可以通过生成 81 帧的更长片段来测试泛化;41 帧训练通常对 81 帧推理有惊人好的泛化能力。
- FPS
通常保持 FPS = 16。改变 FPS 只影响播放速度,不影响学到的运动本身。
对于提示,添加 2-4 行提示,反映你的训练分布。对于每行,附加一个控制图像,类似于你在推理时使用的。
6. AI Toolkit WAN 2.2 LoRA 训练:运动、风格和角色的配置
以下是常见 Wan 2.2 I2V LoRA 类型的快速配方。将它们视为起点,并根据检查点评估进行调整(训练期间的预览可能被禁用;见 SAMPLE 面板)。
6.1 运动/摄像机 LoRA
目标:教 Wan 新的运动,如 orbit 360、orbit 180 或特定的摄像机转向。
使用 10-30 个短片段(约 3-8 秒),其中目标运动非常清晰并占据大部分片段。字幕应明确描述运动,例如 orbit 180 around the subject 或 orbit 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 开始;81 在 H100/H200 上可行,但预计约 2× 时间和更多显存),Caption Dropout Rate ≈ 0.05-0.1。多帧数据集的 Cache Latents OFF。
使用 Save Every = 250 训练。预览采样:如果你在训练期间启用预览,设置 Sample Every = 250 并确保 samples 中的每个条目都包含 prompt 和 ctrl_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 上 Resolutions 512/768(大型 GPU 上也是 512/768,只有在稳定后才选择性添加 1024),24 GB 上 Num Frames = 33-41(如果你能负担时间,H100/H200 上 41-81),如果 Cache Text Embeddings OFF 则 Caption Dropout Rate 约 0.05。多帧数据集的 Cache Latents OFF。
监控风格是否在场景和光线之间一致应用。如果它开始压倒内容或使所有内容看起来相同,尝试在运行中降低 learning rate,回滚到较早的检查点,或降低 LoRA rank。
6.3 角色 LoRA(视频中的相似度)
I2V 上的角色 LoRA 比 text-to-image 模型更复杂,但是可行的。
使用 10-30 个短片段,包含同一角色的各种姿势、比例、角度和背景;字幕应始终包含你的 Trigger Word 加类别,例如 frung, young woman, casual clothing。如果你能收集 20-40 个片段,身份可靠性通常会提高,但获得可用结果并不严格必需。
面板建议:
- MULTISTAGE:High Noise = ON,Low Noise = ON,Switch Every = 10(如果 Low VRAM/卸载导致交换缓慢则用 20-50)。
- TARGET:Linear Rank = 24 GB 上用 16;高显存 GPU 上用 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),24 GB 上 Num Frames = 33-41,H100/H200 上 41-81(81 明显更慢)。多帧数据集的 Cache Latents 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)上启用潜在变量缓存时发生。
修复:在 DATASETS 面板中,对 Wan I2V 视频数据集设置 Cache Latents / Cache Latents to Disk = OFF。
运动比源视频快太多
这通常发生在你训练时每个片段的帧数少于推理设置时。例如,你可能用 21 或 41 帧训练,但在固定 FPS 16 下用 81 帧采样。相同的运动以不同方式"拉伸"。
你可以通过降低 SAMPLE 面板中的 FPS(仅用于播放)来修复,或者用一致的 Num Frames 如 41 进行训练和采样,以使时间行为更可预测。
摄像机不移动或构图几乎不变
如果摄像机几乎不移动或构图看起来像基础模型:
检查你是否实际在训练 high-noise 阶段,以及 Timestep Bias 是否没有设置得太偏向低 timestep。确保 MULTISTAGE 面板中 High Noise ON 且运动 LoRA 的 Timestep Bias 是 Favor High。还要检查字幕是否清楚描述了期望的运动;Wan 无法学习既看不到也没有命名的运动。
细节和面部比基础 Wan 更差
如果你的 LoRA 移除细节或降低面部质量:
尝试略微增加 Linear Rank(例如从 16 到 32)并在 Timestep Bias 中偏向 low noise,以便更多训练信号进入身份和细节所在的后期 timestep。你也可以降低 learning rate 并从较早的检查点继续。
LoRA 过拟合,只在与训练类似的场景上有效
如果 LoRA 只在非常类似于训练数据的场景上看起来正确:
减少总 Steps(例如从 5000 到 3000),增加数据集多样性,如果当前关闭则考虑启用 Differential Output Preservation。如果 DOP 已经 ON 且效果仍然太窄,略微降低 LoRA rank 和/或 learning rate。
显存不足错误
如果训练频繁耗尽显存:
减少以下任意组合:
- 分辨率桶(移除 1024,保留 512/768),
- Num Frames(例如从 41 到 21),
- batch size(如果还没有保持在 1)。
启用 Low VRAM ON,如果你只有 10-12 GB 显存和大量系统 RAM 则启用 Layer Offloading ON,并确保 QUANTIZATION 面板中 transformer 和 text encoder 的量化都设置为 float8。如果本地显存仍然不够,考虑在 RunComfy 云端用 H100 或 H200 GPU 运行相同的 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),这样采样不会太频繁地中断训练。
8. 导出和使用你的 Wan I2V LoRA
训练完成后,你可以通过两种简单方式使用你的 Wan 2.2 I2V 14B LoRA:
- 模型试玩场 – 打开 Wan 2.2 I2V 14B LoRA 试玩场 并粘贴你训练好的 LoRA URL,快速查看它在基础模型上的表现。
- ComfyUI 工作流 – 启动 ComfyUI 实例,构建工作流,连接你的 LoRA,并微调其权重和其他参数以获得更细粒度的控制。
其他 AI Toolkit LoRA 训练教程
Ready to start training?

