Nodes/ComfyUI-TextureAlchemy/SSS Map Generator
ComfyUI Node

SSS Map Generator

Fake subsurface scattering in one node

By amtarr·Created 9 months ago·Updated 4 months ago· 58
SSS Map Generator
  • albedo
  • thickness
  • sss_map
scatter_color#FFCCAA
scatter_strength0.50
depth_influence0.30

Subsurface scattering is what makes skin look like skin instead of plastic, and it's also why wax, jade, marble, and candle materials look alive in a renderer. If you're building PBR material sets for a game engine or a render pipeline, you eventually need an SSS map - and most texture pipelines just... don't have one. The SSS Map Generator gives you a plausible one from your albedo in a single node, no Blender baking required.

The trick it exploits is that scattering is mostly an illusion driven by color and thickness. Dark, translucent areas scatter more; bright, opaque areas scatter less. The node encodes exactly that intuition into a map you can plug into the subsurface slot of any PBR material.

How it works

It reads the albedo's luminosity, then builds a scatter strength field where darker pixels get more weight (depth_influence controls how much darkness matters). If you feed an optional thickness map, it multiplies that field - thicker areas scatter more, which is physically backwards from intuition but right for most renderers' thickness semantics. Then it tints everything by your scatter_color and blends the result back with the albedo, so you end up with a colored SSS map rather than a bare mask.

The inputs

  • albedo - your base color map. Everything derives from this.
  • scatter_color - a hex string like #FFCCAA. The default is a skin tone, and that default is the strongest argument for just trying it before you touch anything. For jade you'd go green, for wax a warm off-white.
  • scatter_strength - 0 to 1, default 0.5. How much the tint bleeds into the result.
  • depth_influence - 0 to 1, default 0.3. Higher means darker areas scatter noticeably more.
  • thickness (optional) - if your pipeline already has a thickness/geometry map, plug it in and the node resizes it to match the albedo automatically.

Output is a single sss_map IMAGE. Wire it into the SSS/scattering slot of your engine's material, or drop it into a channel packer if your engine stores it in a texture channel.

Gotchas

scatter_color is a string, not a color widget - you type #FFCCAA into the field. Get the hex wrong (or forget the #) and the parse just produces a garbage tint, so keep the format consistent. Also remember this is a heuristic, not a physical simulation: it reads fine for stylized and semi-realistic materials, but if you're doing hero-shot skin for a film you'll still want a proper thickness pass. For a game asset or a stylized material, it's honestly great value for zero effort.

Installation

Part of the amtarr/ComfyUI-TextureAlchemy pack, under Add Node → Texture Alchemist → Materials. Install via ComfyUI Manager (search "TextureAlchemy") or:

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

Restart ComfyUI. No requirements file, no model downloads - it's pure torch math, so there's nothing extra to install.

CategoryTexture Alchemist/Materials

Inputs (5)

NameTypeDefaultDescription
albedoIMAGE
scatter_colorSTRING#FFCCAASSS tint color (e.g., #FFCCAA for skin)
scatter_strengthFLOAT0.500–1
depth_influenceFLOAT0.300–1How much darker areas scatter more
thicknessoptIMAGE

Outputs (1)

NameTypeDescription
sss_mapIMAGE