Commit 247eba5
authored
feat(ltx-2.5): image conditioning at crf=0, the VAE encoder load path, and the FALSE refusal reason it exposed (#644)
FOLLOWING_AGENTS_PROTOCOL
Image conditioning for LTX-2.5 at crf=0, plus the VAE encoder load path that did not exist, plus the repair of that feature's own review findings. This branch CONTAINS #657, which closes as superseded.
The finding worth reading: the refusal for keyframe conditioning named a FALSE reason, and a test had pinned it. It blamed `keyframes_abs_pos_embedding`. Refuted against Lightricks/LTX-2 @ fd4ded7f, and the decisive link was one the original refutation had not cited -- `conditioning/mask_utils.py:101`, where `marked=False` writes ZEROS onto the appended tokens, and `:97-98`, where a `None` prior mask makes the whole mask `None` so `apply_keyframes_absolute_embedding` returns `hidden_states` unchanged. Meanwhile `tools.py:184` + `_first_frame_keyframes_mask` mark the TARGET's first latent frame unconditionally -- the tokens the served arm writes into. So the contrast was backwards: the appended keyframe gets nothing.
The new message names the real reason (the token-append machinery against a phase loop fixed at the target grid's token count), labels the old one "WHAT IS *NOT* THE REASON" with #658, and switches local anchors from same-file line numbers to SYMBOLS -- which is how the previous citation went stale.
The second finding was a gate that caught nothing: mutating to `if (wants_image && phase_index == 0)` left the suite byte-for-byte at 32/550 exit 0. The replacement pins the last phase's per-latent-frame count against a `max_phase = 0` engine, comparing two MEASURED values from two different engines rather than a compile-time constant.
Reviewed PASS (9 findings, none blocking) by a fresh reviewer who re-derived the upstream refutation itself, verified the hand-resolved merge left zero keyed-record keys lost or duplicated, and measured the shipped checkpoints directly: the first-party NVFP4 DiT declares the flag with the tensor ABSENT, while the vonkaiser FP8 copy carries it TRAINED at 4096/4096 non-zero bytes.
Operator gate at the exact pushed SHA, main pinned to an immutable SHA rather than the ref (this is a shared checkout and `origin/main` moves mid-operation): WINPORT_EXIT=0, check-device-leakage OK at DSR 32 == baseline 32, BUILD_EXIT=0, 0 errors, 0 ENOSPC, REGISTERED=451, ctest 450/451, `test_ltx2_video` 32 cases/565 assertions exit 0, `test_ltx2_image_cond` 15/223 exit 0. The single ctest failure is #737, main's own Music3 golden red.
Honest limit: `LTX2_CHECKPOINT_ROOT` is set in no workflow (#673), so CI exercises about 5.7% of `test_ltx2_video`'s assertions and the shipped-checkpoint subcase SKIPS. This row's own claims are not in that gated set, but the checkpoint-derived evidence in this campaign is host-local.
Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: AGENT:claude-opus-5[1m] [claude-code]1 parent a7154bd commit 247eba5
246 files changed
Lines changed: 38314 additions & 973 deletions
File tree
- .agents
- claims
- oracles
- specs
- .github/workflows
- docs
- include
- vllm
- config
- entrypoints/openai/tool_parsers
- model_executor/models
- multimodal
- processing
- parser/engine
- v1/engine
- vt
- scripts
- src
- vllm
- entrypoints/openai
- tool_parsers
- model_executor/models
- multimodal
- processing
- parser/engine
- platforms
- vt
- cpu
- cuda
- rocm
- tests
- parity/goldens/minimax_music3_oracle
- scripts
- support
- vllm
- config
- entrypoints/openai/tool_parsers
- models
- fixtures/qwen3_8_2_4t_a95b
- multimodal
- v1
- vt
- tools/oracle
- website
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
Large diffs are not rendered by default.
0 commit comments