ComfyUI Node
PhotoLab
Apply photo lab effects including JPG compression artifacts, film grain, vignette, blur, and color grading. Optionally matches the lighting and shadows of a reference image. Skin effects (pores, freckles, blemishes, acne, texture, SSS, peach fuzz, redness, shine) sit below the mask_mode widget and are fully skipped when mask_mode is 'Disabled', spatially confined to a connected face mask when 'Face Only', or applied outside the mask when 'Inverted'. The mask is also passed through as a second output. A seed input controls all procedural skin effect patterns for reproducibility.
PhotoLab
- images
- reference_image
- face_mask
- images
- face_mask
◄quality70►
◄passes1►
◄pixelate_strength0►
◄grain_strength5►
◄vignette_strength0►
◄color_gradeFaded►
◄color_grade_strength50►
◄saturation70►
◄blur_typeNone►
◄blur_strength0►
◄lighting_match_modeDisabled►
◄lighting_match_strength1.00►
◄mask_modeFace Only►
◄pores_strength0►
◄blemishes_strength0►
◄acne_strength0►
◄freckles_strength0►
◄skin_texture_strength0►
◄sss_strength0►
◄peach_fuzz_strength0►
◄skin_redness_strength0►
◄sebum_shine_strength0►
◄skin_seed0►
◄pores_opacity100►
◄blemishes_opacity100►
◄acne_opacity100►
◄freckles_opacity100►
◄skin_texture_opacity100►
Categoryimage/effects
Inputs (31)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | The images to apply photo lab effects to. | |
| quality | INT | 700–100 | JPG compression quality. Lower = more artifacts (0-100) |
| passes | INT | 11–10 | Number of compression passes. More passes = more degradation |
| pixelate_strength | INT | 00–100 | Pixelation strength. Reduces image to a lower resolution grid and scales back up. Set to 0 to disable (0-100) |
| grain_strength | INT | 50–100 | Amount of film grain. Set to 0 to disable (0-100) |
| vignette_strength | INT | 00–100 | Vignette darkness around edges. Set to 0 to disable (0-100) |
| color_grade | COMBO | Faded | Color grading preset |
| color_grade_strength | INT | 500–100 | Strength of color grade effect. 0 = disabled, 100 = full effect (0-100) |
| saturation | INT | 700–200 | Color saturation (0 = grayscale, 100 = original, 200 = max boost) |
| blur_type | COMBO | None | Type of blur to apply |
| blur_strength | INT | 00–100 | Strength of blur effect. Set to 0 to disable (0-100) |
| lighting_match_mode | COMBO | Disabled | Algorithm used to match lighting from reference image. 'Histogram (L-channel)' - best all-rounder, matches luminance distribution only. 'Reinhard Transfer' - fast mean/std transfer, good for subtle corrections. 'Full LAB Histogram' - matches all LAB channels including color tone. |
| lighting_match_strength | FLOAT | 1.000–1 | Blend between original (0.0) and fully matched lighting (1.0) |
| mask_mode | COMBO | Face Only | Controls the face_mask and ALL skin effects below this widget. 'Face Only' — skin effects apply only inside the connected mask. 'Inverted' — skin effects apply only outside the mask (e.g. body skin). 'Disabled' — ALL skin effect widgets below are completely skipped; only global effects above (color grade, blur, grain, vignette, compression) run. |
| pores_strength | INT | 00–100 | Simulates visible skin pores via a high-frequency Difference-of-Gaussians texture layer blended in Overlay mode. Subtle: 10-25 | Natural: 30-50 | Heavy/macro: 60-80. Set to 0 to disable. |
| blemishes_strength | INT | 00–100 | Adds soft reddish/brownish skin blemishes (pigmentation spots) using Gaussian-falloff ellipses in melanin-aware colour space. Light: 10-25 | Moderate: 30-55 | Heavy: 60-100. Set to 0 to disable. |
| acne_strength | INT | 00–100 | Renders raised-looking acne spots with a reddish inflamed surround and a subtle specular highlight to suggest a 3-D bump. Few/mild: 10-25 | Moderate breakout: 30-55 | Severe: 60-100. Set to 0 to disable. |
| freckles_strength | INT | 00–100 | Scatters small melanin-tinted freckles concentrated on cheeks and nose bridge, with randomised size, opacity, and slight colour variation. Light dusting: 10-25 | Natural coverage: 30-55 | Dense: 60-100. Set to 0 to disable. |
| skin_texture_strength | INT | 00–100 | Enhances micro skin texture (fine lines, pore shadows, subtle relief) by boosting a high-frequency detail layer extracted via unsharp masking. Subtle: 10-20 | Natural film look: 25-45 | Hyper-detailed: 50-70. Set to 0 to disable. |
| sss_strength | INT | 00–100 | Subsurface scattering: adds a warm translucent glow beneath skin by Screen-blending a low-opacity orange-pink blurred layer, simulating how light travels through the dermis. Breaks the flat opaque 'plastic' AI look. Subtle: 5-15 | Natural: 16-35 | Strong: 36-60. Set to 0 to disable. |
| peach_fuzz_strength | INT | 00–100 | Renders procedural vellus (peach fuzz) hair as fine curved micro-strokes oriented downward with slight random angles, at very low opacity. Dramatically breaks the AI plastic-skin look by adding the fine hair that covers real faces. Barely visible: 5-15 | Natural: 16-40 | Dense: 41-70. Set to 0 to disable. |
| skin_redness_strength | INT | 00–100 | Adds natural facial redness zones — cheeks, nose tip, chin — from blood vessels near the skin surface, using soft Gaussian blobs in warm-red tint. Subtle flush: 5-20 | Rosy cheeks: 21-50 | Strong redness: 51-80. Set to 0 to disable. |
| sebum_shine_strength | INT | 00–100 | Simulates T-zone sebum/oil shine (forehead, nose bridge, chin) using small specular highlight ellipses in Screen blend. Adds the natural sheen of oily skin without overexposing the whole image. Matte skin: 0 | Light shine: 5-20 | Oily: 21-55 | Very oily: 56-80. Set to 0 to disable. |
| skin_seed | INT | 00–2147483647 | Master seed for all procedural skin effects (pores, freckles, blemishes, acne, peach fuzz, shine). Same seed always produces the same pattern on the same image. Change to get a different arrangement of spots, pores, and hairs. |
| pores_opacity | INT | 1000–100 | Opacity of the pores effect (0 = invisible, 100 = full). Controls visibility independently of density/strength. |
| blemishes_opacity | INT | 1000–100 | Opacity of blemishes (0 = invisible, 100 = full). Allows many faint marks vs few vivid ones. |
| acne_opacity | INT | 1000–100 | Opacity of acne spots (0 = invisible, 100 = full). |
| freckles_opacity | INT | 1000–100 | Opacity of freckles (0 = invisible, 100 = full). Allows dense faint freckles vs sparse vivid ones. |
| skin_texture_opacity | INT | 1000–100 | Opacity of the skin texture effect (0 = invisible, 100 = full). |
| reference_imageopt | IMAGE | Reference image whose lighting and shadows will be matched onto the input images. Only used when lighting_match_mode is not 'Disabled'. | |
| face_maskopt | MASK | Optional grayscale mask (0 = no effect, 1 = full effect) used to spatially restrict skin effects. Behaviour set by mask_mode: 'Face Only' keeps effects inside the mask; 'Inverted' keeps them outside; 'Disabled' skips all skin effects entirely regardless of this input. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| face_mask | MASK | — |