PBR Pipeline Adjuster
The One Node That Fixes a Whole Material at Once
- pbr_pipe
- pbr_pipe
AI-extracted PBR maps are rarely usable straight out of the model. The albedo's too saturated, the roughness reads too flat, the normals are at the wrong strength, and the AO either isn't there or isn't doing anything. Fixing all of that used to mean a separate adjustment node per map, each with its own wiring. PBR Pipeline Adjuster does the whole job on one node: pipe in, a dozen adjustment knobs, pipe out.
This is the node that turns "extracted maps" into "a material I'd actually use." It's where the pack's pro tips live - darkening albedo with AO, weathering roughness with the same AO, flattening or exaggerating normals - all in one place instead of scattered across the graph.
How it works
It takes a pbr_pipe and applies per-map adjustments across the board, returning the adjusted pbr_pipe. The knobs group into a few families:
- AO integration - the pack's signature move.
ao_strength_albedo(0-2) multiplies the AO over the albedo so crevices darken realistically (1.0-1.2 is the sweet spot).ao_strength_roughness(0-2) multiplies AO over roughness, making occluded areas rougher - 0.2-0.5 gives a nice weathered look. - Roughness & metallic -
roughness_strengthandmetallic_strength(0-3) are brightness multipliers, plusinvert_roughnessandinvert_metallictoggles for maps whose convention is flipped. - Normals -
normal_strength(0-2) flattens (0.5) or exaggerates (1.5-2.0) the bump, andinvert_normal_greenflips OpenGL↔DirectX in one click. - Albedo -
albedo_dimmer(0-1, 1 = black) andalbedo_saturation(0-3; 1.2-1.5 for vibrant) for color grading without a separate color node. - Transparency -
invert_transparencyandembed_transparency(which writes the transparency map into the albedo's alpha channel, handy for cutout materials).
The knobs a beginner should touch first
Just three. ao_strength_albedo at 1.0 to give the material depth, roughness_strength at 1.1-1.3 because AI roughness is usually too dark, and albedo_saturation around 1.1-1.2 to fight the washed-out AI albedo. Get those three right and the material already looks 80% better. The rest are refinements.
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 models, no pip deps - pure tensor math on the maps already in your pipe.
Gotchas
Because it operates on the whole pipe, changes apply to every map of that type - there's no per-region control here; that's what masks and the Material Mixer are for. And the brightness multipliers are plain multiplies, so on a pipe where the roughness map came in already bright, roughness_strength can push it past 1.0 (over-bright) fast - dial in small steps. Preview before and after with PBR Pipe Preview and it becomes obvious what each knob actually did.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| pbr_pipe | PBR_PIPE | — | |
| ao_strength_albedo | FLOAT | 1.000–2 | Multiply AO over albedo (darkens occluded areas) |
| ao_strength_roughness | FLOAT | 0.000–2 | Multiply AO over roughness (occluded areas become rougher) |
| roughness_strength | FLOAT | 1.000–3 | Brightness multiplier for roughness |
| invert_roughness | BOOLEAN | false | Invert roughness map (rough becomes smooth) |
| metallic_strength | FLOAT | 1.000–3 | Brightness multiplier for metallic |
| invert_metallic | BOOLEAN | false | Invert metallic map |
| normal_strength | FLOAT | 1.000–2 | Normal map intensity (1.0=original, 0.0=flat, 2.0=exaggerated) |
| invert_normal_green | BOOLEAN | false | Flip green channel (OpenGL vs DirectX) |
| invert_transparency | BOOLEAN | false | Invert transparency map |
| embed_transparency | BOOLEAN | false | Embed transparency map into albedo's alpha channel |
| albedo_dimmer | FLOAT | 0.000–1 | Darken albedo (0.0=no change, 1.0=black) |
| albedo_saturation | FLOAT | 1.000–3 | Albedo color saturation (1.0=original, 0.0=grayscale, >1.0=vibrant) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| pbr_pipe | PBR_PIPE | — |