Low Quality Digital Look
Make Your AI Photos Look Like They Came From a 2004 Digicam
- image
- IMAGE
Here's a confession the AI-photography community has been leaning into for a while: the least convincing AI photos are the ones that look too perfect. Too-clean skin, no grain, no compression. The digicam aesthetic - that washed-out, noisy, JPEG-mangled look of an early-2000s point-and-shoot - is genuinely in demand, and people chase it with LoRAs trained on real Sony Mavica shots. LowQualityDigitalLook does the same thing procedurally: no model download, no training, just grain and compression math applied to whatever image you already have. If you've been staring at a too-smooth render and thinking "this needs to look like it was shot in a low-lit kitchen in 2004," this is the node.
How it works
It's a two-stage fake, and it's a good fake because it mimics how real digicam files were actually ruined. First it adjusts color and brightness, then it dumps Gaussian noise on top, then it re-encodes the image through PIL's JPEG encoder at a low quality - which is exactly how real compression artifacts get baked in. The "Early 2000s Digital" preset even forces 4:2:0 chroma subsampling, the thing that gives old JPEGs those smeared color edges.
Every parameter interpolates between "no effect" and "max effect" with effect_level as the dial. A few landmarks from the source so the scale makes sense:
- 0.0 - original image, returned untouched.
- 0.5 (default) - the standard look for your chosen preset.
- 1.0 - about 2.5× the base noise and JPEG quality dropped into the teens. Rough.
The two presets differ in how aggressive they are: "Standard Snap Low Light" is moderate (JPEG quality ~70, mild noise, slight brightness dip), "Early 2000s Digital" is harsher (JPEG quality ~50, more noise, subsampling artifacts).
The inputs you'll actually set
- preset - pick your era. "Standard Snap Low Light" is the safe first try; "Early 2000s Digital" for the crunchy look.
- effect_level - the whole game is here. Start at 0.5, nudge down if it's too dirty.
- seed - seeds the noise so your output is reproducible between runs.
That's the entire interface, which is refreshingly short. It takes one IMAGE and returns one IMAGE, batch-preserved, so it drops straight into a preview node or an upscale chain.
Where it fits in a workflow
Think of it as a post-processing stage after VAE decode - the same place you'd put a film-grain node or a color-grading pass. It plays especially well with the pack's SnapBasicFilters: filter first for the grade, then LowQualityDigitalLook for the grit. It's also a fun counterintuitive trick for photorealism: the KB's tell-detection notes that flawless skin is the #1 giveaway of an AI photo, and adding real sensor noise plus compression is a cheap way to buy back some believability.
Installing it
It ships in the ComfySnap pack, and the pack is not in ComfyUI Manager - search Manager and you'll find nothing. Clone it directly:
cd ComfyUI/custom_nodes
git clone https://github.com/SignalCha1n/comfyui-ComfySnap
Restart ComfyUI and it's under the ComfySnap category. The pack only depends on torch, numpy, and PIL - all already in a stock ComfyUI. One thing not to do: the pack's requirements.txt pins ancient versions (torch==1.13.1), so don't manually pip-install from it and risk downgrading your whole environment. The nodes run fine on whatever modern torch you already have.
Where it bites
This is CPU work - PIL doing JPEG encodes per frame - so a large batch will make you wait, and the README says so itself. effect_level only does something meaningful between ~0.01 and 1.0; at 0.5 you get the preset's stock look, so don't panic that it "isn't strong enough" until you've tried 0.8. And if you need the specific flavor of one particular camera model, a digicam LoRA will always outdo procedural noise - but for a fast, dependency-free "old photo" pass, this is hard to beat.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| preset | COMBO | Standard Snap Low Light | 2 options: Standard Snap Low Light, Early 2000s Digital |
| effect_level | FLOAT | 0.500–1 | — |
| seed | INT | 00–4294967295 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |