Nodes/SAX Bridge/SAX Finisher
ComfyUI Node

SAX Finisher

Color, sharpen, bloom, vignette — the last node before you save

By so16tm·Created 6 months ago·Updated 3 months ago· 0
SAX Finisher
  • pipe
  • reference_image
  • PIPE
  • IMAGE
color_correction0.00
smooth0.00
sharpen_strength0.00
sharpen_sigma1.0
bloom0.00
bloom_threshold0.70
bloom_radius8
vignette0.00
color_temp0.00
grayscalefalse

You've sampled, upscaled, detailed - and the image still isn't quite there. It's slightly oversharp, the colors are a hair off from the reference you had in mind, the edges could use a vignette. In stock ComfyUI that's four or five different post-processing packs and a tangle of wires. SAX Finisher bundles the whole finishing pass into one node: color correction, smoothing, sharpening, bloom, vignette, color temperature, and grayscale, all applied in a defined order to the pipe's image, all disabled by default. It's the "place between Detailer and Output" node, and its entire ethos is that every knob defaults to off - you opt into exactly the look you want.

Nothing here runs a model. Per the KB's post-processing doc, these are deterministic pixel operations - gamma curves and blur passes, the kind of thing you should never waste a diffusion pass on. That's the whole point of the node: instant, predictable, repeatable finishing.

The inputs, in application order

The effects run in a fixed pipeline: color_correctionsmoothsharpenbloomvignettecolor_tempgrayscale.

  • color_correction (0–1, needs reference_image) - mean/std color matching to a reference image. Connect a reference, set 0.7–1.0, and the output's color distribution moves toward it. This is the KB's "color match" primitive, and it's the honest fix for "the colors are off" - deterministic and instant, versus re-rolling a generation. No reference connected = this step is skipped.
  • smooth (0–1) - high-frequency suppression; kills jaggies and oversharp edges. 0.1–0.3 is the recommended band.
  • sharpen_strength (0–2) + sharpen_sigma - unsharp masking. This is the KB's blur-and-difference recipe: sigma picks what counts as "detail," strength adds it back. Cranking strength produces halos; keep it gentle.
  • bloom (0–1) + bloom_threshold + bloom_radius - bright-area glow. Threshold controls what counts as bright (lower = more glow), radius is the gaussian spread. 0.1–0.3 subtle, 0.5+ dreamy.
  • vignette (0–1) - edge darkening, 0.2–0.4 subtle.
  • color_temp (−1 to +1) - warm positive, cool negative.
  • grayscale (bool) - BT.709 monochrome, deliberately applied last so it overrides all the color work.

The one you'll actually use

For most people it's color_correction. Outpainted regions, upscaled tiles, composited subjects - anything that doesn't match its surroundings gets fixed here in milliseconds, which is exactly the job the KB's post-processing doc says people keep doing by hand. After that, smooth + light sharpen is the standard de-crunch combo for AI output that oversharpened somewhere upstream. Bloom and vignette are taste; grayscale is a scene toggle you'd wire to a Toggle Manager rather than live with as a permanent setting.

Outputs and wiring

It takes a PIPE and returns PIPE (with the adjusted image written back into pipe.images, so downstream nodes see the finished version) and IMAGE for the output node. If everything's off and no reference is connected, the pipe passes through unchanged - so it's safe to leave permanently in the chain. Install with the pack:

cd ComfyUI/custom_nodes
git clone https://github.com/so16tm/SAX_Bridge

SAX/Bridge/Enhance → SAX Finisher, between Detailer and Output. The node's design is honest about its limits too: it's a colorist, not a compositor. For true scene-linear VFX work you'd want the OCIO pipeline the KB describes - but for finishing a single image, this is a complete toolkit.

CategorySAX/Bridge/Enhance

Inputs (12)

NameTypeDefaultDescription
pipePIPE_LINE
color_correctionFLOAT0.000–1Matches color distribution to reference image. 0=off, 0.7-1.0=recommended.
smoothFLOAT0.000–1High-frequency smoothing. Reduces jaggies and harsh edges. 0=off, 0.1-0.3=recommended.
sharpen_strengthFLOAT0.000–2Unsharp Mask sharpening strength. 0=off.
sharpen_sigmaFLOAT1.00.1–5Sharpening kernel width. Smaller values affect finer edges and details.
bloomFLOAT0.000–1Soft glow from bright areas. 0=off, 0.1-0.3=subtle, 0.5+=dreamy.
bloom_thresholdFLOAT0.700–1Brightness threshold for bloom extraction. Lower=more glow.
bloom_radiusFLOAT81–32Bloom spread radius (gaussian sigma).
vignetteFLOAT0.000–1Edge darkening to draw focus to center. 0=off, 0.2-0.4=subtle.
color_tempFLOAT0.00-1–1Color temperature shift. Positive=warm, negative=cool. 0=neutral.
grayscaleBOOLEANfalseConvert to grayscale (ITU-R BT.709). Applied last so it overrides color adjustments.
reference_imageoptIMAGEReference image for color correction. If not connected, color correction is skipped.

Outputs (2)

NameTypeDescription
PIPEPIPE_LINE
IMAGEIMAGE