🎬 Video Cinematic FX
One node that makes your video look like footage, not a diffusion render
- images
- IMAGE
The last ten seconds of every video workflow are the same: you've got frames that look fine but flat, and you want them to read as "shot on a camera" - a color grade, a bit of glow, some grain, a vignette. Normally that's three or four nodes and a fight with their blending. Video Cinematic FX packs the whole film-look chain into one node with eight presets, from the SOLRICKS post-processing pack. No model, no dependencies, pure PyTorch per-frame math - it's the kind of node you throw on the tail of a Wan or LTX render just to take the synthetic edge off.
How it works
Each preset is a bundle of baked-in settings that the node applies in order: a color grade (white-balance temperature/tint, exposure, lift, contrast with a filmic highlight rolloff, saturation), then the glow layer - a three-scale bloom on the highlights, warm halation, and horizontal anamorphic-style streaks - then optional softening, chromatic aberration that fades toward the frame center, a vignette, and finally film grain.
Two implementation details worth knowing. First, the grain is deterministically seeded per frame (fixed seed, offset by frame index), so it's stable across re-runs instead of shimmering randomly - and it's mostly luma grain with a whisper of chroma, which is what makes it read as film rather than noise. Second, the vignette is slightly elliptical (taller than wide), so it looks right on vertical content instead of squeezing into a circle.
The inputs that matter
- preset - Cinematic (balanced default), Luxury Ad, Soft Beauty, Neon Night, Cool Tech, Warm Film, Dramatic Contrast, Performance (grain/streaks off, for previews).
- look_strength (0–2, default 1) - master dial for the grade, chromatic aberration, and soften.
- glow_strength (0–2, default 1) - bloom, halation, and streaks. The knob you'll actually tune; most presets sit a bit heavy at 1.0.
- contrast_strength / grain_strength / vignette_strength - all 0–2, default 1; each scales just its slice of the look.
Feed it an IMAGE batch and you get the same-size IMAGE out, alpha preserved, ready for your video encoder. Presets only, though - you can't edit the underlying grade values directly, so if you want a custom LUT you're still better off in a proper grading node.
Install and gotchas
Same pack as everything else here:
cd ComfyUI/custom_nodes
git clone https://github.com/SOLRICKS/comfyui-solricks
or ComfyUI Manager → search SOLRICKS / "Anti-Aliasing Pack", then restart. No Python deps, no model files. Manager-verified, MIT.
The gotcha is the opposite of the rest of this pack: this node adds to the image - bloom, grain, CA - it doesn't clean it. Run it after your anti-aliasing and detail passes, never before, or you're grading your artifacts in. Also, watch the grain on smooth gradients at high grain_strength: it's the best banding mask you'll get for free, but on a 240-frame clip it's static per frame by design, so don't expect animated film grain. And unless you're grading a still, leave Performance alone for the real render - the low-cost preset's whole point is fast iteration, not final output.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| preset | COMBO | 8 options: Cinematic, Luxury Ad, Soft Beauty, Neon Night, Cool Tech, Warm Film, +2 | |
| look_strength | FLOAT | 1.000–2 | — |
| glow_strength | FLOAT | 1.000–2 | — |
| contrast_strength | FLOAT | 1.000–2 | — |
| grain_strength | FLOAT | 1.000–2 | — |
| vignette_strength | FLOAT | 1.000–2 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |