Editor Target Beacon
A sticky note that tells the workflow which editor you meant
- target
- target_name
What it's for
A workflow that ships three instruction-editor branches needs a way to say which one is live. You could keep a text widget somewhere and remember to update it. The Beacon is the alternative: a tiny node whose only job is to declare "this group's editor is Qwen Image Edit 2.1," designed to sit inside a group that your group muter switches on and off.
The trick is that the signal isn't really the value - it's whether the node runs at all. Mute the group and the beacon doesn't execute, so its wire arrives empty at Active Editor Target, which then falls through to the next live one. The selector's existence is the routing.
Inputs and outputs
One widget: target, a dropdown with four choices - Qwen Image Edit 2.1, FireRed Image Edit 1.1, Flux 2 Klein Base, Direct / No Editor. It defaults to Qwen, so set each one explicitly. The FireRed group's beacon in particular is the one people forget, because the default is plausible-looking.
Two outputs: target (PORTRAIT_EDITOR_TARGET, the typed token that goes to Active Editor Target) and target_name (STRING, the same value as text). The string output is quietly useful - drop it into a preview-text node or beside a Note and you can see at a glance which path a run took, without hunting through muted groups.
Wiring it
One beacon per editor group, and all of them into one Active Editor Target outside the groups:
┌─ Qwen Image Edit 2.1 group ─────────────────┐
│ ... editor chain ... │
│ [Editor Target Beacon: Qwen Image Edit 2.1]│──┐
└─────────────────────────────────────────────┘ │
┌─ FireRed group ─────────────────────────────┐ ├──> Active Editor Target ─> Smart Photo Prepare
│ [Editor Target Beacon: FireRed Image Edit 1.1] │ └─> Editor Result Gate
└─────────────────────────────────────────────┘ │
┌─ Klein group ───────────────────────────────┐ │
│ [Editor Target Beacon: Flux 2 Klein Base] │──┘
└─────────────────────────────────────────────┘
That target then drives two things: the resolution tier and alignment Smart Photo Prepare prepares for, and the socket Editor Result Gate reads. Both stay outside the muted groups.
The groups themselves are usually handled by rgthree's Fast Groups Muter, which is the standard tool for switching whole labelled regions off without deleting them. If you want exclusivity enforced, use a dedicated muter that matches only your editor groups and set its restriction to "always one" - not your main muter, unless you enjoy being unable to turn everything off for a sanity check.
An honest note about this corner of the ecosystem: PortraitUtils 2.0 landed in October 2026 and there's essentially no community discussion of it yet. That means fewer broken-workflow posts to learn from, and more reason to read the pack's own docs/SmartPhotoPrepare.md before you wire the three-branch layout. The docs are current; the tutorials you'll find via search are describing 1.x nodes that no longer exist.
There's no way around it
Worth stating because it catches people out: Smart Photo Prepare's editor_target is an input socket, not a widget. There's no dropdown you can just set. The only producers of PORTRAIT_EDITOR_TARGET are this node and Active Editor Target - so even a single-editor workflow needs a Beacon, wired either directly into Prepare and the Gate or through the Active Editor Target node.
Also, two beacons in one group will make Active Editor Target see two live targets and error out, which is exactly what it's supposed to do.
Install
Part of the PortraitUtils pack:
cd ComfyUI/custom_nodes
git clone https://github.com/heyburns/PortraitUtils
/path/to/ComfyUI/venv/bin/python -m pip install -r PortraitUtils/requirements.txt
Or via ComfyUI Manager - search PortraitUtils (publisher heyburns, GPLv3). Dependencies are numpy, Pillow, opencv-python-headless and tifffile in ComfyUI's Python environment, one OpenCV variant only. Restart the ComfyUI server after installing; a browser refresh won't reload node definitions. The Beacon itself needs no model weights - the editors do, and those are separate installs.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| target | COMBO | Qwen Image Edit 2.1 | Place one beacon in each editor group and set it to that group's editor. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| target | PORTRAIT_EDITOR_TARGET | — |
| target_name | STRING | — |