ib video slicer
It's the same node as IBVideoSlicer. Seriously.
- image
- image_width
- image_height
- total_frames_count
- slice_index
If you landed here, you probably loaded a workflow that asked for a node called VideoSliceFrame and ComfyUI flagged it missing. Good news: you don't need a different tool. This is an alias - the pack registers VideoSliceFrame as a second name for the exact same class as IBVideoSlicer. In the source it's literally one line: VideoSliceFrame = IBVideoSlicer.
One node, two names
Both appear in the node list under the display name "ib video slicer", and both map to identical inputs and outputs: a video file in, one IMAGE frame out, plus image_width, image_height, total_frames_count, and slice_index. Everything that's true of the main node is true of this one, because there's only one class behind them - the slice list built from start_frame/end_frame/skip_every_n_frames, the increment/decrement/random frame_mode, the ±1…±3 lag_on nudge, the loop_on / loop_every_n_frames wrapping, the .mp4/.mov-only limit, and the never-cached execution that makes incremental stepping work.
Why does it exist at all? Almost certainly legacy. Older graphs (or earlier names in this pack's own development) referenced VideoSliceFrame, and registering both names means those workflows keep loading without a rename. If a shared workflow asks for it, installing this one pack satisfies it. If you're building a new graph, use IBVideoSlicer - not because it behaves differently, but because that's the name the pack's docs and changelog talk about. Either way you get identical behavior.
A genuinely confusing name collision
While you're here, watch out for something adjacent: ComfyUI now ships a core node also called VideoSlice (people chain it with GetVideoComponents to pull frames out of a video). Easy to mix up when you're searching Manager or reading someone's workflow. This pack is the custom one - its nodes are IBVideoSlicer and VideoSliceFrame, and the "ib video slicer" display name is your tell that you've got the right install.
Installing it
Same steps as the parent node. ComfyUI Manager → search "ib video slicer", or:
cd /path/to/ComfyUI/custom_nodes
git clone https://github.com/youngfulu/ComfyUI-VideoSlice.git
cd ComfyUI-VideoSlice
pip install -r requirements.txt
That's the whole dependency story - the only requirement is opencv-python>=4.8.0. Then a full restart of ComfyUI; it won't pick up a freshly cloned custom node on a refresh. Videos go in ComfyUI/input/ or come in via the "choose file to upload" button; only .mp4 and .mov are accepted.
If something's missing
- "Video file not found" - the video isn't under
input/, or it was moved after the dropdown was built. Re-upload or refresh the file list. - OpenCV decode errors - corrupt file or a codec your build can't read.
- Node still missing after install - do the full restart; a frontend refresh doesn't load new custom nodes.
That's the whole story. There's no hidden divergence, no newer behavior hiding behind the second name - same node, second name, slightly confusing. Install the pack once and both names work.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| video | COMBO | 1 options: | |
| frame_mode | COMBO | increment | 3 options: increment, decrement, random |
| lag_on | BOOLEAN | false | — |
| loop_on | BOOLEAN | false | — |
| loop_every_n_frames | INT | 00–2147483647 | If loop on: 0 = wrap full slice list; N>0 = wrap first N indices only. |
| start_frame | INT | 00–2147483647 | — |
| end_frame | INT | -1-1–2147483647 | — |
| skip_every_n_frames | INT | 11–10000 | 1 = every frame in range; 2 = every second, etc. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| image_width | INT | — |
| image_height | INT | — |
| total_frames_count | INT | — |
| slice_index | INT | — |