Nodes/ComfyUI-Visionatrix/Checkbox (VixUI)
ComfyUI Node

Checkbox (VixUI)

A boolean that becomes a real toggle in Visionatrix's simplified UI

By Visionatrix·Created 2 years ago·Updated about a year ago· 3
Checkbox (VixUI)
    • bool
    • int
    statefalse
    display_nameDisplay Name
    optionaltrue
    advancedtrue
    order99
    custom_id
    hiddenfalse

    VixUiCheckbox is a boolean node with a second life. In plain ComfyUI it's a checkbox that outputs its own state - genuinely trivial. Its real job is being a control definition for Visionatrix: when you export this workflow as a "flow" on the Visionatrix platform, this node becomes a toggle switch in a clean web UI, letting someone who has never seen a node graph flip your setting.

    So the honest question before you use it is: are you building for Visionatrix? If yes, this is exactly the right tool. If no, a core ComfyUI Boolean node does the same thing with fewer moving parts.

    Quick context: Visionatrix is a self-hosted server/worker project that wraps ComfyUI workflows in a simplified interface - you publish a workflow as a flow, other people use it through checkboxes, dropdowns and sliders. This pack is the migration kit that marks which inputs become those controls.

    Inputs that matter

    • state (BOOLEAN, default false) - the actual value. This is what gets wired downstream and what a Visionatrix user flips.
    • display_name (STRING, default "Display Name") - the label shown in the Visionatrix UI. Set it to something a human reads, like "Face detailer" or "HD upscale".
    • optional (BOOLEAN, default true) - whether the control is optional in the flow's UI.
    • advanced (BOOLEAN, default true) - tuck it under an "advanced" section so the main form stays clean.
    • order (INT, default 99) - position of the control among the others.
    • custom_id (STRING) - a stable ID for the control. Worth setting if you're writing tooling around the flow, because renames can change auto-generated IDs.

    There's also a hidden optional input if you want the control in the graph but invisible in the UI.

    Outputs

    Two outputs, same value in two types: bool (BOOLEAN) and int (INT, 0/1). The int output is the sneaky useful one - it plugs straight into INT inputs like a strength multiplier or a [0|1]-style step count without needing a cast node in between.

    How it works

    Mechanically it's a pure pass-through: do_it returns (state, int(state)). The whole point isn't computation, it's metadata - the extra fields (display_name, optional, advanced, order) are what Visionatrix reads to render the control. In plain ComfyUI those fields do nothing except sit on the node.

    Install

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

    Restart ComfyUI afterward, or search ComfyUI-Visionatrix in ComfyUI Manager. No model downloads; deps are torch, pillow, numpy - already present.

    Gotchas

    The main confusion is people wiring the int output into a condition expecting True/False - an int 1 is truthy in most nodes so it usually works, but a BOOLEAN-consuming node wants the bool output, not the int. And remember the UI fields only matter inside Visionatrix: tweak advanced or order while testing in plain ComfyUI and you'll see zero difference, which is expected, not a bug.

    CategoryVisionatrix/UI

    Inputs (7)

    NameTypeDefaultDescription
    stateBOOLEANfalse
    display_nameSTRINGDisplay Name
    optionalBOOLEANtrue
    advancedBOOLEANtrue
    orderINT99
    custom_idSTRING
    hiddenoptBOOLEANfalse

    Outputs (2)

    NameTypeDescription
    boolBOOLEAN
    intINT