Nodes/ComfyUI-Interactive/Interactive Switch (with parameters)
ComfyUI Node

Interactive Switch (with parameters)

The click-to-choose switch that keeps latent/mask/string/int/float attached

By lquesada·Created 2 years ago·Updated about a year ago· 52
Interactive Switch (with parameters)
  • selector1
  • selector2
  • selector3
  • selector4
  • selector5
  • selector6
  • selector7
  • selector8
  • images
  • parameter_latent
  • parameter_mask
  • parameter_string
  • parameter_int
  • parameter_float

This is InteractiveSwitch's bigger sibling. Where the plain switch only ever forwards an image, this one unpacks a whole bundle - image, latent, mask, string, int, and float - from whichever InteractiveSelectorWithParameters node you clicked. If your branches carry more than just a picture (different latents mid-denoise, different captions, different seeds per candidate), this is the node that lets you pick one and keep the rest of its data intact instead of losing everything but the thumbnail.

How it works

Wire up to eight InteractiveSelectorWithParameters nodes into the eight selectorN slots. Each one shows its image and holds onto whatever latent/mask/string/int/float you fed it. Click one; the switch reads which selector is now selected and releases that selector's full bundle through its six separate outputs. Execution downstream just sees a normal IMAGE, LATENT, MASK, STRING, INT, and FLOAT - it doesn't need to know a human made a choice to get there.

Same single-selector trick works here too: wire in just one InteractiveSelectorWithParameters and the switch becomes a gate - click it to let that whole bundle of data through, leave it unclicked and nothing downstream fires.

The inputs and outputs that matter

  • selector1selector8 (all optional, type interactive_images) - only accept InteractiveSelectorWithParameters output, not the plain selector's. You don't need to fill all eight.
  • images (IMAGE, output) - the picked branch's image.
  • parameter_latent (LATENT), parameter_mask (MASK), parameter_string (STRING), parameter_int (INT), parameter_float (FLOAT) - the rest of the bundle, released once a selection is made. You're not obligated to consume all five; wire onward only the ones a given workflow actually needs (e.g. just parameter_latent if you're picking between candidate latents to keep sampling on).

Because everything's optional on the input side and every parameter type gets its own dedicated output, this node works fine even if only some of your selectors bother to fill in, say, parameter_string - the unfilled ones just pass through empty/default for that slot.

How to install it

Via ComfyUI Manager: search "ComfyUI-Interactive". Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/lquesada/ComfyUI-Interactive

Restart after either. No pip requirements, no model downloads - the whole pack is UI and graph logic.

Common issues & troubleshooting

I only need the image, do I have to deal with the other five outputs? No - leave parameter_latent/parameter_mask/etc. unconnected downstream if you don't need them. They're there so you can carry more than an image; nothing forces you to use all of it.

Downstream nodes complain about a missing latent/mask even though I picked a branch. Check the selector that got clicked actually had that parameter wired in on its own side. The switch can only release what its selectors were given - if none of your InteractiveSelectorWithParameters nodes fed a parameter_mask, the switch has nothing real to hand you either.

Should I use this or the plain InteractiveSwitch? If every branch is "just an image," the plain switch is simpler and there's no reason to add the extra outputs. Reach for this one specifically when the thing you're choosing between is more than a picture - a latent you'll keep denoising, a mask for the next inpaint step, or the seed/prompt pair that produced a candidate.

Same queue and Anything Everywhere caveats as the rest of the pack. Auto-enqueue needs to be off with an empty queue for the pause-and-wait to hold, and routing the selector↔switch links through cg-use-everywhere nodes can break the state propagation this whole pack depends on.

Categoryinteractive

Inputs (8)

NameTypeDefaultDescription
selector1optinteractive_images
selector2optinteractive_images
selector3optinteractive_images
selector4optinteractive_images
selector5optinteractive_images
selector6optinteractive_images
selector7optinteractive_images
selector8optinteractive_images

Outputs (6)

NameTypeDescription
imagesIMAGE
parameter_latentLATENT
parameter_maskMASK
parameter_stringSTRING
parameter_intINT
parameter_floatFLOAT