Skip to main content
Video Clip

Video Clip · screenshot coming soon

What this node does

Video Clip cuts [start_s, end_s] from a full clip and drops the rest. Use it to pull the best part from a long generation, align lip-sync segments, or shorten before Crop / Resize. If end_s is 0 or ≤ start_s, duration extends to the source end. No GPU — PyAV streams read/write; output lands in ComfyUI output as a /view? URL.

When to use it

  • Extract a usable segment from long T2V / I2V output
  • Normalize clip length before timeline concat
  • Trim then Demux or Extract Frame

How ComfyTV designed this

  • Stage + ▶ Run: re-trims upstream snapshot only.
  • Snapshot: downstream reads Clip output; change times → Run again.
  • PyAV: trim_video in runners/media.py.

Types (COMFYTV_* vs native ComfyUI)

See bridges.md.

Parameters

video (input)

Source COMFYTV_VIDEO. Required.

start_s

Clip start in seconds, default 0.

end_s

Clip end in seconds, default 5. 0 or empty → source duration. Must be > start_s.

Outputs

Step by step

  1. Run upstream Video Stage or Load Video.
  2. Add Video Clip, wire video.
  3. Set start_s / end_s.
  4. ▶ Run, check preview duration.
  5. Wire Video Crop or Demux.
This page covers one node only. For end-to-end workflows, multi-stage pipelines, type conversion, and design rationale, see the ComfyTV user guides on GitHub:

Repository and workflows

FAQ

Q: end_s beyond duration?
A: Clamped; must still be > start_s.
Q: Frame rate changed?
A: No — PyAV preserves source rate.
Q: mesh2motion VIDEO?
A: → ComfyTV Video first (Run snapshot), then Clip.
  • Video Crop / Video Resize
  • Demux · Audio Track / Silent Video
  • → ComfyTV Video