LTX-2 Extension Module ??
The all-in-one LTX-2 extension module, knob by knob
- source_images
- new_images
- source_images
- start_images
- extended_images
- overlap_frames
- calculated_frames
- extension_frames
- report
This is the node the whole LTX-2 side of IAMCCS-nodes orbits. Long LTX-2 video means generating segment by segment and stitching - and stitching badly is how you get the flickering seams and identity drift that show up in every long-clip thread. LTX2 Extension Module is the author's attempt to make that one step good: overlap frames, blending modes, seam search, color matching, frame math, and next-pass start-frame extraction all in a single node. It's a lot. That's deliberate - this is the tuning surface, and the pack also ships a simple variant that hides most of it.
How it works
At its core it's the same stitch as the simple version: take source_images + new_images, choose overlap_frames from one side (overlap_side), blend the overlap, and hand you back extended_images plus start_images for the next pass. What the full module adds is quality tooling aimed at the two ways LTX extensions visibly fail:
seam_search_mode=best_of_k- instead of blending at a fixed offset, it searches inside the new chunk for the frame where the seam looks most continuous (usingk_searchcandidate offsets andmetric_weight_color/metric_weight_edgesfor the matching). This attacks the "odd restart" / rewind artifacts where the model re-generates slightly different frames at the join.color_match_mode- matches the new chunk's color and exposure to the source tail before merging (luma_onlyorper_channel, strength viacolor_match_strength, stats window viacolor_reference_window). Drift in color between segments is the #1 complaint on long LTX-2 runs; this is the direct fix.safe_mode=native_workflow_safe- mimics the older IAMCCS workflow behavior for start frame extraction, for drop-in compatibility with existing graphs.start_frames_rule- forces the extractedstart_imagesto a legal8n+1count (ltx2_round_down/ltx2_nearest) so the next VAE encode doesn't fail.enable_math/math_operation- adjusts the overlap count arithmetically (a-b,a-1,a+b, …). The classic use is trimming the passed-along start frames to 8n+1 while keeping the blend window wider.
And there are presets that set overlap/blend/seam options in one click - target_extension_ltx2, the 24fps refresh presets, cut_bestofk_*, micro_crossfade_3. The custom default keeps your manual settings.
The inputs and outputs that matter
You'll genuinely set these most of the time:
source_images+new_images- the two segments to stitch.preset- start here.target_extension_ltx2is the sensible baseline for LTX.overlap_frames- blend window (default 10).color_match_mode- turn onluma_onlyif you see color drift between segments.seam_search_mode+k_search- turn onbest_of_kif you see rewind/odd-restart artifacts.
Outputs: source_images (pass-through), start_images (for the next pass's conditioning), extended_images (the growing clip), plus overlap_frames, calculated_frames, extension_frames INTs and a report STRING.
Installing it
In IAMCCS-nodes. ComfyUI Manager → search "IAMCCS" → install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git
Restart ComfyUI, find it under IAMCCS/LTX-2. No models or extra Python deps.
Common issues
Two traps. First, the quality knobs default to off - this is a compatibility decision (existing workflows shouldn't change behavior on update), so if you're seeing seams and didn't touch anything, that's expected; the node isn't broken, the nice features are just opt-in. Second, don't stack it with the simple version in the same graph - they do the same job and will fight over the overlap math. And worth knowing: this node's whole purpose is feeding image batches around, so it pairs with FirstLastLatentControl (which locks those start frames into the latent) rather than replacing it. The report output tells you exactly what blend and overlap actually ran - read it once and you'll know which knobs to turn.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| source_images | IMAGE | The source images to extend (from previous generation) | |
| overlap_frames | INT | 101–256 | Number of overlapping frames between batches |
| overlap_side | COMBO | source | Which side to take overlap frames from |
| overlap_mode | COMBO | linear_blend | Blending method for overlapping frames |
| enable_math | BOOLEAN | true | Enable math calculations for frame adjustments |
| math_operation | COMBO | a-b | Math operation to perform on overlap value |
| safe_mode | COMBO | none | Compatibility: mimic the original workflow behavior (start_images extracted as images[-overlap_frames:-1]) |
| start_frames_rule | COMBO | none | Optional: force start_images frame count to LTX rule (1 + 8*x) for VideoVAE encode |
| color_match_mode | COMBO | none | Optional: match color/exposure of new_images to the tail of source_images before merging |
| color_match_strength | FLOAT | 1.000–1 | 0=no effect, 1=full match (only used if color_match_mode != none) |
| color_reference_window | INT | 81–256 | How many frames from the tail/head to use for stats matching |
| seam_search_mode | COMBO | none | Optional: search inside new_images for a better seam start (reduces rewind/odd restarts) |
| k_search | INT | 00–64 | How many candidate offsets to test (0 disables). Used only if seam_search_mode=best_of_k |
| metric_weight_color | FLOAT | 1.00–5 | Weight for color/luma continuity metric |
| metric_weight_edges | FLOAT | 0.50–5 | Weight for edge continuity metric |
| preset | COMBO | custom | Preset that auto-configures overlap/blend/seam search options (and updates widgets live). Choose 'custom' to keep manual settings. |
| new_imagesopt | IMAGE | The newly generated images to extend with | |
| math_value_bopt | INT | 10–256 | Second operand for math operations (b) |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| source_images | IMAGE | — |
| start_images | IMAGE | — |
| extended_images | IMAGE | — |
| overlap_frames | INT | — |
| calculated_frames | INT | — |
| extension_frames | INT | — |
| report | STRING | — |