FL Retro Effect
FL_RetroEffect — fake CRT/VHS look with scanlines, RGB shift, vignette and noise
- images
- IMAGE
Want your image or clip to look like it's playing on an old CRT TV or a worn VHS tape? FL_RetroEffect stacks the four ingredients that read as "retro" - RGB channel offset (that chromatic-aberration color fringing), scanlines, a darkened vignette around the edges, and film-grain noise - into one node with a slider for each. Dial them in, get an instant analog-era aesthetic.
It's a straightforward stylistic effect node, and a well-chosen bundle. Those four things together are what your brain reads as "old display": the color channels don't line up perfectly, there are horizontal scan lines, the corners fall off into darkness, and there's a layer of grain over everything. Doing them separately means four nodes and some fiddling; here it's one.
How it works
All PIL-based image processing, applied in sequence. It splits and slightly offsets the red/green/blue channels for the color-fringe look, overlays a scanline pattern, applies a radial (gaussian-blurred) vignette that darkens toward the edges, and blends in random noise. Each has its own strength control so you can go from "subtle vintage grade" to "barely-functional 1980s monitor."
The inputs and outputs
The only required input is images - and because it processes each frame, it works on a single image or a whole video batch.
Then four optional strength sliders, all 0 to 1:
color_offset(default 0.2) - how far the RGB channels separate. This is the chromatic-aberration fringe.scanline_strength(default 0.5) - how visible the horizontal scan lines are.vignette_strength(default 0.7) - how dark the edges get.noise_strength(default 0.3) - how much grain.
Output is a single IMAGE (or batch) with the effect baked in.
How to install it
Part of filliptm's Fill-Nodes pack. ComfyUI Manager → search ComfyUI_Fill-Nodes → Install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI_Fill-Nodes
pip install -r ComfyUI_Fill-Nodes/requirements.txt
No model, no heavy dependencies - plain PIL.
Common issues & troubleshooting
It's unreadable / over the top. The defaults are already fairly strong, and cranking all four to 1.0 turns your image into abstract noise. Retro looks best when it's restrained: keep color_offset low, ease off noise_strength, and let the scanlines and vignette carry it. Adjust one slider at a time so you can see what each is doing.
On video it looks static / the grain doesn't move. It applies the effect per frame, so it's temporally consistent - which is what you want for scanlines and vignette. If you specifically want the grain to shimmer frame to frame like real film noise, that liveliness comes from the per-frame randomness; a totally still result usually means you're previewing a single frame, not the sequence.
Order matters. Apply this near the end of your pipeline, on the finished image. If you run it before an upscale or another effect, those later passes will fight the scanlines and grain (and an upscaler will happily magnify the noise). Style last.
It's cosmetic, not corrective. This adds an aesthetic; it won't fix a bad generation. If the underlying image has problems, retro grunge hides some of them and amplifies others - don't use it as a cover-up for artifacts you should fix at the source.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| color_offsetopt | FLOAT | 0.200–1 | — |
| scanline_strengthopt | FLOAT | 0.500–1 | — |
| vignette_strengthopt | FLOAT | 0.700–1 | — |
| noise_strengthopt | FLOAT | 0.300–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |