Nodes/WorkflowX Configurator/Config SelectorX
ComfyUI Node

Config SelectorX

The brain of WorkflowX's per-profile config system

By haroonaslam·Created 4 months ago·Updated 7 days ago· 10
Config SelectorX
      selected_config
      console_outputno
      selectorx_state{}

      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.

      CategoryWorkflowX/Workflow Config

      Inputs (3)

      NameTypeDefaultDescription
      selected_configSTRING
      console_outputCOMBOno2 options: no, yes
      selectorx_stateoptSTRING{}Managed by the frontend extension. Stores Config SelectorX configs, scopes, and selector toggles.

      Outputs (0)

      No outputs