Nodes/IAMCCS-nodes/IAMCCS_Ltx2HelperModules Continuity
ComfyUI Node

IAMCCS_Ltx2HelperModules Continuity

Stitch LTX-2 segments together without the seam

By IAMCCS·Created 11 months ago·Updated 8 days ago· 113
IAMCCS_Ltx2HelperModules Continuity
  • source_images
  • new_images
  • parent_contract
  • linx
  • continuity_payload
  • contract
  • linx
  • source_images_passthrough
  • start_images
  • extended_images
  • overlap_frames_out
  • calculated_frames
  • extension_frames
  • report
overlap_frames9
overlap_sidesource
overlap_modecut
enable_mathtrue
math_operationa-b
safe_modenone
start_frames_rulenone
presetlossless_refresh_24fps
use_planner_presettrue
planner_payload{}
refresh_payload{}
math_value_b1

The video-side workhorse of the helper-module chain. Where ReanchorLatent keeps the generation on-course at the latent level, Continuity handles the stitching: it takes your accumulated footage and the freshly generated segment, overlaps them, blends the seam, and hands back the extended clip plus the start frames for the next pass. If you've used IAMCCS_LTX2_ExtensionModule, this is that same engine wearing the helper-module uniform - with the planner and refresh payloads doing the configuration for you.

It's the node that makes "segments actually join seamlessly" happen in the au_img2vid pipeline, and it's the in-memory counterpart to DiskExtension (same job, but Continuity works on IMAGE tensors while DiskExtension works on frame directories for low-RAM rigs). Pick based on your RAM, not your preference.

How it works

Under the hood it calls IAMCCS_LTX2_ExtensionModule.process_extension - the full overlap/blend machinery: take overlap_frames from the source tail or new head (overlap_side), blend with the chosen overlap_mode (cut or a crossfade), enforce the start_frames_rule (keeping next-pass start frames at 8n+1), and optionally tweak the overlap via math_operation. What's different from using the ExtensionModule directly is the automation:

  • use_planner_preset (default true) - the node reads planner_payload and uses the planner's recommended preset and overlap instead of the widget values. The planner's recommended_extension_preset (e.g. lossless_refresh_24fps) becomes the effective stitch config.
  • refresh_payload - on reanchor segments, the refresh policy's overrides take charge: reanchor_overlap_mode (filmic_crossfade), reanchor_safe_mode, and reanchor_start_frames_rule replace the manual settings. So a reanchor segment gets a softer blend and correct frame rule automatically, while continuity segments use the continuity preset.

The presets available (custom, target_extension_ltx2, lossless_refresh_24fps, videoclip_audio_24fps, monologue_audio_24fps, cut_bestofk_*, micro_crossfade_3) are the same family as the ExtensionModule.

The inputs and outputs that matter

You wire in: source_images (footage so far), new_images (the new segment), plus planner_payload and refresh_payload from the chain. overlap_frames (default 9) and overlap_mode (default cut) are the manual knobs - mostly overridden by the planner.

Outputs you'll use: extended_images (the growing clip), start_images (next pass's conditioning), source_images_passthrough, plus overlap_frames_out, calculated_frames, extension_frames INTs, the continuity_payload/contract/linx plumbing, and report.

Installing it

Ships in IAMCCS-nodes under IAMCCS/Ltx2 Helper Modules. Manager → "IAMCCS" → install, or:

cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git

Restart ComfyUI. No models; relies on the same ExtensionModule code already in the pack.

Common issues

The default overlap_mode is cut - hard join - which is right for cleanly-matching segments but will show a seam if your two chunks drift in color. Turn on a crossfade or, better, let a reanchor segment handle it via the refresh payload. Second: because use_planner_preset defaults on, your manual preset/overlap_frames are ignored whenever a planner_payload is connected - if you're tuning by hand and nothing changes, that's why; disconnect the payload or flip the toggle. And remember the 8n+1 rule travels with the start frames - if the next encode fails, check that start_frames_rule isn't set to none on a reanchor segment where the refresh override didn't apply.

CategoryIAMCCS/Ltx2 Helper Modules

Inputs (16)

NameTypeDefaultDescription
source_imagesIMAGE
overlap_framesINT91–256
overlap_sideCOMBOsource2 options: source, new_images
overlap_modeCOMBOcut5 options: cut, linear_blend, ease_in_out, filmic_crossfade, perceptual_crossfade
enable_mathBOOLEANtrue
math_operationCOMBOa-b8 options: none, a-b, a-1, a+b, a*b, a/b, +2
safe_modeCOMBOnone2 options: none, native_workflow_safe
start_frames_ruleCOMBOnone3 options: none, ltx2_round_down, ltx2_nearest
presetCOMBOlossless_refresh_24fps10 options: custom, target_extension_ltx2, lossless_refresh_24fps, lossless_refresh_strong_24fps, videoclip_audio_24fps, monologue_audio_24fps, +4
use_planner_presetBOOLEANtrue
new_imagesoptIMAGE
planner_payloadoptSTRING{}
refresh_payloadoptSTRING{}
parent_contractoptIAMCCS_SUPERNODE_CONTRACT
linxoptIAMCCS_SUPERNODE_LINX
math_value_boptINT10–256

Outputs (10)

NameTypeDescription
continuity_payloadSTRING
contractIAMCCS_SUPERNODE_CONTRACT
linxIAMCCS_SUPERNODE_LINX
source_images_passthroughIMAGE
start_imagesIMAGE
extended_imagesIMAGE
overlap_frames_outINT
calculated_framesINT
extension_framesINT
reportSTRING