ComfyUI Node

Data_Highway

A bus with ports you name yourself

By cardenluo·Created 2 years ago·Updated 17 days ago· 309
Data_Highway
  • bus
  • bus
  • output_0
  • 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
port_config

Apt_Preset's regular context bus (the one Data_basic and Data_select work with) is fixed - model, clip, vae, conditioning, latent, image, mask, and that's the set. Data_Highway is the pack's second, more flexible bus type: instead of predefined ComfyUI types, you define your own named ports as text, and the node exposes up to twenty generic output slots for whatever you've configured. It's the tool for when your workflow needs to carry values the standard bus was never built to hold - batch counters, filenames, per-step parameters, arbitrary custom values - in a shape you decide.

How it works

The node's own description (baked into the node itself) lays out the rules plainly: ports must share the exact same name to connect to each other, and feeding new data into the highway only overwrites or adds to what's there - it never deletes existing port information. That last part is the design intent: you can chain several Data_Highway nodes down a long workflow, each one adding or updating its own ports, and earlier ports keep flowing through untouched. It outputs a bus (its own RUN_CONTEXT2 type, distinct from the regular context's RUN_CONTEXT - the two bus types don't mix directly) plus whichever generic output slots your port configuration fills.

One honest gap: the exact text syntax for port_config isn't spelled out in the node's schema beyond the hint that you name ports and click to update them, so the fastest way to learn the format is to drop the node on your canvas and experiment, or find one of the pack's example workflows that already uses it.

The inputs and outputs that matter

  • port_config (required, STRING) - where you define your ports as text. Start simple: one named port, confirm it appears as an output, then expand.
  • bus (optional, RUN_CONTEXT2) - an existing Data_Highway bus to extend, following the "add or overwrite, never delete" rule above.
  • Outputs: bus (the updated highway, RUN_CONTEXT2) plus output_0 through output_19 - twenty generic wildcard slots corresponding to whatever ports your config defines.

How to install it

Comes with the full pack. Via ComfyUI Manager: search "ComfyUI-Apt_Preset" → Install → restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/cardenluo/ComfyUI-Apt_Preset.git

Windows: run install.bat afterward through ComfyUI's own embedded Python. Linux/Mac: activate your ComfyUI venv and install the pack's requirements manually from the cloned folder. Restart ComfyUI. No extra dependencies beyond the base pack.

Common issues & troubleshooting

Two Data_Highway buses won't connect to a node expecting RUN_CONTEXT. That's expected - Data_Highway uses its own RUN_CONTEXT2 type, separate from the regular context bus that Data_basic, Data_bus_chx, and Data_chx_Merge work with. Don't try to wire one into the other directly; they're deliberately two different systems.

A port you defined earlier seems to have vanished. Per the node's own stated behavior, port info should never get deleted by feeding in new data - if a port genuinely disappears, double-check you didn't rename it slightly (a typo makes ComfyUI treat it as a brand-new, differently-named port rather than an update to the old one, since "same name" is the connection rule).

Not sure this is the right node for your case. If you only need to carry standard ComfyUI types (model, clip, latent, etc.), Data_basic is simpler and needs no configuration. Reach for Data_Highway specifically when you need custom-named values the fixed bus doesn't have room for.

CategoryApt_Preset/chx_load

Inputs (2)

NameTypeDefaultDescription
port_configSTRING
busoptRUN_CONTEXT2

Outputs (21)

NameTypeDescription
busRUN_CONTEXT2
output_0*
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*