Channel Unpacker (RGB)
Splitting a packed texture back into R, G, and B
- packed
- red
- green
- blue
If you've ever downloaded a texture pack from a game and opened a suspiciously gray PNG that turned out to hold three maps at once, you've met channel packing. This node is the decoder ring: feed it that packed image and it hands you the individual red, green, and blue channels back as separate images. It's the direct inverse of the pack's Channel Packer, and it's the thing you'll grab when a packed ORM or RMA texture shows up in your workflow and you need to edit one map without touching the others.
The mechanism is as boring and reliable as you'd hope. It slices the input tensor along the channel axis - red into one [1, H, W] plane, green into another, blue into a third - then repeats each single channel three times so you get a grayscale-looking RGB image out. That repeat step matters more than it looks: ComfyUI's image type is effectively RGB everywhere, and a 1-channel tensor can cause confusing downstream behavior in some nodes. By outputting RGB, every output plays nice with previews and anything that expects a standard image.
One knob, output_channels, with seven values: all, r_only, g_only, b_only, rg, rb, gb. Default all gives you all three outputs populated. Pick r_only if you just want the red channel and don't care about the others. Worth knowing: the three outputs (red, green, blue) always exist regardless of what you pick - the selector just decides which ones actually contain data. Unselected ones come back as black (zeros), so don't panic if a preview looks empty.
Where does this fit in a real workflow? Mostly in the PBR material pipeline, which is the whole point of this pack. Say you unpack a Unity ORM texture: AO in red, roughness in green, metallic in blue. You can pull out just the roughness, run it through a detail blend or a roughness tweak, then pack it back - without ever touching the AO that's sitting in the red channel. That's the classic "separate channels for editing" loop, and it's a lot less fiddly than doing it in an image editor by hand.
Two small things to keep in mind. First, the outputs are always RGB-for-display, so a pure white roughness map will come out as a white RGB image, not a thin 1-channel tensor - that's a feature, not a bug. Second, this is the generic RGB unpacker; if you know the texture is RMA specifically, the pack's ChannelUnpackerRMA gives you named roughness/metallic/ao outputs with zero guessing about which color maps to which map.
Installing is the same story as every node in this pack: ComfyUI Manager → search "Texture Alchemy", or clone the repo into custom_nodes. No extra dependencies, no model files, just PyTorch and PIL doing tensor slicing. You'll find it under Texture Alchemist/Channel. If Manager chokes on a Git-URL install, that's the security level blocking remote downloads - clone manually.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| packed | IMAGE | — | |
| output_channels | COMBO | all | Which channels to extract |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| red | IMAGE | — |
| green | IMAGE | — |
| blue | IMAGE | — |