Advanced Bloom FX (CRT)
Bloom, plus a full color-grading suite you probably don't need yet
- image
- color_filter
- split_shadows
- split_highlights
- smh_shadow_color
- smh_midtone_color
- smh_highlight_color
- IMAGE
This is the biggest single node in the CRT-Nodes FX category by a wide margin - 21 inputs - and it's really two tools stacked into one: a bloom effect, and underneath it, a genuine three-way color grading suite of the kind you'd normally reach for DaVinci Resolve or Lightroom to do. If the sheer number of fields is intimidating, that's a fair reaction; the honest advice is to use maybe four of them at first and ignore the rest until you actually need professional color-grading vocabulary.
Bloom, the part most people came for
Bloom is the classic glow-around-bright-areas effect you'll recognize from game engines and film post - light sources and highlights spill a soft haze into the surrounding image rather than staying hard-edged. The mechanism here is the standard recipe: pixels brighter than bloom_threshold get pulled out, blurred by bloom_radius with bloom_smoothing controlling how soft that falloff is, then added back over the original at bloom_intensity. Four fields, and they're the ones worth learning first - bloom_intensity and bloom_threshold specifically will get you most of the visible effect on their own.
The color-grading half, for when you're ready
Past bloom, the node layers on real colorist tools:
- Basic tone:
exposure,lightness,saturation,hue_shift,contrast- the fundamentals, self-explanatory. - White balance:
temperatureandtint, plus acolor_filter(COLOR) for an overall tint overlay. - Split toning:
split_shadowsandsplit_highlights(both COLOR) withsplit_balance- this is the classic cinematic teal-and-orange trick, casting one color into your shadows and a different one into your highlights. - Shadows/Midtones/Highlights (SMH):
smh_shadow_color,smh_midtone_color,smh_highlight_color, plussmh_shadow_start/smh_shadow_endandsmh_highlight_start/smh_highlight_enddefining where each luminance range begins and ends - a three-way color-wheel setup, industry-standard terminology in professional color grading.
None of this is beginner vocabulary, and that's fine - it doesn't need to be. If you already know what split-toning and SMH grading mean, this node gives you real control over them without leaving ComfyUI. If you don't, skip this whole block for now; it's there when you grow into it, not a prerequisite for using the bloom effect.
The input and output that matter most to start
image- required.bloom_intensity(0-2, default 0.5) andbloom_threshold(0-1, default 0.8) - start here, adjust these two first, and leave everything else at default until the bloom itself looks right.
Output is a single IMAGE. It composes naturally with other FX nodes in the pack - Technicolor 2 FX or Colourfulness FX before or after it in a chain, depending on whether you want bloom to react to already-graded color or grade the bloomed result.
How to install it
Part of CRT-Nodes. Via ComfyUI Manager, search CRT-Nodes and install. Manually: git clone https://github.com/PGCRT/CRT-Nodes.git into custom_nodes, pip install -r requirements.txt, restart.
Common issues & troubleshooting
Bloom looks like the whole image is glowing, not just highlights. bloom_threshold is too low - raise it so only genuinely bright pixels get pulled into the glow pass, rather than midtones bleeding in too.
Color looks wildly off after touching temperature/tint/split-toning together. These stack - a strong temperature push plus aggressive split-toning colors compound rather than cancel out. Adjust one block at a time and check the result before layering the next.
Too many knobs, not sure where to start. That's a completely reasonable place to be with this node - set everything except bloom_intensity and bloom_threshold back to default and build up from there only if you specifically want the color-grading features.
Inputs (23)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| bloom_intensity | FLOAT | 0.500–2 | — |
| bloom_threshold | FLOAT | 0.800–1 | — |
| bloom_smoothing | FLOAT | 0.500–1 | — |
| bloom_radius | FLOAT | 151–150 | — |
| exposure | FLOAT | 1.000–5 | — |
| lightness | FLOAT | 0.00-1–1 | — |
| saturation | FLOAT | 0.00-1–1 | — |
| hue_shift | FLOAT | 0.00-1–1 | — |
| contrast | FLOAT | 0.00-1–1 | — |
| color_filter | COLOR | #FFFFFF | — |
| temperature | FLOAT | 0.00-1–1 | — |
| tint | FLOAT | 0.00-1–1 | — |
| split_shadows | COLOR | #808080 | — |
| split_highlights | COLOR | #808080 | — |
| split_balance | FLOAT | 0.00-1–1 | — |
| smh_shadow_color | COLOR | #FFFFFF | — |
| smh_midtone_color | COLOR | #FFFFFF | — |
| smh_highlight_color | COLOR | #FFFFFF | — |
| smh_shadow_start | FLOAT | 0.000–1 | — |
| smh_shadow_end | FLOAT | 0.300–1 | — |
| smh_highlight_start | FLOAT | 0.550–1 | — |
| smh_highlight_end | FLOAT | 1.000–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |