#283·LTX-2

错误 - 训练/推理对齐: ltx-trainer 和 ltx-core/ltx-pipelines 之间存在三个差异

作者: McMvMc创建于 2026年8月14日更新于 2026年8月18日

摘要。在实现自定义序列连接条件方案时,我发现了三个地方,其中发布的训练器和发布的推理栈存在分歧。其中两个仅限于 ltx-trainer 本身 — 其训练路径与其验证运行程序。没有一个引发错误;所有三个都会默默地训练一个在采样时表现不同的模型。 1. σ 计划。ShiftedLogitNormalTimestepSampler 从实际序列长度(timestep_samplers.py:77,122)获得其偏移。在采样时,LTX2Scheduler.execute() 仅在传入 latent= 时应用等效偏移 — 而八个调用点中,恰好有一个这样做(ti2vid_two_stages_hq.py:267)。其他七个,包括训练器自己的 validation_runner.py:875,获得固定的 4096 个令牌默认值。在训练器的默认验证几何图形(960×544×89 → 6120 个令牌)时,训练时 σ 取值为 mu ≈ 2.77,而验证时取值为 mu = 2.05。 2. 关键帧掩码。在训练中从未设置 — 在所有五个策略文件中均没有 grep 结果,在 flexible.py:432-440 中构建的模态中没有它。在推理时总是设置(tools.py:184,无条件)。还由训练器自己的验证器设置(validation_runner.py:783,809)。代码默认值为 use_keyframes_abs_pos_embedding 为 False,这将使其无效 — 但 LTX 2.5 检查点都设置为 True(从 safetensors __metadata__ 中读取)。 3. 令牌顺序。训练时预先添加(flexible.py:665)并切割尾部(:680);在推理时添加(reference_video_cond.py:97)并由每个消费者切割头部(clear_conditioning,_first_frame_keyframes_mask,build_attention_mask,多 GPU 填充)。对于模型来说,注意力是密集的,位置依赖于 RoPE,但两个部分的约定不同,因此在它们之间移植逻辑会默默失效,而不是在形状上。 我没有声称的内容:我尚未验证已发布的检查点是如何实际训练的(预训练代码不公开,因此内部训练可能与推理相匹配,只有发布的微调器出现分歧);我尚未测量质量影响;#3 可能是故意的。

内容来源: Lightricks/LTX-2