Nodes/ComfyUI_Fill-Nodes/FL Retro Effect
ComfyUI Node

FL Retro Effect

FL_RetroEffect — fake CRT/VHS look with scanlines, RGB shift, vignette and noise

By filliptm·Created 3 years ago·Updated about 11 hours ago· 628
FL Retro Effect
  • images
  • IMAGE
color_offset0.20
scanline_strength0.50
vignette_strength0.70
noise_strength0.30

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.

Category🏵️Fill Nodes/VFX

Inputs (5)

NameTypeDefaultDescription
imagesIMAGE
color_offsetoptFLOAT0.200–1
scanline_strengthoptFLOAT0.500–1
vignette_strengthoptFLOAT0.700–1
noise_strengthoptFLOAT0.300–1

Outputs (1)

NameTypeDescription
IMAGEIMAGE