IAMCCS Cine-PP AntiAlias 1:1
Jagged edges on your video frames? Edge-aware anti-aliasing that doesn't smear detail
- images
- images
- report
Upscaled video frames come back with a tell: hard jagged edges on diagonals, shimmer on thin lines, everything looking slightly crunchy. A plain blur smooths the jaggies but also turns the whole image to mush. IAMCCS_CinePPAntiAlias is a post-production anti-aliasing pass that knows where the edges are - it detects them, smooths them, and leaves the flat detail alone. Drop it between your upscaler and your combine step and the final clip stops shimmering.
How it works
It's a 1:1 per-frame post node. The core uses a Sobel edge detector (cached per dtype/device) to find edges, then applies edge-guided blurring with knobs for how much to protect detail and clean up chroma:
preset-AutopicksBalancednormally, switching toLow VRAMfor 4K or 97+ frame batches, and toStrongfor small, high-quality batches. The others (Preview,Light,Balanced,Strong,Crisp Lines,Low VRAM) are manual starting points.aa_strength(0–2, default 1) - overall strength multiplier on the preset.edge_threshold(-1 = auto, else 0–1) - how aggressively a pixel counts as an edge.blur_radius(0–4) - manual blur radius override.temporal_stability(-1 = auto, else up to 0.75) - pulls neighboring frames into the smoothing so edges don't flicker between frames. This is the one that makes video look steadier instead of just softer.detail_protectionandchroma_cleanup(-1 = auto, else 0–1) - protect fine texture from being flattened; clean up color fringing on edges.hardware_mode(auto/low_vram/balanced/quality/cpu_safe) andmax_frames_per_chunk- how many frames process at once.Autoestimates chunk size from your free VRAM;cpu_safeforces a single frame at a time.
Outputs are images and a report string describing the effective preset and chunking it chose.
Where it fits
This is squarely in the Cine-PP post-production bucket of the pack - the "finish the shot" stage, not the generation stage. The workflow shape is: upscale (or generate) your frames, run them through this node, combine to video. The temporal_stability control is the reason you'd use this instead of a per-image sharpen/blur in Photoshop-style nodes: it's video-aware. One honest note: it smooths aliasing but doesn't invent resolution - if your upscaler's output is genuinely soft, run a real detail pass after AA, not instead of it.
Install
Part of IAMCCS-nodes:
- ComfyUI Manager → search "IAMCCS" → install → restart.
- Or:
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git
Restart ComfyUI. Requirements: ComfyUI ≥ 0.3.0, Python ≥ 3.12, Torch ≥ 2.8. Pure torch ops - no models, no downloads.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| preset | COMBO | Auto | 7 options: Auto, Preview, Light, Balanced, Strong, Crisp Lines, +1 |
| hardware_mode | COMBO | auto | 5 options: auto, low_vram, balanced, quality, cpu_safe |
| aa_strength | FLOAT | 1.000–2 | — |
| edge_threshold | FLOAT | -1.00-1–1 | — |
| blur_radius | INT | 00–4 | — |
| temporal_stability | FLOAT | -1.00-1–0.75 | — |
| detail_protection | FLOAT | -1.00-1–1 | — |
| chroma_cleanup | FLOAT | -1.00-1–1 | — |
| max_frames_per_chunk | INT | 00–128 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| report | STRING | — |