Nodes/ComfyUI-PostFx/PostFx Custom Look
ComfyUI Node

PostFx Custom Look

Hand-rolled grades in ComfyUI without re-rolling the seed

By 0xBeycan·Created 29 days ago·Updated 29 days ago· 0
PostFx Custom Look
  • look
  • look
temp0.00
tint0.00
exposure0.00
contrast0.00
vibrance0.00
saturation1.00
grain0.000
grain_size1.5
vignette0.00
halation0.00
clarity0.00

PostFx Custom Look is the pack's "do it yourself" node - the one you reach for when a built-in theme is almost right but you want your grade on it, or when you want to hand-build a look from scratch. It exposes the controls a colorist actually uses - white balance, exposure, contrast, vibrance, saturation, grain, vignette, halation, clarity - as sliders that feed the same CPU postfx pipeline as everything else in the pack. No model, no VRAM, and it's deterministic: same inputs, same result, every run.

The mechanism is the clever part, and it's why this node is worth understanding. Every control sits at a neutral value by default, and the node only applies the operations you've moved off neutral. Connect a base look (say, a theme) into the optional look input, nudge one slider, and only that one change rides on top of the theme - everything else passes through untouched. The code builds a dict of overrides and deep-merges it onto the base look, which is why you can stack this node in a chain after a PostFx Theme or PostFx LUT. It's effectively "this grade, plus my tweak," without you having to rebuild the whole look.

The inputs that matter, in rough order of how often you'll touch them:

  • exposure - ±3 stops of light. This is a real photographic exposure control, not the additive brightness slider that flattens contrast and clips highlights fast. Big one for lifting an underexposed render.
  • contrast - 0 to 1, an S-curve. That's the "it looked flat" fix, and it eases off at both ends instead of hard-clipping.
  • vibrance and saturation - vibrance (±1) lifts low-saturation pixels while protecting skin; saturation (0 to 2, 1 = unchanged) is the uniform knob. If skin tones are blowing out, reach for vibrance first.
  • grain and grain_size - grain is the single cheapest move for killing the "AI look"; the KB's post-processing doc is unambiguous that adding a little noise is how generated images read as captured. Keep grain small and set grain_size to taste (px at a 1024 edge).
  • vignette (0–1), halation (0–2, highlight bloom - your Cinestill 800T glow), clarity (±1 local contrast, negative softens).
  • temp / tint - white balance: temp >0 warms, tint >0 goes magenta.

Output is a single look of type POSTFX_LOOK, which you wire into PostFx Apply (or into another look node to keep stacking). The full beginner flow is: Load Image → PostFx Custom Look → PostFx Apply (condition + strength) → Save. Add a PostFx Theme feeding into Custom Look's look input once you want a film stock underneath your tweaks.

Install is the pack install: ComfyUI Manager (search ComfyUI-PostFx) or git clone https://github.com/0xBeycan/ComfyUI-PostFx into custom_nodes, pip install -r requirements.txt, restart. CPU-only, no model files.

Gotchas are mild. The controls that don't matter until you move them (that's the design, but it means grain at 0.0 adds nothing even with grain_size set). And remember this node produces a look, not a finished image - forget the Apply node and you've built a nice config that renders nothing. If a chained override ever seems to do nothing, check that the look actually reaches Apply, since a connected look overrides the theme dropdown wholesale.

CategoryPostFx

Inputs (12)

NameTypeDefaultDescription
tempFLOAT0.00-1–1White balance: >0 warm, <0 cool.
tintFLOAT0.00-1–1>0 magenta, <0 green.
exposureFLOAT0.00-3–3Stops of light.
contrastFLOAT0.000–1S-curve contrast strength.
vibranceFLOAT0.00-1–1Lifts low-sat pixels, protects skin.
saturationFLOAT1.000–2Uniform saturation (1 = unchanged).
grainFLOAT0.0000–0.1Luma grain amount.
grain_sizeFLOAT1.50.5–4Grain size (px @ 1024 edge).
vignetteFLOAT0.000–1Edge darkening amount.
halationFLOAT0.000–2Highlight bloom strength.
clarityFLOAT0.00-1–1Local contrast; <0 softens.
lookoptPOSTFX_LOOKBase look to override on top of (e.g. a theme).

Outputs (1)

NameTypeDescription
lookPOSTFX_LOOK