Nodes/ComfyUI-TextureAlchemy/PBR Material Mixer
ComfyUI Node

PBR Material Mixer

Blend Two Complete Materials Into One (Masked or Not)

By amtarr·Created 9 months ago·Updated 4 months ago· 58
PBR Material Mixer
  • base_pipe
  • overlay_pipe
  • mask
  • pbr_pipe
blend_modemix
blend_strength0.50

You've got a brick material and a moss material, and you want moss growing on the bricks - not a half-and-half mush. PBR Material Mixer is the node that does material layering properly: it takes two full PBR_PIPEs and blends them map-for-map, so the albedo, normals, roughness, and everything else combine together instead of one map fighting another.

This is the layer tool for whole materials. The README's canonical example is exactly the brick + moss case, and the optional mask input is what makes it work like a real layer stack - the mask decides where the overlay shows through, with smooth falloff instead of a hard cut.

How it works

It walks every map name present in either pipe and blends the two versions using your blend_mode:

  • mix - plain linear crossfade, controlled by blend_strength (0 = base only, 1 = overlay only).
  • multiply - the overlay darkens the base; useful for grime and stains.
  • overlay - Photoshop-style contrast blend; great for adding detail texture on top.
  • add - brightens; good for light/emission effects.
  • screen - brightens while preserving blacks; the classic for glows.

If one material lacks a map the other has, that map just passes through, so you can mix a 4-map material with an 8-map material without filling in blanks. If a map exists in both, the blend applies per-map and per-pixel. The optional mask drives the blend spatially - where the mask is white you get the overlay, where it's black you get the base, and grays blend. Masks can come from anywhere: the pack's mask generators, a curvature map, a hand-painted selection.

Inputs and outputs

  • base_pipe and overlay_pipe - the two materials (required).
  • blend_mode and blend_strength - the how and how much.
  • mask - optional, the where.

Single output: pbr_pipe, the mixed material, ready for the Adjuster, Saver, or a second Mixer (you can layer three materials by chaining two Mixers - the README's pro tip for detail layering).

Installing it

Part of TextureAlchemy:

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

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

Where people get burned

The biggest trap is expectation: blending two materials is not the same as blending two images. The node blends each map with the same mode, which is usually what you want - but a mask that works great for albedo can look odd on normals if the two materials' normal maps are different formats. Get your normals both in the same format first (the pack has a converter for that). Also: mix at 0.5 with no mask gives you a flat crossfade, which is rarely what anyone means by "mix two materials" - if you want controlled layering, bring a mask.

CategoryTexture Alchemist/Pipeline

Inputs (5)

NameTypeDefaultDescription
base_pipePBR_PIPE
overlay_pipePBR_PIPE
blend_modeCOMBOmixBlend mode for combining materials
blend_strengthFLOAT0.500–1Blend amount (0=base only, 1=overlay only)
maskoptIMAGE

Outputs (1)

NameTypeDescription
pbr_pipePBR_PIPE