Skip to content

Campaign spec ltx-2-5.md:291 still records the FABRICATED 'multishot' arm as owed #692

Description

@localai-bot

Found by review of #661 (row LTX25-RETIRE-DEAD-ARMS) as finding F6. Filed rather than fixed there because .agents/specs/ltx-2-5.md is the operator-owned campaign spec and that row is explicitly scoped out of editing it (spec ltx25-retire-dead-arms.md §3 "Out").

The stale claim

.agents/specs/ltx-2-5.md:291, in the §2 Out (recorded as owed, not silently dropped) list:

DiffVAE / NADiffusionDecoder (own row — new neighborhood-attention kernel); the temporal x2 upsampler; LoRA fusion; multishot; int8-convrot (ComfyUI-only quantization); multi-GPU / CFG parallelism.

multishot is fabricated. #661 retired the kMultishot enumerator after re-deriving the absence against both pinned references, twice — once by the implementer and once independently by the reviewer, searching the subject rather than our own phrasing (the #604 trap):

  • multishot / multi_shot / multi-shot: 0 hits in Lightricks/LTX-2 fd4ded7f and huggingface/diffusers 3a2f35d4.
  • Every upstream shot is ONE camera take — duration_head.py:1,5 "predicts shot duration"; README.md:136 "think like a cinematographer describing a shot list"; diffusers pipelines/ltx2/utils.py:217 "Shot type (exactly one: extreme wide shot / wide shot / medium shot / …)".
  • storyboard / chapter: 0 hits. Every scene is PySceneDetect in the trainer or scene-linear HDR.
  • retake.py, keyframe_interpolation.py, dfr_pipeline.py and dubit.py were read individually; none composes several takes.
  • ltx-pipelines documents 11 pipelines and diffusers registers 16 ltx2/ modules; none is multi-shot.

So there is nothing to owe. A spec that records a fabricated arm as owed sends the next reader upstream to look for it, and main currently carries that claim in the campaign spec even though the code it justified has been removed.

Two smaller items on the same line, for the same edit:

  • "multi-GPU / CFG parallelism" should be multi-GPU parallelism. fix(LTX25-RETIRE-DEAD-ARMS): retire the invented refusals, refuse the ignored extra (#644, #611) #661 renamed kCfgParallelismkMultiGpuParallelism after finding 0 cfg hits in either multigpu/ tree; upstream's forms are sequence-parallel (multigpu/sp_builder.py:25), tiled data parallel (multigpu/tdp_builder.py:25, upscale only) and distributed VAE decode (ltx-core multigpu/vae/distributed_decoder.py:204-256), and upstream's own CFG is a batch dimension, never a device — utils/denoisers.py:7-8, _guided_denoise "batches all guidance passes into a single transformer call".
  • int8-convrot is correctly listed as out of scope, but the parenthetical reason is worth aligning with what was measured: convrot really is 0 hits, but int8 is unreachable rather than absent upstream — trainer-only for anything wired, plus one dead per-row int8 quantize kernel in the ltx-kernels inference package (blockwise/triton_ops.py:35,43, reached only by its own alias at :436).

Done when

.agents/specs/ltx-2-5.md §2 "Out" no longer names multishot, cites .agents/specs/ltx25-retire-dead-arms.md §1.1 as the record for why, and the multi-GPU entry is renamed. Owner: whoever holds the ROAD-V1-LTX25 campaign.

Related: #644, #604, #661.

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