ComfyUI Node

If True 3

Switch three things at once, and skip the dead branches

By levox00·Created 2 months ago·Updated 2 months ago· 0
If True 3
  • if_true_1
  • if_true_2
  • if_true_3
  • fallback_1
  • fallback_2
  • fallback_3
  • out_1
  • out_2
  • out_3
trigger
expectedtext

If True 3 is the triple-barrel version of the pack's If True. Same idea - compare a trigger string to expected - but instead of routing one value it routes three in parallel. Each of the if_true_1, if_true_2, if_true_3 inputs has its own fallback (fallback_1 through fallback_3, all optional), and each slot produces its own output (out_1, out_2, out_3).

How it works

The mechanism is a string equality check, exactly like If True: trigger == expected, case-sensitive, whitespace-sensitive. The difference that actually matters is what happens on an empty branch. If True (the one-output version) returns None - a value that flows downstream and can crash a node that doesn't expect it. If True 3 returns an ExecutionBlocker instead. That's ComfyUI's "don't run this branch at all" signal: nodes downstream of a blocked output are skipped entirely, rather than receiving a phantom None. A failed branch here is a clean skip, not a landmine.

That makes the natural partner the pack's Merge First node. Wire each of the three outputs into Merge First's inputs and you get "use branch 1 if it's live, else branch 2, else branch 3" - blocked outputs are ignored, the first real value wins. This is the pack's own recommended idiom for conditional branches.

Inputs and outputs

  • trigger (STRING, wired), expected (STRING, default "text") - the shared comparison.
  • if_true_1..3 (), fallback_1..3 (, optional) - the three routeable values.
  • out_1..3 (*) - the results.

Setup behaves like If True: trigger is forceInput so it must be wired; expected is a widget you type into.

When to use it

The realistic use is switching complete groups at once. Want a preset to swap in not just a LoRA but its matching strength and a trigger-word prompt? Put the three values in if_true_1..3, their alternatives in fallback_1..3, and flip the whole bundle with one string. All three slots make the same choice at the same time, because the trigger/expected comparison is shared - there's no per-slot mixing of match and fallback within a single run.

The honest take: you only need If True 3 over If True when you genuinely have three things to swap as a unit. The ExecutionBlocker behavior is the real reason to prefer it - blocking is cleaner than propagating None.

Installing it

Installation is the pack standard - Manager search "Conditional Nodes by Mikudes", or:

cd ComfyUI/custom_nodes
git clone https://github.com/levox00/Conditional-Nodes-Comfy-Ui

Restart ComfyUI. It appears in the conditional category, no dependencies beyond ComfyUI itself.

Categoryconditional

Inputs (8)

NameTypeDefaultDescription
triggerSTRING
expectedSTRINGtext
if_true_1*
if_true_2*
if_true_3*
fallback_1opt*
fallback_2opt*
fallback_3opt*

Outputs (3)

NameTypeDescription
out_1*
out_2*
out_3*