# PlateDenoise

> Denoises camera plates (AIDenoise is for CG renders).

Denoises camera plates (AIDenoise is for CG renders). Aligns the frames around the current one (frames = how many each side) with optical flow (SEA-RAFT; align none for locked-off plates) and takes a robust average: a neighbour pixel counts only where it matches (motion threshold, in noise levels), so moving edges don't ghost. Flow model Auto picks the SEA-RAFT size by free GPU memory. Real grain is correlated between neighbouring pixels, which the noise measure takes into account. Spatial smooths the noise that is left, detail puts back removed structure, strength mixes. Output noise only = original minus denoised, to regrain later. The noise level is measured on every frame. The job log is under Details.

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

![PlateDenoise properties](/shots/nodes/platedenoise@2x.webp)

## Inputs and outputs

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

## Knobs

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

| Knob | Label | Type | Default | Range / values | .nk knob | Description |
|---|---|---|---|---|---|---|
| `align` | align | menu | `flow` | flow (optical flow), none (none (locked-off)) |  |  |
| `flow_model` | flow model | menu | `AUTO` | AUTO (Auto (by free GPU memory)), sea-raft-m (SEA-RAFT M), sea-raft-s (SEA-RAFT S) |  |  |
| `frames` | frames | float | `2` | 1 to 4 (integer) |  | Neighbours used on each side (2 = frames -2..+2) |
| `strength` | strength | float | `1` | 0 to 1 |  |  |
| `detail` | detail | float | `0.5` | 0 to 1 |  | Put back removed structure (edges the mean softened); also keeps the spatial pass finer |
| `motion_threshold` | motion threshold | float | `2.5` | 0.25 to 10 |  | How far (noise stds) a neighbour may differ before it is rejected; lower = less ghosting, less denoise |
| `spatial` | spatial | float | `0.75` | 0 to 1 |  | Edge-aware spatial smoothing of the noise the temporal pass left |
| `output` | output | menu | `denoised` | denoised, noise (noise only) |  |  |

### 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/platedenoise.py, opencomp_electron/src/components/properties/knobSchema.ts, opencomp_core/nodes/help/platedenoise.md
