Video Loader Crawl (CRT)
Load a video from a folder by seed — frames and audio in one shot
- image_output
- file_name
- file_path
- framerate
- framerate_int
- audio
Video workflows have a footgun built in: loading a clip is only half the job, because you almost always also need its framerate and often its audio. Video Loader Crawl (CRT) does all three from one folder-scanning node. It's the video sibling of the Image Loader Crawl - point it at a directory, it indexes the clips, and seed decides which one loads.
The "Crawl" family in CRT-Nodes is built for batch and production runs, and this node is where the family earns its keep: one graph, a folder of videos, and a seed counter to step through them.
How it works
On first use it scans the folder for video files and caches the list (keyed on the folder's modification time, like the image crawler). Selection is seed % file_count. Decoding is OpenCV (cv2.VideoCapture) frame by frame. Then there are two nice touches:
- Framerate control.
framerateset to-1keeps the clip's original fps. Set it lower and the node skips frames to hit your target (cheap slow-motion / quick preview); set it higher than the source and it just keeps the source rate rather than hallucinating frames. - Audio extraction. It shells out to
ffmpeg, pulls the first audio stream, and hands it back as a real ComfyUIAUDIOtensor - so you can run it through this pack's EQ, compressor, or Mono-to-Stereo nodes without a separate audio loader.
Inputs and outputs that matter
- folder_path - absolute path. Note the default is a Windows-style
C:\videos; change it or you'll get a blank output. - seed - the clip index.
- frames_limit - max frames to decode,
-1for the whole video. This is your VRAM valve, see below. - framerate -
-1to keep original, otherwise target fps. - crawl_subfolders / remove_extension - same semantics as the image crawler.
Outputs are the full kit: image_output (frames as an IMAGE batch), file_name, file_path, framerate (FLOAT) and framerate_int (for sampler math and video-save nodes that want an int), and audio.
The gotcha that actually bites: VRAM
Decoded frames are one big IMAGE tensor. A 1080p clip at 30fps is ~0.5MB per frame before your model even runs - a 300-frame clip is 150MB+ of tensors before a single denoise step. Set frames_limit deliberately. If you're hitting out-of-memory errors on a long clip, this node is usually the reason. Short preview runs at a low framerate (say 8fps) are a great way to test a workflow before committing to a full render.
Other things to know:
- No readable audio stream? You get a silence tensor and a console warning, not a crash. If you're wondering why your audio processing is silent, that's the why.
- Like the image crawler, a bad path or empty folder returns a blank output rather than erroring - check
file_nameif renders look empty. - It needs
ffmpegreachable on PATH for audio - the node shells out to a bareffmpegcommand. The pack'srequirements.txtincludesimageio-ffmpeg(which bundles a binary for other nodes in the suite), but this node expects the command on PATH; if audio comes back as silence, that's the first thing to check.
Install: ComfyUI Manager → search CRT-Nodes → install, or clone the repo into custom_nodes and restart. Heavy dependency list (opencv, ultralytics, librosa, and more) - expect a long first install, and the pack will skip optional nodes it can't satisfy rather than breaking.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| folder_path | STRING | C:\videos | Path to video files |
| seed | INT | 00–18446744073709550000 | — |
| crawl_subfolders | BOOLEAN | false | — |
| remove_extension | BOOLEAN | false | Remove file extension from output name |
| frames_limit | INT | -1-1–10000 | Maximum number of output frames. Use -1 to load the complete video. |
| framerate | FLOAT | -1.0-1–240 | -1 keeps the source rate. Lower values retain evenly spaced frames; values above the source rate keep the source rate. |
| even_batch_picker | INT | -1-1–10000 | After Frames limit, retain this many frames evenly across that range using the same selection as Even Batch Picker (CRT). -1 or 0 keeps the complete limited range. |
| megapixels | FLOAT | 1.000–16 | After even-frame selection, resize only the retained frames to this target area with Lanczos while preserving aspect ratio. Use 0 to keep the source resolution. |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| image_output | IMAGE | — |
| file_name | STRING | — |
| file_path | STRING | — |
| framerate | FLOAT | — |
| framerate_int | INT | — |
| audio | AUDIO | — |