Nodes/comfyui-selector/Recourse (Polarity)...
ComfyUI Node

Recourse (Polarity)...

Never run a render with an empty prompt again

By exdysa·Created 2 years ago·Updated about a year ago· 6
Recourse (Polarity)...
  • 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_apos_d (CONDITIONING) - positive prompt conditionings, in priority order. In practice: your main prompt, then a simpler fallback prompt.
  • neg_aneg_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 positive and negative inputs.

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.
CategorySelector_Recourse/Recourse

Inputs (8)

NameTypeDefaultDescription
pos_aoptCONDITIONINGThe lowest number port with an active signal is used.
pos_boptCONDITIONINGThe lowest number port with an active signal is used.
pos_coptCONDITIONINGThe lowest number port with an active signal is used.
pos_doptCONDITIONINGThe lowest number port with an active signal is used.
neg_aoptCONDITIONINGThe lowest number port with an active signal is used.
neg_boptCONDITIONINGThe lowest number port with an active signal is used.
neg_coptCONDITIONINGThe lowest number port with an active signal is used.
neg_doptCONDITIONINGThe lowest number port with an active signal is used.

Outputs (2)

NameTypeDescription
CONDITION+CONDITIONING
CONDITION-CONDITIONING