# Animate parameters with keyframes

> Animate numbers, colours, switches and menus in a Nodespell video Compositor with keyframes, the dopesheet, the curve editor and easing.

Source: https://docs.nodespell.com/edit/keyframes/ · Last updated: 2026-11-10

Keyframes in Nodespell animate node parameters over time inside a video **Compositor**. You set a key at the playhead from the parameter's row in Parameters, Nodespell interpolates between keys, and the dopesheet and curve editor let you move keys and shape their easing. Numbers, colours, switches and menus can all be animated.

## What can be animated?

Keyframes work on nodes inside a video Compositor, which has a timeline and playhead. An **Image Compositor** has no timeline, so its rows show **Cannot animate**; convert it to a video Compositor to animate. Nodes in the ordinary Graph, outside compositors, do not animate.

| Parameter type                   | Animates as                                        | Between keys              |
| -------------------------------- | -------------------------------------------------- | ------------------------- |
| Numbers (sliders, number fields) | A curve                                            | Interpolated, with easing |
| Colours                          | Red, green and blue channel curves, keyed together | Interpolated per channel  |
| Switches (on/off)                | Step keys                                          | Holds until the next key  |
| Menus (two or more options)      | Step keys                                          | Holds until the next key  |
| Text, file and asset choices     | Not animatable                                     | No key control is shown   |

Roto shapes have their own shape keys; see [Masks and keying](https://docs.nodespell.com/edit/masks-and-keying/).

## Set and remove a key

1. Go inside a video Compositor and select a node, so its parameters appear in [Parameters](https://docs.nodespell.com/graph/parameters/).
2. Move the playhead to the frame you want.
3. Click the diamond beside the parameter, or put the keyboard focus in the row and press `K`. The diamond fills to show **Key on this frame**.
4. Move the playhead and change the value. Set another key at the new frame.
5. To remove a key, go to its frame and click the filled diamond or press `K` again.

The arrows on either side of the diamond jump the playhead to the **Previous key** and **Next key**. Keying a colour keys all three channels in one step, so a single Undo removes it.

## Read the key control

| Diamond                                | Meaning                                                                    |
| -------------------------------------- | -------------------------------------------------------------------------- |
| Outline                                | **Not animated**                                                           |
| Outline with a dot                     | **Animated, no key on this frame**                                         |
| Filled (square for switches and menus) | **Key on this frame**                                                      |
| Half filled                            | **Some channels are keyed on this frame. Click to key the rest** (colours) |
| Amber                                  | **Changed since the last key, not keyed**                                  |
| Dashed                                 | **Cannot animate**                                                         |

Parameter rows follow the playhead: as you scrub or play, each animated row shows its value at the current frame. Changing a value on a key updates that key. Changing an animated value between keys shows it in amber and previews it, but it is not saved into the animation until you set a key. Nodespell has no auto-key.

## Edit keys in the dopesheet

Open the dopesheet from the diamond button with the key count in the compositor viewer's header. The **Animation** panel lists every animated parameter with a lane of keys, grouped by node. Colours show one summary lane that expands into **Red**, **Green** and **Blue**; switches and menus show each held value as a bar labelled with its value, such as **On** or **Off**.

| Action             | How                                                                                     |
| ------------------ | --------------------------------------------------------------------------------------- |
| Add a key          | Double-click a row at the frame you want                                                |
| Select keys        | Click; `Shift`, `Cmd` or `Ctrl`+click to add to the selection; `Cmd/Ctrl+A` selects all |
| Move keys          | Drag them, or press the left and right arrow keys (1 frame; 10 with `Shift`)            |
| Edit a key exactly | Select it and set **Frame**, **Value** and **Easing out of the key**                    |
| Delete keys        | `Delete` or `Backspace`, or **Delete keys**                                             |
| Deselect           | `Esc`                                                                                   |
| Clear everything   | **Clear all keys**, then click again to confirm                                         |
| Jump between keys  | **Previous key** and **Next key**                                                       |

## Shape easing in the curve editor

Switch the Animation panel from **Dopesheet** to **Curves** to edit animation curves. Switches and menus have no curve, because they change in steps; colours show one channel at a time.

| **Easing**                     | Behaviour                                                         |
| ------------------------------ | ----------------------------------------------------------------- |
| **Smooth**                     | Eases through the key                                             |
| **Linear**                     | Constant speed to the next key                                    |
| **Hold**                       | Keeps the value until the next key                                |
| **Handles** (**Custom curve**) | Bezier handles you drag; **Joined** or **Split**, and **Flatten** |

**More easings** offers **Ease in**, **Ease out** and **Ease in-out** presets, alongside **Reset key**. In the curve editor, `Cmd/Ctrl+C` and `Cmd/Ctrl+V` copy and paste keys, `Delete` removes them, `F` fits the view, and the arrow keys nudge the selected key in frame and value.

## Frequently asked questions

### Why does my parameter say Cannot animate?

The node is inside an Image Compositor, which has no timeline. Use **Convert to Video Compositor** from the compositor's actions to animate it.

### Can I keyframe nodes outside a compositor?

No. Keyframes belong to a video Compositor's timeline. Put the nodes inside a Compositor to animate them.

### Why did my change disappear when I moved the playhead?

The parameter was already animated and you changed it between keys without setting a key. The amber diamond warns about this; press `K` to keep the change.

### Can a menu, like a blend mode, change over time?

Yes. Menus and switches take step keys that hold their value until the next key.

## Related

- [Compositing](https://docs.nodespell.com/edit/compositing/): Image Compositor and Compositor.
- [Parameters](https://docs.nodespell.com/graph/parameters/): editing values.
- [Expressions](https://docs.nodespell.com/graph/expressions/): drive values with formulas instead of keys.
- [Masks and keying](https://docs.nodespell.com/edit/masks-and-keying/): animate Roto shapes.
- [Timeline](https://docs.nodespell.com/edit/timeline/): editorial sequencing of clips.
