Reference Video (old id)
Hand a video model a clip from any drive, without copying it into input/
- video
LibraryVideo is the pre-0.1.2 name of this pack's video loader - the node menu calls it Reference Video (old id). Nothing about it is deprecated except the name: the class is class LibraryVideo(ReferenceVideo): DEPRECATED = True, so it's hidden from the search box and otherwise identical. Workflows that used it keep working, which is the entire point of the rename being handled this way.
Why you'd reach for it
Reference-to-video is where a lot of 2026 work happens: you hand a model a clip and ask for it again in another style, another camera move, another length. On the node side that means the partner nodes that accept video - Seedance 2.5 Reference to Video takes up to 10 videos, MiniMax H3 three, HeyGen Video 1.0 three, Gemini Omni three - all want a VIDEO on a numbered input. Meanwhile ComfyUI's core Load Video wants your file inside ComfyUI/input.
This node takes an absolute path instead. Your clips stay where they are: the footage folder on the NAS, the exports directory from Resolve, the drive that actually has space. Nothing is copied, nothing is duplicated, and moving a workflow to another machine doesn't mean hunting down six copies of the same clip in input.
The second job is tagging. Whatever you put in name becomes a @tag, so inside a Reference Prompt you can write "@Shot_A but at dusk" and the file gets wired to the model's next free video input at queue time, no wires drawn. Reference Prompt is the pack's real centrepiece; this node is how a hand-picked file joins in.
Inputs and outputs
path- "Full path to a video file anywhere on disk." Absolute path to the media file. The node has aBrowse…button that opens a native dialog and fills it in, which is the sane way to do this rather than typing drive letters.name- "Tag used as @name in the prompt. Empty = file name without extension." Leave it blank andshot_final.mp4becomes@shot_final. Note that the file and tag names are sanitised to letters, digits,_and-, so odd characters collapse rather than break the tag.
One output: video, type VIDEO. Wire it into a video model's video input, or into a Reference Prompt's video_1 to tag it for the current run. Under the hood it's a one-liner over ComfyUI's own API - InputImpl.VideoFromFile(path) from comfy_api.latest - so the object you get behaves like any other VIDEO in the graph; whatever decodes frames does it downstream.
The usual caveats about this pack apply and they're all safety-shaped. Paths must be absolute. The file must live in a folder the pack has already used - one you picked a file in, one holding library files, or ComfyUI's own input/output. Point at a fresh folder and you get a yellow note on the node instead of a run that silently reads something random. This is exactly the guard you want on a node that can feed a metered API: the alternative is a shared workflow that names any file on your disk and sends it to a third party.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/PixelMonkey77/comfyui-reference-library
Restart ComfyUI. ComfyUI Manager's Install via Git URL with that same URL works too. There's no requirements.txt and no model download: pyproject.toml declares an empty dependency list because the pack leans entirely on libraries ComfyUI already ships (torch, numpy, Pillow, PyAV, aiohttp).
You must be on Nodes 2.0. Settings → Comfy → Nodes 2.0 → Modern Node Design. The pack is built for that frontend and the classic canvas is explicitly unsupported - worth knowing before you install, since Nodes 2.0 is still the thing splitting the pack ecosystem in 2026.
Common issues
"Use a full path (for example D:\Pictures\cat.png)" - you gave a relative path. The node won't resolve it against ComfyUI's working directory, on purpose.
Adding library entries for video fails while images work. The library's file probe opens the container with PyAV to read duration and dimensions. PyAV ships with ComfyUI, but a stripped-down or hand-built install can be missing it, and that's where I'd look first.
Editing the clip in place doesn't change the output. It should: the loader's IS_CHANGED fingerprints path, mtime and size, so re-saving the file re-runs it. If you're seeing the old clip, check you edited the file the node actually points at - a common one when two clips share a name.
For anything new, add Reference Video. Same node, current id.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| path | STRING | Full path to a video file anywhere on disk. | |
| name | STRING | Tag used as @name in the prompt. Empty = file name without extension. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |