Nodes/Comfyui-MMH3-UltimateUpscale/LTX25 Temporal Split Params
ComfyUI Node

LTX25 Temporal Split Params

Chopping your LTX2.5 clip into chunks without leaving visible seams

By bbaudio-2025·Created 6 days ago·Updated 2 days ago· 116
LTX25 Temporal Split Params
    • temporal_split_param
    chunk_length97
    temporal_overlap9
    anchor_modefull
    anchor_strength0.999

    Long LTX2.5 clips don't fit in VRAM as one piece, so LTX25 Ultimate Upscale cuts them into overlapping time chunks and re-samples each one. This node is where you set how that cutting happens - the outer loop of the whole pipeline. Its one output, temporal_split_param, goes into the main node's temporal_split_param input. Leave it unconnected and the whole latent is processed as a single chunk, which defeats the point of the pack.

    Four settings, and only two really demand your attention at the start.

    The settings

    • chunk_length (default 97) - target pixel frames per chunk. 97 is roughly 4 seconds at 24fps. The hard rule, straight from the tooltip: (n-1) % 8 == 0. That's LTX's 8k+1 temporal grid - every LTX latent is 1 token plus multiples of 8. The node raises a ValueError if you get this wrong, so you can't silently feed it a bad number.
    • temporal_overlap (default 9) - frames of overlap between consecutive chunks. 9 is one latent token, and it's the recommended value. It must also satisfy the 8k+1 rule and be smaller than chunk_length.
    • anchor_mode - how the next chunk relates to the previous chunk's already re-sampled result. Three options:
      • full (default): the entire overlap band is copied from the previous chunk and pinned via the noise mask. The stitch cross-fade then mixes identical content, so the overlap mostly just shifts where the seam lands.
      • first_frame: only the first latent token (~8 frames) is pinned; the rest of the overlap re-samples freely and the cross-fade blends across the band. This is the "H3-style" mode, and here temporal_overlap actually controls how wide the visible transition is.
      • ramp: the overlap is initialized from the previous chunk and the noise mask ramps linearly from the pin strength at the seam to fully free at the band end - a true temporal fade whose width is temporal_overlap.
    • anchor_strength (default 0.999) - how hard the seam side is pinned. 1.0 keeps previous content exactly; 0.999 is the model's image-to-video default; 0.0 disables anchoring and leaves you with cross-fade only.

    For a first run, the defaults are genuinely fine: chunk_length 97, overlap 9, anchor_mode full, anchor_strength 0.999. Chunking a 4-second clip into ~4.1s pieces with a single-token overlap costs a small amount of redundant compute (the README's ballpark for the temporal axis is ~1.13x), and in exchange your VRAM peak is bounded to one chunk's activations plus the model.

    Why you care about chunk length at all

    This is the VRAM lever on the time axis. Per-piece memory scales roughly with chunk_length × tile_width × tile_height. Too large and the piece spills into the PCIe-offload regime this whole design exists to avoid - 15-60x slower per byte. Too small and the fixed overlaps eat the budget, since every axis pays (size + overlap) / size. The play is the same as for tiles: the largest chunk that keeps peak VRAM just under capacity, watched on ComfyUI's meter during the first chunk. If your checkpoint can't stay resident even in small pieces, smaller chunks still help by minimizing spill traffic.

    Installing

    Part of the bbaudio-2025/Comfyui-MMH3-UltimateUpscale pack. Install via ComfyUI Manager (search "Comfyui-MMH3-UltimateUpscale") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/bbaudio-2025/Comfyui-MMH3-UltimateUpscale
    

    Restart, no pip installs needed. Requires a recent ComfyUI that ships LTX support (comfy_extras.nodes_lt).

    Troubleshooting

    • chunk_length must satisfy (n-1) % 8 == 0 - you typed something off the LTX grid. Pick 9, 17, 25, 33, … 97, and you're fine.
    • temporal_overlap must be smaller than chunk_length - overlap can't swallow the chunk.
    • Hard cut visible at a seam - raise anchor_strength toward 1.0, or switch anchor_mode to first_frame/ramp so the transition has a width to blend. If the seam shows detail mismatch inside the pinned band, the previous chunk's output was likely too different; that's a sampling-consistency problem, not a split problem.

    This whole LTX25 line is marked "highly experimental" by the author, so treat seams you can't tune out as a feature of the bleeding edge rather than a bug in your workflow.

    Categorymodel/latent/ltxv

    Inputs (4)

    NameTypeDefaultDescription
    chunk_lengthINT979–100000Target pixel frames per chunk. MUST satisfy (n-1) % 8 == 0 (the LTX 8k+1 grid). 97 = ~4s @24fps.
    temporal_overlapINT91–100000Pixel frames of overlap between consecutive chunks. MUST satisfy (n-1) % 8 == 0. Recommended 9 (one latent token). With 'full' anchor_mode this mostly shifts the seam position; with 'first_frame'/'ramp' it controls the visible seam transition width.
    anchor_modeCOMBOfullHow the next chunk's overlap band relates to the previous chunk's re-sampled result (pin strength set by 'anchor_strength'). 'full' (default, original behaviour): the ENTIRE overlap is copied from the previous chunk and pinned via the noise mask (mask = 1 - anchor_strength); the stitch cross-fade mixes identical content, so temporal_overlap mostly just shifts the seam position. 'first_frame' (Mode A, H3-style): only the FIRST latent token (~8 frames) is copied and pinned; the rest of the overlap re-samples freely and the stitch cross-fade blends the two versions across the whole band - temporal_overlap visibly controls the seam transition width. 'ramp' (Mode B, temporal fade): the overlap is initialised from the previous chunk and its noise-mask ramps linearly from (1 - anchor_strength) at the seam to 1.0 at the band end - a true temporal fade whose width IS temporal_overlap.
    anchor_strengthFLOAT0.9990–1Pin strength at the seam side of the overlap band, used by every anchor mode (LTX image-to-video noise_mask). 1.0 = keep previous content exactly, 0.999 = model default, 0.0 = disable anchoring (cross-fade only).

    Outputs (1)

    NameTypeDescription
    temporal_split_paramLTX_TEMPORAL_PARAMTemporal split settings consumed by 'LTX25 Ultimate Upscale'.