Merge RGB Channels
The node that makes trichromy and channel tricks possible
- red
- green
- blue
- image
MergeRGBImageChannel takes three single-channel images - red, green, blue - and stacks them into one color image. It sounds like the most boring node imaginable, and then you realize it's the node that unlocks every channel-swapping and trichromy trick in the film-photography bag.
The pack's own example workflow is the tell: examples/wratten_filter_trichromy_demo.json uses FilterLab to expose a scene through red, green, and blue Wratten filters, then merges the results back into a color image. That's the historic trichromy process - the way color photography was done before color film existed - and this node is the seam where the three filtered B&W exposures come back together.
How it works
Three required inputs, all IMAGE: red, green, and blue. Each is a channel. The node stacks them into an RGB image, exactly as the name promises. The one control is normalize (default off): when on, each channel is normalized before merging, which keeps a dark or bright channel from dominating the result. Leave it off when your channels are already exposed comparably; turn it on when you're merging wildly different exposures and want balanced output.
The output is a single image of type IMAGE.
What you can do with it
Channel swapping is the headliner: swap red and blue inputs and your sky turns red and your skin turns blue - a cursed, fun, occasionally useful party trick, and a legit tool for creative grading. Beyond that:
- Trichromy: three FilterLab passes (red, green, blue Wratten) merged here reproduces the early-1900s color process on modern hardware.
- Per-channel work: process each channel separately (a different grayscale method per channel, say) and merge - a quick way to push tones in one color direction.
- Testing: feed each input from the ColorChartImageLoader chart through different processing and confirm the merge round-trips correctly.
Install
Pack standard:
cd ComfyUI/custom_nodes
git clone https://github.com/AlbertJBurton/comfyui-jbnodes.git
cd comfyui-jbnodes
pip install -r requirements.txt
Restart ComfyUI, or ComfyUI Manager → "comfyui-jbnodes."
Gotchas
- It's a dumb, exact merge. If a channel has a different size or bit depth than its siblings, the merge can look wrong before you even reach the swap - keep all three inputs the same dimensions. There's no resize or auto-align in this node.
normalizechanges tonality, not just range - if your merged image looks washed, try it; if it looks shifted, turn it off. There's no middle ground.- Pair it with a channel-splitter node from another pack to complete the round-trip; this pack ships the merge half, not the split.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| red | IMAGE | — | |
| green | IMAGE | — | |
| blue | IMAGE | — | |
| normalizeopt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |