用 LTX-2 Trainer 训练 LoRA 前,先搞清楚训练产物长什么样
【免费下载链接】LTX-2Official Python inference and LoRA trainer package for the LTX-2 audio–video generative model.项目地址: https://gitcode.com/GitHub_Trending/lt/LTX-2
第一次用 LTX-2 Trainer 做 LoRA 训练的人,习惯从装环境讲起。这里反着来:先说清怎么判断一次训练算成功、产物放在哪、之后怎么用,再倒推前面每一步要做什么。照着顺序执行就能完整跑通一次音视频 LoRA 训练,配置里每个字段都写得很直白。
训练跑完之后,先检查这三样东西
LoRA 训练的产物都在配置里output_dir指定的目录,默认是outputs/t2v_lora:
checkpoints/lora_weights_step_00000.safetensors—— LoRA 权重本体,文件名带训练步数,这个文件就是最终要拿去推理的东西;training_config.yaml—— 本次训练配置的副本,方便事后对账;samples/—— 训练过程中按validation.interval(默认每 100 步)自动生成的验证视频,判断"模型有没有学会"最直观的就是看这里 📹。
拿到.safetensors后,推理侧用仓库里的 ltx-pipelines 包加载它即可,它支持挂载自定义 LoRA 的推理管线。所以每次开训前值得先问一句:我要的产物就是checkpoints/下某个 step 的权重文件,验证标准是samples/里的画面和声音。
配置里哪些字段决定训练走向
configs 配置目录 里每种训练模式都有一个现成 YAML,比如文生视频的t2v_lora.yaml。第一次用不用背参数,只需要知道四个块:
model:——model_path填本地.safetensors模型路径(只认本地路径,不支持 URL),text_encoder_path填配套 Gemma 文本编码器的目录(LTX 2.5 必须用 LTX 定制版 Gemma 4,不能用 Google 原版);lora:——rank和alpha常规都设 32;target_modules写to_k、to_q、to_v这类短模式名,能同时命中视频和音频两条分支的注意力层,音视频联合训练就是这么配的;data:——preprocessed_data_root指向下面要说的.precomputed/目录;training_strategy:—— 用name: "flexible"统一策略,video.is_generated/audio.is_generated控制哪条分支参与生成。
数据集怎么喂进去,预处理这一步最容易翻车
训练不直接吃原始视频。先用 JSON / JSONL / CSV 写一份数据集清单,每行给caption和video两个字段:
[ { "caption": "A cat playing with a ball of yarn", "video": "videos/cat_playing.mp4" } ]然后跑预处理脚本,它会算出视频/音频 latents 和文本 embeddings,存进.precomputed/目录:
uv run python scripts/process_dataset.py dataset.json \ --resolution-buckets "960x544x49" \ --model-path /path/to/model.safetensors \ --text-encoder-path /path/to/gemma-root注意分辨率不是随便填的:宽和高要能被 32 整除,帧数要满足frames % 8 == 1(默认 VAE 的时间压缩系数是 8),比如 960x544x49 这种组合才合法。
最大的坑是缓存:脚本默认跳过已存在的.pt文件。换了模型 checkpoint 或 Gemma 版本之后不传--overwrite、也不换新输出目录,就会混用旧特征,直接报 Gemma 版本不匹配的错。
显存不够、训练中断,分别怎么办
单卡启动很简单:
uv run python scripts/train.py configs/t2v_lora.yaml多卡则用 Accelerate 拉起,仓库configs/accelerate/里备好了 ddp、fsdp 及各自的 compile 版启动配置:
uv run accelerate launch --config_file configs/accelerate/ddp.yaml scripts/train.py configs/t2v_lora.yaml32GB 显存的卡不要硬扛标准配置,直接用t2v_lora_low_vram.yaml:它把 int8 量化(quantization: "int8-quanto")、8-bit 优化器(optimizer_type: "adamw8bit")、LoRA rank 降到 16、8bit 加载文本编码器都配好了。仍然 OOM 就先降optimization.batch_size到 1,再用gradient_accumulation_steps把有效批量补回来 ⚠️。
另外提醒:训练时的验证采样走的是简化推理管线,只求快、不求质量,最终出片要去 ltx-pipelines 包里走正式管线;LTX 2.5 蒸馏版 checkpoint 的验证参数建议从 8 步推理、CFG 1.0、STG 0.0 起步。
几个高频坑,按报错对号入座
- 显存爆炸:直接换 low_vram 配置,别在标准配置上逐项抠参数;
- 验证视频不像样:依次查 caption 是否描述了画面加声音(LTX 偏好带声音细节的长描述)、
target_modules是否同时命中了视频和音频分支、LoRA rank 是不是太小; - 训练中断:把
model.load_checkpoint指回某个 checkpoint 路径,重启后自动续训;checkpoints.keep_last_n控制保留几份,默认全留,多份产物对比后再决定用哪个 step; - 想让 LoRA 只在特定场景激活:预处理时加
--lora-trigger传一个触发词,推理 prompt 里带上同一个词才会生效,免得污染通用 prompt。
下一步:先把process_dataset.py对着一小批样本跑通,确认.precomputed/里latents/、conditions/、audio_latents/三个目录都有文件,再按显存大小选配置启动训练,然后每 100 步盯一次samples/。
【免费下载链接】LTX-2Official Python inference and LoRA trainer package for the LTX-2 audio–video generative model.项目地址: https://gitcode.com/GitHub_Trending/lt/LTX-2
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考