JT Brightness Adjustment
A brightness knob that does exactly one thing (and that's fine)
- image
- IMAGE
Some nodes need a whole article to explain. This one fits in a sentence: feed it an image, multiply every pixel by a number, clamp the result, hand the image back. That's the entire mechanism of JT Brightness Adjustment, and for a lot of quick image work it's exactly what you want.
Why you'd reach for it
ComfyUI gives you no brightness control out of the box. If a model you're using runs consistently dark, or you want to compare a prompt at two exposure levels without rebuilding anything, you have two options: install a full post-processing suite like WAS Node Suite and find its brightness node buried in a menu, or drop this one in. This node is the second option. It's one knob, it's honest, and it plugs straight into an existing IMAGE connection with no extra dependencies.
Where it shines is batch work. Because it operates on the whole tensor at once, a batch of images gets the same adjustment uniformly - useful for normalizing a set before you save them or feed them into a comparison.
How it works
Under the hood it's a one-liner: torch.clamp(image * brightness, 0.0, 1.0). Multiply each RGB value by your factor, then clamp anything that spills past pure black or pure white. That's the whole thing, and it's worth being clear about what that means: it works in linear RGB pixel space, not in any perceptual color space. A value of 0.5 literally halves every pixel value, which to the eye reads as a stronger darkening than "half as bright" in a photo-editing sense. If you need proper exposure control, tone curves, or highlight rolloff, this is the wrong tool - reach for a color-grading node instead. If you need "make it lighter" or "make it darker" with zero fuss, it's perfect.
The inputs that matter
There are only two, and you'll only touch one of them:
- image (IMAGE) - whatever's coming out of your sampler or VAE decode.
- brightness (FLOAT) - default 1.0, range 0.0 to 2.0, stepping 0.1. 1.0 is a no-op passthrough, below 1 darkens, above 1 brightens. Values are clamped after multiplication, so anything above 2 isn't allowed and anything below 0 would just be pure black anyway.
The single IMAGE output passes the adjusted tensor through, so you can chain it straight into a save node or anything else expecting an image.
Installing it
This ships inside the Comfyui_JTnodes pack, not on its own. Install the pack once and you get all eight JT nodes together:
cd ComfyUI/custom_nodes
git clone https://github.com/Jint8888/Comfyui_JTnodes
pip install "openai>=1.0.0" "openpyxl>=3.0.0"
or search "Comfyui_JTnodes" in ComfyUI Manager and install from there. One important detail: the repo has no requirements.txt, so neither Manager nor a plain clone will install the Python dependencies for you. The README's own install instructions tell you to run that pip install manually, and you should. Skip it and the whole pack fails to import (it pulls openai at load time), which means every JT node disappears from your menu, not just the LLM one. Then restart ComfyUI and look for the nodes under the JT category - this one lives in JT/image.
Gotchas worth knowing
- The README is written entirely in Chinese. The commands are universal, but if you're an English speaker this article is your crib sheet.
- Don't expect a firehose of updates: this is a small personal pack (MIT, currently v1.3.0) with essentially zero community footprint. It does what it says and nothing more.
That's the whole review. If you want a brightness slider that behaves like a slider and doesn't drag in three dozen unrelated nodes, this one earns its place. If you want actual photographic exposure, keep looking.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| brightness | FLOAT | 1.00–2 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |