Nodes/ComfyUI-TextureAlchemy/Multi-Texture Blender
ComfyUI Node

Multi-Texture Blender

The poor man's Substance layer stack

By amtarr·Created 9 months ago·Updated 4 months ago· 58
Multi-Texture Blender
  • base
  • layer1
  • layer1_mask
  • layer2
  • layer2_mask
  • layer3
  • layer3_mask
  • result
layer1_modenormal
layer1_opacity1.00
layer2_modemultiply
layer2_opacity1.00
layer3_modeoverlay
layer3_opacity1.00

Texture work is layer work. You have a base, you want moss in the cracks, dust in the corners, and some grime only where the mask says - that's a layer stack, and this node is a mini layer stack in a single box. It's the one I reach for instead of chaining five blend nodes in a row.

The idea is simple and genuinely useful: one base image, then up to three optional layers, each with its own blend mode, opacity, and mask. The result is a single result IMAGE. Where this shines is material assembly - take a base albedo, multiply a detail map, overlay some weathering, and mask it so the grime only lands in crevices. The pack's own philosophy leans on exactly this pattern for "brick + moss" style layering.

How it works

Each connected layer is composited onto the running result in order, Photoshop-style. Fourteen blend modes are available - normal, multiply, screen, overlay, soft/hard light, color dodge/burn, linear dodge/burn, difference, subtract, lighter, darker. The important defaults are chosen thoughtfully: layer 1 defaults to normal, layer 2 to multiply, layer 3 to overlay, so the node behaves sensibly even if you only connect images and never touch a dropdown. Masks are optional per layer; a connected mask limits the blend to where it's white.

The inputs

  • base - required. Everything stacks on this.
  • layer1 / layer2 / layer3 - optional images. Unconnected layers are skipped cleanly, so you can build a 2-layer stack and add a third later.
  • Each layer's _mode (blend mode), _opacity (0–1), and _mask (optional IMAGE).

Output is one result IMAGE.

Gotchas worth knowing

Masks are IMAGE type, not MASK type - if you're coming from a mask-editing node that emits a MASK, run it through an image conversion first or the socket won't connect. And opacity isn't smart about masks: with both a mask and a low opacity, the two multiply together, which is usually what you want but can be surprising if you expected one to dominate. Blend modes also assume images are the same size; feed it mismatched dimensions and you'll get a shape mismatch rather than an auto-resize. Keep your layers at the same resolution.

Installation

Ships in amtarr/ComfyUI-TextureAlchemy under Add Node → Texture Alchemist → Blending. Install via ComfyUI Manager (search "TextureAlchemy") or:

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

Restart ComfyUI. No requirements.txt, no model files - this is pure torch compositing, so there's nothing else to install.

CategoryTexture Alchemist/Blending

Inputs (13)

NameTypeDefaultDescription
baseIMAGE
layer1optIMAGE
layer1_modeoptCOMBOnormal14 options: normal, multiply, screen, overlay, soft_light, hard_light, +8
layer1_opacityoptFLOAT1.000–1
layer1_maskoptIMAGE
layer2optIMAGE
layer2_modeoptCOMBOmultiply14 options: normal, multiply, screen, overlay, soft_light, hard_light, +8
layer2_opacityoptFLOAT1.000–1
layer2_maskoptIMAGE
layer3optIMAGE
layer3_modeoptCOMBOoverlay14 options: normal, multiply, screen, overlay, soft_light, hard_light, +8
layer3_opacityoptFLOAT1.000–1
layer3_maskoptIMAGE

Outputs (1)

NameTypeDescription
resultIMAGE