Data_chx_Merge
Reunite two context buses into one
- context
- chx1
- chx2
- context
The context bus is great right up until your workflow branches - say one branch loads the model and clip through one preset, and a separate branch builds up conditioning through a different controller stack, and now you've got two context buses that both need to reach the same sampler. Data_chx_Merge is the node that puts them back together.
How it works
It's a small, purpose-built combiner: give it up to two context buses (chx1 and chx2), plus optionally an existing context you're already carrying, and it merges them into a single context output. There's no configuration beyond wiring the buses in - the node exists specifically so you don't have to manually unpack two contexts with Data_basic and re-pack the pieces you need by hand every time two branches of your graph need to converge.
This matters more in Apt_Preset workflows than it might elsewhere, because the pack leans hard on the context-bus pattern throughout its loader and controller stacks (its own README shows separate "General Control" stacks for SD/XL, Wan, AnimateDiff, Kontext, and QwenEdit workflows) - if you're combining outputs from two of those stacks, or from a loader branch and a controller branch, this is the node built for exactly that seam.
The inputs and outputs that matter
All three inputs are optional:
context- an existing bus to fold into the merge, if you have one.chx1/chx2- the two buses you're combining. Both are RUN_CONTEXT type, same ascontextitself.
There's a single output: context, the merged bus, ready to continue into whatever's next - typically Data_basic or Data_select to pull specific fields back out, or straight into a sampler stage that expects a context.
Since the node doesn't expose any field-selection controls, what happens when both buses set the same field (say, both have a model) isn't something you can configure here - if that matters for your workflow, check which one wins by testing, or feed one through Data_select first to confirm what actually made it through.
How to install it
Ships with the full pack, no separate install. 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 from the cloned folder through ComfyUI's own embedded Python. Linux/Mac: activate your ComfyUI venv and install the pack's dependencies from that folder by hand. Restart ComfyUI. This node has no dependencies of its own beyond the base pack install.
Common issues & troubleshooting
Output context is missing a field you expected. With no exposed conflict-resolution setting, the safest habit is to keep the two input buses non-overlapping where it matters - build chx1 with model/clip/vae and chx2 with conditioning, rather than letting both set the same field and hoping the merge picks the one you want.
Not sure you actually need this node. If your workflow is a single linear chain, you don't - Data_chx_Merge only earns its place once your graph genuinely branches and reconverges. For a straight line, stick with the context flowing through Data_basic at each step.
Nothing shows up downstream after merging. Confirm at least one of chx1/chx2/context is actually wired - all three are optional, so an unwired node will merge nothing and hand back an empty bus, which is a silent failure rather than an error.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| contextopt | RUN_CONTEXT | — | |
| chx1opt | RUN_CONTEXT | — | |
| chx2opt | RUN_CONTEXT | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| context | RUN_CONTEXT | — |