Simple Recolor
The two-color gradient that makes stylized albedos trivial
- image
- image
Want a height map to become a stylized albedo? Or an AO map to become a gold-on-bronze material? Simple Recolor is the two-color gradient node that makes that a two-minute job. It maps the brightness of your input onto a gradient between a dark color and a light color. That's the entire mechanic, and it's exactly the right amount of machinery for a whole class of stylized-material work.
How it works
The node converts your image to grayscale using perceptual luminance weights (Rec. 709-style), then uses that brightness as a position along a gradient. dark_color_r/g/b is the color for shadows, light_color_r/g/b is the color for highlights, each given as RGB floats from 0 to 1.
blend_mode changes the interpolation curve:
smooth(default) - applies a smoothstep, so the transition sits gently between the two colors instead of being a straight linear ramp. Better for organic, soft materials.linear- a straight gradient. Crisper transitions, good for graphic, technical looks.
So a height map through this with dark brown → bright gold gives you a stylized metallic albedo that you can then feed into the rest of a PBR pipeline. Swap the colors and the same height map becomes rust on steel, or teal on slate.
What to reach for it for
It's the quick color-variation tool: you can take one base map and spin out a dozen color variants by changing six floats. That's great for material-set iteration - engine-ready albedo variants from a single height or AO source - and for heatmap-style visualizations. The pack's own workflow docs pair it with the Color Ramp node for fancier presets; this is the no-frills version.
Installing it
Part of amtarr/ComfyUI-TextureAlchemy. ComfyUI Manager → search "Texture Alchemy", or:
cd ComfyUI/custom_nodes
git clone https://github.com/amtarr/ComfyUI-TextureAlchemy
Restart, then right-click → Add Node → Texture Alchemist → Color. No dependencies, no models - a couple of tensor multiplies on ComfyUI's bundled PyTorch.
The honest gotchas
Because it keys off brightness only, any baked lighting or color variation in your source becomes variation in the output - a shadowed corner of a height photo will come out darker on the gradient even if it's the same height. Feed it clean maps. Also, the dark and light colors are floats, not hex; if you're used to picking hexes, you'll be converting (or reach for Shuffle Custom Colors' hex inputs for masks instead). And the usual pack quirk: a console banner prints each run, which is normal.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| dark_color_r | FLOAT | 0.000–1 | — |
| dark_color_g | FLOAT | 0.000–1 | — |
| dark_color_b | FLOAT | 0.000–1 | — |
| light_color_r | FLOAT | 1.000–1 | — |
| light_color_g | FLOAT | 1.000–1 | — |
| light_color_b | FLOAT | 1.000–1 | — |
| blend_mode | COMBO | smooth | How to blend between colors |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |