Nodes/comfyui-jbnodes/Merge RGB Channels
ComfyUI Node

Merge RGB Channels

The node that makes trichromy and channel tricks possible

By AlbertJBurton·Created 6 months ago·Updated 3 months ago· 1
Merge RGB Channels
  • red
  • green
  • blue
  • image
normalizefalse

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.
  • normalize changes 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.
CategoryJBNodes/Utility

Inputs (4)

NameTypeDefaultDescription
redIMAGE
greenIMAGE
blueIMAGE
normalizeoptBOOLEANfalse

Outputs (1)

NameTypeDescription
imageIMAGE