Pink Blush Overlay
Airbrush blush for anime faces, without the Photoshop round-trip
- image
- mask
- image
- blush_mask
If you've ever rendered an anime portrait and thought "it's fine, but it's missing that airbrushed pink glow the character sheet has" - this is the node for that. Pink Blush Overlay is a single-node post-processor that automates the webtoon artist's finishing trick: drop a soft pink onto an overlay layer and brush it across the skin. You hang it after KSampler + VAE Decode, before Save Image, and it figures out where the blush should go so you don't have to break out the image editor. It's a niche aesthetic node, but it's the kind of finishing step that makes flat renders read as hand-touched.
The name undersells it. This isn't a dumb tint slapped over the whole frame - that would wreck your palette. It detects skin, finds faces, targets the cheeks, and blends using the real Photoshop overlay formula, all locally. No API, no key, no model download. Just cv2 doing image processing.
How it works
The node converts your image to HSV and builds a skin mask using color ranges that depend on skin_mode: anime is the permissive one (hue 0–40 and 150–180, saturation as low as 8), realistic is tighter, and both blends the two. The mask gets morph-open/close to drop speckle noise, then a heavy Gaussian blur - that blur is your airbrush softness.
Faces are found with an OpenCV cascade, and this is where it gets a little weird: it tries to load an anime-tuned cascade (lbpcascade_animeface.xml) from a sibling pack, ComfyUI_SkinHighlightRemover, and silently falls back to OpenCV's built-in frontal-face Haar cascade if that pack isn't installed. Anime face detection on the stock Haar cascade is noticeably weaker, so for clean cheek targeting you want that sibling pack around. Each detected face gets two small circular cheek masks on the lower half, plus a full-face ellipse. body_focus vs face_blush decide how much weight goes to body skin versus those cheek circles, and highlight_boost adds extra pink wherever the V (brightness) channel is high - mimicking the airbrush-over-highlights look.
Finally, the pink is created from pink_hue and saturation in HSV, blended with the original via the overlay formula, and mixed in proportion to strength. The whole thing loops over every image in a batch, so it works fine on animatediff frame sequences.
The inputs that matter
A beginner really only touches a few of these:
skin_mode- start withanimeif you're doing webtoon-style art,realisticfor photos. This is the one that most changes where the pink lands.strength- overall effect. Default 0.15 is a subtle webtoon tint; push toward 0.3+ and you're in heavy blush territory fast.body_focus/face_blush- 0.7/0.3 defaults bias toward body skin. Dropbody_focusto 0 for face-only.
blur_radius (default 51) is the airbrush spread, pink_hue (340) and saturation (0.4) pick the exact pink, and the optional mask input limits the effect to a region you drew yourself - handy when skin detection grabs something it shouldn't.
Outputs
Two outputs: image, the blended result (wire it to Save Image or on to more post), and blush_mask, a MASK showing where pink was applied. Grab that second one if you ever want to verify what the node thinks is skin, or composite the effect yourself elsewhere.
Installing it
No dependencies to hunt down - ComfyUI ships torch, numpy, and cv2 already. Install via ComfyUI Manager (search "Pink Blush Overlay"), or the manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/mingyu4537-creator/ComfyUI-PinkBlushOverlay.git
Then restart ComfyUI. The node shows up under image/skin as "Pink Blush Overlay". For the better anime face detection, also install ComfyUI_SkinHighlightRemover so the animeface cascade exists.
Gotchas
The anime-mode skin range is broad, so warm-toned backgrounds and reddish clothing can catch a pink wash; that's what the optional mask is for. And be honest about what this pack is right now: it's a single-commit, brand-new node with no community track record yet, so don't expect long-term polish. But as a one-node substitute for an airbrush trip into Photoshop, it works - keep strength low, wire up blush_mask to a preview, and it'll do the thing.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| pink_hue | INT | 340300–360 | Pink color hue (300=magenta, 340=pink, 360=red-pink) |
| saturation | FLOAT | 0.400.05–1 | Pink color saturation. Lower = more subtle pastel. |
| strength | FLOAT | 0.150–0.5 | Overall overlay strength. 0.1~0.2 = subtle webtoon look. |
| blur_radius | INT | 5111–151 | Airbrush softness. Larger = softer/wider spread. |
| skin_mode | COMBO | anime | 3 options: anime, realistic, both |
| body_focus | FLOAT | 0.70–1 | Body skin intensity vs face. 1.0 = full body, 0.0 = face area only. |
| face_blush | FLOAT | 0.30–1 | Face/cheek blush intensity. Adds pink to cheek area. |
| highlight_boost | FLOAT | 0.50–1 | Extra pink on bright/highlight areas of skin (like webtoon airbrush on highlights). |
| maskopt | MASK | Optional mask to limit effect area. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| blush_mask | MASK | — |