48 lines
2.2 KiB
Markdown
48 lines
2.2 KiB
Markdown
# Load Video
|
|
|
|
Loads a video from ComfyUI's input folder as an `IMAGE` frame batch plus its
|
|
audio. One responsive player shows the source and previews the selected trim.
|
|
Drag the high-contrast **IN** and **OUT** handles below it, drag the selected
|
|
range to move the whole window, or type exact seconds into the two fields.
|
|
The playhead follows each edit, so the frame at either boundary is visible
|
|
while trimming.
|
|
|
|
Playback is constrained to the selected window. **LOOP** repeats it; turn loop
|
|
off and playback pauses at OUT. The reload button refreshes the source without
|
|
creating a second preview. Tall videos use `object-fit: contain`, and the player
|
|
height follows the node width with a compact lower bound.
|
|
|
|
## Controls
|
|
|
|
- **video**: A file in the input folder; the upload button adds new ones.
|
|
- **IN / start_seconds**: Skip everything before this time.
|
|
- **OUT / end_seconds**: Stop at this time; `0` means the source end until a
|
|
handle is moved.
|
|
- **LOOP**: Repeat the selected window during preview.
|
|
- **↻**: Reload the selected source preview.
|
|
- **custom_width / custom_height**: `0` keeps the source size. Set one side
|
|
only and the other follows the aspect ratio, rounded to an even number.
|
|
|
|
## Outputs
|
|
|
|
- **frames**: Trimmed BHWC frame batch.
|
|
- **audio**: The same trim window; a silent track when the file has no audio.
|
|
- **frame_count / fps / width / height / duration**: Ready-made wiring for
|
|
video combine nodes and info displays. `duration` covers the returned
|
|
frames, not the whole file.
|
|
- **video**: A lazy core `VIDEO` handle for the same source trim at its native
|
|
size. Connect it directly to core video-aware nodes without materializing a
|
|
second frame batch. Older ComfyUI cores without the `VIDEO` API return no
|
|
handle; the original seven outputs remain unchanged.
|
|
|
|
The trim window is decoded directly — untrimmed parts of the video are never
|
|
loaded into the `frames` output, while the `video` output stays lazy until a
|
|
downstream consumer requests it.
|
|
|
|
## While it runs
|
|
|
|
Decoding happens off ComfyUI's execution thread, so the server keeps answering
|
|
while a long trim loads. The node fills its progress bar frame by frame
|
|
whenever the source declares a frame count, and **Cancel** stops the decode
|
|
within a frame instead of at the end of the file.
|