Skip to content

Every LTX-2.5 gate runs against an oracle the new policy does not admit (Lightricks ltx_core is not in the registry) #655

Description

@localai-bot

b81a5e413 (#647 / #650) made secondary oracles admissible only if they are one of seven listed upstreams, each at a recorded pin. The registry is a closed list: vllm, vllm-omni, transformers, diffusers, sglang, llama-cpp, tt-forge.

Lightricks ltx_core is not on it — and it is the oracle every LTX-2.5 gate executes.

The DiT, both VAEs, the pipeline, the connector, the caption projections and the text tower are all gated by generators that import and run ltx_core at pin fd4ded7f. Under the policy as written, none of those gates rests on an admissible oracle.

scripts/check-oracle-pins.py passes, so nothing is red. AGENTS.md is explicit that this is expected: "A checker's own message is the authority on what it enforces; this file states the rule in prose. Nothing verifies that the two agree, deliberately." So this is a prose-level violation that no gate will catch, which is precisely the kind this project asks to be surfaced rather than absorbed.

Why this is not a paperwork problem

The full-port campaign (#644) adds rows that will gate against the same oracle — DiffVAE, tiled decode, image conditioning, the temporal upsampler. Every one inherits the defect. Deciding this after those land is strictly worse than deciding it now.

The three honest options

(a) Admit Lightricks to the registry. It is the model author's own reference implementation, which is the same category the registry already admits for transformers"a model, processor or tokenizer's own reference implementation — the source vLLM itself mirrors". For LTX-2.5 there is no vLLM implementation at all (vLLM-Omni's recipes stop at 2.3, ltx2_recipes.py:160-166, and #6066 is open upstream), so ltx_core is the source diffusers itself mirrors — diffusers' own DiffVAE file describes itself as "Minimal port of the reference NADiffusionDecoder". Requires a policy change with its own spec, per AGENTS.md.

(b) Re-anchor the LTX gates to diffusers, already admissible ("schedulers, VAEs and diffusion pipelines"). Grounding (#644) established diffusers models LTX-2.5 specifically, not merely the LTX-2 family: pipeline_ltx2.py:990 (duration head is "LTX-2.5 checkpoints and later"), :1090 (2.3/2.5 cross-attention modulation), :1097 (LTX2_5_T2V_DEFAULT_SYSTEM_PROMPT), :587. But it is currently pin = UNPINNED (.agents/oracles/diffusers.md:23, #647 owes it), the local checkout is sparse (three paths), and no diffusers-layout 2.5 weights exist on the box. So this is real work, and it would re-anchor a large body of committed goldens.

(c) Both — admit Lightricks as the architecture reference, pin diffusers, and keep diffusers as the cross-check where it disagrees. Note the two references already disagree on noised-state composition (spec §3.3, agreeing only at noise_scale == 1), and we deliberately follow ltx_core. That disagreement is an argument for recording both rather than silently preferring one.

Recommendation

(a) then (c). Lightricks is the author's reference and the source diffusers ports from; excluding it while admitting its downstream port inverts the dependency. But this is a policy change and needs a spec and the developer's ratification, not an operator quietly appending a row to a registry — which is exactly what the implementer on #654 declined to do, correctly.

Blocks nothing today; poisons every gate the campaign is about to add.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions