✏️ Literal Bool
A True/False switch you can wire instead of click
- value
Sometimes a boolean doesn't want to live as a checkbox baked into some other node - it wants to be its own thing, sitting on a wire, so multiple nodes can read the same flag or so it can be exposed as a parameter when you're running the workflow through the API. Literal Bool is exactly that: one toggle, one output, nothing else going on.
How it works
There's no logic here. You set the widget to True or False, and the output socket carries that value. It's a constant source, the same way a battery is a constant voltage source - it doesn't compute anything, it just sits there and supplies a value to whatever's downstream.
The reason this is worth a dedicated node instead of just leaving a checkbox on whichever node consumes it: ComfyUI lets you right-click most widgets and "convert to input," turning a baked-in checkbox into a socket that expects an incoming connection. Once you've done that, something has to be the source on the other end of that wire - a plain constant node is the natural, lightest-weight thing to put there.
The inputs and outputs that matter
value- the boolean itself, defaultFalse. That's the entire node.- Output:
value(BOOLEAN), same as the input.
How to install it
Via ComfyUI Manager: search ComfyUI-mnemic-nodes, install, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/MNeMoNiCuZ/ComfyUI-mnemic-nodes
Restart ComfyUI afterward. No dependencies, no model files, nothing to configure - it's about as light as a custom node can be.
Common issues & troubleshooting
There's genuinely not much that can go wrong with a constant, so the "issues" here are really more about when to reach for it. It's most useful for two things: driving a Switch or If-style node elsewhere in your graph from a single, reusable source instead of duplicating the same checkbox on three different nodes; and exposing a toggle as a workflow-API parameter, so a value that started as a widget in the editor becomes something a caller can override at run time.
The one thing to keep in mind is that this node is purely a value source - it doesn't gate execution on its own. Plugging Literal Bool into something expecting a boolean gives that node the value; making the graph itself branch based on that value still needs a separate conditional/switch node downstream that actually reads and acts on it. A Literal Bool set to True wired into a switch's condition input isn't the same as the switch doing anything by itself - the switch node is still the one doing the branching.
And if you're after a whole number or decimal value instead, the pack ships Literal Int and Literal Float siblings built the same way - and Literal String for text. All four exist for the same reason: a plain, typed constant that's easy to find, easy to reuse, and easy to expose as a parameter, instead of a value quietly buried inside whichever node happened to need it first.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| value | BOOLEAN | false | Boolean value (True or False). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| value | BOOLEAN | — |