Sensor Dust
The dead-pixel fuzz on your camera sensor, emulated honestly
- image
- IMAGE
Every camera owner knows the feeling: tiny dark specks on a blue sky that turn out to be dust on the sensor. This node emulates exactly that - and it's weirdly specific about it. The author literally wrote in the description that they counted the spots on their own camera and wanted to replicate them: real sensor dust is a 3x3 grid of desaturated red, green, or blue micro-spots, not the vague smudges most "dust" filters paint on. That specificity is the whole appeal. Applied lightly, it's the kind of imperfection that makes a synthetic image read as captured.
How it works
It scatters dust spots across the image at a density controlled by max_dust_factor, a tiny number (default 5e-7) that scales with total pixel count - the author notes 5e-7 lands roughly a dozen spots on a 6000x4000 photo. Each spot is a small cluster with a "bleed channel" picked from red/green/blue (weighted by the three *_intensity inputs), added at partial saturation, which matches how real hot/dead pixels and dust show up on a Bayer sensor. brightness_threshold changes how the spots land: in darker regions they're more visible, in bright ones subtler - the implementation literally scales dust strength down in bright areas. And per the description, images with any dimension ≥ 2000px take a different, denser 2x2-grid path that's calibrated for high-res output, so the effect doesn't vanish or blob on big renders.
minimum_number_spots (default 3) guarantees you don't get a clean frame when the random draw comes up near-zero.
Inputs that matter
- max_dust_factor - the density dial. Leave near default; this number is tiny by design
- minimum_number_spots - safety floor so a roll of the dice doesn't give you a dust-free image
- intensity - how visible each spot is
- red/green/blue_intensity - which color cast dominates the spots
One IMAGE in, one IMAGE out.
Install
Ships in Photography Nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/TrophiHunter/ComfyUI_Photography_Nodes
Restart, find it under TrophiHunter/Photography (ComfyUI Manager: "Photography Nodes"). No requirements, no models.
Where people get burned
Two things. First, it's randomized - every run scatters spots differently, so if you need consistency across a batch, this node is not deterministic the way the color nodes are; expect variation and decide if that's a feature (it is, for realism). Second, max_dust_factor looks like it should be a percentage, and it isn't - treating it as 0.5 instead of 5e-7 gives you a blizzard of dust. Set it low, set intensity low, and trust the author's calibration. In the author's capture-degradation chain (Lens Distortion → CA → Noise → Sensor Dust), it's the last sensor artifact before vignette, and it reads best when it's barely there.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| max_dust_factor | FLOAT | 00–0.002 | — |
| minimum_number_spots | INT | 31–100 | — |
| intensity | FLOAT | 0.5000–1 | — |
| brightness_threshold | FLOAT | 0.4500–1 | — |
| red_intensity | FLOAT | 0.5000–1 | — |
| green_intensity | FLOAT | 0.5000–1 | — |
| blue_intensity | FLOAT | 0.5000–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |