Nodes/ComfyUI-BmzUtils/[BMZ] VideoSettings
ComfyUI Node

[BMZ] VideoSettings

The 'which resolution is actually legal for video' node

By bmalhz·Created 7 months ago·Updated 6 months ago· 0
[BMZ] VideoSettings
    • cleaned_project_name
    • save
    • width
    • height
    resolution
    custom_resolution
    project_namemy_project
    savetrue

    Every video workflow has the same awkward moment: you're staring at a "width" and "height" box and you have no idea which resolution your model actually wants. Wan and its cousins are picky - they're trained on specific native sizes, and feeding them 1920x1080 because it's a "normal" resolution is how you get washed-out, artifacty garbage. BmzVideoSettings exists to make that decision a dropdown instead of a guess. It's a settings node, not a generator: it outputs the width, height, a sanitized project name, and a save flag, and everything else in your workflow reads from it.

    How it works

    The resolution input is an enum of six presets - and they're not random. They're the native Wan-style video resolutions:

    • 704x1280 (901,120 px, 1.82:1) and 1280x704 - the high-res pair
    • 480x864 (414,720 px, 1.8:1) and 864x480 - the mid pair
    • 320x576 (184,320 px, 1.8:1) and 576x320 - the low-VRAM pair

    These are the pixel counts Wan 2.x and the LTX family actually train on. Pick one and the node splits it into clean width and height INT outputs you wire into your latent-size or video-model node - no arithmetic, no chance of an off-by-something mistake.

    If none of the presets fits, custom_resolution overrides them. It's a plain string, and it must look like "832x480" - the parser matches the first \d+x\d+ pattern and reads it as width x height. Anything else raises an exception, loudly. So if you're going off-preset, keep the format exact: 640x960, not "640 by 960" or "640 960" - the parser wants the digits, an x, and more digits, in that order at the start of the string.

    The other two inputs are quieter. project_name (default my_project) gets sanitized into cleaned_project_name: it strips anything after the first dot (so my_run_042.png becomes my_run_042), then replaces every non-alphanumeric character with _. That's exactly what you want for a SaveVideo filename prefix, where . and spaces cause nothing but pain. save is a BOOLEAN that passes straight through - a single switch to gate whether the video actually gets written, useful when you're iterating and don't want 400 clips piling up on disk.

    What wires where

    • cleaned_project_name → filename prefix on your video saver
    • width, height → the size input on your video latent / sampler
    • save → gate an output node or feed a conditional

    Installing it

    Part of the four-node ComfyUI-BmzUtils pack. ComfyUI Manager → search "ComfyUI-BmzUtils" → install → restart. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/bmalhz/ComfyUI-BmzUtils
    

    No model downloads, no heavy dependencies - the pack only needs jinja2, and this node needs nothing beyond core.

    The honest caveats

    It's a tiny utility with one job and it does it fine, but don't expect more. The six presets are fixed - if your model's sweet spot isn't one of them (LTX2 and friends have their own favorites), you'll be typing into custom_resolution anyway, and at that point you're only losing a dropdown's worth of convenience. And since this is a brand-new, zero-star pack, the resolution list is the author's opinion, not gospel - cross-check it against your model's documentation the first time. For the very common case of "I just need the right Wan sizes and a clean filename," it does exactly that with zero moving parts.

    CategoryBMZ

    Inputs (4)

    NameTypeDefaultDescription
    resolutionCOMBO6 options: 704x1280 (1.82, 901120), 480x864 (1.8, 414720), 320x576 (1.8, 184320), 1280x704 (1.82, 901120), 864x480 (1.8, 414720), 576x320 (1.8, 184320)
    custom_resolutionSTRING
    project_nameSTRINGmy_project
    saveBOOLEANtrue

    Outputs (4)

    NameTypeDescription
    cleaned_project_nameSTRING
    saveBOOLEAN
    widthINT
    heightINT