Introduction
VintageDither transforms images and video using limited color palettes, dithering, pixelation and CRT textures. Start with a complete preset, choose a Retro Look, or capture a palette from your own image with Scene Adaptive. You can continue adjusting the controls after applying a look.
Apply the effect directly to an image layer or to an adjustment layer above a composition. On an adjustment layer, VintageDither processes the image received from the layers underneath.
Requirements and compatibility
VintageDither 1.0.0 is for Windows x64. Host testing covers Adobe After Effects 2026 (26.5). Other After Effects versions, macOS and Premiere Pro are not verified. An Adobe After Effects installation is required and is not included. CPU rendering is the default. Experimental GPU palette matching has been tested on NVIDIA GeForce RTX 4080 and automatically falls back to CPU when unavailable. Multi-Frame Rendering is not enabled in this version.
Installation
Using install.exe
- Extract the complete downloaded ZIP into a folder on C:.
- Save your work and close After Effects.
- Run install.exe and allow Windows to write to the selected Program Files folder.
- Confirm the destination. The default is the After Effects 2026 plug-in folder:
C:\Program Files\Adobe\Adobe After Effects 2026\Support Files\Plug-ins\VintageDither. - Complete installation, restart After Effects and search for VintageDither in Effects & Presets. Apply it to footage or an adjustment layer.
- Open the effect’s About dialog and confirm version 1.0.0.
The installer targets an existing AE installation on C:. It does not scan other
drives, close applications, download files or alter Adobe preferences. It installs
the plug-in, this HTML manual and an uninstaller. For a custom C: AE location,
edit the destination while retaining Support Files\Plug-ins\VintageDither.
Manual installation
If you prefer manual installation, copy Plugin/VintageDither.aex from the download
into the VintageDither folder under your AE plug-ins folder while AE is closed.
The installer and manual file contain the same plug-in binary.
Keep only one VintageDither.aex in AE’s plug-in search paths. Copies installed
previously in another location are not automatically searched for or removed.
Keep any manual backups outside the plug-in search paths.
Updating and uninstalling
Close AE before updating. The installer asks before replacing an existing plug-in
in its selected folder. It keeps one previous copy as VintageDither.previous,
which is not an .aex plug-in. A subsequent update replaces that one backup.
Run Uninstall.exe from the installed VintageDither folder while AE is closed.
It removes the installed plug-in, HTML manual and uninstaller. A previous-version
backup is retained. If you installed manually, remove the copied .aex while AE
is closed. Your AE projects and saved Animation Presets are not removed.
Features at a glance
- 14 complete presets and 26 retro-inspired looks.
- Colour reduction with 16 bundled palettes and editable 2–256-colour Custom palettes.
- Explicit Scene Adaptive capture, including adjustment-layer input.
- Palette Remap for replacing colours while preserving the matching reference.
- Ordered, procedural and texture patterns, plus seven error-diffusion algorithms.
- Independent pixelation, pattern scale, strength and blending controls.
- An Extra colour layer with independent noise animation, strength and bias.
- Contrast, exposure, gamma and colour-range grading.
- CRT scanlines/phosphor structure, RGB offset, blur, Halation and Diffusion controls.
- Chromatic Aberration, pre-dither Vignette and Stop Motion.
- Save and share settings through AE Animation Presets.
- Optional experimental GPU palette matching with automatic CPU fallback.
Scene Adaptive captures colours when you click Capture or apply a capture-based look; its palette stays fixed until you capture again. CRT Halation and Diffusion modify structure reconstruction rather than adding standalone glow passes.
Quick start
- Apply VintageDither to a layer.
- Choose Main Dithering → Palette → Palette Preset.
- Start with Color Mapping: Nearest RGB.
- Choose a Pattern and adjust Dither Strength.
- Increase Pixelation Size for larger image blocks.
- Adjust Dither Cell Size and Pattern Scale to size the dither pattern.
- Add Extra Layer, Vignette or Finishing as needed.
You can also start with a complete preset or a Retro Look. Select an entry and click its Apply button. Selecting a menu entry alone does not overwrite your settings.
Presets — Complete Looks
The preset group at the top of the effect provides complete combinations of image settings. Choose an entry and click Apply Complete Preset, then adjust the result.
A complete preset sets pixelation, palette, dithering, Extra Layer, Grading, Vignette and Finishing. Existing keyframes are not removed; later keyframes can still change the appearance. Your Renderer preference is preserved.
Preset_001–Preset_008: capture colors when applying
These eight presets combine a saved visual style with colors sampled from the image entering the effect when you click Apply. On an adjustment layer, that is the image received from the layers underneath.
The captured palette stays fixed when the image or time changes. Click Apply again, or use Capture Current Frame, to sample new colors.
Preset_001 and Preset_006 capture 32 colors. The other six capture 16 colors. Set Scene Adaptive → Input RGB Encoding before applying; this setting is preserved. A successful capture selects Custom and updates Capture Colors to the preset’s color count. If capture fails or is cancelled, the previous settings remain.
The other six complete presets use fixed palettes and do not capture new colors
when applied. A saved After Effects .ffx preset restores its saved palette; it
does not automatically capture colors.
Saving your own settings
Select the entire VintageDither effect and choose Animation → Save Animation
Preset to save an After Effects .ffx file. Selecting the entire effect includes
the internal color data used by the palette and its matching reference.
Retro Looks — Inspired
Retro Looks change a limited set of controls:
- Palette and palette matching reference.
- Color Mapping and Replace Scene Colors.
- Pattern and Dither Strength.
- Pixelation, only when Apply Suggested Pixelation is enabled.
Grading, Mix and Finishing are preserved.
Select a look and click Apply Retro Look. The list includes fixed-palette looks and entries marked Scene Adaptive, which capture input colors when applied.
Pixelation
| Control | Purpose |
|---|---|
| Pixelation Size | Sets the size of image sampling blocks. 1 gives the smallest size. |
| Snap to Whole Pixels | Snaps the pixelation size to whole pixels. |
Pixelation Size controls image sampling. Dither Cell Size controls the dither field, allowing small image pixels with a larger dither pattern.
Vignette (Before Dithering)
Vignette processes the image before Main Dithering. Its transition is therefore processed by the same palette and dithering as the rest of the image.
| Control | Purpose |
|---|---|
| Enable Vignette | Enables the vignette. |
| Color | Sets the color blended towards the edges. |
| Radius | Sets where the transition begins. |
| Softness | Sets the transition width. |
| Strength | Blends in the vignette, from 0 to 1. |
Vignette preserves alpha and does not create an opaque background.
Main Dithering
Palette
Palette Preset selects a bundled palette or Custom. Click a swatch in the palette grid to edit its color. Editing a bundled palette switches it to Custom.
Custom Color Count supports 2–256 colors. All swatches appear in one compact grid without palette pages.
Bundled Palette Encoding determines how bundled numeric RGB values are interpreted. Choose sRGB display values for display-encoded values or Linear sRGB values for linear values. This control does not replace project color management.
Scene Adaptive — Capture
Scene Adaptive builds a palette from the image entering VintageDither. Earlier effects on the layer are included; VintageDither’s own processing is excluded. On an adjustment layer, capture uses the image received from the layers underneath.
- Open Main Dithering → Palette → Scene Adaptive — Capture.
- Choose Capture Colors: 8, 16, 24, 25, 32, 48, 64, 128 or 256.
- Set Input RGB Encoding to sRGB / display RGB or Linear RGB.
- Move the time indicator to the frame you want to sample.
- Click Capture Current Frame.
The result is an editable Custom palette. Capture selects Nearest RGB, enables Replace Scene Colors and updates the palette matching reference.
The palette is a snapshot. It does not update during playback. Capture again to obtain colors from another frame.
Choose Input RGB Encoding to match the input image. A 32-bit project is not necessarily linear. Capture does not perform automatic ICC or OCIO gamut conversion. Values outside 0–1 are clamped during palette collection. Saved Custom colors use 8-bit RGB values, including in higher-depth projects. Fully transparent pixels do not contribute. Swatches may repeat if there are fewer distinct input colors than requested. Failed or cancelled capture keeps the previous settings.
Color Mapping
| Method | Purpose |
|---|---|
| Tone Ramp | Maps image tones along the palette. Palette order matters. |
| Nearest RGB | Matches input RGB values to the closest palette colors. |
| Palette Remap | Matches against a saved reference palette and outputs your edited colors. |
Replacing colors while keeping image regions
With Nearest RGB, changing a palette color also changes which color is closest to each image point. Replacing yellow with blue can therefore change several regions.
Use Palette Remap to keep the matching reference while editing output colors:
- Choose your starting palette.
- Click Palette Remap Reference → Use Current Palette.
- Select Color Mapping: Palette Remap.
- Edit the swatches to choose the output colors.
Matching uses the saved reference; the image displays the edited colors. Save a new reference when you want to change the basis for matching.
Replace Scene Colors and Mix
Replace Scene Colors controls whether palette processing replaces image colors. Mix blends Main Dithering with its input: 0 retains the input and 1 applies the full main treatment. Extra Layer and Finishing have separate controls. Mix is not a bypass for the entire effect.
Pattern
The menu includes ordered, procedural, noise and texture patterns, plus error diffusion methods.
| Control | Purpose |
|---|---|
| Dither Cell Size | Sets the dither field’s cell size. |
| Pattern Scale | Scales the selected pattern. |
| Pattern | Selects a dithering method or threshold pattern. |
| Dither Strength | Sets dithering strength. For error diffusion, controls how much error is propagated. |
| Blend Width | Adjusts the main threshold transition. Unused by error diffusion. |
| Noise Seed | Changes the noise distribution; does not animate it by itself. |
| Animate Noise | Enables time variation for supported noise patterns. |
| Noise Frame Rate | Sets the noise update rate, from 1 to 60 FPS. |
Error diffusion
The following methods are included:
- Floyd–Steinberg.
- Jarvis–Judice–Ninke.
- Stucki.
- Atkinson.
- Burkes.
- Sierra, three rows.
- Stevenson–Arce.
Error diffusion distributes quantization error to subsequent image points. For a conventional result, start with Dither Cell Size 1, Pattern Scale 1 and Dither Strength 1. Strength 0 leaves palette quantization without error propagation.
Blend Width, Noise Seed and Animate Noise do not alter the diffusion algorithm. These methods run on CPU and can take longer with large images and palettes.
Animated noise
Animate Noise supports procedural White Noise and Random, and the Blue Noise and White Noise texture families. Ordered patterns and error diffusion do not support this noise animation.
Animate Noise and Noise Frame Rate are disabled when the selected pattern does not support animation. Their saved values are retained. Noise is held between updates at the chosen Noise Frame Rate.
Grading
| Control | Purpose |
|---|---|
| Contrast | Adjusts contrast before color mapping. |
| Exposure (stops) | Adjusts exposure in stops. |
| Gamma | Adjusts midtone distribution. |
| Range Offset | Shifts the color range before mapping. |
Extra Layer
Extra Layer adds a separate color treatment with its own threshold pattern and color. It can introduce colors outside the main palette.
| Control | Purpose |
|---|---|
| Enable Extra Layer | Enables the extra layer. |
| Pattern | Selects its pattern. |
| Scale (pixels) | Sets pattern size. |
| Strength | Blends the extra color: 0 has no effect; 1 gives full strength in affected regions. |
| Bias | Shifts which regions are affected. |
| Color | Sets the layer’s color. |
| Animate Noise | Enables animation for supported noise patterns. |
| Noise Frame Rate | Sets this layer’s noise update rate. |
| Noise Seed | Selects a noise distribution independently of Main Dithering. |
The threshold mask uses graded, inverted image luminance together with Bias. Extra Layer adds a color treatment rather than a second full palette quantization. It can remain active when the main Mix is 0.
Animation supports the same noise families as Main Dithering. Main and Extra Layer can use different Noise Frame Rate and Noise Seed settings.
Finishing
Chromatic Aberration
| Control | Purpose |
|---|---|
| Enable Chromatic Aberration | Enables the treatment. |
| Strength | Sets its strength. |
| Separation (pixels) | Sets color-channel separation. |
| Start Offset | Sets how far from the image center separation begins. |
Chromatic Aberration offsets color channels radially and preserves alpha.
CRT
CRT combines scanlines, phosphor structure, reconstruction of neighboring image points, optional RGB offset and blur.
| Control | Purpose |
|---|---|
| Enable CRT | Enables CRT processing. |
| Enable Scanlines & Phosphor | Enables the structure; also required for Halation and Diffusion. |
| CRT Strength | Sets overall CRT strength. |
| Scanline Spacing | Sets the distance between scanlines. |
| Scanline Units | Selects pixels or multiples of pixelation size. |
| Scanline Thickness | Sets the width of the bright portion. |
| Scanline Softness | Softens structure transitions. |
| Scanline Gap Darkness | Sets darkness between scanlines. |
| Scanline Strength | Sets scanline intensity. |
| Phosphor Spacing | Sets phosphor structure spacing. |
| Phosphor Units | Selects pixels or multiples of pixelation size. |
| Phosphor Thickness | Sets the bright structure width. |
| Phosphor Softness | Softens phosphor transitions. |
| Phosphor Gap Darkness | Sets darkness in structure gaps. |
| Phosphor Strength | Sets phosphor structure intensity. |
| Phosphor Style | Selects Aperture Grille, Shadow Mask or Slot Mask. |
| Quantize to Pixel Grid | Snaps structure and reconstruction radius to the pixel grid. |
| Brightness Compensation | Compensates for the structure’s reduced average brightness. |
| Enable RGB Offset | Enables a separate horizontal RGB offset. |
| RGB Offset (pixels) | Sets the RGB offset distance. |
| Enable Blur | Enables separate smoothing. |
| Blur Radius (pixels) | Sets the smoothing radius. |
| Halation | Expands the CRT structure’s neighborhood reconstruction radius. |
| Diffusion | Expands the same radius with a larger weighting. |
Phosphor structure and RGB Offset
The phosphor mask affects all RGB channels equally. It does not split the image into separate red, green and blue phosphor stripes. RGB Offset is a separate treatment that can be switched off independently.
Halation and Diffusion
These controls affect which neighboring bright and dark points the CRT structure can select. Both default to 0. They operate through a shared reconstruction radius, rather than separate glow or blur passes.
Enable both CRT and Scanlines & Phosphor, then try a high-contrast image. Phosphor Spacing also affects the reconstruction radius. With Quantize to Pixel Grid enabled, nearby values can produce the same radius and appearance. Halation and Diffusion can produce similar looks because they change the same radius.
CRT Diffusion is separate from the error diffusion algorithms in the Pattern menu.
Stop Motion
Enable Stop Motion holds input frames at the selected Frames Per Second, from 1 to 60 FPS. Internal animated controls and noise phases are also sampled at the held time. Main and Extra Layer follow the same held image time.
Rendering
Renderer selects CPU or GPU (Experimental, CPU fallback). CPU is the default.
GPU mode accelerates nearest-palette-color searching for Nearest RGB and Palette Remap. Pixelation, Grading, patterns, Extra Layer and color composition continue to use CPU alongside this GPU stage. Finishing and Scene Adaptive use CPU. Tone Ramp and error diffusion use CPU even when GPU mode is selected.
If the GPU is unavailable, unsupported or fails, rendering automatically falls back to CPU. After a GPU failure, CPU remains in use for the session; restart After Effects to retry. Cancelling a render still cancels it. Presets preserve Renderer.
Checking GPU activity
Right-click the VintageDither effect header in Effect Controls and choose its About command. The dialog shows GPU frames, CPU fallbacks and the initialized GPU. These are processing-pass counters for the session, not a frame-rate measurement. After Effects may request several passes for one composition frame.
This implementation uses an internal GPU stage and does not display After Effects’ native GPU effect badge. Select CPU in VintageDither to force its CPU path. The project’s Mercury setting does not select this internal experimental mode.
Large palettes can benefit more from GPU matching. Transfer and CPU preparation overhead may limit the benefit for small images or palettes. GPU behavior has been tested in After Effects on an NVIDIA GeForce RTX 4080; results on other devices can differ. Multi-Frame Rendering remains disabled.
Preview resolution and image quality
Full, Half and Quarter deliver different amounts of image information to the effect. Patterns use full-resolution coordinates, while reduced previews combine coverage over larger image areas. Small patterns may therefore appear softer or less distinct at Half or Quarter. Judge final detail at Full resolution.
A reduced preview cannot recover image detail that After Effects does not supply.
Troubleshooting
A swatch changes, but the image changes unexpectedly
Check Color Mapping. Nearest RGB recalculates the closest palette colors after an edit. Use Palette Remap with a saved reference to retain matching regions while replacing colors. Grading, Extra Layer and Finishing can also affect the result.
Animate Noise is disabled
Choose procedural White Noise/Random or a Blue Noise/White Noise texture. The selected pattern must support noise animation.
Scene Adaptive does not update when I move the time indicator
Capture saves a fixed palette. Use Capture Current Frame again, or reapply a capture-based preset or Scene Adaptive Retro Look, to sample new colors.
Scene Adaptive cannot capture colors
Check that a visible image enters the effect at the current time. Fully transparent input provides no colors. Failed or cancelled capture keeps the previous settings. When contacting support, include the plug-in version and whether you are using an image layer or an adjustment layer.
Halation or Diffusion seems to have no effect
Enable both CRT and Scanlines & Phosphor. Use visible structure strength and an image containing bright and dark detail. Quantization changes the radius in steps; try larger value changes or disable Quantize to Pixel Grid for comparison.
After Effects warns about Multi-Frame Rendering
This build does not declare Multi-Frame Rendering support. The warning describes that limitation and does not by itself indicate incorrect image processing.
Support
Contact [email protected]. Include the VintageDither version, After Effects version, project color depth, RGB encoding, preview resolution and settings that trigger the issue. Screenshots of the controls and result help.