Const String
The remote control for your whole conditional workflow
- string
Every node in this pack that "decides" something is waiting on one thing: a string. Const String is the node that hands it over. It's a fixed text value on a widget, sent down a wire - and in the Conditional Nodes pack's design, that single string is effectively your workflow's configuration file. Change the text, and every If True, every string-driven loader, every branch downstream re-routes around your new choice.
How it works
Mechanically it could not be simpler: a value input (STRING, single-line, default empty) and a string output that echoes it back unchanged. That's the entire node. It's the same "define once, wire everywhere" pattern as the pack's Const Int and Const Float, and the same role core ComfyUI's PrimitiveString plays - the difference is purely that it's typed, named, and sits alongside its conditional siblings.
The pattern
The reason it's worth having is the pattern, not the node. The standard move: put a preset name in the Const String - "cinematic", "anime", "photoreal", whatever your categories are - and wire it into the trigger inputs of your If True nodes (which expect a forceInput string exactly for this). Every branch compares against that one value, so your whole workflow has a single source of truth. Change one widget, and the graph picks different checkpoints, LoRAs, and strengths. That's the entire pitch of this pack, and Const String is where you type the answer.
Two practical notes
First, it's single-line - you can't paste a multi-line block here. For trigger values that's fine; for actual prompt text you want a multi-line string node instead. Second, the comparison downstream is exact: trigger == expected, case-sensitive, whitespace-sensitive. If your preset says "Cinematic" with a capital C, every expected field must say "Cinematic" too. Decide on your preset vocabulary once, write it down, and use the same spelling everywhere - half the "why isn't my conditional firing" questions in any pack are this exact mismatch.
Uses beyond triggers
It's also the natural way to feed filenames into the pack's Load Checkpoint From String, Load Diffusion From String, and Load LoRA From String - which is how you build the "empty string means no LoRA" trick on the LoRA loader.
Inputs and outputs
value(STRING, default "") - what you want the string to be.string(STRING) - the same text, on a wire.
Installing it
Install: ComfyUI Manager → "Conditional Nodes by Mikudes", or:
cd ComfyUI/custom_nodes
git clone https://github.com/levox00/Conditional-Nodes-Comfy-Ui
Restart ComfyUI; it appears under conditional. No dependencies, no model files.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| value | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| string | STRING | — |