LTX2 使用指南(FSDP2)

目录

版本说明

参考实现

upstream=LTX2/packages/ltx-trainer

变更记录

2026.03.24: 首次支持 LTX2.0 模型的 t2v、t2av 微调训练,支持 fsdp2 后端


前置准备

训练前需要下载以下模型文件:

1. 下载模型文件

模型 文件 下载地址
LTX-2 检查点 ltx-2-19b-dev.safetensors HuggingFace Hub - Lightricks/LTX-2
Gemma 文本编码器 完整模型目录 HuggingFace Hub - google/gemma-3-12b-it-qat-q4_0-unquantized

环境安装

1. 环境准备

【模型开发时推荐使用配套的环境版本】

请参考安装指南,完成昇腾软件安装。

Python版本推荐3.10,torch和torch_npu版本推荐2.7.1版本

‼️部分特性依赖较新版本的torch_npu和CANN,推荐使用以下版本

2. 环境搭建

# 1. 克隆 MindSpeed-MM
git clone --branch 26.0.0 https://gitcode.com/Ascend/MindSpeed-MM.git

# 2. 安装 mindspeed 及依赖(如已集成可跳过)
git clone --branch 26.0.0_core_r0.12.1 https://gitcode.com/Ascend/MindSpeed.git
cd MindSpeed
cp -r mindspeed ../MindSpeed-MM/
cd ../MindSpeed-MM

# 3. 克隆 LTX-2 源仓(用于获取 ltx_core 模块)
git clone https://github.com/Lightricks/LTX-2.git
cd LTX-2
git checkout 28c3c73fe557666c3de176e1e50a5220152ccfca

# 4. 复制 ltx_core 模块到 MindSpeed-MM
cp -r packages/ltx-core/src/ltx_core ../MindSpeed-MM/mindspeed_mm/fsdp/models/ltx2/

# 5. 安装 mindspeed mm
cd ..
pip install -e .

数据集准备及处理

离线将视频/音频编码为 latent,并将文本编码为 prompt embedding,训练阶段直接读取 .precomputed/* 加速训练与减少线上依赖。

1. 数据格式(ltx2_precomputed)

1.1 数据集数据格式

dataset.json JSON 格式示例:

[
  {
    "caption": "A woman with long brown hair sits at a wooden desk, typing on a laptop.",
    "media_path": "videos/video1.mp4"
  },
  {
    "caption": "A chef in a white uniform stands in a professional kitchen, carefully plating a gourmet dish.",
    "media_path": "videos/video2.mp4"
  }
]

注意:

  • caption:视频描述文本,用于文本编码器生成条件嵌入
  • media_path:视频文件路径,支持相对路径或绝对路径

2. 预处理脚本(生成 .precomputed)

预处理脚本位于源仓 LTX-2/packages/ltx-trainer/scripts/ 目录下。本框架依赖源仓脚本进行预处理。

2.1 基本预处理(仅视频,t2v)

cd /path/to/LTX-2/packages/ltx-trainer
uv run python scripts/process_dataset.py dataset.json \
    --resolution-buckets "960x544x49" \
    --model-path /path/to/ltx-2-model.safetensors \
    --text-encoder-path /path/to/gemma-model

2.2 带音频的预处理(t2av)

cd /path/to/LTX-2/packages/ltx-trainer
uv run python scripts/process_dataset.py dataset.json \
    --resolution-buckets "960x544x49" \
    --model-path /path/to/ltx-2-model.safetensors \
    --text-encoder-path /path/to/gemma-model \
    --with-audio

参数说明:

参数 说明
dataset.json 数据集元数据文件路径(位置参数)
--model-path LTX-2 模型检查点(.safetensors)
--text-encoder-path Gemma 文本编码器目录
--resolution-buckets 分辨率桶配置,格式 宽度x高度x帧数
--with-audio 启用音频处理(t2av 训练)
--lora-trigger LoRA 触发词(推理时需包含)
--decode 解码验证(生成视频预览)

2.3 预处理目录结构

ltx2_precomputed 默认读取 preprocessed_data_root 下的 .precomputed 子目录:

${preprocessed_data_root}/
├── dataset.json              # 数据集元数据文件
├── videos/                   # 原始视频文件(可选)
└── .precomputed/             # 预处理结果(自动生成)
    ├── latents/              # 视频潜在表示
    │   └── *.pt
    ├── conditions/           # 文本嵌入
    │   └── *.pt
    └── audio_latents/        # 音频潜在表示(t2av 训练时)
        └── *.pt

训练

1. 准备工作

在配置文件中需要正确设置以下路径:

  • model.model_name_or_path / model.checkpoint_path:LTX2 safetensors 权重路径
  • model.text_encoder_path:Gemma text encoder 目录(如需使用 connector)
  • data.dataset_param.basic_parameters.dataset_dir:预处理数据根目录(包含 .precomputed/

并确保 training.plugin 包含:

  • mindspeed_mm/fsdp/models/ltx2/ltx2_fsdp2
  • mindspeed_mm/fsdp/data/datasets/ltx2

2. 配置文件说明

关键配置项:

model:
  model_name_or_path: "/path/to/ltx-2-model.safetensors"
  checkpoint_path: "/path/to/ltx-2-model.safetensors"
  text_encoder_path: "/path/to/gemma-model"

data:
  dataset_param:
    basic_parameters:
      dataset_dir: "/path/to/preprocessed/data"

training:
  plugin:
    - mindspeed_mm/fsdp/models/ltx2/ltx2_fsdp2
    - mindspeed_mm/fsdp/data/datasets/ltx2

output_dir: "outputs/my_training_run"

3. 启动训练(t2v / t2av)

t2v(text-to-video):

bash examples/ltx2/finetune_ltx2_t2v.sh

t2av(text-to-audio-video):

bash examples/ltx2/finetune_ltx2_t2av.sh

环境变量声明

环境变量 描述 取值说明
TASK_QUEUE_ENABLE 控制 task_queue 算子下发队列优化等级 0 关闭;1 开启 Level 1;2 开启 Level 2
CPU_AFFINITY_CONF 控制 CPU 端算子任务绑核 0 关闭;1 粗粒度;2 细粒度
HCCL_CONNECT_TIMEOUT 分布式 socket 建链超时等待时间(单位 s) [120, 7200],默认 120
PYTORCH_NPU_ALLOC_CONF NPU 缓存分配器行为 例如 expandable_segments:True
MULTI_STREAM_MEMORY_REUSE 多流内存复用开关 0 关闭;1 开启