Video Clip
The trim node with frame-accurate keyboard nudging
- video
- video
Trimming is the most boring, most essential operation in video work, and it's the one you'll do a hundred times before you do anything fancy. Video Clip is the ComfyTV stage that cuts a clip down to a start and end time - the node form of "keep from here to here." The reason it deserves its own article instead of being a footnote: it's where the pack's timeline widgets shine.
It's a ComfyTV Video stage - wire a video in, set the range, hit Run, and the trimmed clip flows downstream as a snapshot.
The inputs
- start_s and end_s - the trim range in seconds (0.01 step, 0–3600).
end_sdefaults to 0, which the node reads as "to the end of the source," so setting just a start time trims from there to the finish. - video (optional) - the upstream clip. Required to run; the stage raises a clean error without it.
The project_id / parent_output_id / force_run_token inputs are internal frontend plumbing - ignore them.
How it works
The node hands the range to the pack's ffmpeg-based trim runner and emits a new clip. The interesting part is the widget on the node itself: a timeline with handles you drag, and the pack's documented keyboard shortcuts for precision. After clicking the track, ← / → nudge the active handle by exactly one frame, and Home / End jump to the first or last frame. That's the difference between "about two seconds in" and "starts exactly on frame 47" - no pixel-hunting, no zooming into the scrubber.
Install
ComfyTV ships ~190 stages in one pack; installing the pack gives you this node.
cd ComfyUI/custom_nodes
git clone https://github.com/jtydhr88/ComfyTV
Restart ComfyUI fully (not a browser refresh) and find it under ComfyTV → Video. ComfyUI Manager also finds it by searching "ComfyTV". No model downloads, no extra Python dependencies. On ComfyUI Desktop or macOS, the README warns the relative cd can hit the wrong instance - clone into the running one's absolute path from the startup log.
Troubleshooting
- "end_s must be > start_s" - you set the range backwards (or end_s equals start_s). Swap them.
- Trims to the end but I wanted it shorter.
end_sat 0 means "until the clip ends"; set an explicit end time to cut it short. - No output. Wire a video into
videofirst.
Nothing glamorous here - that's the point. It's the stage you'll hit before almost every other edit, and the frame-nudge shortcuts are worth remembering the first time you use it.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| force_run_token | INT | 00–2147483647 | Internal — bumped on Run to invalidate ComfyUI's input cache. |
| project_id | STRING | Internal — populated by the projectStore on the frontend. | |
| parent_output_id | INT | 00–2147483647 | Internal — lineage parent set by spawn handlers on the frontend. |
| start_s | FLOAT | 0.000–3600 | — |
| end_s | FLOAT | 0.000–3600 | — |
| videoopt | COMFYTV_VIDEO | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | COMFYTV_VIDEO | — |