BMAB Basic
The color-grading pass, no sampling required
- bind
- image
- BMAB bind
- image
Every other node in this pack that touches your image runs it back through the sampler. This one doesn't. BMAB Basic is a straight pixel-level adjustment pass - contrast, brightness, sharpness, saturation, color temperature, and grain - the kind of thing you'd do in Lightroom after the fact, not another generation step. That makes it cheap (no GPU-heavy denoising loop) and safe to slot in as a final polish at the very end of a pipeline, or even standalone with no BMAB pipeline behind it at all.
The dials
All six required inputs are simple numeric adjustments, and all six default to a no-op value (1 for the multiplicative ones, 0 for the additive ones), so dropping the node in and leaving everything default changes nothing until you touch a slider:
contrast,brightness,color_saturation(0-2, default 1) - standard multiplicative adjustments. Below 1 reduces, above 1 boosts.sharpeness(sic - that's the actual field name) runs -5 to 5, default 1. Positive values sharpen; negative values are a soften/blur, which is the one people don't expect from a field called "sharpness."color_temperature(-2000 to 2000, default 0) - a Kelvin-style warm/cool shift. Negative pushes cooler/bluer, positive pushes warmer/oranger.noise_alpha(0-1, default 0) - adds film-grain-style noise. Useful for masking the slightly-too-clean look diffusion output can have, or for matching grain across a batch of composited images.
Where it plugs in
Both bind and image are optional here, which is unusual for a BMAB node and worth noticing - most of the pack's nodes require a bind from a BMAB Integrator upstream. Basic doesn't. Feed it just an image and it works as a standalone color-grade node anywhere in your graph, BMAB pipeline or not. Feed it a bind instead (or as well) and it slots into a BMAB chain the same way every other node here does - pulling the image off the bind, adjusting it, and passing an updated bind plus image onward.
Installing it
ComfyUI Manager: search comfyui_bmab, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/portu-sim/comfyui_bmab.git
cd comfyui_bmab
pip install -r requirements.txt
Plus the two sibling packs the README calls for regardless of which BMAB node you're actually using - comfyui_controlnet_aux and ComfyUI_IPAdapter_plus - cloned and pip-installed the same way. Neither is required for Basic specifically, since it's pure image processing with no detection or sampling, but BMAB as a whole expects them installed.
Where people trip up
The main one is sharpeness at a negative value doing the opposite of what the name suggests - if your image comes out softer than expected and you haven't touched anything else, check this field is actually positive. The other is ordering: since Basic doesn't sample, running it before a detailer pass means your color/contrast adjustments get partially undone or altered by whatever VAE round-trip the next sampling step does. If you want the grade to be the last thing that happens to the image, put this node at the very end of the chain, after your detailers and resize nodes, not in the middle of it.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| contrast | FLOAT | 1.000–2 | — |
| brightness | FLOAT | 1.000–2 | — |
| sharpeness | FLOAT | 1.0-5–5 | — |
| color_saturation | FLOAT | 1.000–2 | — |
| color_temperature | INT | 0-2000–2000 | — |
| noise_alpha | FLOAT | 0.000–1 | — |
| bindopt | BMAB bind | — | |
| imageopt | IMAGE | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| BMAB bind | BMAB bind | — |
| image | IMAGE | — |