ComfyUI Node

PBR Splitter

Unpack a PBR_PIPE Back Into Individual Maps

By amtarr·Created 9 months ago·Updated 4 months ago· 58
PBR Splitter
  • pbr_pipe
  • albedo
  • normal
  • ao
  • height
  • roughness
  • metallic
  • transparency
  • emission

PBR Splitter is the other end of the pack's pipe system: where PBR Combiner bundles maps into one PBR_PIPE wire, Splitter unpacks a pipe back into individual map outputs. It's the least glamorous node in the pipeline and also the one that quietly saves you hours of rewiring.

You'll reach for it whenever something downstream refuses to speak PBR_PIPE - which is most of ComfyUI, since the pipe type is TextureAlchemy-specific. A normal map needs to go into a format converter, an AO needs to feed a mask generator, an albedo needs to hit a resize node: all of those want plain IMAGE wires, and Splitter hands them out.

How it works

One input - pbr_pipe - and eight outputs, one per map: albedo, normal, ao, height, roughness, metallic, transparency, emission. It reads the pipe's internal dict and returns whatever maps it contains. Maps that aren't present in the pipe come back as None, so you don't get errors for a material that legitimately has no emission or transparency - you just don't wire those outputs.

When you actually use it

Two patterns dominate. First, interop: you've built a pipe, but you need to run individual maps through non-pipe nodes (the relighters, the channel packers, a normal formatter) and then feed them back into a Combiner. Second, targeted fixes: instead of adjusting the whole material, split it, fix one map, and rebuild the pipe. The flow is round-trip: Combiner → work on the pipe → Splitter → touch individual maps → Combiner → continue.

Because the outputs are plain IMAGE, you can also use a Splitter as a poor man's Pipe Preview - wire the outputs into a preview grid. PBR Pipe Preview does that in one step, but if the splitter is already in your graph, it costs you nothing extra.

Installing it

Part of TextureAlchemy:

cd ComfyUI/custom_nodes
git clone https://github.com/amtarr/ComfyUI-TextureAlchemy

or via ComfyUI Manager (search "TextureAlchemy"), then restart. Under Texture Alchemist → Pipeline. No dependencies, no model downloads.

A practical note

A pipe only holds what you put in it. If your Combiner never got an emission input, the Splitter's emission output is None - which is fine until a downstream node that doesn't accept None is wired to it. The moment you see a "NoneType has no attribute" style error after a Splitter, the fix is usually that you're wiring an empty output; check which maps your pipe actually contains (PBR Pipe Preview makes that visible) before you blame the Splitter.

CategoryTexture Alchemist/Pipeline

Inputs (1)

NameTypeDefaultDescription
pbr_pipePBR_PIPE

Outputs (8)

NameTypeDescription
albedoIMAGE
normalIMAGE
aoIMAGE
heightIMAGE
roughnessIMAGE
metallicIMAGE
transparencyIMAGE
emissionIMAGE