Light-Tool: Load Video
Pull a video from a URL into your ComfyUI input folder
- video_name
- video_path
- video_url
Video workflows in ComfyUI need frames, and frames need to come from somewhere. Light-Tool: LoadVideo is the pack's downloader: give it a video URL, it fetches the file into your ComfyUI input directory and hands back the local path plus a preview URL you can feed into the pack's PreviewVideo node. It's a fetch node, not a decode node - it doesn't split frames for you, it just gets the video onto disk where the rest of your graph can reach it.
Inputs: video_url (required), server (an address for building a viewable URL), and save_dir (a subfolder inside ComfyUI's input directory). Outputs: video_name (the generated filename), video_path (the full local path), and video_url (a URL suitable for previewing, if you gave a server).
How it works. The video is downloaded over HTTPS with httpx in streaming chunks and saved under a fresh UUID-based filename in the input directory (in save_dir if provided). The returned video_path is an absolute path on your machine, so it's the one you'd hand to a frame-extraction node. The video_url output is synthesized from the server input: it builds an /api/view?filename=...&type=input&subfolder=... URL, which is ComfyUI's own endpoint for serving files - leave server empty and that output is just an empty-ish string, so it's the local path you actually want for processing.
The gotchas, and they're real ones.
- It re-downloads every run. There's no caching and no "reuse if exists" logic. Queue the workflow twice and the video is fetched twice, new filename each time. For a multi-GB clip that's wasted bandwidth and disk. If your source is stable, download it once and use the pack's
LoadImage-style local loader path instead. - The extension is cosmetic. Everything is saved with a
.mp4name, regardless of what the source actually is. If the URL serves a.webmor.mov, the file on disk is still named.mp4- which mostly works until a downstream tool sniffs the container and objects. Check your actual source format. - It's synchronous. The whole download blocks the queue. Big files mean a frozen progress bar until it's done.
When you'd reach for it. Grabbing a reference clip from a URL at the start of a video-to-video or frame-interpolation workflow, pulling a hosted sample into local processing, or any time you want the video on disk without a manual browser download. It pairs naturally with PreviewVideo, which plays back the returned URL right in the node.
Installing. Standard pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/ihmily/ComfyUI-Light-Tool.git
pip install -r requirements.txt
# restart ComfyUI
Or ComfyUI Manager → search ComfyUI-Light-Tool → Install. No models; the workhorse is httpx.
Verdict: fine as a convenience downloader for quick reference clips, but the no-cache behavior makes it a poor fit for repeated runs on large files. One-and-done fetching is its happy place.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| video_url | STRING | — | |
| server | STRING | — | |
| save_dir | STRING | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video_name | STRING | — |
| video_path | STRING | — |
| video_url | STRING | — |