External Boolean (ComfyUI Deploy)
The toggle your deployed API callers will actually use
- bool_value
Of all the External input nodes in ComfyUI Deploy, this is the most honest one - it does almost nothing, and that's exactly what makes it useful. "External Boolean" exposes a true/false switch that your API callers can flip per request, and it hands that value to the rest of the graph as a BOOLEAN. Every deployed workflow needs a few of these: "use hires fix?", "apply the face detail pass?", "include the watermark?" - all the decisions you want the person calling your API to make without them rebuilding your graph.
Here's the whole mechanism: the node takes default_value and returns it. That's it. The magic isn't in the Python - it's in how ComfyDeploy works. When someone calls your deployed workflow, the backend matches their request arguments to nodes by input_id and overrides the node's value with what the caller sent. So the same workflow can run one time with the toggle on, next time with it off, and the graph structure never changes.
Inputs and output
input_id- defaultinput_bool. The key your API callers use to address this switch.default_value- required BOOLEAN, defaultfalse. What the workflow does when a caller doesn't supply a value.- Optional:
display_name,description- how the switch appears in the dashboard's input UI. Worth setting, since it's what a non-technical caller sees.
Output: bool_value (BOOLEAN). Wire it into any node that takes a boolean - conditional routing, a switch node, a "skip if false" logic chain.
Installing it
Same pack install as the rest of ComfyUI Deploy:
cd ComfyUI/custom_nodes
git clone https://github.com/BennyKok/comfyui-deploy.git
Restart ComfyUI, or install "ComfyUI Deploy" via ComfyUI Manager. No models, no key, no extra dependencies worth mentioning.
Where people get burned
The trap is expectation: in the ComfyUI editor, this node is just a pass-through of a checkbox. People sometimes wire it up, flip the toggle in the editor, run locally, and wonder why nothing changed downstream - because they were editing a default, not a value that the local run reads per-execution. It only does something dynamic when a ComfyDeploy request actually overrides it. Test it through the dashboard or the API, not by dragging the widget in the editor.
Also, don't get fancy with the boolean output. ComfyUI's BOOLEAN type is a plain Python bool, and most switch/logic nodes expect exactly that - but a few older custom nodes want an INT (0/1) or a STRING ("true"/"false"). If your toggle isn't being honored, check whether the downstream node even accepts a BOOLEAN before you blame the pack.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| input_id | STRING | input_bool | — |
| default_value | BOOLEAN | false | — |
| display_nameopt | STRING | — | |
| descriptionopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| bool_value | BOOLEAN | — |