Frame Clipper πΉ
The trim that costs almost nothing
- source_video
- clipped_video
FrameClipper is the most boring node in this pack, and that's the compliment. It cuts a video down to a specific number of frames, starting at a frame you choose, and does nothing else - no resizing, no blending, no cleverness. Just a slice. In a pack of flashy splice-and-blend tools, it's the dependable utility you reach for when you need a shorter clip and you don't want any side effects.
Why you'll actually use it
Because video nodes get expensive fast. A long clip costs VRAM, memory, and time for every downstream step - every frame-extend, every repeat, every re-render. Clipping first, then doing the heavy work on the shortened result, is the difference between a smooth run and a swap-to-disk slog. The README's own recommended order is Clip β Repeat β Extend, and it's right. FrameClipper is also the easiest way to feed a fixed-length segment into something that wants one - an interpolation pass, an AnimateDiff-style workflow, or just to drop an unwanted intro/outro from the front of a video.
How it works
It takes source_video (an IMAGE tensor, [B, H, W, C] where the batch dim is your frame sequence), frame_count - how many frames to keep - and optional start_frame (0-based, default 0 for "from the beginning"). It slices source_video[start_frame : start_frame + frame_count], clamps the indices so it never crashes on a too-short video, and hands back the trimmed stack as clipped_video.
That's genuinely the whole mechanism. It's a pure tensor slice, which means there's no resampling, no color math, no interpolation to argue with - the frames you get are the frames you put in, just fewer of them. start_frame is clamped to the video length and the output is capped at the source's actual end, so it degrades gracefully instead of erroring on a bad value.
The inputs that matter
frame_count- the number of frames to keep (1β10000).start_frame- where to start, default 0.
That's it. There are no optional resize parameters, which is the point: it preserves your original resolution and quality exactly. Output clipped_video feeds straight into SaveImage/VideoCombine or the rest of this pack's nodes.
Installing
ComfyUI Manager: search "ComfyUI-FrameUtilitys" and install. Or the manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/lum3on/ComfyUI-FrameUtilitys
Restart ComfyUI. No models, no extra pip packages - the pack runs entirely on what ComfyUI already bundles.
Troubleshooting
- "No frames to clip" -
frame_countis larger than the source, orstart_frameis past the end. Both are clamped rather than fatal, so you'll usually just get fewer frames than you asked for; check the console log, which reports the before/after lengths. - Output is shorter than expected - the source itself was shorter than your
frame_count. Count your frames first, or clip from a longer segment.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| source_video | IMAGE | Source video sequence to clip (IMAGE tensor format) | |
| frame_count | INT | 301β10000 | Number of frames to keep from the start of the video |
| start_frameopt | INT | 00β10000 | Starting frame index (0 = from beginning) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| clipped_video | IMAGE | β |