Conditioning Fallback
A conditioning that defaults to something sensible
- primary
- fallback
- conditioning
Conditioning Fallback is the "if it's there, use it; if not, use this" node for prompts. It takes an optional primary conditioning and an optional fallback conditioning, and passes primary through when it's connected and non-empty - otherwise you get fallback. No selector, no boolean, no decision on your part. The graph decides for you.
This is the first-non-null fallback pattern, the same shape as rgthree's Any Switch but typed for conditioning. It's the plumbing answer to an annoying reality: a workflow with optional branches produces None when a branch is off, and a sampler fed a None conditioning either errors or silently misbehaves. A fallback catches that. Wire your fancy branch into primary, wire a reliable baseline prompt into fallback, and the sampler always gets a valid conditioning no matter which way the graph resolves.
The inputs and output
- primary -
CONDITIONING, optional. The preferred input. - fallback -
CONDITIONING, optional. What you get ifprimaryis absent. - Output conditioning -
primaryif present, elsefallback.
Both are optional, which is the whole mechanism: an unwired input arrives as None, and the node reads None to mean "not connected." If both are empty, you get a None out and the downstream node will complain - so keep at least fallback wired.
Where it earns its keep
- Optional enhancement branches. A negative prompt that's only present when some toggle is on - when it's off, the branch emits nothing, and the fallback supplies your standard negative so the sampler never runs unguided.
- Detailer wiring. A detail pass whose conditioning comes from an expensive prompt branch; when the branch is bypassed, fall back to the main prompt instead of failing.
- Shared workflows. Someone else's graph may leave the "advanced prompt" input unwired; a fallback means it still generates correctly, which is exactly the resilience you want in a graph you hand to other people.
Install
Part of duckcomfy personal nodes. ComfyUI Manager → search "duckcomfy personal nodes", or:
cd ComfyUI/custom_nodes
git clone https://github.com/duckcomfy/duckcomfy_personal_nodes
Restart ComfyUI. No pip dependencies, no model downloads.
Gotchas
The distinction that bites people: a fallback responds to absence, not to quality. If primary is connected but produces a garbage or empty conditioning, the node passes it through happily - it has no way to judge content. So keep the fallback chain genuinely reliable, and know that a connected-but-blank primary is "present" as far as this node is concerned. Also worth knowing: unlike the pack's CSwitchBoolean* nodes, this one isn't lazy - both branches execute, so don't use it as a performance shortcut around an expensive encode. It's an insurance policy, not a switch.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| primaryopt | CONDITIONING | — | |
| fallbackopt | CONDITIONING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| conditioning | CONDITIONING | — |