Nodes/video_node_yf/Video Config (Animate)
ComfyUI Node

Video Config (Animate)

Set your video size once, feed it everywhere

By yasirfaizahmed·Created 7 months ago·Updated 7 months ago· 0
Video Config (Animate)
    • width
    • height
    • frame_count
    • fps
    • frame_load_cap
    • skip_first_frames
    ◄preset1280x720►
    ◄custom_width0►
    ◄custom_height0►
    ◄invertfalse►
    ◄custom_frames0►
    ◄fps30►
    ◄frame_load_cap0►
    ◄skip_first_frames0►

    Video Config (Animate) is the most boring node you'll ever use, and that's exactly its job. It doesn't touch a pixel, call an API, or load a model. Pick a resolution preset, maybe flip a couple of numbers, and it hands you six clean wires - width, height, frame count, fps, and two passthrough values - to plug into whatever video model you're driving.

    Here's why it exists. A Wan 2.2 or LTX workflow needs the same handful of numbers in four or five places: the empty-latent node, the frame counter, the interpolator, the saver. Type 1280x720 into each box and the first time you change your mind you get to hunt for the one you missed. That's the classic "value node" pattern the ComfyUI plumbing layer exists to fix - one source, many consumers, one knob to turn (this is the same idea as the core Primitive nodes, just aimed at video config). For a video graph, which is already the spaghettiest thing you can build in ComfyUI, that's not a luxury.

    How it actually works

    The code is one small file (video_config_animate.py) and it's embarrassingly simple: it regex-parses the preset string into width and height, emits them as INTs, and passes the rest of your values straight through. The inputs that matter:

    • preset - a dropdown of five 16:9 resolutions: 640x352, 960x544, 1280x720, 1536x864, 1920x1080. The default 1280x720 happens to line up with Wan's 720p tier, which is a reasonable place to start.
    • custom_width / custom_height - set to 0 and the preset wins; type in anything above 0 and it overrides just that axis. So yes, you can mix: preset height with a custom width. That catches people who expect both-or-nothing.
    • invert - swaps width and height after the custom overrides. Instant portrait mode.
    • custom_frames - the big one to know about. Leave it at 0 and the node quietly uses a hardcoded 150 frames. That number is not a multiple of 8 or 16, and several video models (AnimateDiff especially) behave better with frame counts that divide cleanly. Set it explicitly to something like 121 or 161 if your model has a preference.
    • fps - default 30, emitted as a FLOAT.

    The other two inputs, frame_load_cap and skip_first_frames, are pass-throughs: this node does nothing with them, it just carries them to the output sockets so you have a single place to set the "load at most N frames, skip the first M" numbers your downstream video loader (the kind Wan's VACE workflows use) wants.

    Outputs

    Six sockets: width, height, frame_count, fps (FLOAT), frame_load_cap, skip_first_frames. Wire them into any node with matching INT/FLOAT inputs - the empty-latent video node, a frame interpolator, a video loader, whatever your workflow hangs off.

    Installing it

    No dependencies, no model downloads, no pip install - the pack is a single Python file plus a manifest. Either route works:

    cd ComfyUI/custom_nodes && git clone https://github.com/yasirfaizahmed/video_node_yf
    # then restart ComfyUI
    

    Or use ComfyUI Manager: install from the Manager's "Install Custom Nodes" search for video_node_yf. There's nothing else to it. Fair warning: the README is empty, the pack has no community footprint, and comfy.icu shows zero impressions - this is one author's personal helper that escaped into the wild. It does one thing and does it trivially, so that's fine, but set your expectations accordingly.

    Where people trip

    The 150-frame default is the real trap; set custom_frames yourself. And remember the 0-means-unset convention on the custom fields - leave one at zero and you'll get a mixed resolution that might look like a bug when it isn't. For everything else, the worst failure mode is a wire you forgot to reconnect. Not a bad trade for the pack's entire maintenance burden.

    Categoryutils

    Inputs (8)

    NameTypeDefaultDescription
    presetCOMBO1280x7205 options: 640x352, 960x544, 1280x720, 1536x864, 1920x1080
    custom_widthINT00–8192—
    custom_heightINT00–8192—
    invertBOOLEANfalse—
    custom_framesINT00–100000—
    fpsINT301–240—
    frame_load_capINT00–100000—
    skip_first_framesINT00–100000—

    Outputs (6)

    NameTypeDescription
    widthINT—
    heightINT—
    frame_countINT—
    fpsFLOAT—
    frame_load_capINT—
    skip_first_framesINT—