Nodes/ComfyUI-TJ_NODE_STUDIO_ONE/LTX Chunk Assembler (TJ 2.5)
ComfyUI Node

LTX Chunk Assembler (TJ 2.5)

Joins the chunks of a run into one continuous PNG sequence, cross-dissolving the overlapping frames. Writes to <run>/final/ rather than returning an IMAGE batch: a 16s 1920x1088 sequence is about 10GB as float32, which is not something to hold in memory just to hand to a video encoder.

By designloves2·Created 4 months ago·Updated 3 days ago· 35
LTX Chunk Assembler (TJ 2.5)
    • final_folder
    • info
    ◄run_namerun01►
    ◄runs_folderltx25_one_runs►
    ◄overlap_frames8►
    ◄crossfadetrue►
    ◄write_videotrue►
    ◄video_fps25.00►
    ◄video_crf18►
    ◄match_levelsfalse►
    ◄audio_crossfadeauto►
    ◄write_final_framesfalse►
    ◄frame_formatjpeg►
    ◄jpeg_quality95►
    ◄seam_modeearly_cut►
    ◄seam_blend_frames3►
    CategoryWhatDreamsCost CS 2.5

    Inputs (14)

    NameTypeDefaultDescription
    run_nameSTRINGrun01The run to assemble. Must match what the Chunk Writer used.
    runs_folderSTRINGltx25_one_runsSubfolder of ComfyUI's output directory holding the run.
    overlap_framesINT80–64How many frames each chunk shares with the next. Must match the handoff_frames you rendered with, and you must have started each window that many frames before the previous chunk ended.
    crossfadeBOOLEANtrueBlend across the overlap instead of cutting. Off = hard cut, overlap frames taken from the earlier chunk.
    write_videoBOOLEANtrueAlso encode <run>_final.mp4 alongside the final/ PNG sequence.
    video_fpsFLOAT25.001–240Frame rate for the assembled video. Match your timeline.
    video_crfINT180–51h264 quality. Lower is better and bigger; 18 is visually near-lossless.
    match_levelsBOOLEANfalseOffset each chunk's brightness to match the one before it. This averages the MEAN over every overlap frame and never touches contrast - unlike the writer's per-frame match, which was unreliable. Still off by default: try the crossfade alone first.
    audio_crossfadeCOMBOautoHow to blend audio across the overlap. Auto measures each seam and picks: identical material (an inpainted song) passes through untouched with a linear fade; independent generated sound gets equal_power so the level holds; music the model rendered slightly differently in each chunk gets a short 15ms splice, because a long blend of near-but-not-identical audio flanges. Short forces that splice everywhere, off is a hard cut. Every setting consumes the same overlap, so the audio never drifts out of sync with the picture.
    write_final_framesBOOLEANfalseAlso write the assembled sequence as stills in <run>/final/. Off by default because the mp4 is the deliverable. Forced on if write_video is off.
    frame_formatCOMBOjpegFormat for the final/ stills, when they are written at all. Chunk frames are read in whichever format the writer produced.
    jpeg_qualityINT9570–100Only used when frame_format is jpeg. Chroma is never subsampled.
    seam_modeCOMBOearly_cutWhere to join two chunks. The next chunk's FIRST frame is the handoff guide reproduced, so it is pixel-identical to the previous chunk's frame at (end - handoff_frames). early_cut switches exactly there - identical content, nothing mixed, no ghost. early_scurve blends over seam_blend_frames with an S-curve - soft at both ends, so a difference in camera velocity between the chunks is ramped rather than stepped. early_blend is the same length with a straight fade. dissolve and hard_cut are the old behaviour, which joined at the END of the overlap after the chunks had already diverged. This setting supersedes the crossfade toggle above.
    seam_blend_framesINT31–32How many frames the early_scurve / early_blend seam covers. Clamped to handoff_frames. Short is usually right: the chunks only agree near the start of the overlap, so a long blend reaches into frames that have already diverged.

    Outputs (2)

    NameTypeDescription
    final_folderSTRING—
    infoSTRING—