# FrameFixer

> Rebuilds dropped or damaged frames from their neighbours.

Rebuilds dropped or damaged frames from their neighbours. Frames takes a frame list ("12 15-17"). Method: interpolate (RIFE 4.26 in the AI worker, from the nearest good frames before and after, at full size up to 4K, averaged with a reversed pass; two bad frames in a row get 1/3 and 2/3), hold previous, hold next. Connect a Mask to replace only the masked area (alpha; invert mask flips it). Other frames pass through. While RIFE runs the viewer shows the previous good frame; the job log is under Details.

| Node | FrameFixer |
|---|---|
| Menu | AI › FrameFixer |
| **Names in each format** | |
| .oink comp (JSON) | `"type": "OC_N_framefixer"` |
| .nk script | none: written as an Oink node |
| Python | `nuke.createNode("OC_N_framefixer")` |
| Assistant (MCP) | `create_node(type="FrameFixer")` |
| Tab search | `framefixer`, or its initials `ff` |

![FrameFixer properties](/shots/nodes/framefixer@2x.webp)

## Inputs and outputs

| Port | Name | Type |
|---|---|---|
| input 0 | Source | image |
| input 1 | Mask | image |
| output 0 | Image | image |

## Knobs

Panel tab **Framefixer**, in panel order.

| Knob | Label | Type | Default | Range / values | .nk knob | Description |
|---|---|---|---|---|---|---|
| `frames` | frames | text |  |  |  | Frames to fix, e.g. '12 15-17' (spaces or commas) |
| `method` | method | menu | `interpolate` | interpolate (interpolate (RIFE)), hold_previous (hold previous), hold_next (hold next) |  |  |
| `invert_mask` | invert mask | bool | `false` |  |  |  |

### Other knobs (Python, .nk and the assistant; not on the panel)

| Knob | Label | Type | Default | Range / values | .nk knob | Description |
|---|---|---|---|---|---|---|
| `gl_color` | Viewer Controls Color | float ×3 | `0, 0, 0` | 0 to 1 |  |  |
| `postage_stamp_frame` | Static Frame | int | `1` | -2147483648 to 2147483647 |  |  |
| `lifetimeStart` | Lifetime Start | int | `0` | -2147483648 to 2147483647 |  |  |
| `lifetimeEnd` | Lifetime End | int | `100` | -2147483648 to 2147483647 |  |  |
| `useLifetime` | Use Lifetime | boolean | `false` |  |  |  |
| `cached` | Cached | boolean | `false` |  |  |  |
| `bookmark` | Bookmark | boolean | `false` |  |  |  |
| `dope_sheet` | Dope Sheet | boolean | `false` |  |  |  |
| `clone_group` | Clone Group | string |  |  |  |  |
| `link_source` | Link Source | string |  |  |  |  |
| `link_overrides` | Link Overrides | string |  |  |  |  |
| `split_views` | Split Views | string |  |  |  |  |


---
Sources: opencomp_core/nodes/ai/framefixer.py, opencomp_electron/src/components/properties/knobSchema.ts, opencomp_core/nodes/help/framefixer.md
