Recourse (Polarity)...
Never run a render with an empty prompt again
- pos_a
- pos_b
- pos_c
- pos_d
- neg_a
- neg_b
- neg_c
- neg_d
- CONDITION+
- CONDITION-
RecoursePolar is the positive/negative conditioning failsafe from exdysa's comfyui-selector pack. Where the pack's other Recourse nodes carry a single signal, this one carries both polarities at once: up to four positive conditioning inputs and four negative ones, and it hands you the first live one of each. Think of it as a "never let the graph run with an empty prompt" guard.
The situation it solves is specific and real. You build a workflow that sometimes uses a positive prompt and sometimes doesn't - say, a dynamic-prompt experiment where one branch produces conditioning and another branch is empty, or a LoRA test where you want a fallback prompt when the main one fails. Stock ComfyUI handles that by either crashing or silently generating with an empty positive, which on most models gives you mush. RecoursePolar guarantees a live positive and a live negative are always on the table, in port-priority order.
How it works
Same "first active wins" logic as the rest of the Recourse family, applied twice. It scans pos_a through pos_d and outputs the first one carrying a CONDITIONING as CONDITION+; it scans neg_a through neg_d independently and outputs the first live one as CONDITION-. The two sides never interfere - you can have all four positives connected and only one negative, or vice versa.
One subtlety worth knowing: a connected but dead port is skipped, so if the node upstream of pos_b failed to produce, the node just falls to pos_c rather than passing a broken signal. That's the "recourse" in the name - the backup is automatic, not something you have to notice.
Inputs & outputs that matter
- pos_a … pos_d (CONDITIONING) - positive prompt conditionings, in priority order. In practice: your main prompt, then a simpler fallback prompt.
- neg_a … neg_d (CONDITIONING) - negative conditionings, same idea. For Flux and other guidance-distilled models, negative prompts mostly do nothing anyway, so a single empty-negative fallback port is fine there.
- CONDITION+ and CONDITION- - wire these straight into your KSampler's
positiveandnegativeinputs.
Installing it
The usual for this pack, which is to say easy and dependency-free. ComfyUI Manager → search comfyui-selector → install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/exdysa/comfyui-selector
Restart ComfyUI and you'll find it under Selector_Recourse/Recourse. No requirements.txt, no model files, no network access - it's pure Python speaking ComfyUI's CONDITIONING type.
Gotchas
- Four ports each side is headroom, not a requirement. Two positives and one negative cover most people's actual workflows; the node doesn't care how many are empty.
- The positive and negative scans are independent, so the winning positive could come from port 1 while the winning negative comes from port 3. That's fine - they're separate concerns - but if you were expecting them to move in lockstep, that's not how it works.
- The pack is a small single-author effort (GPL-3.0, last commits in early 2025). It does its one job well, but don't expect a thriving bug-tracker behind it.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| pos_aopt | CONDITIONING | The lowest number port with an active signal is used. | |
| pos_bopt | CONDITIONING | The lowest number port with an active signal is used. | |
| pos_copt | CONDITIONING | The lowest number port with an active signal is used. | |
| pos_dopt | CONDITIONING | The lowest number port with an active signal is used. | |
| neg_aopt | CONDITIONING | The lowest number port with an active signal is used. | |
| neg_bopt | CONDITIONING | The lowest number port with an active signal is used. | |
| neg_copt | CONDITIONING | The lowest number port with an active signal is used. | |
| neg_dopt | CONDITIONING | The lowest number port with an active signal is used. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| CONDITION+ | CONDITIONING | — |
| CONDITION- | CONDITIONING | — |