Affine Dot Screen Noise Options
Halftone dots, with a little chaos
- noise_options
Dot screen is the halftone pattern - the dots you see in newspaper photos when you get close. In WAS Affine it's a dot_screen_jitter mask: dots laid out on a grid, each one nudged off its ideal position by a random jitter so it doesn't look mechanical. Affine Dot Screen Noise Options tunes it and emits a noise_options DICT.
The knobs
- dot_cell_size (default 10) - the halftone cell size in pixels. Small = dense fine dots, large = big obvious halftone.
- dot_jitter_px (default 1.6) - random jitter amplitude for each dot's center. This is what separates "organic halftone" from "printed grid."
- dot_fill_ratio (default 0.32) - target area coverage per cell, 0–1. Higher = fatter dots that nearly touch; lower = sparse dots.
How it fits
Wire the DICT into the noise_options input of Latent Affine, an affine sampler, or Affine Pattern Noise. The defaults are decent - cell size 10 with 1.6px jitter reads as fine texture rather than obvious dots. Bump cell_size up (say 20+) and lower the jitter if you want an actual comic-book halftone look, which is really the only reason to reach for this pattern: it's the most stylized of the geometric masks.
Like the other pattern options, the node is layered on top of your base options DICT, overriding only the dot_* keys. Blur in the common options will soften the dot edges; mask_strength scales the whole effect.
Installing
Part of WAS Affine by WASasquatch. ComfyUI Manager → Install Custom Nodes → search "WAS Affine" → install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/WASasquatch/was_affine
Restart ComfyUI. ComfyUI 1.0.0+, torch and numpy.
Common issues
With fill_ratio pushed high and big cells, adjacent dots merge into an uneven grid and the mask can turn into visible noise patches - keep fill_ratio modest and let mask_strength do the heavy lifting instead. If the dots look too regular even after jitter, remember jitter is per seed/frame: change the affine seed or enable per-frame mode in the affine node to scatter them differently. And, as ever: no connection, no effect.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| dot_cell_size | INT | 102–256 | Halftone cell size in pixels. |
| dot_jitter_px | FLOAT | 1.60–10 | Random jitter amplitude in pixels for dot centers. |
| dot_fill_ratio | FLOAT | 0.320.01–0.95 | Target area coverage per cell (0-1). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| noise_options | DICT | — |