Channel Unpacker (RMA)
Unpacking RMA textures
- rma_packed
- roughness
- metallic
- ao
The generic RGB unpacker in this pack is fine, but it hands you red, green, and blue and makes you remember which one is which. This node skips the mental math: it assumes the input is an RMA-packed texture and gives you roughness, metallic, and ao outputs, named after the maps they contain. If you work with RMA textures at all - and plenty of engines and asset stores ship RMA - this is the one you'll keep on the canvas.
RMA is the channel layout where R = roughness, G = metallic, B = ambient occlusion. It's the sibling of ORM (which puts AO in red and roughness in green), and knowing which convention your texture uses is the whole game. The node doesn't detect anything - it just assumes RMA and slices accordingly. That's actually a feature: it's predictable, and the naming means a mistake is visible in your wiring rather than hiding in "which channel did I mean again."
Mechanically it's the same slice-and-repeat routine as the pack's other unpacker. It pulls the red plane as roughness, the green as metallic, the blue as AO, then repeats each single channel three times so every output is a standard RGB image that previews correctly and feeds into any downstream node without channel-count surprises. There's a small robustness touch in the source: if you feed it a 2-channel or 1-channel image it won't crash, it just fills the missing maps with black. Realistically you'll feed it 3-channel RGB, and it'll behave exactly as expected.
The one input is rma_packed - an IMAGE, typically straight off the pack's Channel Packer (RMA) or Channel Packer (RMAA) (which drops the alpha). Three outputs: roughness, metallic, ao, all IMAGE, all ready to wire into a PBR splitter, an adjustment node, or a preview.
Where you'll actually use it: you've got an RMA texture from a game asset dump or an AI-extracted material, and you want to tweak only the roughness - crank it with a gamma or a detail blend - then pack it back. Or you want to convert RMA to ORM for a different engine, which is a two-node operation: unpack here, repack with the pack's generic Channel Packer using the orm_unity preset. That round trip is the node's real job and it does it with zero quality loss since it's just tensor slicing.
Installation is the shared pack story: ComfyUI Manager → search "Texture Alchemy", or clone the repo by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/amtarr/ComfyUI-TextureAlchemy
Restart, then right-click → Texture Alchemist/Channel → Channel Unpacker (RMA). No dependencies beyond ComfyUI's built-in PyTorch/PIL, no models to download. The usual caveats apply: the README's manual-copy instructions reference the pack's old folder name, and if Manager refuses a Git-URL install, that's the security level - clone manually rather than lowering it.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| rma_packed | IMAGE | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| roughness | IMAGE | — |
| metallic | IMAGE | — |
| ao | IMAGE | — |