Nodes/was-node-suite-comfyui/Create Video from Path
ComfyUI Node Runs on cloud

Create Video from Path

Turn a folder of frames into a video (Windows, experimental)

By WASasquatch·Created 3 years ago·Updated a day ago· 1,839
Create Video from Path
    • filepath_text
    • filename_text
    transition_frames30
    image_delay_sec2.50
    fps30
    max_size512
    input_root
    input_folder
    output_root
    output_folder
    filenamecomfy_video
    codec

    Straightforward job, real caveats: Create Video from Path takes a folder of already-rendered image frames and stitches them into a video file. Useful if you've generated a frame sequence some other way - batch renders, a Load Batch Images loop, frames saved out of an animation pipeline - and just need them encoded, without wiring up a full video-generation graph to do it.

    The README is upfront about the state of this one: it's listed under "Video Nodes" alongside its sibling Write to Video, both flagged as experimental, added relatively late in the pack's life. That framing matters more here than for most WAS nodes, because the author explicitly limited support.

    How it works

    You point it at a directory of image files and it reads them in and encodes them into a video, output as a video file rather than a IMAGE batch. Under the hood this leans on FFMPEG to do the actual encoding - WAS doesn't reimplement a codec, it shells out to FFMPEG binaries you have installed and configured.

    The part that actually catches people out

    Two things, both straight from the README, not guesses:

    • Windows-only, by the author's own admission. "For now I am only supporting Windows installations for video nodes... I do not have access to Mac or a standalone linux distro." If you're on Linux or Mac, this node is a known unsupported path - it may or may not work, and if it breaks there's no upstream fix coming for your platform specifically.
    • It needs FFMPEG installed separately, with the path set in was_suite_config.json. It's not bundled. If you want H264 output specifically, the README also calls out needing the OpenH264 1.8.0 library dropped into your ComfyUI root folder - without it, H264 encoding won't work even with FFMPEG present.

    How to install it

    ComfyUI Manager: search "WAS Node Suite," install, restart. Manual:

    cd ComfyUI/custom_nodes
    git clone https://github.com/WASasquatch/was-node-suite-comfyui
    

    then, from inside that folder, install the Python requirements - path/to/ComfyUI/python_embeded/python.exe -s -m pip install -r requirements.txt on a portable build, pip install -r requirements.txt on system Python. Restart ComfyUI. For this node specifically, that's step one of two: you still need FFMPEG on the system separately and its path set in was_suite_config.json before video encoding will actually work.

    Common issues & troubleshooting

    If nothing happens, or you get an error mentioning a missing binary, start with FFMPEG - it's the single most likely cause, and it's not something the ComfyUI Manager install gets you automatically. Confirm the path in was_suite_config.json points at real FFMPEG binaries on your system.

    If you're specifically trying to output FFV1 (a lossless codec), the README has a known-quirk callout: FFV1 "will complain about invalid container" even though the resulting MKV file plays fine - the author never tracked down why, but confirms it's cosmetic, not a real failure. And if you're using Write to Video alongside this node, worth knowing the README's own warning that using anything but a lossless codec there will "start exponentially ruining the starting frames run to run" as it recompresses on each write - not this node's problem directly, but the two are usually used together.

    Beyond the video-specific issues, this node inherits the pack-wide risk: WAS Node Suite has had no active development since December 2023, so a platform-specific, experimental feature like this one is exactly the kind of thing least likely to get fixed if a future ComfyUI or FFMPEG update breaks it.

    CategoryWAS Suite/Animation

    Inputs (10)

    NameTypeDefaultDescription
    transition_framesINT300–120How many blended frames are drawn between one image and the next. 0 cuts straight from each image to the following one; anything above 60 is treated as 60.
    image_delay_secFLOAT2.500.01–60000How long each image is held, in seconds. The fraction is dropped, so 2.5 holds for 2 seconds and anything under 1 holds for no time at all, leaving only the fades.
    fpsINT301–60Frames per second of the finished video, which also decides how many frames a held image lasts: 2 seconds at 30 fps is 60 frames.
    max_sizeINT512128–1920Longest edge, in pixels, the frames are scaled to. 512 turns a 1024x768 image into 512x384. The first image decides the frame size and the others are fitted to it.
    input_rootCOMBOWhich folder the source images are in: ComfyUI's own 'input', 'output' or 'temp', or any folder added under paths.allow_read in config.yaml, listed by its own name. input_folder names the part below it.
    input_folderSTRINGFolder below the input root holding the frames, such as 'plates/shot_01'. Empty reads the root itself.
    output_rootCOMBOWhich folder the file lands in: ComfyUI's own 'output' or 'temp', or any folder added under paths.allow_write in config.yaml, listed by its own name. output_folder names the part below it.
    output_folderSTRINGFolder below the output root the file is written to, created if it is not there. Tokens expand, so '[time(%Y-%m-%d)]' files each day's under a dated folder.
    filenameSTRINGcomfy_videoName of the video, without an extension, the codec picks one, such as '.mp4' or '.mkv'. An existing file with the same name is overwritten, so put a token such as [time(%H-%M-%S)] in the name to keep every run.
    codecCOMBOHow the video is compressed, which also picks the file extension. A codec this machine cannot encode is reported before anything is written.

    Outputs (2)

    NameTypeDescription
    filepath_textSTRINGFull path of the video that was written, extension included. Empty when the input folder held no images.
    filename_textSTRINGThe filename widget as it was typed, with no folder and no extension, for feeding a caption or a log.