Nodes/ComfyUI-TJ_NODE/Multi Get Node (TJ)
ComfyUI Node

Multi Get Node (TJ)

Twenty wireless receivers in one node — the module input hub

By designloves2·Created 4 months ago·Updated 3 days ago· 13
Multi Get Node (TJ)
  • wire_1
  • wire_2
  • wire_3
  • wire_4
  • wire_5
  • wire_6
  • wire_7
  • wire_8
  • wire_9
  • wire_10
  • wire_11
  • wire_12
  • wire_13
  • wire_14
  • wire_15
  • wire_16
  • wire_17
  • wire_18
  • wire_19
  • wire_20
  • output_1
  • output_2
  • output_3
  • output_4
  • output_5
  • output_6
  • output_7
  • output_8
  • output_9
  • output_10
  • output_11
  • output_12
  • output_13
  • output_14
  • output_15
  • output_16
  • output_17
  • output_18
  • output_19
  • output_20

Multi Get Node (TJ) is Get Node's big sibling: instead of subscribing to one wireless provider, it holds up to twenty wire_1wire_20 slots and hands each one out as a matching output_1output_20. Think of it as the input panel of a module. Where a single Get node pulls one value into one place, Multi Get pulls a whole set of values into one neat block - the reference image, the prompt, the seed, the LoRA names, whatever the module needs - so you can look at one node and see everything a section of the workflow is being fed.

How it works

Each wire_N slot is an ANY-typed receive. You pick a provider per slot from the dropdown (the same registry of Set providers and auto-set outputs that the single Get uses), and the matching output emits that value. The inputs are all optional, so you can wire up just the four slots you need and leave the rest empty. The pack adds a reorder UI on top, so you can drag slots into a sensible order instead of scrolling to figure out which output is which - important when you're feeding twenty values into a big branch.

The mechanism underneath is the same wireless lifecycle as the single Get: named providers, reload-safe reconnect, and the right-click Refresh ALL Get Nodes option if a provider list goes stale.

Why you'd reach for it

This node exists for module architecture. In the pack's recommended layout you split a workflow into sections - INPUT → GENERATION → EDIT → UPSCALE → PREVIEW → SAVE - and each section is supposed to be a self-contained block. A Multi Get at the head of a section acts as its contract: "here is everything this block needs." That's dramatically easier to read and rewire than a tangle of individual Get nodes scattered around, and it means you can lift a whole section out and drop it into another workflow by recreating one node instead of twenty.

It's the same philosophy as rgthree's Context nodes in the broader ecosystem - bundle the inputs, keep the graph readable - just done via TJ's named-provider registry.

Inputs and outputs that matter

  • wire_1wire_20 - the providers to receive. Set only the ones you need.
  • output_1output_20 - the corresponding values, ANY-typed, wired into your module.

That's the entire surface: no widgets, no compute. It receives and forwards.

Install

ComfyUI Manager → Install Custom Nodes → search TJ_NODE, or:

cd ComfyUI/custom_nodes
git clone https://github.com/designloves2/ComfyUI-TJ_NODE

Restart ComfyUI. No models or dependencies. Category: ✨ TJ_Node/Wireless.

Where people get tangled

The recurring failure mode is naming. Twenty slots means twenty provider names, and if you let them drift (test, aaa, img2) you'll spend your life reconnecting after reloads. TJ's own docs are blunt about this: duplicate names cause reconnect instability, and meaningless names make maintenance miserable. Decide on a stable naming scheme for a workflow before you build it, and this node rewards you; skip that and it'll be the most confusing node on your canvas. Also remember the slots are just receivers - the actual publishing still happens on the Set side, so if an output is empty, check the provider name on the other end, not this node.

Category ✨ TJ_Node/Wireless

Inputs (20)

NameTypeDefaultDescription
wire_1opt*
wire_2opt*
wire_3opt*
wire_4opt*
wire_5opt*
wire_6opt*
wire_7opt*
wire_8opt*
wire_9opt*
wire_10opt*
wire_11opt*
wire_12opt*
wire_13opt*
wire_14opt*
wire_15opt*
wire_16opt*
wire_17opt*
wire_18opt*
wire_19opt*
wire_20opt*

Outputs (20)

NameTypeDescription
output_1*
output_2*
output_3*
output_4*
output_5*
output_6*
output_7*
output_8*
output_9*
output_10*
output_11*
output_12*
output_13*
output_14*
output_15*
output_16*
output_17*
output_18*
output_19*
output_20*