Degrease (GeN13)
The retouch pass that refuses to touch anything but skin
- images
- images
Generated portraits have a look. Not "AI look" in the composition sense - in the skin sense. Every pore rendered at equal sharpness, every highlight oily, a sheen across the forehead that reads like the subject has been basted, and a red-orange cast in the cheeks that gets worse the closer the camera gets. You can prompt against it, you can LoRA against it, and you'll still end up doing a skin pass.
Degrease (GeN13) is that pass, packaged as one node with five sliders. It's deterministic - no model, no sampler, no re-roll. Point it at finished frames and it retouches skin.
What it does, mechanically
The node builds a skin mask and does everything behind it. The mask is HSV-based: hue banded around 25° with a soft falloff, weighted by saturation (below ~0.12 it does nothing, above ~0.5 full strength) and by brightness (very dark pixels are left alone because hue is unreliable down there). So it won't touch a grey wall, a wooden cabinet, or a black shirt that happens to sit near skin hue. Then there's a feature map - eyes, lashes, brows, lips - built from the edges inside that mask and grown outward a few pixels, so the effects stop at the boundary of a feature instead of smearing it.
With that in place the five effects are small, targeted filters: deblemish fills small dark spots using line-shaped maximum filters in several directions (spot detection, not clone-stamping - moles and acne fade, and the protection map means a pupil or a lash tip doesn't count as a blemish), smooth does an edge-preserving blur of skin texture, deshine pulls specular luminance down, even_tone pushes the reddish-orange chroma toward neutral inside the mask, and decontour flattens the mid-frequency light/shadow structure across the face.
Only the luma gets replaced where it needs to be in most of these passes - which is the reason the output still looks like your render and not like a smoothed-out painting.
The inputs you'll actually set
images in, images out. Between them:
enabled- bypass gives you the frames back unchanged, so you can A/B it without rewiring.deblemish(default 80) - this is the aggressive one. At 80 the model's moles, freckles and skin texture marks fade hard. For a beauty look, great. For a character with a distinctive face, drop to 30–50 or you've erased the thing that made them recognisable.smooth(default 30) - pores and smile lines. Somewhere between 20 and 40 is the useful range; past 60 you're doing phone-beauty-filter, which is a look, just be aware it's the look.deshine(15) andeven_tone(10) - the default 15/10 pair does more than you'd expect on glossy AI skin. Small nudges here are usually enough.decontour(10) - flattening light and shadow across the face. This is the one that can make a portrait look flat and CG'd if you overdo it, because it's removing the modelling that makes a face read as three-dimensional.
Every slider is 0–100 with 0 meaning off, so a single effect can be dialled in without the others.
Using it on video
Feed it the decoded frame batch and it processes each frame with the same settings. That's why the pack's own example workflow puts it after Color Match Temporal: correct the drift first, then retouch, so the retouch isn't chasing a colour cast that shifts between frames.
The honest caveat about any per-frame filter: the mask depends on the pixels, so if the skin's hue or brightness swings frame to frame, the strength of the effect swings with it. Get the colour settled first and this is a non-issue.
Installing
ComfyUI Manager, search GeN13, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/heigen13/ComfyUI-GeN13
pip install -r ComfyUI-GeN13/requirements.txt
The pack's one dependency (nvidia-ml-py) belongs to its resource monitor, not to this node. Degrease itself is torch and numpy - no model download, no extra wheels, no .pth to put in a folder. This runs on CPU if you must, though on a batch of video frames you'll want it on the GPU.
Where it goes wrong
It's a skin-only filter, so a frame where the subject is backlit, in shadow, or deliberately desaturated gives the node less to work with - the saturation and brightness weights close the mask down, and you get a quieter effect rather than an obvious one. That's by design, but it will read as "the node did nothing" if you don't know it.
And it is not a face-repair tool. It has no idea where a face is - it works on skin-coloured regions wherever they are, hands and knees included. If the actual problem is a mangled eye or a bad mouth, that's an inpainting or detailer job, not a retouch pass. Degrease cleans what's already shaped right.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | Frames: connect after Color Match Temporal. | |
| enabled | BOOLEAN | true | Enabled: BYPASS outputs the frames unchanged. |
| smooth | FLOAT | 300–100 | Skin smoothing: higher values soften pores, fine lines and smile lines more. |
| deblemish | FLOAT | 800–100 | Blemish removal: higher values fade moles, spots, acne and red bumps more. |
| deshine | FLOAT | 150–100 | Shine removal: higher values reduce oily highlights on skin more. |
| even_tone | FLOAT | 100–100 | Tone evening: higher values even out reddish-orange skin more. |
| decontour | FLOAT | 100–100 | Contour flattening: higher values soften light and shadow across the face more. |
| cool_fairopt | FLOAT | 00–100 | Cool fair skin: higher values move skin toward a lighter, cooler tone; lips keep their color. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |