Overview

The Color Picker is a dockable panel that replaces Nuke's built-in color chooser with a full-featured, HDR-capable swatch manager. It stores palettes persistently, supports drag-and-drop to and from Nuke knobs, viewer color sampling, palette extraction via K-means++ clustering, and import/export in industry-standard formats.

📷Color Picker panel overview showing swatch grid, tabs, and toolbarimg/color-picker/cpk-overview.png
The Color Picker panel docked inside Nuke with multiple swatch groups.

Opening the Picker

There are two ways to open the Color Picker:

Swatch Management

Adding swatches

Editing swatches

Double-click any swatch to re-open the HDR picker dialog with the current color pre-loaded. The swatch updates in place when you confirm.

Deleting swatches

Right-click a swatch and choose Delete, or select one or more swatches and press Delete.

📷Swatch groups with multiple tabs and color entriesimg/color-picker/cpk-groups.png
Swatches organized into named groups with drag-reorder support.

Groups & Tabs

Swatches are organized into groups, displayed as tabs along the top of the panel.

Creating a group

Click the + tab button at the end of the tab bar to create a new group. You will be prompted for a name.

Managing groups

Data format

Groups and swatches are stored as JSON. Each swatch records its RGB values as 32-bit floats (linear), preserving the full HDR range. See Data Storage for the file location.

HDR Color Picker Dialog

The HDR picker opens as a modal dialog whenever you create or edit a swatch. It provides precise control over the full dynamic range.

📷HDR Color Picker dialog with wheel, sliders, and hex inputimg/color-picker/cpk-hdr-dialog.png
The HDR Color Picker dialog with hue/saturation wheel, gain slider, and numeric inputs.

Hue / Saturation wheel

Click or drag on the circular wheel to set hue and saturation simultaneously. The wheel updates dynamically to reflect the current gain level.

Gain slider

The vertical gain slider uses an exponential scale from 0 to 50, giving fine control in the 0–1 SDR range while still reaching extreme HDR highlights.

Slider modes

Toggle between three slider-bank modes using the buttons above the sliders:

ModeChannelsRange
RGBRed, Green, Blue0 – 50
HSVHue, Saturation, ValueH: 0–360, S: 0–1, V: 0–50
TMITemperature, Magenta, IntensityT: -1–1, M: -1–1, I: 0–50

Additional controls

🎬Animated hue wheel interaction with gain sliderimg/color-picker/cpk-wheel.gif
Dragging on the hue/saturation wheel with the gain slider adjusting intensity in real time.

RotoPaint Integration

The Color Picker has dedicated shortcuts for RotoPaint workflows:

🎬RotoPaint integration: Ctrl+click and Alt+click swatch applicationimg/color-picker/cpk-rotopaint.gif
Applying swatch colors to RotoPaint brush and selected strokes with modifier clicks.

Smart Color Apply

When you click a swatch (without modifiers), the picker intelligently detects the selected node type and applies the color to the most appropriate knob:

Node typeBehavior
RotoPaintSets the overlay color on the node (use Ctrl/Alt for brush/stroke)
Single color knobApplies directly to the color knob (e.g. Constant, Fill)
Multiple color knobsShows a menu letting you choose which knob to set
No color knobSets the node's tile color for visual organization

Viewer Color Sampling

Point sampling

Click the eyedropper button, then click a single pixel in the Nuke viewer. The sampled value is added as a new swatch with full 32-bit float precision in linear color space.

Area sampling

Drag a rectangle in the Nuke viewer to sample an area. The picker averages up to 2500 pixels within the bounding box to produce a representative color.

Technical details

🎬Viewer color sampling: point and area modesimg/color-picker/cpk-viewer-sample.gif
Sampling colors from the Nuke viewer with point click and area drag.

Extract Palette from Viewer

How to use

  1. Frame the image you want to analyze in the Nuke viewer.
  2. Click the Extract Palette button in the Color Picker toolbar.
  3. Choose the number of colors to extract (default: 6).
  4. The extracted colors appear as a new swatch group.

K-means++ algorithm

The extraction uses K-means++ clustering to find the most representative colors in the image. K-means++ improves on standard K-means by choosing smarter initial centroids, producing more consistent and perceptually meaningful palettes.

Use cases

🎬Palette extraction from viewer via K-means++ clusteringimg/color-picker/cpk-extract.gif
Extracting a palette from the current viewer image using K-means++ clustering.

Match Color

Match Color creates a Grade node that transforms one color into another, useful for quick color matching between elements.

Workflow

  1. Right-click a swatch — Choose Match Color from the context menu. This swatch becomes the target color.
  2. Sample the source — Click or drag in the viewer to pick the color you want to transform from.
  3. Live preview — A Grade node is created immediately and connected to the selected node. The viewer updates in real time as you adjust.
  4. Validate — Click Apply to keep the Grade node, or Cancel to remove it.

Grade node structure

The generated Grade node uses:

📷Match Color workflow with Grade node resultimg/color-picker/cpk-match-color.png
Match Color workflow: select target swatch, sample source, Grade node is created automatically.

Color Harmonies

Right-click any swatch and choose Generate Harmonies to create a set of color-theory-based companion colors. The generated swatches are added to the current group.

HarmonyExtra colorsHue offset
Complementary1180°
Analogous2+/−30°
Triadic2120°
Split-Complementary2150° / 210°
Tetradic3Rectangle pattern
📷Color harmonies generated from a base swatchimg/color-picker/cpk-harmonies.png
Complementary, analogous, triadic, split-complementary, and tetradic harmonies from a single swatch.

Drag & Drop

From picker to Nuke

From Nuke to picker

Drag a color value from any Nuke knob and drop it onto the swatch grid to add it as a new swatch.

Technical format

Drag data uses the MIME type application/x-nuke-color encoding RGB as three space-separated floats (e.g. 1.0 0.4 0.15), preserving full HDR range.

🎬Drag and drop between Color Picker and Nuke DAG/Propertiesimg/color-picker/cpk-dragdrop.gif
Dragging swatches to Nuke knobs and the DAG, and dragging colors from Nuke into the picker.

Import / Export

Supported formats

FormatImportExportColor depthNotes
JSONYesYes32-bit floatNative format, preserves HDR + group names
ASEYesYes32-bit floatAdobe Swatch Exchange, widely supported
GPLYesYes8-bitGIMP palette, sRGB only
ACOYesYes16-bitAdobe Photoshop color swatches
KPLYesYesvariesKrita palette format
ProcreateYesYes8-bit.swatches files from Procreate

Importing

Click the Import button and select a file. You are prompted to choose an import mode:

Exporting

Click the Export button, choose a format, and save. The entire current group is exported. For JSON, all groups can be exported at once.

Color space handling

Internal storage is always linear (scene-referred). When exporting to 8-bit formats like GPL, colors are converted to sRGB with gamma encoding. When importing from sRGB sources, the inverse transform is applied automatically.

📷Import/Export dialog with format optionsimg/color-picker/cpk-import-export.png
Importing and exporting palettes in various industry-standard formats.

Keyboard & Mouse Reference

Swatch actions

ActionShortcut
Apply color to selected nodeClick swatch
Edit swatch colorDouble-click swatch
Set RotoPaint brush colorCtrl+click swatch
Set RotoPaint stroke colorAlt+click swatch
Delete swatchSelect + Delete
Context menuRight-click swatch
Drag to NukeClick-drag swatch

HDR picker dialog

ActionShortcut
Set hue & saturationClick / drag on wheel
Adjust gainDrag gain slider
Fine adjust any sliderMouse wheel
Enter hex valueType in hex field + Enter
ConfirmEnter / OK button
CancelEsc

Tab bar

ActionShortcut
Switch groupClick tab
Rename groupDouble-click tab
Reorder groupsDrag tab
New groupClick + tab
Group optionsRight-click tab

Troubleshooting

ProblemSolution
Swatches not saving between sessionsCheck write permissions on ~/.nuke/. The data file must be writable.
Viewer sampling returns blackEnsure a viewer is active and an image is loaded. The node upstream of the viewer must be connected and computed.
Colors look different after export/import8-bit formats (GPL, Procreate) clip HDR values and apply sRGB gamma. Use JSON or ASE for full fidelity.
Drag & drop not workingMake sure you are dragging from the swatch itself, not the background. On some Linux window managers, drag may require holding for ~200ms before moving.
RotoPaint shortcuts not respondingA RotoPaint node must be selected in the DAG. The node must have an active paint tool.
Panel not appearing in Panes menuVerify that NELSIG Node Graph Tools loaded correctly — check the Script Editor for errors at startup. See the installation guide.

Data Storage

All swatches and group definitions are persisted to a single JSON file:

~/.nuke/nelsig_color_picker_data.json

The file is written automatically whenever you add, edit, delete, or reorder swatches. It is human-readable and safe to version-control or copy between machines.