Nodes/Chye ComfyUI Toolset/🎬 CYH Post Process | ARRI Halation
ComfyUI Node

🎬 CYH Post Process | ARRI Halation

That dreamy highlight glow everyone's chasing

By chyerΒ·Created about a year agoΒ·Updated 6 months agoΒ· 1
🎬 CYH Post Process | ARRI Halation
  • image
  • IMAGE
β—„threshold220β–Ί
β—„blur_size25β–Ί
β—„intensity0.60β–Ί
β—„temperature6500β–Ί
β—„saturation1.00β–Ί
β—„tint0.00β–Ί
β—„gamma1.00β–Ί
β—„exposure0.0β–Ί
β—„contrast1.00β–Ί

Halation is that soft, colored bloom that wraps around bright highlights in real film - the reason a streetlight in a movie looks like it's glowing through fog rather than just being bright. Diffusion models will happily render the light, but they won't give you the bloom. That's what this node adds, and it's the trendy finishing move in the cinematic-image corner of the community right now.

It's one of four post-process nodes in the Chye ComfyUI Toolset, sitting after VAE Decode: KSampler β†’ VAE Decode β†’ CYH Post Process | ARRI Halation β†’ Save.

How it works

The mechanism is classic and easy to follow:

  1. Convert the image to luminance and threshold it - pixels brighter than threshold (default 220) become the "highlight mask."
  2. Build a colored glow mask from that mask, tinted by a color-temperature conversion (Kelvin β†’ RGB, black-body approximation).
  3. Gaussian-blur the mask by blur_size (default 25) so the glow spreads outward instead of hugging the highlight.
  4. Additively blend the glow back onto the image, scaled by intensity.

Blur a mask, add it back. That's halation in four steps, and it's the same approach professional film-emulation tools use - threshold highlights, color them, blur, blend.

The inputs that matter

Image in, and these are the three to reach for first:

  • threshold (0–255, default 220) - what counts as a highlight. Lower it and more of the image glows; 220 keeps it to the actual hot spots.
  • blur_size (1–101, default 25) - the spread of the glow. This is the personality knob: small = tight halo, large = dreamy haze.
  • intensity (0–1, default 0.6) - how strong the blend is. 0.3–0.6 is the tasteful range for a "real" look; push past 0.8 and it gets very stylized.

Then there's a full color-grade suite bolted on - temperature (Kelvin, 1000–40000), saturation, tint (green–magenta), gamma, exposure (EV stops), contrast - applied to the glow color. That's how you get warm amber blooms (low Kelvin) or cool blue ones. Output is IMAGE.

Where it bites

Same limitation as the pack's other post-process nodes: only the first image in a batch is processed (the code takes image_np[0] and drops the rest). And it's a CPU OpenCV pass - a few seconds on a 1024Β² image, more at 4K. Neither is fatal; both matter if you're feeding it batches or big frames.

Also worth knowing: this is the effect of ARRI halation, not a simulation of a specific ARRI sensor/optical stack. The "ARRI" in the name is vibe, not fidelity - there's no camera profile under the hood. If you want true film emulation with named stocks, this won't get you there; it gets you the glow.

Install

ComfyUI Manager (search "Chye ComfyUI Toolset"), or:

cd ComfyUI/custom_nodes
git clone https://github.com/chyer/Chye-ComfyUI-Toolset
cd Chye-ComfyUI-Toolset
pip install -r requirements.txt

Restart ComfyUI. The node needs opencv-python (from the pack's requirements.txt), which you almost certainly already have if you run other post-process packs. Zip installs need .git/.cnr-id (Chye-ComfyUI-Toolset) per the README.

Verdict

If you want the halation look without building the blur-and-add pipeline yourself, this is the quickest on-ramp in the pack, and the Kelvin-tinted glow control is genuinely nice. Treat it as a stylize tool, not a film emulator, and you'll be happy.

Categorypost_process

Inputs (10)

NameTypeDefaultDescription
imageIMAGEβ€”
thresholdINT2200–255β€”
blur_sizeINT251–101β€”
intensityFLOAT0.600–1β€”
temperatureINT65001000–40000β€”
saturationFLOAT1.000–2β€”
tintFLOAT0.00-1–1β€”
gammaFLOAT1.000.5–2.5β€”
exposureFLOAT0.0-4–4β€”
contrastFLOAT1.000.5–2β€”

Outputs (1)

NameTypeDescription
IMAGEIMAGEβ€”