Nodes/ControlFoley Official/ControlFoley Video Loader
ComfyUI Node

ControlFoley Video Loader

Get your clip into the graph

By YJX-Research·Created 2 months ago·Updated 2 months ago· 6
ControlFoley Video Loader
    • controlfoley_video
    • video_path
    • video_output
    video_pathexamples/generated/01_v2a_basic/v2a_video.mp4
    duration8.0

    ControlFoley Video Loader is the pack's front door for video. It takes a path to a clip, resolves it (relative to ComfyUI's input folder, or as an absolute path), shows you an inline preview, and hands the video to the rest of the graph in three flavors: the pack's own controlfoley_video type, a plain resolved path string, and a native ComfyUI VIDEO object you can chain into core video nodes.

    Why it exists

    The generate nodes can technically take video from three places - this loader's CONTROLFOLEY_VIDEO, a native VIDEO tensor from any ComfyUI video source, or an IMAGE batch. The loader's job is to make the first option painless: it reads the file once, measures its actual duration, and computes the duration that generation will actually use, which matters because ControlFoley caps everything at 30 seconds and lets the input video set the length.

    Inputs and outputs

    Inputs are refreshingly few:

    • video_path - defaults to the bundled demo clip (examples/generated/01_v2a_basic/v2a_video.mp4). You can drop your own file into ComfyUI/input and give its path, or use an absolute path. If the file doesn't exist you get a clean FileNotFoundError instead of a cryptic downstream crash.
    • duration - an upper limit for generation, default 8s, min 0.7s, max 30s. The tooltip says it plainly: the actual output follows the input video's length, up to 30s. This is a ceiling, not a forced length - a 5-second clip stays 5 seconds even if you set 20.

    Three outputs: controlfoley_video (CONTROLFOLEY_VIDEO - the one you wire into ControlFoley Generate or the muxer), video_path (STRING, the resolved absolute path, handy if a later node needs the file on disk), and video_output (native VIDEO, for ComfyUI's own video nodes - VHS-style loaders, preview nodes, that ecosystem).

    Small print

    The node is marked as an output node, so it shows its inline preview in the UI. It's also IS_CHANGED-aware: it re-runs when the file's mtime or size changes, so editing a clip and hitting run doesn't get served a stale cached read. The duration passed downstream gets clamped against the real media duration, so you don't have to guess whether your 12-second clip will overrun the cap.

    One practical gotcha from the workflow templates: the bundled demo paths resolve against the custom-node folder, which is fine for the demos but not how you'll want to work. Copy your real input into ComfyUI/input/assets (or anywhere under input) and point video_path there. Install the pack through ComfyUI Manager ("ControlFoley Official") or git clone into custom_nodes + pip install -r requirements.txt - install only genuinely-missing packages one at a time. And keep in mind the whole pipeline is CUDA-only; this loader itself is harmless on any machine, but the generation it feeds isn't.

    CategoryControlFoley

    Inputs (2)

    NameTypeDefaultDescription
    video_pathSTRINGexamples/generated/01_v2a_basic/v2a_video.mp4
    durationFLOAT8.00.7–30Upper limit for video generation. The actual output follows the input video length up to 30s.

    Outputs (3)

    NameTypeDescription
    controlfoley_videoCONTROLFOLEY_VIDEO
    video_pathSTRING
    video_outputVIDEO