Config SelectorX
The brain of WorkflowX's per-profile config system
Every other node in WorkflowX's config family is a passive wire - the Set/Get nodes just publish and resolve values. Config SelectorX is the one that actually decides what anything means. It's the controller: you define scopes (which native ComfyUI groups belong to which configuration) and configs (named profiles like "Fast", "Quality", "Portrait"), and it tells every typed Set/Get and Relay in the graph which group is Active for the currently selected profile.
This is the node to reach for instead of the pack's older, deprecated configurator chain. The README is explicit: current workflows should use Config SelectorX, and the four legacy nodes exist only so old workflow JSON still loads.
How it works
Config SelectorX has no outputs and does no computation of its own - it's a state holder that other nodes read. Its Scopes editor assigns each ComfyUI group to one of four behaviors: Group Configurator, Selector Mute, Selector Bypass, or Ignore. Its Configs editor creates named configurations, and for each one assigns every controlled group a mode: Active, Bypass, Mute, or Ignore.
Everything is stored in the selectorx_state JSON field, which the frontend extension manages - you'll rarely type in it. That state persists in the workflow JSON, gets validated when a workflow loads, and when you change selected_config the resolution happens right before queueing. That's the property that makes this system pleasant: switch config, hit queue, done - no browser refresh, because the digest-based re-resolution is part of the Get nodes' machinery. Turn console_output to yes while debugging to see what the node resolves.
A quirk worth knowing: the stored state is versioned and strictly validated. The pack rejects a selectorx_state that isn't version 1, isn't initialized, or names a config the selected_config doesn't match. Hand-editing the field is how you end up with an error on load - let the UI own it.
Inputs
selected_config(STRING) - the active named configuration.console_output(no/yes) - resolution diagnostics.selectorx_state(STRING) - frontend-managed scopes, configs, and toggles. Read-only for you.
Install
Part of WorkflowX-Configurator. ComfyUI Manager → search WorkflowX Configurator, or:
cd ComfyUI/custom_nodes
git clone https://github.com/haroonaslam/WorkflowX-Configurator
Restart ComfyUI and hard-refresh - the Scopes/Configs editors are browser-side, so a stale tab hides them.
Common issues
- Scopes/Configs buttons missing. Hard-refresh the browser; the editor is a frontend extension.
- "selected_config must match a config in selectorx_state." - you typed a config name that isn't in the stored state, or the state field was hand-edited. Recreate it through the UI.
- Nothing changes when you switch configs. Verify Get nodes exist at the consumers and that Set nodes actually live inside groups you've scoped. Config SelectorX only influences groups it controls - anything outside a scope is unaffected.
Reach for Config SelectorX when one graph genuinely is several profiles. For a single-profile workflow it's dead weight. And given the pack's age (a 2026 release with modest community footprint), build on the repo's example workflows - configuration logic is much easier to steal than to reinvent.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| selected_config | STRING | — | |
| console_output | COMBO | no | 2 options: no, yes |
| selectorx_stateopt | STRING | {} | Managed by the frontend extension. Stores Config SelectorX configs, scopes, and selector toggles. |
Outputs (0)
No outputs