Checkbox (VixUI)
A boolean that becomes a real toggle in Visionatrix's simplified UI
- bool
- int
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.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| state | BOOLEAN | false | — |
| display_name | STRING | Display Name | — |
| optional | BOOLEAN | true | — |
| advanced | BOOLEAN | true | — |
| order | INT | 99 | — |
| custom_id | STRING | — | |
| hiddenopt | BOOLEAN | false | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| bool | BOOLEAN | — |
| int | INT | — |