# IBKColour

> Makes a clean plate for IBKGizmo.

Makes a clean plate for IBKGizmo. It keeps the pixels that are clearly screen, erodes them away from the foreground and fills the holes from the surrounding screen, so the result follows the screen's uneven light.

| Node | IBKColour |
|---|---|
| Menu | Keyer › IBKColour |
| **Names in each format** | |
| .oink comp (JSON) | `"type": "OC_N_ibkcolour"` |
| .nk script | `IBKColourV3`, also imports `IBKColour` ([how .nk import works](/docs/nuke-users/nk-import)) |
| Python | `nuke.createNode("IBKColourV3")` |
| Assistant (MCP) | `create_node(type="IBKColour")` |
| Tab search | `ibkcolour`, or its initials `ibkc` |

![IBKColour properties](/shots/nodes/ibkcolour@2x.webp)

## Usage
Connect the plate, set screen type, then feed the output into IBKGizmo's c input. Raise erode if
foreground edges leak into the plate; darks / lights offset and scale the plate before the screen
test.

## Inputs and outputs

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

## Knobs

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

| Knob | Label | Type | Default | Range / values | .nk knob | Description |
|---|---|---|---|---|---|---|
| `screen_type` | screen type | menu | `green` | green, blue | `screen_type` | green or blue. |
| `Size` | size | float | `10` | 0.5 to 100 | `Size` | the first fill blur in pixels; each fill level doubles it. |
| `off` | darks | colour ×3 | `0, 0, 0` | -0.5 to 0.5 | `off` | darks, added to the plate before the screen test. |
| `mult` | lights | colour ×3 | `1, 1, 1` | 0 to 2 | `mult` | lights, multiplies the plate before the screen test. |
| `erode` | erode | float | `0` | 0 to 20 | `erode` | pixels removed from the edge of the screen area. |

### 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 |  |  |  |  |

## Examples

Open these from **Help › Examples…**, or from the **?** menu in this node's Properties panel.

- **IBK: clean plate + difference key** (`examples/keying/ibk_clean_plate.oink`): The image based keyer pair on the Tears of Steel plate 08_3a (CC BY 3.0, Blender Foundation, mango.blender.org). IBKColour erodes the actor out of the screen and fills the hole from the surrounding green, giving a clean plate that follows the screen's uneven light. IBKGizmo keys the plate against it (red / blue-green weights 0.5) and subtracts the screen colour, so the result is premultiplied and despilled. The Viewer shows it over black.


---
Sources: opencomp_core/nodes/keyer/ibk.py, opencomp_electron/src/components/properties/knobSchema.ts, opencomp_core/nodes/help/ibkcolour.md, opencomp_core/nk/mapping.py
