Skip to content

LTX-2.5: the requires_distilled_lora refusal still advertises #1118 as open, and cites a2vid's line numbers to every other pipeline #1151

Description

@localai-bot

Ltx2VideoEngine::Load's requires_distilled_lora refusal ends with a NOTE telling the caller that this engine cannot put the adapter on stage 2 alone, and pointing at #1118. #1118 is CLOSED, by 4ae0f54ab (row LTX25-PHASE-LORA, PR #1140), which added Ltx2PhaseRecipe::loras and Ltx2RebindDitLoras and gave A2VidTwoStageRecipe stage 1 kNoAdapters.

Measured at c83b96934, src/vllm/multimodal/ltx2_video.cpp:1039-1041:

"NOTE the divergence this cannot express: upstream fuses that adapter into stage 2 ALONE (a2vid_two_stage.py:114 against :107) and this engine fuses once at load, so stage 1 sees it too — #1118."

Every clause after "NOTE" is false. The engine no longer fuses once at load for this recipe, stage 1 does not see the adapter, and the issue is closed. The comment above the refusal (:1023-1027) says the same thing in the same words and is equally stale.

ltx25-phase-lora.md repaired the reference-conditioning refusal's reason 2, which carried the same claim, and this second site was missed — the two are ~1100 lines apart and only the first was named in that row's ## Port map.

Second defect at the same site: the message cites the WRONG pipeline

The refusal is deliberately keyed on recipe.requires_distilled_lora rather than on the kind string, so that "the next recipe off this parser inherits it" (:1019-1021, which names #1093 and #1096 as waiting). But its body interpolates im.pipeline_kind into the first sentence and then hard-codes a2vid's anchors — a2vid_two_stage.py:164, :114, :107 — into the rest. So the first arm to inherit the flag gets a refusal that names its own pipeline and then cites a different pipeline's source lines.

--distilled-lora required=True lives at utils/args.py:1140-1155 on default_2_stage_arg_parser (:1123), which is the parser all of these pipelines select — a2vid_two_stage.py:311, ti2vid_two_stages.py:319, keyframe_interpolation.py. That anchor is shared and correct to cite; the per-pipeline stage-2 line numbers are not.

Fix

Rewrite the NOTE to say what closed it, in the form the neighbouring ruled-out reasons already use, and move the message's remaining anchors onto the shared parser rather than onto one pipeline's stage 2. Found and fixed in flow by row LTX25-TI2VID-RECIPE (#1093), which is the second user of this flag and therefore the first caller the wrong-pipeline half would have misled. tests/vllm/multimodal/test_ltx2_video.cpp:7238 asserts the string 1118 appears in the message and is updated with it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions