Nodes/Video Sequencer/Video Sequencer
ComfyUI Node

Video Sequencer

Stitch Your Generated Clips Into One Video Without Re-encoding Everything

By Force01·Created 2 months ago·Updated 2 months ago· 13
Video Sequencer
  • segments
  • video
join_modecut
dissolve_duration0.50
filename_prefixsequence

Video models have embarrassingly short native context - Wan's window is 81 frames, about five seconds. So anything longer is really a handful of short clips stitched together, and the classic trick is start/end image continuation: each new clip picks up from the last frame of the one before it, so a hard cut is invisible. That workflow is exactly why this node exists. The author built it for his own continuation pipeline and posted it to r/comfyui in July 2026; this is the polished v0.2.0 that came out of the feedback.

Video Sequencer joins up to 20 VIDEO clips end to end into one MP4, in slot order. It accepts anything with a VIDEO output - MP4s from Load Video or clips generated earlier in the same workflow, wired straight off a CreateVideo. It's an output node, so when it runs, the finished video lands in ComfyUI/output/ under your filename_prefix. Look for it under video/edit.

How the seams work

Everything underneath is FFmpeg, and sequencing needs no GPU at all. In cut mode it uses the FFmpeg concat demuxer with stream copy - no re-encode, bit-for-bit, near-instant at any length. The README's own benchmark: joining two real 5-minute 720p clips (10 minutes of output) took 0.8 seconds.

Every other transition - dissolve, fade to black/white, four wipes, four slides, circle open/close, pixelate, zoom in, blur - re-encodes to H.264 + AAC. And this is where the node gets clever: smart render. When clips are compatible (same size, frame rate, codec, profile, pixel format), it re-encodes only the few seconds around each junction and stream-copies the rest. That feature is the direct result of someone on the launch thread calling out the original "why re-encode the whole thing, that degrades over time" behavior; the author shipped smart render in v0.2.0. Same two 5-minute clips dropped from 82s to 37s with 97% of the footage untouched.

The inputs that matter

  • segments - the autogrow list, minimum two. Connect clips in playback order, segment0 first; a new empty slot appears each time you plug one in.
  • join_mode (labeled "transition") - defaults to cut. One transition applies at every junction, so pick the style you want everywhere.
  • dissolve_duration ("transition seconds") - 0.5s default, 0.1–10s. Only matters for non-cut modes.
  • filename_prefix - the output name, default sequence.

The output is a video (VIDEO). Because it's VIDEO, the sequencer chains: run a dissolve A→B, feed that result plus clip C into a second sequencer set to cut, and you've mixed transitions in one workflow.

Install

Needs ComfyUI 0.24+ and both FFmpeg and FFprobe on PATH. No pip install - it uses only packages ComfyUI already bundles, so setup is just a clone and a restart:

cd ComfyUI/custom_nodes
git clone https://github.com/Force01/ComfyUI-Sequencer.git
# restart ComfyUI
ffmpeg -version   # ffprobe must also resolve

Or use ComfyUI Manager and search for "ComfyUI-Sequencer", or comfy node install ComfyUI-Sequencer. One wrinkle: this pack is written against ComfyUI's newer V3 node API (comfy_entrypoint, no NODE_CLASS_MAPPINGS). That's not a bug - it's the modern authoring style - but it does mean older ComfyUI builds won't register the nodes at all, so keep 0.24+ honest.

Where people get burned

  • cut isn't lossless when clips differ. If sizes, frame rates, or codecs don't match, the concat demuxer would corrupt the output, so the node silently conforms and re-encodes instead. Not a bug - that's the price of safety.
  • Missing FFprobe breaks fade modes. Cut needs only ffmpeg; transitions probe the clips first and error out if ffprobe isn't on PATH. That's the most common "worked yesterday" failure.
  • Transitions shorten the output by the overlap amount. Sum of your clips minus the transition windows is what you get.
  • Smart render needs a keyframe shortly after the junction. Short generated clips often have a single keyframe, so they fall back to a full re-encode - at clip length that costs about a second anyway.
  • There's a subprocess timeout (300s for cut, 600s for transitions) as a safety ceiling. Fine for normal runs.

Audio gets the timeline treatment too: all clips with audio crossfades it to AAC, mixed presence pads silent clips with silence, no audio at all gives you a video-only file. It's not a substitute for a real NLE, but it's the only thing that does timeline-style joins inside the graph with zero VRAM - and for continuation workflows, that's the one you reach for.

Categoryvideo/edit

Inputs (4)

NameTypeDefaultDescription
segmentsCOMFY_AUTOGROW_V3Clips to stitch, played in slot order (segment0 first). A new empty slot appears whenever you connect a clip.
join_modeCOMBOcutTransition used at every junction between clips. cut: hard cuts, instant and lossless (no re-encode). Other transitions re-encode to H.264 — only around each junction when clips are compatible.
dissolve_durationFLOAT0.500.1–10How long each transition lasts, in seconds (ignored for cut).
filename_prefixSTRINGsequenceOutput filename prefix under ComfyUI output/.

Outputs (1)

NameTypeDescription
videoVIDEO