Equalize Histogram
Flatten any image's histogram with zero knobs
- IMAGE
- IMAGE
JDC_EqualizeGrey has exactly one input, no settings, and one job: equalize the histogram. It takes whatever image you feed it, redistributes the pixel values so the histogram is spread out as evenly as possible, and hands the result back. You get more visible detail in flat, muddy regions - shadows gain texture, highlights separate - and you get it with literally nothing to tune. Plug it in, done.
It's the "Equalize Histogram" node from comfy-plasma by Jordach, and it's the pack's simplest utility.
How it works
Under the hood it's Pillow's ImageOps.equalize, which performs classic histogram equalization: it builds a cumulative histogram and remaps each pixel so that every brightness level ends up with roughly the same count. The practical effect is that any image with its tones crammed into a narrow band - a dim render, a scan, a texture that reads as flat gray - gets its hidden variation pulled out.
Two things worth knowing about what it does not do:
- It doesn't stretch to pure black and pure white the way auto-contrast does. Equalization is about distribution, not about hitting the extremes. If what you want is "make it more contrasty," use the pack's
JDC_AutoContrastinstead; this node is for revealing detail. - It processes each RGB channel independently (the name says Grey, but it equalizes color images channel-by-channel, which can subtly shift color balance). On color images that's usually fine; on skin tones you may notice it. If you want the pure luminance-only version, run it through
JDC_Greyscalefirst.
Input: IMAGE. Output: IMAGE. No batch handling - one frame at a time.
When you'd reach for it
- A render came out flat and you want to see if there's detail hiding in the shadows before you re-roll the sampler.
- Textures and masks that read as a uniform blob - equalization can separate bands you didn't know were there.
- Preparing flat source images for further grading, so the next node starts from a richer histogram.
It's a "look, then decide" node: cheap to run, and it tells you quickly whether the information is actually in the pixels.
Install
No requirements.txt, no models, nothing extra. ComfyUI Manager → Install Custom Nodes → search comfy-plasma → install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/Jordach/comfy-plasma
Restart ComfyUI. It's under image/postprocessing.
Common issues
The most common "problem" is actually a mismatch of expectations: people feed it a washed-out image and expect a contrast boost, but get a detail-revealing re-map instead. If the output looks grayer than you'd like, that's the equalization working as designed - reach for auto-contrast for punch. And watch the per-channel color shift on images with large flat color areas; if the hue drifts, that's the independent-channel processing, not your monitor.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| IMAGE | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |