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.
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)
| Name | Type | Default | Description |
|---|---|---|---|
| run_name | STRING | run01 | The run to assemble. Must match what the Chunk Writer used. |
| runs_folder | STRING | ltx25_one_runs | Subfolder of ComfyUI's output directory holding the run. |
| overlap_frames | INT | 80–64 | How 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. |
| crossfade | BOOLEAN | true | Blend across the overlap instead of cutting. Off = hard cut, overlap frames taken from the earlier chunk. |
| write_video | BOOLEAN | true | Also encode <run>_final.mp4 alongside the final/ PNG sequence. |
| video_fps | FLOAT | 25.001–240 | Frame rate for the assembled video. Match your timeline. |
| video_crf | INT | 180–51 | h264 quality. Lower is better and bigger; 18 is visually near-lossless. |
| match_levels | BOOLEAN | false | Offset 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_crossfade | COMBO | auto | How 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_frames | BOOLEAN | false | Also 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_format | COMBO | jpeg | Format for the final/ stills, when they are written at all. Chunk frames are read in whichever format the writer produced. |
| jpeg_quality | INT | 9570–100 | Only used when frame_format is jpeg. Chroma is never subsampled. |
| seam_mode | COMBO | early_cut | Where 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_frames | INT | 31–32 | How 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)
| Name | Type | Description |
|---|---|---|
| final_folder | STRING | — |
| info | STRING | — |