Files
hermes-skills/ltx-video-pipeline/references/claude-wiring-diagnosis-2026-07-21.md
T

2.9 KiB
Raw Blame History

Claude Wiring Diagnosis — 2026-07-21

Claude Opus 4.8 SSH'd into 10.0.0.202 and diagnosed the subject duplication bug.

Root Cause

Node 132 (LTXDirectorGuide, the refiner pass) had its latent input wired to ["34", 0] (uncropped LTXVSeparateAVLatent output) instead of ["55", 2] (LTXDirectorCropGuides cropped output).

Mechanism (from source code review)

LTXDirectorGuide doesn't blend the I2V image in — it appends it as extra latent frames on the end of the sequence, then records how many to remove later in a conditioning key (ltx_director_guide.py:596). LTXDirectorCropGuides trims exactly that many afterward.

The critical line is ltx_director_guide.py:339:

initial_latent_length = int(latent_length)   # captured from whatever arrives

The graph runs 133 first (8 steps, denoise 1.0), then 132 (4 steps, 0.42). Node 55 correctly crops 133's guide frames off... but 55:2 (the cropped latent) is never consumed. Node 132 takes 34:0 instead — the raw, uncropped sampler output. Only 55's conditioning outputs are wired, which is why the break is invisible in the UI.

So 132 counts stage-1's leftover guide frames as real video content, appends a second guide on top, and the final crop removes only one set. The orphaned guide frames decode as actual footage: a second copy of the man, frozen in the start-frame pose, while the real generation gets out of bed.

Empirical Confirmation

  • ffprobe: 249 frames / 10.375s. Requested: 240 / 10.0s. The overshoot is leftover guide latent, decoded as video.
  • Batches 1, 2, and 3 are all 249 frames (00007, 00013, 00019, 0002500030). Byte-identical symptom across every "fix" — the wiring never changed.
  • Log shows two [LTXDirectorGuide] execute started per render, both "Using Appended Keyframe Guidance" — double append, confirmed.

Reference Workflow Comparison

example_workflows/LTX_Director_2_Workflow_Hotfix.json wires it as:

stage1 → 34 Separate → 55 CropGuides → 14 LTXVLatentUpsampler → 132 Guide
                              (55:2, cropped)

Our v3 deleted node 14 (LTXVLatentUpsampler) and reconnected 132 straight to 34:0. Removing the upsampler is what orphaned the crop.

Fix

Point 132.inputs.latent at ["55", 2] instead of ["34", 0]. Restoring the upsampler between them is the fully-correct form.

Verification

Output should be exactly 240 frames for 10s@24fps. 249 frames = bug present.

Other Findings

  • ID LoRA / distilled LoRA at 1.0 — not the cause. Log confirms is_lora_active: False, ic_lora_name: None.
  • Scene 2 "soup" problem — separate issue. The start frame ltx_start_frame_02_00001_.png shows a man over a tall steaming stockpot, which reads as soup. Bad start frame, not a prompt bug.
  • Seed is 0 and shared — bump to random. ComfyUI caches identical graphs.
  • Session ID: 5381500e-a071-42f5-8d6b-d780520a981b
  • Cost: $1.34 USD, 31 turns