effect-editing

star 262

Learn how to add, modify, and remove visual effects on timeline clips for video ads, promos, and motivational videos. Includes the full effect catalog with descriptions and AI prompt examples.

openvideodev By openvideodev schedule Updated 5/29/2026

name: effect-editing description: Learn how to add, modify, and remove visual effects on timeline clips for video ads, promos, and motivational videos. Includes the full effect catalog with descriptions and AI prompt examples.

effect-editing

Overview

This skill documents how to apply visual effects on the timeline for social media video production — ads, promos, motivational videos, and reels. Effects can be placed either as standalone clips on the timeline or attached directly to a specific clip's effects array.

All key (for clip-attached effects) and effectKey (for standalone effect clips) values come from the catalogs in Section 4 and Section 5.

Instructions

When the user asks to add, change, or remove effects, output commands with type: "clip.add", type: "clip.update", or type: "clip.remove".

Two Ways to Apply Effects

Mode A — Standalone Timeline Effect Clip (clip.add with type: "Effect")

A standalone effect clip placed on a track for a time range. Affects all clips rendered beneath it during that window.

  • Placed on its own track.
  • Has properties: type: "Effect", effectKey, values, and timing (with display and duration at project level).

Mode B — Clip-attached Effect (updating the clip's effects property)

Attaches an effect directly to a specific clip's effects array property using clip.update. Use this when targeting one clip.

  • Stored as part of the clip's data.
  • The effects array is replaced (not merged), so preserve other effects when updating.
  • Each effect object has the structure:
    interface Effect {
      id: string; // Unique identifier (e.g. using nanoid)
      key: string; // Effect type identifier
      startTime: number; // When effect starts (microseconds from clip start)
      duration: number; // How long effect lasts (microseconds)
      values?: object; // Effect-specific parameters (optional)
    }
    

1. Adding an Effect (Timeline Clip - Mode A)

  • type: Must be "Effect"
  • effectKey: Key from the catalogs (Section 4 and 5)
  • values: Uniform overrides (optional — defaults are sensible)
  • timing.duration: Duration in microseconds
  • timing.display.from / timing.display.to: Absolute time range in microseconds

Example: Add a fade-in at the start of the project (first 1 second)

{
  "type": "command",
  "description": "Adding fade-in at project start",
  "command": {
    "type": "clip.add",
    "payload": {
      "clip": {
        "type": "Effect",
        "name": "Fade In",
        "effectKey": "fadeIn",
        "values": {
          "uDuration": 1.0
        },
        "timing": {
          "duration": 1000000,
          "display": {
            "from": 0,
            "to": 1000000
          }
        }
      }
    }
  }
}

2. Adding a Clip-attached Effect (Mode B)

To add a clip-attached effect, use clip.update to replace the clip's effects array. Make sure to generate a unique id and specify startTime and duration in microseconds relative to the clip start.

Example: Apply vignette to the first 5 seconds of a specific clip

{
  "type": "command",
  "description": "Attaching vignette effect to clip",
  "command": {
    "type": "clip.update",
    "payload": {
      "id": "clip_123",
      "updates": {
        "effects": [
          {
            "id": "effect_vignette_1",
            "key": "vignette",
            "startTime": 0,
            "duration": 5000000,
            "values": {
              "uIntensity": 0.6,
              "uSoftness": 0.3
            }
          }
        ]
      }
    }
  }
}

3. Modifying Effect Parameters

  • For Standalone Timeline Clips (Mode A): Update the clip's values property directly.
  • For Clip-attached Effects (Mode B): Map through the clip's effects array and replace it with updated values.

Example: Adjust glitch intensity on a standalone timeline effect clip

{
  "type": "command",
  "description": "Updating glitch intensity on standalone clip",
  "command": {
    "type": "clip.update",
    "payload": {
      "id": "clip_effect_abc",
      "updates": {
        "values": {
          "intensity": 0.8
        }
      }
    }
  }
}

Example: Adjust glow color and distance on a clip-attached effect (replacing the effects array)

{
  "type": "command",
  "description": "Updating custom-glow properties on clip",
  "command": {
    "type": "clip.update",
    "payload": {
      "id": "clip_123",
      "updates": {
        "effects": [
          {
            "id": "custom-glow",
            "key": "glowFilter",
            "startTime": 0,
            "duration": 5000000,
            "values": {
              "distance": 20,
              "outerStrength": 3,
              "innerStrength": 1,
              "color": "#00ff00"
            }
          }
        ]
      }
    }
  }
}

4. Removing an Effect

  • For Standalone Timeline Clips (Mode A): Use clip.remove with the effect clip's ID.
  • For Clip-attached Effects (Mode B): Update the clip's effects property, filtering out the effect by its id.

Example: Remove a standalone timeline effect clip

{
  "type": "command",
  "description": "Removing effect clip",
  "command": {
    "type": "clip.remove",
    "payload": {
      "ids": ["clip_effect_abc"]
    }
  }
}

Example: Remove specific clip-attached effect by ID

{
  "type": "command",
  "description": "Removing vintage effect from clip",
  "command": {
    "type": "clip.update",
    "payload": {
      "id": "clip_123",
      "updates": {
        "effects": []
      }
    }
  }
}

Timing Reference

  • All times are in microseconds (1 second = 1000000).
  • For fade-in at clip start: startTime = 0, duration = fade duration (e.g. 1000000 for 1s).
  • For fade-out at clip end: startTime = clip duration − fade duration, duration = fade duration.
  • For full-clip effect: startTime = 0, duration = clip duration.
  • Standalone effect timing display matches absolute project timing.

Section 4 — Built-in GLSL Effects Catalog

Use the key as effectKey (for Mode A) or key (for Mode B).

Color Effects

Key Description Common Values
grayscale Black and white conversion
sepia Warm vintage brown tint
invert Color inversion
duotone Two-color palette mapping color1, color2
tritone Three-tone color grading shadows, mids, highlights
hueShift Continuous hue rotation
neonFlash Neon-colored flashes

Blur and Focus

Key Description Common Values
curtainBlur Curtain-like blur transition
focusTransition Focus pull effect
scaleMoveBlur Motion blur with scaling
motionBlur Directional motion blur

Distortion and Warping

Key Description Common Values
distort General wave/swirl distortion
distortGrid Grid-based distortion
distortSpin Spinning distortion
distortRip Horizontal ripping
wave / waveDistort Fluid wave animation
sinewave Sine wave distortion
swirlMovement Swirling motion

Glitch and Digital

Key Description Common Values
glitch Digital glitch effect
rgbGlitch RGB channel splitting glitch
rgbShift RGB channel separation
pixelate Blocky pixelation pixelSize
pixelError Compression error simulation
darkError Intense error aesthetic

Light and Atmosphere

Key Description Common Values
vignette Edge darkening
shine Moving light gleam
laser Glowing laser beams
lightning / lightningVeins Electric discharge
sparks Particle sparks
brightPulse Periodic bright flashes
flashLoop Looping flash
blackFlash Black flash transitions

Stylized Looks

Key Description Common Values
halftone CMYK dot pattern
filmStripPro Film strip overlay
tvScanlines CRT scanlines
retro70s 70s vintage look
hologramScan Sci-fi hologram
graffiti Graffiti overlay
solution Chemical fluid effect

Transitions (Within Clips)

Key Description Common Values
curtainOpen Curtain opening
paperBreakReveal Tearing paper reveal
warpTransition Spiraling warp
pixelateTransition Pixel dissolve
inverseAperture Aperture close

Camera Movement

Key Description Common Values
cameraMove Handheld camera shake
fastZoom Rapid zoom effect
rotationMovement Continuous rotation
perspectiveSingle 3D perspective shift

Special Overlays

Key Description Common Values
bubbleSparkles Rising bubbles
butterflySparkles Butterfly particles
heartSparkles Heart-shaped sparkles
chromatic Chromatic aberration

Section 5 — Pixi Filter Effects Catalog

These effects are powered by PixiJS filters. Use the key as effectKey (Mode A) or key (Mode B).

Color and Tone

Key Description Common Values
adjustmentFilter Gamma, saturation, contrast, brightness gamma, saturation, contrast, brightness
hslAdjustmentFilter Hue, saturation, lightness hue, saturation, lightness
colorReplaceFilter Replace specific colors originalColor, targetColor
colorOverlayFilter Solid color tint color
grayscaleFilter Simple grayscale

Blur Filters

Key Description Common Values
kawaseBlurFilter High-performance blur blur, quality
motionBlurFilter Directional blur velocity, kernelSize
radialBlurFilter Radial zoom blur radius, angle
zoomBlurFilter Zoom blur center, strength
tiltShiftFilter Partial blur blur, gradientBlur
backdropBlurFilter Blur background blur

Glow and Bloom

Key Description Common Values
bloomFilter Standard bloom blur, quality
advancedBloomFilter High-quality glow threshold, bloomScale
godrayFilter Volumetric light rays gain, lacunarity
glowFilter Configurable glow distance, outerStrength, color

Edge and Outline

Key Description Common Values
outlineFilter Solid outline thickness, color
embossFilter 3D embossed effect strength
bevelFilter Beveled edges rotation, thickness
crossHatchFilter Cross-hatch drawing blur, thickness

Distortion

Key Description Common Values
bulgePinchFilter Bulge/pinch distortion center, radius, strength
twistFilter Twist around center radius, angle
shockwaveFilter Expanding shockwave center, time, amplitude
reflectionFilter Water reflection mirror, boundary, amplitude

Vintage and Glitch

Key Description Common Values
crtFilter CRT monitor simulation curvature, lineWidth, noise
oldFilmFilter Vintage film look sepia, noise, vignette
glitchFilter Digital glitching slices, offset, direction
rgbSplitFilter RGB channel split red, green, blue
dotFilter Halftone dots scale, angle, grayscale
asciiFilter ASCII art conversion size

Special Effects

Key Description Common Values
dropShadowFilter Drop shadow blur, distance, color
convolutionFilter Convolution matrix matrix
simplexNoiseFilter Simplex noise strength, noiseScale
simpleLightmapFilter Lightmap lighting lightMap, ambient
colorMapFilter Color lookup table colorMap, mix
colorGradientFilter Multi-stop gradients type, stops, alpha
multiColorReplaceFilter Batch color replace replacements

AI Prompt Examples

User Prompt Mode / Effect Key Placement / Config
"add a fade in at the start" Mode A: fadeIn from: 0, to: 1000000 (1s)
"add a fade out at the end" Mode A: fadeOut last 1s of project
"make it look cinematic" Mode B: vignette + hdr startTime: 0, duration: clip_duration
"add a glitch effect on clip 2" Mode B: glitch startTime: 0, duration: clip_duration
"dramatic zoom punch on the intro" Mode B: fastZoom startTime: 0, duration: 500000 (0.5s)
"add a retro film look" Mode B: oldFilmFilter startTime: 0, duration: clip_duration
"make colors pop for Instagram" Mode B: adjustmentFilter values: { saturation: 1.3, contrast: 1.1 }
"add energy/hype to the drop" Mode A: flashLoop + rgbGlitch beat/drop absolute time range
"add a cinematic reveal on clip 3" Mode B: curtainOpen or focusTransition start of clip 3
"add black flash between clips" Mode A: blackFlash at the cut point (e.g. absolute junction ±0.1s)
"add a vignette to all clips" Mode B: vignette applied to all clips in workspace
"blur in the first clip" Mode B: kawaseBlurFilter startTime: 0, duration: 1000000 (fade to 0 blur)
Install via CLI
npx skills add https://github.com/openvideodev/openvideo --skill effect-editing
Repository Details
star Stars 262
call_split Forks 33
navigation Branch main
article Path SKILL.md
More from Creator
openvideodev
openvideodev Explore all skills →