Kinescope Effect V1
The kinescope look, layer by layer
- images
- IMAGE
A kinescope is what you get when someone pointed a film camera at a 1950s TV screen to record a broadcast - and it looks like it: soft, grainy, black-and-white, with scanlines, smeared highlights and that slightly unsteady, over-contrasted quality. KinescopeEffectV1 stacks all of those artifacts in one node, and unlike most "vintage TV" filters it lets you tune each layer separately instead of giving you one preset and a prayer. It's the go-to when you need footage to feel like early broadcast rather than just look filtered.
The layers, and the inputs for each
- black_and_white (default on) - the era's default. Turn it off for a color-TV kinescope, which is a very different, 60s-70s flavor.
- contrast / brightness (defaults 1.2 / 1.1) - kinescope footage was notoriously punchy; these push the image toward that hard, clipped broadcast look.
- film_grain (0–100, default 35) - the noise floor. Higher for degraded copies.
- phosphor_persistence (0–1, default 0.3) - the ghosting/afterglow of CRT phosphors. This is the layer that sells "filming a glowing screen," and it's worth more than the scanlines for authenticity.
- scanline_intensity (0–1, default 0.15) - the horizontal dark lines. Keep it low; real kinescopes show scanlines far less than modern "CRT" filters do. 0.1–0.25 is the honest range.
- edge_bleeding (0–5, default 1.5) - light bleeding out of edges, from progressively blurred blends. This is the soft glow around bright areas that makes it look optically imperfect.
- vertical_blur / horizontal_blur (odd ints, 1–21, defaults 1) - resolution loss in each axis. Vertical blur mimics the interlaced/scanline softness; horizontal mimics the camera's optics.
- generations (1–5, default 1) - how many times the recording was re-copied. Each generation multiplies the degradation. This is the single most dramatic "make it look old" control: a 2–3 generation pass with grain cranked will age footage more than anything else in the node.
Input images, output IMAGE, batch-friendly.
How it works
It composes in order: grain is added as Gaussian noise, scanlines multiply brightness on alternating rows, phosphor ghosting blends the previous frame's glow forward, edge bleeding mixes progressively blurred versions around edges, and blur/generation passes run last. That ordering matters - it's why the result hangs together instead of looking like five filters slapped on.
The honest take
The two controls people get wrong are scanline_intensity and generations. Every "retro" filter overdoes scanlines; this one rewards restraint. And generations is a trap in the good way - one click at 3 and your pristine render looks like a bootleg VHS of a 1957 broadcast, which is exactly the effect, so treat it as the volume knob for "how destroyed is this." Pair KinescopeEffectV1 with FilmGateWeave (projector wobble) and HalationBloom and you can build a whole film-evolution pipeline out of one pack. It's pure image processing - no models, no downloads, deterministic.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| black_and_white | BOOLEAN | true | — |
| contrast | FLOAT | 1.20.1–3 | — |
| brightness | FLOAT | 1.10.1–3 | — |
| film_grain | FLOAT | 350–100 | — |
| phosphor_persistence | FLOAT | 0.30–1 | — |
| scanline_intensity | FLOAT | 0.150–1 | — |
| edge_bleeding | FLOAT | 1.50–5 | — |
| vertical_blur | INT | 11–21 | — |
| horizontal_blur | INT | 11–21 | — |
| generations | INT | 11–5 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |