DD Image Power Selector
A batch builder with an on/off switch per image
- image
This is the one interesting node in the DD pack. DD Image Power Selector builds an image batch from several sources, and unlike a dumb concat node it lets you toggle each source on and off right on the node - a green dot per slot, click to flip it, and disabled slots vanish from the output. It's a mini A/B testing rig for "which of these three reference images actually goes into this generation?"
How it works
Most of the magic lives in a custom frontend script, which is why this node looks different from the rest of the pack. When you drop it in, you get:
- ➕ Add Image / ➖ Remove Image buttons to grow or shrink the number of inputs.
- A toggle dot next to each input slot - green means ON, gray OFF. Click it to flip.
- A right-click menu with "Toggle All ON" and "Toggle All OFF" for when a test matrix gets big.
Each slot is a dynamic input named image_1, image_2, and so on. The toggle state is serialized into a hidden toggle_states widget (a JSON string) that the frontend keeps invisible - ComfyUI itself still reads it at execution time, so the node can decide which images to keep. On the Python side it collects the enabled, non-null images, resizes them all to the first image's dimensions (bilinear), and stacks them into one batch.
Inputs and output
- Optional
toggle_states(STRING) - hidden in the UI, holds the on/off state as JSON. You won't normally touch it. - Dynamic
image_Ninputs - as many as you add with the buttons. - Output:
image- a single batched IMAGE.
Where it shines and where it traps you
Reach for it when you're doing variant testing: feed three IPAdapter reference images or three input frames, flip combinations on and off, and run the batch to compare results without rewiring anything. The "Toggle All" menu item turns it into a one-click "run everything / run nothing" switch.
Now the trap: if every slot is toggled off, the node returns a blank 64×64 black image rather than failing. Your workflow won't error - it'll just silently produce a black frame downstream. That's the kind of quiet failure that wastes a generation cycle, so double-check at least one dot is green before you queue. Also, since this is custom frontend JS, it's tuned for the default ComfyUI frontend; on a heavily forked UI it may not render the buttons or toggles properly even though the core node still runs.
Installing it
It ships in the ComfyUI_DD_Nodes pack by Digital Divas. ComfyUI Manager → search "DD Nodes", or:
cd ComfyUI/custom_nodes
git clone https://github.com/digital-divas-admin/ComfyUI_DD_Nodes.git
Restart ComfyUI - the restart matters here, because the frontend script only registers when the web assets load. The pack has no extra Python dependencies and no model downloads. When Manager's results come back, make sure the repo is digital-divas-admin/ComfyUI_DD_Nodes and not the unrelated project that shares the name.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| toggle_statesopt | STRING | {} | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |