Nodes/ComfyUI/Crop Video (Temporal)
ComfyUI Node Runs on cloud

Crop Video (Temporal)

The Lazy Way to Cut a Video Down to Exactly N Frames

By Comfy-Org·Created 4 years ago·Updated about 5 hours ago· 128,055
Crop Video (Temporal)
  • video
  • video
start_frame0
length16

You want frames 40 through 55 of a video, and you don't want to re-encode it or blow up your RAM to get them. That's the entire job of Crop Video (Temporal): give it a start frame and a length, and it hands back exactly that contiguous range of frames.

It's part of a small family of dataset-prep nodes ComfyUI shipped in mid-2026 as the groundwork for its native training pipeline, sitting alongside Load Video (from Folder) and Sample Video Frame. The schema flags it experimental, which mostly means "the API might still move." The behavior itself is simple and stable.

What it actually does

You feed it a video, a start_frame, and a length (in frames). It keeps start_frame through start_frame + length, then passes the result along. That's the whole trick. The output is still a VIDEO, and the tooltip calls it "lazy" - that's the detail worth understanding, because it's the reason this node is good at what it does.

Lazy means no frames get decoded. A video input in modern ComfyUI is a reference to a file, not a fat tensor squatting in VRAM. Cropping just records a trim instruction - "start at frame X, play for N frames" - and the actual pixels are only decoded later, when a Save or sampling node actually needs them. No re-encode, no temp file, no VRAM spike. You can chain several of these through a graph and each one is nearly free.

The inputs that matter

Three inputs, and you'll touch two:

  • video - a VIDEO, typically from Load Video (from Folder) or the plain Load Video node.
  • start_frame (default 0) - the first frame you keep. Frame numbering starts at 0.
  • length (default 16) - how many frames to keep.

That default length of 16 isn't a coincidence. Sixteen frames is a common short-window size for video diffusion training, the kind of clip a LTX-2.3 or Wan video LoRA recipe actually trains on. If you're prepping a dataset, set it to whatever your trainer's model card wants and leave it alone.

Where the burns happen

The clamping is silent, and this is the one that gets people. Ask for start_frame 100 with length 16 on a video that only has 100 frames, and you don't get an error - you get the 10 frames that actually exist. The node nudges out-of-range values back into bounds instead of complaining. Usually that's fine, but in dataset prep it can quietly hand you a few clips shorter than the rest, and mixed-length datasets are the classic silent trainer failure. Count your frames before you set expectations.

Second, everything is measured in frames and converted to seconds using the video's frame rate. On constant-frame-rate footage that's exact. Variable-frame-rate videos can drift, which makes precise frame-accurate cropping genuinely annoying.

If you're trimming for casual viewing rather than training, Trim Video (Video Slice) does similar work in seconds and is friendlier for that. This node is for when you think in frames - and outside of dataset construction, almost nobody does.

It ships with ComfyUI core, nothing to install, no model files to download. Recent addition - landed with the dataset/trainer work in the summer of 2026. New and experimental, but it does one small job well.

Categoryvideo/transform

Inputs (3)

NameTypeDefaultDescription
videoVIDEOInput video.
start_frameINT00–99999Starting frame index.
lengthINT161–99999Number of frames to keep.

Outputs (1)

NameTypeDescription
videoVIDEOCropped video (lazy).