Nodes/ComfyUI Layer Style/LayerFilter: HalfTone
ComfyUI Node Runs on cloud

LayerFilter: HalfTone

Halftone (Layer Style)

By chflame163·Created 3 years ago·Updated 5 days ago· 3,113
LayerFilter: HalfTone
  • image
  • mask
  • image
â—„dot_size10â–º
â—„angle45.0â–º
◄shape▾►
â—„dot_color#000000â–º
â—„background_color#FFFFFFâ–º
â—„anti_aliasing1â–º

Halftone turns an image into a pattern of dots, the way old newspapers and comic books reproduced shading before everything went digital. Bigger dots where the image is dark, smaller where it's light, all on a regular grid - from a normal viewing distance your eye blends them back into tones. It's a stylistic filter for a retro-print, pop-art, or comic look, and it's the real deal, not a lazy overlay: it actually rebuilds the image out of dots.

The mechanism is classic halftone screening. The node samples the image on a grid, and at each grid cell it draws a shape sized to the local brightness - dark areas get fat dots that nearly touch, bright areas get tiny ones or none. Rotating the grid (the angle) is what gives it that authentic print-screen feel and avoids ugly moiré against the image's own detail.

The controls, and which ones change the look most:

  • dot_size - the grid spacing / dot scale, 4 to 100 (default 10). This is the big one. Small values give a fine, subtle screen; large values give bold, obvious comic dots. It's the single knob that most defines the result.
  • shape - circle, diamond, or square. Circle is the traditional print dot; diamond and square give a more graphic, stylized screen.
  • angle - rotation of the dot grid, −90 to 90 degrees (default 45). 45° is the classic print angle; changing it shifts the character and helps dodge moiré.
  • dot_color and background_color - the two colors of the screen (default black dots on white). Swap them for inverted or duotone effects.
  • anti_aliasing - 0 to 4, smooths the dot edges. Higher is cleaner; 0 is crunchy and pixel-hard if that's the vibe.

An optional mask input lets you apply the halftone only where the mask allows, so you can screen the background and leave the subject smooth (or the reverse). The single output is the image.

Where it fits: comic and manga styling, retro poster and newsprint looks, or a graphic-design accent applied through a mask to part of a frame. It pairs nicely with a desaturate or a limited palette upstream for a true vintage-print feel. And the masked application is the pro move - a full-frame halftone can be a lot, but halftoning just the background or just a shape reads as a deliberate design choice.

Practical note: at small dot_size the effect gets subtle to the point of near-invisible at screen resolution, and at large dot_size it's very loud, so it's worth sweeping that value to find the sweet spot for your image size. Keep anti_aliasing up if you want smooth print dots, drop it for a deliberately rough screen.

Install comes with the ComfyUI Layer Style pack. ComfyUI Manager: search "ComfyUI Layer Style," install, restart. Manual: cd ComfyUI/custom_nodes && git clone https://github.com/chflame163/ComfyUI_LayerStyle, then pip install -r requirements.txt in the ComfyUI environment and restart. No model download.

Pack-level caveat: Layer Style is large and dependency-heavy, and its most common failure is the whole pack showing "import failed" in the Manager (usually a transformers version conflict), which pulls every node - Halftone included - from your menu at once. If it's missing, the pack didn't import: reinstall it, use "Try Fix," and reinstall the requirements into ComfyUI's real Python environment if it persists.

Category😺dzNodes/LayerFilter

Inputs (8)

NameTypeDefaultDescription
imageIMAGE—
dot_sizeINT104–100—
angleFLOAT45.0-90–90—
shapeCOMBO3 options: circle, diamond, square
dot_colorSTRING#000000—
background_colorSTRING#FFFFFF—
anti_aliasingINT10–4—
maskoptMASK—

Outputs (1)

NameTypeDescription
imageIMAGE—