Nodes/ComfyUI-TextureAlchemy/PBR Pipeline Adjuster
ComfyUI Node

PBR Pipeline Adjuster

The One Node That Fixes a Whole Material at Once

By amtarr·Created 9 months ago·Updated 4 months ago· 58
PBR Pipeline Adjuster
  • pbr_pipe
  • pbr_pipe
ao_strength_albedo1.00
ao_strength_roughness0.00
roughness_strength1.00
invert_roughnessfalse
metallic_strength1.00
invert_metallicfalse
normal_strength1.00
invert_normal_greenfalse
invert_transparencyfalse
embed_transparencyfalse
albedo_dimmer0.00
albedo_saturation1.00

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_strength and metallic_strength (0-3) are brightness multipliers, plus invert_roughness and invert_metallic toggles for maps whose convention is flipped.
  • Normals - normal_strength (0-2) flattens (0.5) or exaggerates (1.5-2.0) the bump, and invert_normal_green flips OpenGL↔DirectX in one click.
  • Albedo - albedo_dimmer (0-1, 1 = black) and albedo_saturation (0-3; 1.2-1.5 for vibrant) for color grading without a separate color node.
  • Transparency - invert_transparency and embed_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.

CategoryTexture Alchemist/Pipeline

Inputs (13)

NameTypeDefaultDescription
pbr_pipePBR_PIPE
ao_strength_albedoFLOAT1.000–2Multiply AO over albedo (darkens occluded areas)
ao_strength_roughnessFLOAT0.000–2Multiply AO over roughness (occluded areas become rougher)
roughness_strengthFLOAT1.000–3Brightness multiplier for roughness
invert_roughnessBOOLEANfalseInvert roughness map (rough becomes smooth)
metallic_strengthFLOAT1.000–3Brightness multiplier for metallic
invert_metallicBOOLEANfalseInvert metallic map
normal_strengthFLOAT1.000–2Normal map intensity (1.0=original, 0.0=flat, 2.0=exaggerated)
invert_normal_greenBOOLEANfalseFlip green channel (OpenGL vs DirectX)
invert_transparencyBOOLEANfalseInvert transparency map
embed_transparencyBOOLEANfalseEmbed transparency map into albedo's alpha channel
albedo_dimmerFLOAT0.000–1Darken albedo (0.0=no change, 1.0=black)
albedo_saturationFLOAT1.000–3Albedo color saturation (1.0=original, 0.0=grayscale, >1.0=vibrant)

Outputs (1)

NameTypeDescription
pbr_pipePBR_PIPE