PBR Material Mixer
Blend Two Complete Materials Into One (Masked or Not)
- base_pipe
- overlay_pipe
- mask
- pbr_pipe
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.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| base_pipe | PBR_PIPE | — | |
| overlay_pipe | PBR_PIPE | — | |
| blend_mode | COMBO | mix | Blend mode for combining materials |
| blend_strength | FLOAT | 0.500–1 | Blend amount (0=base only, 1=overlay only) |
| maskopt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| pbr_pipe | PBR_PIPE | — |