DD XNOR Getter
Route on whether two conditions agree
- on_true
- on_false
- *
The XNOR Getter is the value-routing version of the DD XNOR Gate: instead of handing you a boolean that says "your two conditions agree," it hands you whichever value you chose for the outcome of that check. Both conditions true, or both false → you get on_true. One true and one false → you get on_false.
Standard getter layout: on_true and on_false (MatchType, so they adopt whatever you plug in - images, latents, text, conditioning), plus expression1 and expression2 (both default to true), and one * output that matches the input type.
Where "both agree" is the useful branch
The pattern is a consistency check that selects between two results. You have two toggles - say "input is portrait" and "output format is portrait" - and you want one result when they're in agreement and a different result when they conflict. Wire the agreement result into on_true, the conflict result into on_false. Both true or both false → agreement path. Mismatch → conflict path.
The lazy bit matters here as much as with every getter in this pack. on_true and on_false are lazy, so ComfyUI computes only the branch the node actually needs - the losing branch's upstream never executes. If one side of your choice is a full KSampler chain, that's the difference between it running and it being skipped entirely.
The trap: defaults make fresh nodes pass through
Both expressions default to true, and both-true counts as agreement - so a freshly dropped, unwired XNOR Getter routes straight to on_true. Connect only one expression and you've created a disagreement (true vs. false), which flips it to on_false. Neither is a bug; it's just XNOR semantics plus defaults that assume you're going to wire both inputs. Wire both, and the behavior is predictable.
Installing
The shared DD-LogicNodes install applies: ComfyUI Manager → search DD-LogicNodes → Install → restart, or clone https://github.com/dumbdemon/DD_LogicNodes into ComfyUI/custom_nodes. Zero dependencies, zero models, and it wants a reasonably current ComfyUI - the pack uses the newer extension API, so on old builds the node won't show up at all.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| on_true | COMFY_MATCHTYPE_V3 | — | |
| on_false | COMFY_MATCHTYPE_V3 | — | |
| expression1 | BOOLEAN | true | — |
| expression2 | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| * | COMFY_MATCHTYPE_V3 | — |