0% found this document useful (0 votes)
1K views1,472 pages

Natron Documentation

natron documentation

Uploaded by

Wibi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1K views1,472 pages

Natron Documentation

natron documentation

Uploaded by

Wibi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1472

Natron Documentation

Release 3.0.0

The Natron documentation authors

Jul 20, 2019


Contents

1 User Guide 3
1.1 What is compositing? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 Theory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2 Practice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Getting started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 About . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.3 Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2.4 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3 Compositing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.3.1 Managing Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.3.2 Reformatting elements (empty) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3.3 Channels (empty) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3.4 Merging images (empty) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3.5 Noise removal (empty) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3.6 Keying (empty) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3.7 Using Rotopaint (empty) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3.8 Tracking and stabilizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3.9 Transforming elements (empty) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.3.10 Working with color (empty) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.3.11 Stereoscopic compositing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.3.12 Preview and rendering (empty) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.3.13 Expressions (empty) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.4 Tutorials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.4.1 Writing documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.4.2 HSVTool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
1.4.3 FFmpeg (empty) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
1.4.4 Using PanoTools projects within Natron . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.4.5 Vector graphics workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
1.4.6 Alternative Matte Extraction Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

2 Reference Guide 57
2.1 Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.1.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.1.2 Threading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.1.3 Rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.1.4 GPU Rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.1.5 Project Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.1.6 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.1.7 User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.1.8 Color Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

i
2.1.9 Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.1.10 Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.1.11 Nodegraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.1.12 Plug-ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.1.13 Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.1.14 Appearance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.2 Image nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.2.1 CheckerBoard node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.2.2 ColorBars node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.2.3 ColorWheel node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.2.4 Constant node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.2.5 OpenRaster node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.2.6 Read node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
2.2.7 ReadCDR node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
2.2.8 ReadFFmpeg node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
2.2.9 ReadKrita node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
2.2.10 ReadMisc node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2.2.11 ReadOIIO node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
2.2.12 ReadPDF node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
2.2.13 ReadPFM node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
2.2.14 ReadPNG node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
2.2.15 ReadPSD node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
2.2.16 ReadSVG node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
2.2.17 RunScript node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
2.2.18 Solid node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
2.2.19 Write node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
2.2.20 WriteFFmpeg node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
2.2.21 WriteOIIO node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
2.2.22 WritePFM node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
2.2.23 WritePNG node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
2.3 Draw nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
2.3.1 LightWrap node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
2.3.2 Noise node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
2.3.3 Plasma node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
2.3.4 Radial node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
2.3.5 Ramp node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
2.3.6 Rand node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
2.3.7 Rectangle node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
2.3.8 Roto node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
2.3.9 RotoPaint node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
2.3.10 SeGrain node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
2.3.11 SeNoise node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
2.3.12 Text node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
2.4 Time nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
2.4.1 AppendClip node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
2.4.2 Deinterlace node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
2.4.3 FrameBlend node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
2.4.4 FrameHold node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
2.4.5 FrameRange node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
2.4.6 NoTimeBlur node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
2.4.7 Retime node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
2.4.8 SlitScan node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
2.4.9 TimeBlur node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
2.4.10 TimeOffset node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
2.5 Channel nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
2.5.1 Shuffle node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
2.6 Color nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
2.6.1 Add node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214

ii
2.6.2 Clamp node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
2.6.3 ClipTest node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
2.6.4 ColorCorrect node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
2.6.5 ColorLookup node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
2.6.6 ColorMatrix node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
2.6.7 ColorSuppress node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
2.6.8 Equalize node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
2.6.9 Gamma node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
2.6.10 Grade node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
2.6.11 HSIToRGB node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
2.6.12 HSLToRGB node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
2.6.13 HSVToRGB node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
2.6.14 HSVTool node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
2.6.15 HistEQ node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
2.6.16 HueCorrect node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
2.6.17 Invert node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
2.6.18 LabToRGB709 node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
2.6.19 LabToXYZ node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
2.6.20 Log2Lin node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
2.6.21 Multiply node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
2.6.22 OCIOCDLTransform node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
2.6.23 OCIOColorSpace node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
2.6.24 OCIODisplay node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
2.6.25 OCIOFileTransform node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
2.6.26 OCIOLogConvert node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
2.6.27 OCIOLookTransform node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
2.6.28 PLogLin node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
2.6.29 Quantize node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
2.6.30 RGB709ToLab node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
2.6.31 RGB709ToXYZ node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
2.6.32 RGBToHSI node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
2.6.33 RGBToHSL node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
2.6.34 RGBToHSV node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
2.6.35 RGBToYCbCr601 node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
2.6.36 RGBToYCbCr709 node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
2.6.37 RGBToYPbPr601 node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
2.6.38 RGBToYPbPr709 node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
2.6.39 RGBToYUV601 node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
2.6.40 RGBToYUV709 node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
2.6.41 Saturation node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
2.6.42 VectorToColor node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
2.6.43 XYZToLab node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
2.6.44 XYZToRGB709 node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
2.6.45 XYZToxyY node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
2.6.46 YCbCrToRGB601 node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
2.6.47 YCbCrToRGB709 node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
2.6.48 YPbPrToRGB601 node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
2.6.49 YPbPrToRGB709 node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
2.6.50 YUVToRGB601 node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
2.6.51 YUVToRGB709 node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
2.6.52 xyYToXYZ node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
2.7 Filter nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
2.7.1 AngleBlur node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
2.7.2 Bloom node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
2.7.3 Blur node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
2.7.4 ChromaBlur node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
2.7.5 DenoiseSharpen node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
2.7.6 Dilate node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277

iii
2.7.7 DirBlur node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
2.7.8 Distance node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
2.7.9 DropShadow node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
2.7.10 EdgeBlur node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
2.7.11 EdgeDetect node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
2.7.12 EdgeExtend node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
2.7.13 Erode node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
2.7.14 ErodeBlur node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
2.7.15 ErodeSmooth node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
2.7.16 Fill node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
2.7.17 GMICExpr node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
2.7.18 Glow node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
2.7.19 GodRays node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
2.7.20 Inpaint node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
2.7.21 Laplacian node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
2.7.22 Matrix3x3 node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
2.7.23 Matrix5x5 node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
2.7.24 Median node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
2.7.25 Shadertoy node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
2.7.26 Sharpen node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
2.7.27 SharpenInvDiff node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
2.7.28 SharpenShock node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
2.7.29 SmoothAnisotropic node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
2.7.30 SmoothBilateral node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
2.7.31 SmoothBilateralGuided node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
2.7.32 SmoothGuided node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
2.7.33 SmoothPatchBased node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
2.7.34 SmoothRollingGuidance node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
2.7.35 Soften node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
2.7.36 ZMask node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
2.7.37 ZRemap node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
2.8 Keyer nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
2.8.1 ChromaKeyer node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
2.8.2 Despill node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
2.8.3 Difference node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
2.8.4 HueKeyer node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
2.8.5 Keyer node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
2.8.6 MatteMonitor node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
2.8.7 PIK node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
2.8.8 PIKColor node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
2.9 Merge nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
2.9.1 Absminus node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
2.9.2 ContactSheet node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
2.9.3 CopyRectangle node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
2.9.4 Dissolve node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
2.9.5 In node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
2.9.6 KeyMix node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
2.9.7 LayerContactSheet node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
2.9.8 Matte node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
2.9.9 Max node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
2.9.10 Merge node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
2.9.11 Min node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
2.9.12 Multiply node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
2.9.13 Out node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
2.9.14 Plus node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
2.9.15 Premult node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
2.9.16 RotoMerge node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
2.9.17 Screen node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385

iv
2.9.18 SeExpr node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
2.9.19 SeExprSimple node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
2.9.20 Switch node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
2.9.21 TimeDissolve node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
2.9.22 Unpremult node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
2.10 Transform nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
2.10.1 AdjustRoD node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
2.10.2 Card3D node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
2.10.3 CornerPin node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
2.10.4 CornerPinMasked node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
2.10.5 Crop node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
2.10.6 IDistort node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
2.10.7 LensDistortion node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
2.10.8 Mirror node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
2.10.9 Position node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
2.10.10 Reformat node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
2.10.11 Resize node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
2.10.12 STMap node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
2.10.13 SpriteSheet node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
2.10.14 Tracker node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
2.10.15 Transform node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
2.10.16 TransformMasked node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
2.11 Views nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
2.11.1 Anaglyph node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
2.11.2 JoinViews node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
2.11.3 MixViews node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
2.11.4 OneView node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
2.11.5 SideBySide node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
2.12 Other nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
2.12.1 Backdrop node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
2.12.2 DiskCache node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
2.12.3 Dot node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
2.12.4 Group node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
2.12.5 ImageStatistics node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
2.12.6 Input node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
2.12.7 NoOp node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
2.12.8 Output node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
2.12.9 Precomp node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
2.13 GMIC nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
2.13.1 About G’MIC node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
2.13.2 G’MIC 3D Blocks node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
2.13.3 G’MIC 3D Colored Object node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
2.13.4 G’MIC 3D Elevation node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
2.13.5 G’MIC 3D Extrusion node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
2.13.6 G’MIC 3D Image Object node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
2.13.7 G’MIC 3D Lathing node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
2.13.8 G’MIC 3D Random Objects node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
2.13.9 G’MIC Abstraction node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
2.13.10 G’MIC Add Grain node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
2.13.11 G’MIC Align Layers node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
2.13.12 G’MIC Apply External CLUT node . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
2.13.13 G’MIC Array Faded node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
2.13.14 G’MIC Array Mirrored node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
2.13.15 G’MIC Array Random node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
2.13.16 G’MIC Array Random Colors node . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
2.13.17 G’MIC Array Regular node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
2.13.18 G’MIC Ascii Art node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
2.13.19 G’MIC B&W Stencil node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490

v
2.13.20 G’MIC Ball node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
2.13.21 G’MIC Bandpass node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
2.13.22 G’MIC Barnsley Fern node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
2.13.23 G’MIC Basic Adjustments node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
2.13.24 G’MIC Bayer Filter node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
2.13.25 G’MIC Bayer Reconstruction node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
2.13.26 G’MIC Black & White node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
2.13.27 G’MIC Blend Average All node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
2.13.28 G’MIC Blend Edges node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
2.13.29 G’MIC Blend Fade node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
2.13.30 G’MIC Blend Median node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
2.13.31 G’MIC Blend Seamless node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
2.13.32 G’MIC Blend Standard node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
2.13.33 G’MIC Blur Angular node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
2.13.34 G’MIC Blur Bloom node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
2.13.35 G’MIC Blur Depth-of-Field node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
2.13.36 G’MIC Blur Gaussian node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527
2.13.37 G’MIC Blur Glow node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530
2.13.38 G’MIC Blur Linear node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
2.13.39 G’MIC Blur Radial node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536
2.13.40 G’MIC Bokeh node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
2.13.41 G’MIC Boost Chromaticity node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
2.13.42 G’MIC Boost-Fade node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
2.13.43 G’MIC Box Fitting node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
2.13.44 G’MIC Brushify node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
2.13.45 G’MIC Burn node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549
2.13.46 G’MIC CLUT from After / Before Layers node . . . . . . . . . . . . . . . . . . . . . . 552
2.13.47 G’MIC Camouflage node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
2.13.48 G’MIC Canvas node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
2.13.49 G’MIC Canvas Texture node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
2.13.50 G’MIC Cartesian Transform node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
2.13.51 G’MIC Cartoon node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560
2.13.52 G’MIC Channel Processing node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
2.13.53 G’MIC Channels to Layers node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
2.13.54 G’MIC Charcoal node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
2.13.55 G’MIC Chessboard node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570
2.13.56 G’MIC Chromatic Aberrations node . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
2.13.57 G’MIC Circle Abstraction node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
2.13.58 G’MIC Circle Art node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
2.13.59 G’MIC Circle Transform node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577
2.13.60 G’MIC Color Balance node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
2.13.61 G’MIC Color Blindness node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
2.13.62 G’MIC Color Presets node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
2.13.63 G’MIC Colorful Blobs node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598
2.13.64 G’MIC Colorize Lineart Auto-Fill node . . . . . . . . . . . . . . . . . . . . . . . . . . 602
2.13.65 G’MIC Colorize Lineart Propagation node . . . . . . . . . . . . . . . . . . . . . . . . . 603
2.13.66 G’MIC Colorize Lineart Smart Coloring node . . . . . . . . . . . . . . . . . . . . . . . 606
2.13.67 G’MIC Colorize Photographs node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608
2.13.68 G’MIC Colorize with Colormap node . . . . . . . . . . . . . . . . . . . . . . . . . . . 610
2.13.69 G’MIC Colormap node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
2.13.70 G’MIC Colors to Layers node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616
2.13.71 G’MIC Conformal Maps node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617
2.13.72 G’MIC Contrast Swiss Mask node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
2.13.73 G’MIC Convolve node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621
2.13.74 G’MIC Cracks node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625
2.13.75 G’MIC Crease node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628
2.13.76 G’MIC Crystal node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629
2.13.77 G’MIC Crystal Background node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631

vi
2.13.78 G’MIC Cubism node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632
2.13.79 G’MIC Cupid node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634
2.13.80 G’MIC Curvature node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636
2.13.81 G’MIC Custom Code Global node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638
2.13.82 G’MIC Custom Code Local node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642
2.13.83 G’MIC Customize CLUT node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646
2.13.84 G’MIC Cutout node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654
2.13.85 G’MIC Decompose Channels node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656
2.13.86 G’MIC Deinterlace node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658
2.13.87 G’MIC Details Equalizer node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660
2.13.88 G’MIC Detect Skin node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664
2.13.89 G’MIC Dices node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666
2.13.90 G’MIC Difference of Gaussians node . . . . . . . . . . . . . . . . . . . . . . . . . . . 668
2.13.91 G’MIC Diffusion Tensors node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670
2.13.92 G’MIC Dirty node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672
2.13.93 G’MIC Distance Transform node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
2.13.94 G’MIC Distort Lens node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677
2.13.95 G’MIC Dithering node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678
2.13.96 G’MIC Drawn Montage node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680
2.13.97 G’MIC Drop Shadow node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682
2.13.98 G’MIC Drop Shadow 3D node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684
2.13.99 G’MIC Drop Water node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685
2.13.100G’MIC Droste node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687
2.13.101G’MIC Edges node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689
2.13.102G’MIC Edges Offsets node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691
2.13.103G’MIC Ellipsionism node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693
2.13.104G’MIC Engrave node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695
2.13.105G’MIC Equalize HSI-HSL-HSV node . . . . . . . . . . . . . . . . . . . . . . . . . . . 697
2.13.106G’MIC Equalize HSV node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700
2.13.107G’MIC Equalize Local Histograms node . . . . . . . . . . . . . . . . . . . . . . . . . . 702
2.13.108G’MIC Equalize Shadow node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706
2.13.109G’MIC Equation Plot Parametric node . . . . . . . . . . . . . . . . . . . . . . . . . . . 708
2.13.110G’MIC Equation Plot Y=f(X) node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709
2.13.111G’MIC Equirectangular to Nadir-Zenith node . . . . . . . . . . . . . . . . . . . . . . . 711
2.13.112G’MIC Euclidean Polar node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
2.13.113G’MIC Extract Objects node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714
2.13.114G’MIC Fade Layers node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716
2.13.115G’MIC Felt Pen node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717
2.13.116G’MIC Fish-Eye node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
2.13.117G’MIC Flip & Rotate Blocs node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720
2.13.118G’MIC Flower node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724
2.13.119G’MIC Fourier Analysis node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725
2.13.120G’MIC Fourier Transform node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
2.13.121G’MIC Fourier Watermark node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728
2.13.122G’MIC Fractalize node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729
2.13.123G’MIC Frame Blur node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
2.13.124G’MIC Frame Cube node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732
2.13.125G’MIC Frame Fuzzy node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734
2.13.126G’MIC Frame Mirror node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736
2.13.127G’MIC Frame Painting node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737
2.13.128G’MIC Frame Pattern node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739
2.13.129G’MIC Frame Regular node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741
2.13.130G’MIC Frame Round node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742
2.13.131G’MIC Frame Smooth node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744
2.13.132G’MIC Freaky B&W node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745
2.13.133G’MIC Freaky Details node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747
2.13.134G’MIC Games & Demos node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 750
2.13.135G’MIC Gear node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 752

vii
2.13.136G’MIC Gradient Corners node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754
2.13.137G’MIC Gradient Custom Shape node . . . . . . . . . . . . . . . . . . . . . . . . . . . 755
2.13.138G’MIC Gradient Linear node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758
2.13.139G’MIC Gradient Norm node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760
2.13.140G’MIC Gradient RGB node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762
2.13.141G’MIC Gradient Radial node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
2.13.142G’MIC Gradient Random node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765
2.13.143G’MIC Gradient from Line node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
2.13.144G’MIC Grid Cartesian node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
2.13.145G’MIC Grid Hexagonal node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770
2.13.146G’MIC Grid Triangular node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771
2.13.147G’MIC Halftone node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773
2.13.148G’MIC Hard Sketch node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775
2.13.149G’MIC Heart node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777
2.13.150G’MIC Hearts node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778
2.13.151G’MIC Highlight Bloom node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782
2.13.152G’MIC Histogram Analysis node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784
2.13.153G’MIC Hope Poster node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786
2.13.154G’MIC Hough Sketch node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 788
2.13.155G’MIC Illuminate 2D Shape node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 790
2.13.156G’MIC Import Data node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 794
2.13.157G’MIC Ink Wash node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 795
2.13.158G’MIC Inpaint Holes node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797
2.13.159G’MIC Inpaint Morphological node . . . . . . . . . . . . . . . . . . . . . . . . . . . . 798
2.13.160G’MIC Inpaint Multi-Scale node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 800
2.13.161G’MIC Inpaint Patch-Based node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
2.13.162G’MIC Inpaint Transport-Diffusion node . . . . . . . . . . . . . . . . . . . . . . . . . 803
2.13.163G’MIC Intarsia node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805
2.13.164G’MIC Isophotes node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807
2.13.165G’MIC JPEG Artefacts node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 809
2.13.166G’MIC Kaleidoscope Blended node . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811
2.13.167G’MIC Kaleidoscope Polar node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812
2.13.168G’MIC Kaleidoscope Symmetry node . . . . . . . . . . . . . . . . . . . . . . . . . . . 814
2.13.169G’MIC Kuwahara node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815
2.13.170G’MIC Laplacian node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 819
2.13.171G’MIC Lava node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 821
2.13.172G’MIC Layers to Tiles node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823
2.13.173G’MIC Light Glow node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 824
2.13.174G’MIC Light Leaks node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 828
2.13.175G’MIC Light Patch node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 830
2.13.176G’MIC Light Rays node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833
2.13.177G’MIC Lightning node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835
2.13.178G’MIC Linify node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837
2.13.179G’MIC Lissajous node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839
2.13.180G’MIC Local Normalization node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 841
2.13.181G’MIC Local Orientation node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 844
2.13.182G’MIC Local Processing node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847
2.13.183G’MIC Lomo node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 850
2.13.184G’MIC Lylejk’s Painting node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852
2.13.185G’MIC Magic Details node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 854
2.13.186G’MIC Make Seamless Diffusion node . . . . . . . . . . . . . . . . . . . . . . . . . . 857
2.13.187G’MIC Make Seamless Patch-Based node . . . . . . . . . . . . . . . . . . . . . . . . . 859
2.13.188G’MIC Mandelbrot Julia Sets node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 861
2.13.189G’MIC Marble node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863
2.13.190G’MIC Maze node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 864
2.13.191G’MIC Mess With Bits node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866
2.13.192G’MIC Mighty Details node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 870
2.13.193G’MIC Mineral Mosaic node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873

viii
2.13.194G’MIC Ministeck node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 874
2.13.195G’MIC Mixer CMYK node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876
2.13.196G’MIC Mixer HSV node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
2.13.197G’MIC Mixer Lab node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 880
2.13.198G’MIC Mixer PCA node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883
2.13.199G’MIC Mixer RGB node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885
2.13.200G’MIC Mixer YCbCr node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 887
2.13.201G’MIC Montage node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889
2.13.202G’MIC Morph Layers node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 892
2.13.203G’MIC Morphological Filter node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 893
2.13.204G’MIC Mosaic node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897
2.13.205G’MIC Multiscale Operator node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 900
2.13.206G’MIC Neon Lightning node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902
2.13.207G’MIC Noise Additive node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904
2.13.208G’MIC Noise Perlin node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 907
2.13.209G’MIC Noise Spread node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 910
2.13.210G’MIC Old Photograph node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 913
2.13.211G’MIC Old-Movie Stripes node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 914
2.13.212G’MIC Oldschool 8bits node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 918
2.13.213G’MIC Op Art node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 920
2.13.214G’MIC Pack node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 923
2.13.215G’MIC Pack Sprites node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925
2.13.216G’MIC Painting node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927
2.13.217G’MIC Paper Texture node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 928
2.13.218G’MIC Pen Drawing node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932
2.13.219G’MIC Pencil node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934
2.13.220G’MIC Pencil Portrait node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936
2.13.221G’MIC Perspective node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 938
2.13.222G’MIC Pixel Sort node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 939
2.13.223G’MIC Plaid node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 941
2.13.224G’MIC Plasma node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943
2.13.225G’MIC Polar Transform node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 944
2.13.226G’MIC Polaroid node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 946
2.13.227G’MIC Polka Dots node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947
2.13.228G’MIC Polygonize Delaunay node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 949
2.13.229G’MIC Polygonize Energy node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 951
2.13.230G’MIC Pop Shadows node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 953
2.13.231G’MIC Poster Edges node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 955
2.13.232G’MIC Posterize node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 957
2.13.233G’MIC Puzzle node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 959
2.13.234G’MIC Quadrangle node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 961
2.13.235G’MIC Quadtree Variations node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 962
2.13.236G’MIC Quick Copyright node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 965
2.13.237G’MIC Rain & Snow node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 966
2.13.238G’MIC Rainbow node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 968
2.13.239G’MIC Raindrops node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 970
2.13.240G’MIC Random node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 971
2.13.241G’MIC Random Color Ellipses node . . . . . . . . . . . . . . . . . . . . . . . . . . . . 972
2.13.242G’MIC Random Shade Stripes node . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974
2.13.243G’MIC Red-Eye Attenuation node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977
2.13.244G’MIC Reflection node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 978
2.13.245G’MIC Relief Light node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 980
2.13.246G’MIC Remove Hot Pixels node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981
2.13.247G’MIC Resynthetize Texture FFT node . . . . . . . . . . . . . . . . . . . . . . . . . . 983
2.13.248G’MIC Resynthetize Texture Patch-Based node . . . . . . . . . . . . . . . . . . . . . . 985
2.13.249G’MIC Retinex node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 987
2.13.250G’MIC Retro Fade node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 989
2.13.251G’MIC Ripple node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 991

ix
2.13.252G’MIC Rodilius node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 992
2.13.253G’MIC Rorschach node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 996
2.13.254G’MIC Sample Image node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997
2.13.255G’MIC Satin node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1001
2.13.256G’MIC Scanlines node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1003
2.13.257G’MIC Seamcarve node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1007
2.13.258G’MIC Seamless Turbulence node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008
2.13.259G’MIC Segmentation node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1010
2.13.260G’MIC Select-Replace Color node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013
2.13.261G’MIC Selective Desaturation node . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015
2.13.262G’MIC Self Glitching node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1017
2.13.263G’MIC Sepia node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1021
2.13.264G’MIC Shade Bobs node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023
2.13.265G’MIC Shadow Patch node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1025
2.13.266G’MIC Shapeism node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027
2.13.267G’MIC Sharp Abstract node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1029
2.13.268G’MIC Sharpen Deblur node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1033
2.13.269G’MIC Sharpen Gold-Meinel node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1036
2.13.270G’MIC Sharpen Inverse Diffusion node . . . . . . . . . . . . . . . . . . . . . . . . . . 1040
2.13.271G’MIC Sharpen Octave Sharpening node . . . . . . . . . . . . . . . . . . . . . . . . . 1043
2.13.272G’MIC Sharpen Richardson-Lucy node . . . . . . . . . . . . . . . . . . . . . . . . . . 1046
2.13.273G’MIC Sharpen Shock Filters node . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1048
2.13.274G’MIC Sharpen Texture node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1051
2.13.275G’MIC Sharpen Unsharp Mask node . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054
2.13.276G’MIC Shock Waves node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1057
2.13.277G’MIC Sierpinski Triangle node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1060
2.13.278G’MIC Simulate Film node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061
2.13.279G’MIC Skeleton node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1071
2.13.280G’MIC Sketch node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1073
2.13.281G’MIC Slice Luminosity node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075
2.13.282G’MIC Smooth Abstract node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078
2.13.283G’MIC Smooth Anisotropic node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1080
2.13.284G’MIC Smooth Antialias node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1084
2.13.285G’MIC Smooth Bilateral node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1086
2.13.286G’MIC Smooth Diffusion node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1089
2.13.287G’MIC Smooth Guided node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1092
2.13.288G’MIC Smooth Mean-Curvature node . . . . . . . . . . . . . . . . . . . . . . . . . . . 1095
2.13.289G’MIC Smooth Median node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1098
2.13.290G’MIC Smooth NL-Means node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1101
2.13.291G’MIC Smooth Patch-Based node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1104
2.13.292G’MIC Smooth Patch-PCA node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1108
2.13.293G’MIC Smooth Perona-Malik node . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1111
2.13.294G’MIC Smooth Selective Gaussian node . . . . . . . . . . . . . . . . . . . . . . . . . . 1114
2.13.295G’MIC Smooth Skin node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1117
2.13.296G’MIC Smooth Thin Brush node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1120
2.13.297G’MIC Smooth Total Variation node . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1122
2.13.298G’MIC Smooth Wavelets node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1125
2.13.299G’MIC Snowflake node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1128
2.13.300G’MIC Solidify node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1129
2.13.301G’MIC Solve Maze node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1131
2.13.302G’MIC Sphere node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1133
2.13.303G’MIC Spherize node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1135
2.13.304G’MIC Split Details Alpha node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1136
2.13.305G’MIC Split Details Gaussian node . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1138
2.13.306G’MIC Split Details Wavelets node . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1139
2.13.307G’MIC Sponge node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141
2.13.308G’MIC Square to Circle node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1144
2.13.309G’MIC Stained Glass node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1146

x
2.13.310G’MIC Stamp node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1148
2.13.311G’MIC Stars node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1150
2.13.312G’MIC Stencil node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1151
2.13.313G’MIC Stereographic Projection node . . . . . . . . . . . . . . . . . . . . . . . . . . . 1153
2.13.314G’MIC Streak node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1155
2.13.315G’MIC Stroke node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1157
2.13.316G’MIC Super-Pixels node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1159
2.13.317G’MIC Superformula node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1161
2.13.318G’MIC Symmetric 2D Shape node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162
2.13.319G’MIC Symmetrize node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1164
2.13.320G’MIC Taquin node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1166
2.13.321G’MIC Tetris node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1167
2.13.322G’MIC Textured Glass node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1169
2.13.323G’MIC Thin Edges node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1171
2.13.324G’MIC Tileable Rotation node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1173
2.13.325G’MIC Tiled Isolation node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174
2.13.326G’MIC Tiled Normalization node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1176
2.13.327G’MIC Tiled Parameterization node . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178
2.13.328G’MIC Tiled Random Shifts node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1180
2.13.329G’MIC Tiled Rotation node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1181
2.13.330G’MIC Tiles to Layers node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1182
2.13.331G’MIC Tone Mapping node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1184
2.13.332G’MIC Tone Mapping Fast node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1187
2.13.333G’MIC Tones to Layers node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1190
2.13.334G’MIC Transfer Colors Histogram node . . . . . . . . . . . . . . . . . . . . . . . . . . 1191
2.13.335G’MIC Transfer Colors Variational node . . . . . . . . . . . . . . . . . . . . . . . . . . 1195
2.13.336G’MIC Truchet node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1197
2.13.337G’MIC Tunnel node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1199
2.13.338G’MIC Turbulence node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1200
2.13.339G’MIC Twirl node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1202
2.13.340G’MIC Upscale DCCI2x node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1203
2.13.341G’MIC Upscale Diffusion node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1205
2.13.342G’MIC Upscale Scale2x node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1206
2.13.343G’MIC User-Defined node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1208
2.13.344G’MIC Vector Painting node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1210
2.13.345G’MIC Vignette node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1211
2.13.346G’MIC Visible Watermark node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1213
2.13.347G’MIC Warhol node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1214
2.13.348G’MIC Warp by Intensity node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1216
2.13.349G’MIC Water node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1219
2.13.350G’MIC Wave node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220
2.13.351G’MIC Weave node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1222
2.13.352G’MIC Whirl Drawing node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223
2.13.353G’MIC Whirls node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1225
2.13.354G’MIC Wind node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1228
2.13.355G’MIC Zoom node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1231
2.14 Extra nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1232
2.14.1 Arc node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1232
2.14.2 Charcoal node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1233
2.14.3 Edges node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234
2.14.4 Implode node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1235
2.14.5 Modulate node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1236
2.14.6 Oilpaint node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1237
2.14.7 Polar node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1237
2.14.8 Polaroid node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1238
2.14.9 Reflection node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1239
2.14.10 Roll node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1240
2.14.11 Sketch node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1241

xi
2.14.12 Swirl node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1242
2.14.13 Texture node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1243
2.14.14 Tile node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244
2.14.15 Wave node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1245

3 Developers Guide 1247


3.1 Python API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1247
3.1.1 NatronEngine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1247
3.1.2 NatronGui . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1365
3.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1383
3.2.1 Natron plug-in paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1383
3.2.2 Python Auto-declared variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1384
3.2.3 Start-up scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1387
3.2.4 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1387
3.2.5 Natron in command-line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1389
3.2.6 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1392
3.2.7 Objects hierarchy Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1394
3.3 Getting started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1394
3.3.1 Creating and controlling nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1394
3.3.2 Controlling parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1397
3.3.3 Parameters expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1399
3.3.4 Working with groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1406
3.3.5 Using Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1416
3.3.6 Rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1426
3.3.7 Using the rotoscoping functionalities . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1427
3.3.8 Using the tracker functionalities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1428
3.3.9 Modal dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1429
3.3.10 User menu commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1432
3.3.11 PySide panels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1432
3.3.12 Controlling the viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1438
3.4 Natron Python FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1439

Bibliography 1441

Python Module Index 1443

Index 1445

xii
Natron Documentation, Release 3.0.0

The Natron documentation is organized as follows:


• The User Guide contains everything to get started with Natron, including tutorials.
• The Reference Guide contains the documentation about the user settings in Natron, as well as the documen-
tation
• The Developers Guide contains documentation about using the Python scripting language within Natron,
and using the Natron command-line interface (a.k.a. NatronRenderer).
This documentation is also available online and can be downloaded as a PDF, HTML zip or ePub file.
This manual is maintained largely by volunteers.
The Creative Commons Attribution-ShareAlike 4.0 International License (CC-BY-SA 4.0) is used for this manual,
which is a free and open license. Though there are certain restrictions that come with this license you may in
general freely reproduce it and even make changes to it. However, rather than distribute your own version of this
manual, we would much prefer if you would send any corrections or changes to the Natron project.
The Natron documentation authors are:
• Alexandre Gauthier-Foichat
• Ole-André Rodlie
• Omar Brown
• Frédéric Devernay

Contents 1
Natron Documentation, Release 3.0.0

2 Contents
CHAPTER 1

User Guide

Natron is an open source video compositing and special effects software for Windows, macOS and Linux.
This guide will help you getting started using Natron for compositing and visual effects.

1.1 What is compositing?

Compositing is the combining of visual elements from separate sources into single images, often to create the
illusion that all those elements are parts of the same scene [Wikipedia].
Typical examples of compositing are, for example:
• The superimposition of a character filmed on a green background over a scene shot in another place, at
another time, or a computer-generated scene;
• The manual detouring (also called rotoscopy) of an element in a video to embed it in another video, possibly
with a different motion;
• Artistic modifications of a video, after shooting a live-action scene or rendering a CGI scene, in order to
modify its lighting, colors, depth of field, camera motion, or to remove noise or add film grain.
A video compositing software is not a 3D computer graphics software, like Blender or Maya, but it is perfectly
suited for combining computer-generated elements produced by other software with live-action video or 2D ani-
mation. Rather than rendering a full 3D scene with the 3D software, which may cost many hours of computation,
the video compositing software can assemble the elements produced separately with a much more reactive inter-
face and an almost instantaneous visual feedback.

1.1.1 Theory

The math behind compositing was formalized by Porter & Duff [PorterDuff1984] after the preliminary work by
Wallace [Wallace1981]. More informating about the theory behind compositing can be found in the works of Jim
Blinn [Blinn1994a] [Blinn1994b] and Alvy Ray Smith [Smith1995].
The compositing theory also introduces the notion of “premultipled” RGB values, or “associated alpha”, and there
is still a lot of debate about premultiplying or not.
Natron made the choice of using premultiplied alpha by default in the compositing workflow, like all modern
compositing software, because images are stored internally with floating-point values.

3
Natron Documentation, Release 3.0.0

1.1.2 Practice

There are excellent books that introduce how to do compositing in practice, and using compositing software:
[Wright2010], [Brinkmann2008], [Lanier2009], [VES2014].
Most of what is described in these books also apply to Natron. It is thus strongly recommended to become familiar
with the techniques and workflows described in these books before starting to use Natron.
There are also video tutorials available on video streaming platforms (youtube, vimeo) for Natron or other refer-
ence compositing software, such as Nuke of Fusion. These tutorials can be used to get acquainted with composit-
ing.

1.2 Getting started

1.2.1 About

Features

• 32 bits floating point linear color processing pipeline.


• Colorspace management handled by the famous open-source OpenColorIO library.
• Dozens of file formats supported: EXR, DPX,TIFF, PSD, SVG, Raw, JPG, PNG . . .
• Support for many free and open-source OpenFX plugins: * OpenFX-IO * OpenFX-Misc * OpenFX-
Arena * OpenFX-G’MIC * OpenFX-OpenCV * OpenFX-Yadif deinterlacer * OpenFX-Vegas SDK samples
* OpenFX samples * TuttleOFX
• Support for commercial OpenFX plugins: * RevisionFX products * NeatVideo denoiser * Furnace by
The Foundry * KeyLight by The Foundry * GenArts Sapphire * Other GenArts products * And many
more. . . . * OpenFX v1.4 supported
• Intuitive user interface: Natron aims not to break habits by providing an intuitive and familiar user in-
terface. It is possible to separate on any number of screens the graphical user interface. It supports Retina
screens on MacOSX.
• Performances: Never wait for anything to be rendered, in Natron anything you do produces real-time
feedback thanks to its optimised multi-threaded rendering pipeline and its support for proxy rendering (i.e:
the render pipeline can be computed at lower res to speed-up rendering).
• Multi-task: Natron can render multiple graphs at the same time and make use of 100% of the compute
power of your CPU.
• Network rendering: Natron can be used as a command-line tool and can be integrated on a render farm
manager such as Afanasy.
• NatronRenderer: A command line tool for execution of project files and python scripts. The command
line version is executable from ssh on a computer without any display.
• Fast & interactive Viewer – Smooth & accurate zooming/panning even for very large image sizes (tested
on 27k x 30k images).
• Real-time playback: Natron offers a real-time playback with thanks to its RAM/Disk cache technology.
Once a frame is rendered, it can be reproduced instantly afterwards, even for large image sizes.
• Low hardware requirements: All you need is an x86 64 bits or 32 bits processor, at least 3 GB of RAM
and a graphic card that supports OpenGL 2.0 or OpenGL 1.5 with some extensions.
• Motion editing: Natron offers a simple and efficient way to deal with keyframes with a very accurate and
intuitive curve editor. You can set expressions on animation curves to create easy and believable motion
for objects. Natron also incorporates a fully featured dope-sheet to quickly edit clips and keyframes in
time-space.

4 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

• Multi-view workflow: Natron saves time by keeping all the views in the same stream. You can separate
the views at any time with the OneView node.
• Rotoscoping/Rotopainting: Edit your masks and animate them to work with complex shots
• Tracker node: A point tracker is embedded in Natron to track multiple points. Version 2.1 of Natron will
incorporate the Tracker from Blender.

FAQ

Can I use Natron for commercial work?

Yes. Anything you create with Natron is yours and you’re free to do anything you want with it.

What operating systems are supported by Natron?

Natron officially supports:


• Windows 7, 8 and 10 with latest service packs.
• MacOSX 10.6 or greater
• Linux 2.6.18 or greater (Glibc 2.12+/libgcc 4.4+)

Why did you make Natron free of charge?

Our original motives were to create a tool for people who needed it and that may felt left-aside by the software
editor’s pricing plans. These users include but are not limited to:
• Students who want to learn compositing at home
• Schools that may not be able to buy expensive software licenses
Another reason why we develop Natron here at INRIA is because a compositing software is a playground that
enables scientists in computer vision/graphics to develop, test exchange and publish results easily.
One great mission of an free open-source software is to create common practices so everyone can benefit from it.
On the other hand, being free of charge, Natron can be installed on large-scale render farms without wondering
about licensing issues.

What is OpenFX?

OpenFX is a standard for creating visual effects plug-ins for compositing and editor applications.
As of today several applications are compatible with this plug-in format: (meaning you can use the same plug-ins
in all of them)
• Nuke 5.1+, by The Foundry
• Vegas 10+, by Sony
• SCRATCH 6.1+, by Assimilate
• Fusion 5.1+, by Blackmagic Design (formerly by eyeon)
• DaVinci Resolve 10+, by Blackmagic Design
• DustBuster+ 4.5+, by HS-ART
• Baselight 2.2+ by FilmLight
• Nucoda Film Master 2011.2.058+

1.2. Getting started 5


Natron Documentation, Release 3.0.0

• SGO Mistika 6.5.35+


• Autodesk Toxik 2009+
• Avid DS 10.3+
• Natron
• ButtleOFX
• TuttleOFX

Can I use commercial and proprietary plug-ins within Natron?

Yes. Natron doesn’t limit you to open-source plug-ins.

Is my graphics card supported?

An OpenGL 2.0 compatible graphics card is needed to run Natron (2.1+) with hardware-accelerated rendering.
Other graphics cards work with software-only rendering (see below).
The following graphics cards are supported for hardware-accelerated rendering:
• Intel GMA 3150 (Linux-only)
• Intel GMA X3xxx (Linux-only)
• Intel GMA X4xxx (Windows 7 & Linux)
• Intel HD (Ironlake) (Windows 7 & Linux)
• Intel HD 2000/3000 (Sandy Bridge) (Windows 7/Linux/Mac)
• Intel HD 4000 and greater (All platforms)
• Nvidia GeForce 6 series and greater
• Nvidia Quadro FX and greater
• Nvidia Quadro NVS 285 and greater
• ATI/AMD Radeon R300 and greater
• ATI/AMD FireGL T2-64 and greater (FirePro)
Cards not listed here will probably not support hardware-accelerated rendering.
It is possible to enable software rendering using the following techniques.
*On Linux, enable the environment variable LIBGL_ALWAYS_SOFTWARE=1 before running Natron.
*On Windows, enable the legacy hardware package in the Natron installer.

1.2.2 Installation

This chapter will guide you through the installation of Natron on Windows, Mac and Linux.

Windows

This chapter will guide your through the installation and maintenance of Natron on Windows.

6 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

Requirements

Natron will work on Windows 7, 8.x, 10 with latest updates.


The basic requirements are:
• x86 compatible CPU (Core2 x86_64 or higher recommended)
• OpenGL 2.0 or higher with the following extensions:
– GL_ARB_texture_non_power_of_two (Viewer and OpenGL rendering)
– GL_ARB_shader_objects (Viewer and OpenGL rendering)
– GL_ARB_vertex_buffer_object (Viewer and OpenGL rendering)
– GL_ARB_pixel_buffer_object (Viewer and OpenGL rendering)
– GL_ARB_vertex_array_object or GL_APPLE_vertex_array_object (OpenGL rendering
only)
– GL_ARB_framebuffer_object or GL_EXT_framebuffer_object (OpenGL rendering only)
– GL_ARB_texture_float (OpenGL rendering only)
If you don’t have the minimum required OpenGL extensions we provide a Software OpenGL solution, install the
package Software OpenGL from the installer. If you have the portable ZIP file copy bin\mesa\opengl32.dll to bin\.

Download

Navigate to https://natrongithub.github.io/#download and download the latest version. This documentation will
assume that you downloaded the installer (our default and recommended choice).

Install

You are now ready to start the installation, double-click on the setup file to start the installation.

You should now be greated with the installation wizard.

1.2. Getting started 7


Natron Documentation, Release 3.0.0

Click ‘Next’ to start the installation, you first option is where to install Natron. The default location is recom-
mended.

Your next option is the package selection, most users should accept the default. Each package has an more in-depth
description if you want to know what they provide.

Then comes the standard license agreement, Natron and it’s plug-ins are licensed under the GPL version 2. You
can read more about the licenses for each component included in Natron after installation (in menu Help→About).

The installation wizard is now ready to install Natron on your computer. The process should not take more than a
minute or two (depending on your computer).

8 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

The installation is now over! Start Natron and enjoy.

Natron can now be started from the desktop icon or from the start menu.

Maintenance

Natron includes a maintenance tool called ‘NatronSetup’, with this application you can easily upgrade Natron and
it’s components when a new version is available. You can also add or remove individual packages, or remove
Natron completely. The application should be in the same start menu folder as Natron, or you can start it from the
folder where you installed Natron.

1.2. Getting started 9


Natron Documentation, Release 3.0.0

The application also include a basic settings category, where you can configure proxy and other advanced options.

macOS

This chapter will guide your through the installation of Natron on macOS (formerly known as Mac OS X or OS
X).

Requirements

• Mac OS X 10.6 (Snow Leopard) or higher


• x86 compatible CPU (Core2 x86_64 or higher recommended)
• OpenGL 2.0 or higher with the following extensions:
– GL_ARB_texture_non_power_of_two (Viewer and OpenGL rendering)
– GL_ARB_shader_objects (Viewer and OpenGL rendering)
– GL_ARB_vertex_buffer_object (Viewer and OpenGL rendering)
– GL_ARB_pixel_buffer_object (Viewer and OpenGL rendering)
– GL_ARB_vertex_array_object or GL_APPLE_vertex_array_object (OpenGL rendering
only)
– GL_ARB_framebuffer_object or GL_EXT_framebuffer_object (OpenGL rendering only)
– GL_ARB_texture_float (OpenGL rendering only)

Download

Navigate to https://natrongithub.github.io/#download and download the latest version.

10 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

Install

Double-click the DMG file and copy Natron where you want it.

Run

On OS X 10.7 and later, you may get the message “Natron has not been signed by a recognized distributor and
may damage your computer. You should move it to the trash”.
The macOS binaries are not signed with an Apple Developer ID, because of incompatibilities between the Apple
code signing tools and the compiler (GCC 4.9) and target OS (Mac OS X 10.6) we use.
There are at least four options to launch Natron on macOS:
• rather than double-clicking on the Natron application, right-click or control-click on it and select Open
• after an unsuccessful launch of Natron, go to the Security & Privacy preferences panel, and enable it.
• from the terminal command-line, execute spctl --add /Applications/Natron.app, as ex-
plained in this OSXDaily article.
• (not recommended) click “Allow apps downloaded from: Anywhere” in the Security & Privacy preferences
panel. Since macOS 10.12 Sierra, this option is not available anymore, but it is possible to re-enable it, as
explained in that OSXDaily article.

Linux

This chapter will guide your through the installation and maintenance of Natron on Linux.

Requirements

Natron will work on any Linux distribution which still receives seccurity updates. This includes (but not limited
to):
• CentOS / RHEL 6.10 and later
• Debian 8 “Jessie” and later
• Ubuntu 16.04 LTS (Xenial Xerus) and later

1.2. Getting started 11


Natron Documentation, Release 3.0.0

• Fedora 28 and later


The official binaries are built on CentOS 6.10, thus the basic system requirements are:
• x86 compatible CPU (Core2 x86_64 or higher recommended)
• Linux 2.6.32 and higher
• Glibc 2.12 and higher
• libgcc 4.4 and higher
• OpenGL 2.0 or higher with the following extensions:
– GL_ARB_texture_non_power_of_two (Viewer and OpenGL rendering)
– GL_ARB_shader_objects (Viewer and OpenGL rendering)
– GL_ARB_vertex_buffer_object (Viewer and OpenGL rendering)
– GL_ARB_pixel_buffer_object (Viewer and OpenGL rendering)
– GL_ARB_vertex_array_object or GL_APPLE_vertex_array_object (OpenGL rendering
only)
– GL_ARB_framebuffer_object or GL_EXT_framebuffer_object (OpenGL rendering only)
– GL_ARB_texture_float (OpenGL rendering only)

Download

Navigate to https://natrongithub.github.io/1#download and download the latest version. This documentation will
assume that you downloaded the installer (our default and recommended choice).

Extract

When the file has been downloaded, extract the file. This can be done in your file browser, usually just right-click
and select ‘Extract Here’.

12 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

Install

You are now ready to start the installation, double-click on the extracted file to start the installation.

On some installations you are not allowed to execute downloaded files, right-click and select properties, then tick
the ‘Execute file as program’ option. This option may have a different name depending on your distribution and
desktop environment. You can also make the file executable through the terminal, type chmod +x filename.
You should now be greated with the installation wizard.

Click ‘Next’ to start the installation, you first option is where to install Natron. Usually the default location
is good enough. If you select a installation path outside your home directory you will need to supply the root
(administrator) password before you can continue.

Your next option is the package selection, most users should accept the default. Each package has an more in-depth
description if you want to know what they provide.

Then comes the standard license agreement, Natron and it’s plug-ins are licensed under the GPL version 2. You
can read more about the licenses for each component included in Natron after installation (in Help=>About).

1.2. Getting started 13


Natron Documentation, Release 3.0.0

The installation wizard is now ready to install Natron on your computer. The process should not take more than a
minute or two (depending on your computer).

The installation is now over! Start Natron and enjoy.

Natron can be started from the desktop menu (under Graphics) or by executing the ‘Natron’ file in the folder you
installed Natron.

14 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

Maintenance

Natron includes a maintenance tool called ‘NatronSetup’, with this application you can easily upgrade Natron and
it’s components when a new version is available. You can also add or remove individual packages, or remove
Natron completely. The application is in the ‘Graphics’ section in the desktop menu, or you can start it from the
folder where you installed Natron.

The application also include a basic settings category, where you can configure proxy and other advanced options.

Advanced installation

Natron also has RPM and DEB packages, these are recommended for multi-user installations or for deployment
on more than one machine. You can find more information on our website at https://natrongithub.github.io/ .

1.2.3 Environment

Toolbar, menu bar, and context menus

Using the toolbar

Working with nodes

Navigating inside the node graph

Properties panels

Using the color controls

1.2. Getting started 15


Natron Documentation, Release 3.0.0

Using node presets

Animating parameters

Compositing viewers

Using the file browser

Undoing and redoing

Progress bars

1.2.4 Troubleshooting

Natron has bugs, as any software does.


Natron is also a free and open-source software, and bugs are fixed by volunteers when they have some spare time,
so please be tolerant and do not expect your bug to be fixed within the hour. It may take days, weeks, or it may
even never be fixed.
Properly reporting a bug takes time, but the time spent reporting a bug will certainly help you and the community
a lot. It is also the best way to find a temporary solution or a workaround.

Identifying the Kind of Bug

Natron may fail in several ways:


1. It crashes while doing some specific user interaction with the GUI.
2. It crashes while rendering the project.
3. Rendered images are wrong, or contain black areas.
4. Natron hangs and the GUI is not responsive (i.e. menus and buttons do not respond). This is probably a
deadlock in the GUI code of Natron.
5. Rendering stops before the end of the sequence. This is probably caused by an OpenFX error: check the
error log from the “Display/Show Project Errors Log. . . ” menu: there may be an indication of the problem
(but it can still be a Natron bug).
6. Rendering hangs or Natron hangs, but the GUI is responsive. This is probably a deadlock in the rendering
code, and this is the hardest kind of bug to reproduce or fix. If it cannot be reproduced easily, then your best
bet is to use one of the workarounds below.

Searching and Reporting Bugs

Bugs may come from OpenFX plugins that were not bundled with Natron, so before reporting anything, if you have
any extra OpenFX plugins installed, uncheck “Enable default OpenFX plugins location” in “Preferences/Plug-
ins”, save preferences, relaunch Natron, and check that the bug is still here.
The best way to have your bug considered for fixing is to first search on the Natron forum and in the Natron issues
if this is a known bug. If yes, then read about it, and try some workarounds given in these bug reports (see below
for more workarounds).
If this bug does not seem to be a known issue, then post a new issue on the Natron github, and follow strictly the
guidelines to report the bug. The issue title should be as precise as possible (“Natron crash” is not a correct title,
see existing issues for title examples). If possible, also post a project that exhibits the issue. Make the project as
small as possible: remove extra assets or replace them by small JPEG sequences, checkerboards or colorwheels,
etc. You can then either attach your project as a zip file to the github issue, or post a link to a file sharing service.

16 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

Common Workarounds

Luckily, there are workarounds for most Natron crashes or hangs. Here are a few one worth trying, but of course
your mileage may vary or you may find another workaround (which you should describe in the proper Natron
issue).
1. Avoid using videos with inter-frame compression as inputs and outputs. This includes H.264 (eg AVCHD)
and H.265 (HEVC) video. ProRes is OK but slow, especially for writing. DNxHR is OK. Individual frames
are best (DPX, EXR, TIFF, PNG, JPEG, whatever suits your input video quality and bit depth). The video
reader is here for convenience, but it may have difficulties decoding some videos. The video writer may
also be a source of bugs, and should be avoided for long sequences: if Natron crashes in the middle, then
the whole sequence has to be rendered. Extract individual frames, do your compositing, then compress the
frames (and optionally mux the audio) with an external tool. To extract frames, you may use a simple Natron
project or any other tool (e.g. FFmpeg). To compress frames to a video, there are also many tools available,
e.g. FFmpeg, MEncoder, or VirtualDub (windows-only). This is the standard compositing workflow and
the preferred method of running Natron.
2. If Natron hangs or crashes when rendering an image sequence (this does not work when rendering to a
video), check that the rendered frames are OK, relaunch Natron and in the parameters of the Write node
uncheck “Overwrite”. That way, only the missing frames will be rendered.
3. If you have a large project, or a project with heavy processing, use the DiskCache Plugin at places that make
sense: downstream heavy processing in the graph, or before you use the result of processing as inputs to
Roto or RotoPaint.
You will quickly notice that using individual frames instead of videos for inputs and output give a big performance
boost and will most probably solve your issues, so once you’ve learned how to decompress/compress any video,
this will become your standard workflow. Just add extra disk space, and you’re good to do serious and fluid
compositing with Natron.

OpenGL/GPU Rendering Issues

If the viewer displays some error message about OpenGL, then GPU rendering is probably going bad. Note that
this kind of problem seems to only happen on Windows, so you might want to consider switching to Linux or
macOS to use Natron if your GPU is not well supported by Natron under Windows.
1. Create a Shadertoy, click “Renderer Info. . . ” and check that the OpenGL version is at least 2.1 and that
the extension GL_ARB_texture_non_power_of_two is available. If the displayed info does not
correspond to your graphics card, check that the OpenGL drivers for your card are installed. If not, install
the software called “OpenGL Extension Viewer” and check that your card appears in the list of renderers.
If not, then it is a drivers issue.
2. In Natron Preferences / GPU Rendering, check that the displayed is consistent with what “Renderer Info. . . ”
above gave.
3. Now uncheck “Enable GPU Render” in the Shadertoy node and click the refresh/recycle button on the top
of the viewer. Click again “Renderer Info. . . ” and it should say it now uses Mesa in the GL_VERSION.
Does it fix the issue? If yes, you may try the next step to globally disable OpenGL rendering in Natron.
4. To temporarily fix this issue, in Natron Preferences / GPU Rendering, set “OpenGL Rendering” to “Dis-
abled”, click the “Save” button in the Preferences window, quit Natron, launch Natron, check that GPU
rendering is still disabled in the Preferences, and test your project.

1.3 Compositing

1.3.1 Managing Projects

Project setup (empty)

1.3. Compositing 17
Natron Documentation, Release 3.0.0

Proxy Mode (empty)

Loading images and video (empty)

Image caching (empty)

Frame ranges

The project frame range (in the Project Settings, key ‘s’ in the Node Graph’) is the range that will be used by
default when rendering Writers.
Each clip (input or output of a node in the Node graph) also has its own frame range. This “clip frame range”
may be used or even modified by plugins, such as Retime (which may change the frame range), Merge or Switch
(which set the frame range to the union of their input frame ranges). The plugin may be able to render images
outside of this frame range, and it is just an indication of a valid frame range. This information is available from
the “Info” tab of the properties panel of each node.
Most generator plugins (e.g. CheckerBoard, ColorBars, ColorWheel, Constant, Solid) have a “Frame Range”
parameter, which is (1,1) by default. The FrameRange plugin may be used to modify this frame range inside the
graph.
The default framerange of an image sequence or video is the range of the sequence

1.3.2 Reformatting elements (empty)

1.3.3 Channels (empty)

1.3.4 Merging images (empty)

1.3.5 Noise removal (empty)

1.3.6 Keying (empty)

1.3.7 Using Rotopaint (empty)

1.3.8 Tracking and stabilizing

Workflow Summary

In order to track a planar shape and move a Roto mask or a texture corresponding to that shape:
• Track some points inside your mask (shape)
• In the Transform tab, set the transform to CornerPin and to match-move
• Disable the CornerPin and set the from points of the corner pin at the reference frame where you want your
object to move in (basically the bounding box of the shape to track)
• Export to CornerPin
• Append your CornerPin to the Roto node
In a future version we will have a planar tracker that will do that automatically for you in a single click.

Detailed Usage

To link parameters in Natron, it is the same as in Nuke except that you drag and drop the widget of a parameter
onto another one by holding the control key (or cmd on macOS).

18 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

The tracker works differently than the Nuke tracker regarding the “Transform” part. For the tracking itself, almost
everything is the same. Basically, in Nuke they can only output a CornerPin with exactly 4 points, and they map
1 track to each corner of the CornerPin. For the Transform node they may use 1 (translation only), 2, or N points
to find the final transformation, however that will never be something other than a similarity, which means that it
cannot handle perspective deformation.
In Natron, we offer the possibility to compute a CornerPin with N points, that is an homography, which encom-
passes all distortion-free perspective transforms.
This is much better, because the more tracks you use to compute that CornerPin, the more robust it will be.
An homography is typically used to contain information about a perspective deformation, whereas a similarity is
more constrained: a similarity is translation, rotation and uniform scale.
In The Transform tab, this is what we call “the model”. Basically, the problem we are trying to solve is to fit a
model (i.e. similarity or homography) so it is the closest to the N point correspondences. Each correspondence is
the position of a track at the reference frame and its position at the tracked time.
Hence the more correspondences you have (i.e. the more tracks), the more robust the homography is in the region
where you tracked features.
The Fitting error parameter (in the Transform tab) is an indication of how much difference there is in pixels
between the reference point on which we applied the computed transformation and the original tracked point.
This is the RMS (root mean square) error across all tracks, and gives an estimate of the quality of the model found
in pixel units.
For each tracked frame, the correspondences we use to compute the CornerPin are the tracks that are enabled at
this frame (i.e. the Enabled parameter is checked at this time) and that have a keyframe on the center (i.e. they
successfully tracked).
When you press Compute, it computes the model (CornerPin/Transform) with all the tracks that meet the afore-
mentioned requirements over all keyframes.
When Compute Transform Automatically is checked, whenever a parameter that has an effect on the output model
is changed, this will recompute the Corner/Pin transform over all keyframes again.
The parameters that have an effect on the output model are:
• The motion type
• The Transform Type (i.e. Similarity or Homography)
• The Reference Frame
• Jitter Period
• Smooth: this can be used to smooth the resulting curve to remove some of the noise in the high frequencies
of the CornerPin/Transform. Note that in “Add Jitter” mode, you can increase High frequencies to simulate
a camera shake that follows the original camera movements.
• Robust model: this is quite complicated, but in short: When trying to find a model that best fits all cor-
respondences, you may have correspondences that are just wrong (bad tracking for example). These bad
correspondences are called outliers, and this parameter when checked tells we should not take into account
those outliers to compute the final model. In most cases this should be checked. However sometimes, the
user may have for example required to compute an homography (i.e. CornerPin), but the given tracked
points (correspondences) just cannot make-up an homography. In this case, if the parameter were to be
checked, it would fail to compute a model. If you uncheck this, it will take into account all the points and
compute a model that averages the motion of all correspondences.
Also when Compute Transform Automatically is checked, the model will be computed automatically when the
tracking ends.
We cannot compute the model after each track step (i.e. during tracking) because the model at each frame depends
on the model at other frames since we may smooth the curve or add jitter.
So all in all it works differently than Nuke, the whole transformation computation can be more robust and happens
as a second pass after the tracking is actually done.

1.3. Compositing 19
Natron Documentation, Release 3.0.0

One last thing: to compute the CornerPin in the “Transform” tab of the tracker, the to points are computed using
the from points as reference.
Basically what happens is that the tracking outputs a transformation matrix at each frame. Then when computing
the model, this matrix is applied to the from points at each frame in order to obtain the to points.
So if you were to change the reference points (i.e. the from points) with the Set to input RoD for example, then
you would need to recompute the model at all frames, because the to points would just not be the same.
The work is usually done in two steps:
• First, disable the CornerPin so that even if the viewer is connected to the Tracker there is no deformation
going on, and set the from points to be the RoD (bounding box) of the Roto shape at the reference frame.
• Then, export the CornerPin. It just links the parameters of the CornerPin to the ones in the tracker, so if you
change something in the tracker transform tab the changes will reflect onto the CornerPin.
Basically what the Planar tracker will do in the future is automatically do all the steps for you: it will place markers
inside the mask for you, track them and output a CornerPin from the bounding box of the roto shape.

1.3.9 Transforming elements (empty)

1.3.10 Working with color (empty)

1.3.11 Stereoscopic compositing

Importing stereoscopic sequences

When creating a new project in Natron, by default there is a single view present. It is called the “Main” view.

You can add, remove and rename views as desired. Clicking the “Setup views for stereo” button will make exactly
2 views named “Left” and “Right”.
Upon importing an EXR file containing multiple views within the file, Natron will prompt you to create the
appropriate views in the project:

20 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

If clicking yes, Natron will create the missing views in the project:

You can remove the “Main” view if needed (in our case it does not make sense to leave it in the project). You can
do so by clicking either Remove and selecting the “Main” view or clicking “Setup views for stereo”:

The Read node will have a special “V” mark on its top-left corner, indicating that it has multiple views available.
When hovering the “V” indicator with the mouse, more information is available regarding which views are present
in this Read node

Hovering your mouse over the Output Layer parameter will detail which layer is available in which view:

When the project has multiple views available, each viewer will have a drop-down with available views. You can
select with view to display:

1.3. Compositing 21
Natron Documentation, Release 3.0.0

If we take a look at our Read node’s properties, you can see that we have 2 layers in this file: RGBA and depth.
Layers may sometimes not be present in all views in the file, but the Read node will show the union of all layers
available across all views:

Joining separate views

In Natron you can join different simple-view files to a multiple-view stream by using the JoinViews node, like
this:

Exporting stereoscopic sequences

Exporting multi-view files in Natron can be done multiple ways: Either you want to have a separate file for each
view, or you want all views to be in the same file. The later is only supported by the EXR file format. When
exporting to EXR, the Write node properties panel will have an extra “Views” parameter:

22 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

This is quite straight-forward: you can select which views you decide to export.
You can also select which layer you would like to export:

The “All” choice is only available for the EXR and TIFF file formats which allow embedding more than 1 layer
per-file.
Another interesting parameter controls how the EXR/TIFF file is written, this is the “Parts” parameter:

When set to “Single Part”, the Write node will aggregate all views requested to render in a single “part” of the
file. Single part files are what is written by OpenEXR 1.x applications, thus selecting “Single Part” ensures
compatibility with other applications that do not support OpenEXR 2.
When set to “Split Views”, all views will be scattered in different parts of the file. The resulting file will only be
readable in applications that support OpenEXR 2 but with the advantage of being faster to read than the single-part
files. Note that if you select “All” layers to render all layers will be aggregated for each view.
When set to “Split Views,Layers” each layer of each view will be written to a separate part, ensuring EXR opti-
mized for decoding speed, though the file will be larger.

Writing to separate files

You can choose to export views to a separate files by adding a %v (which will expand to the letter ‘l’ or ‘r’) or %V
(which will expand to the word “left” or “right”) to the output filename:

In that case the “Views” parameter will no longer be available. This is how you should proceed if you want to
output multiple views but do not want to write EXR’s.
By default for files that do not support multi-view (I.e: anything besides EXR), if requesting to write multiple
views to the same file, Natron will only write the first view in the project’s views. If you do not want to render

1.3. Compositing 23
Natron Documentation, Release 3.0.0

all views but a specific one, you can use a “OneView” node prior to your Write node to specify which view you
would like to write-out:

1.3.12 Preview and rendering (empty)

1.3.13 Expressions (empty)

The value of any Node parameter can be set by Python expression. An expression is a line of code that can either
reference the value of other parameters or apply mathematical functions to the current value.
Natron supports 2 types of expression languages:
• Python
• Basic Expressions_
Basic Expression are very fast and simple and should cover 99% of the needs for expressions. By default this is
the language proposed to you when editing an expression.
Python based expressions are using the same A.P.I as everything else using Python in Natron. It allows to write
really any kind of expression referencing external functions and data, however it is much slower to evaluate and
will impair performance compared to a basic expression.
Where possible, you should use basic expressions, unless you specifically need a feature available in the Python
API that is not available through the basic expressions language.
For more informations on developping Python expression, please refer to this section.
The rest of this section will cover writing basic expressions.

Basic expressions

Arithmetic & Assignment Operators

24 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

OPER- DEFINITION
ATOR
+ Addition between x and y. (eg: x + y)
- Subtraction between x and y. (eg: x - y)
* Multiplication between x and y. (eg: x * y)
/ Division between x and y. (eg: x / y)
% Modulus of x with respect to y. (eg: x % y)
^ x to the power of y. (eg: x ^ y)
:= Assign the value of x to y. Where y is either a variable or vector type. (eg: y := x)
+= Increment x by the value of the expression on the right hand side. Where x is either a variable or
vector type. (eg: x += abs(y - z))
-= Decrement x by the value of the expression on the right hand side. Where x is either a variable or
vector type. (eg: x[i] -= abs(y + z))
Assign the multiplication of x by the value of the expression on the righthand side to x. Where x is
*=
either a variable or vector type. (eg: x *= abs(y / z))
/= Assign the division of x by the value of the expression on the right-hand side to x. Where x is either
a variable or vector type. (eg: x[i + j] /= abs(y * z))
%= Assign x modulo the value of the expression on the right hand side to x. Where x is either a variable
or vector type. (eg: x[2] %= y ^ 2)

Equalities & Inequalities

OPERATOR DEFINITION
== or = True only if x is strictly equal to y. (eg: x == y)
<> or != True only if x does not equal y. (eg: x <> y or x != y)
< True only if x is less than y. (eg: x < y)
<= True only if x is less than or equal to y. (eg: x <= y)
> True only if x is greater than y. (eg: x > y)
>= True only if x greater than or equal to y. (eg: x >= y)

Boolean Operations

1.3. Compositing 25
Natron Documentation, Release 3.0.0

OPERATOR DEFINITION
true True state or any value other than zero (typically 1).
false False state, value of zero.
and Logical AND, True only if x and y are both true. (eg:
x and y)
mand Multi-input logical AND, True only if all inputs are
true. Left to right short-circuiting of expressions. (eg:
mand(x > y, z < w, u or v, w and x))
mor Multi-input logical OR, True if at least one of the in-
puts are true. Left to right short-circuiting of expres-
sions. (eg: mor(x > y, z < w, u or v, w and x))
nand Logical NAND, True only if either x or y is false. (eg:
x nand y)
nor Logical NOR, True only if the result of x or y is false
(eg: x nor y)
not Logical NOT, Negate the logical sense of the input.
(eg: not(x and y) == x nand y)
or Logical OR, True if either x or y is true. (eg: x or y)
xor Logical XOR, True only if the logical states of x and
y differ. (eg: x xor y)
xnor Logical XNOR, True iff the biconditional of x and y
is satisfied. (eg: x xnor y)
& Similar to AND but with left to right expression short
circuiting optimisation. (eg: (x & y) == (y and x))
Similar to OR but with left to right expression short
circuiting optimisation. (eg: (x | y) == (y or x))

General Purpose Functions

FUNCTION DEFINITION
abs Absolute value of x. (eg: abs(x))
avg Average of all the inputs. (eg: avg(x,y,z,w,u,v) == (x + y + z + w + u + v) / 6)
ceil Smallest integer that is greater than or equal to x.
clamp Clamp x in range between r0 and r1, where r0 < r1. (eg: clamp(r0,x,r1))
equal Equality test between x and y using normalized epsilon
erf Error function of x. (eg: erf(x))
erfc Complimentary error function of x. (eg: erfc(x))
exp e to the power of x. (eg: exp(x))
expm1 e to the power of x minus 1, where x is very small. (eg: expm1(x))
floor Largest integer that is less than or equal to x. (eg: floor(x))
frac Fractional portion of x. (eg: frac(x))
hypot Hypotenuse of x and y (eg: hypot(x,y) = sqrt(x*x + y*y))
iclamp Inverse-clamp x outside of the range r0 and r1. Where r0 < r1. If x is within the range it will snap to the closest bo
inrange In-range returns ‘true’ when x is within the range r0 and r1. Where r0 < r1. (eg: inrange(r0,x,r1)
log Natural logarithm of x. (eg: log(x))
log10 Base 10 logarithm of x. (eg: log10(x))
log1p Natural logarithm of 1 + x, where x is very small. (eg: log1p(x))
log2 Base 2 logarithm of x. (eg: log2(x))
logn Base N logarithm of x. where n is a positive integer. (eg: logn(x,8))
max Largest value of all the inputs. (eg: max(x,y,z,w,u,v))
min Smallest value of all the inputs. (eg: min(x,y,z,w,u))
mul Product of all the inputs. (eg: mul(x,y,z,w,u,v,t) == (x * y * z * w * u * v * t))
ncdf Normal cumulative distribution function. (eg: ncdf(x))
nequal Not-equal test between x and y using normalized epsilon
C

26 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

Table 1 – continued from previous page


FUNCTION DEFINITION
pow x to the power of y. (eg: pow(x,y) == x ^ y)
root Nth-Root of x. where n is a positive integer. (eg: root(x,3) == x^(1/3))
round Round x to the nearest integer. (eg: round(x))
roundn Round x to n decimal places (eg: roundn(x,3)) where n > 0 and is an integer. (eg: roundn(1.2345678,4) == 1.2346
sgn Sign of x, -1 where x < 0, +1 where x > 0, else zero. (eg: sgn(x))
sqrt Square root of x, where x >= 0. (eg: sqrt(x))
sum Sum of all the inputs. (eg: sum(x,y,z,w,u,v,t) == (x + y + z + w + u + v + t))
swap <=> Swap the values of the variables x and y and return the current value of y. (eg: swap(x,y) or x <=> y)
trunc Integer portion of x. (eg: trunc(x))

Trigonometry Functions

FUNCTION DEFINITION
acos Arc cosine of x expressed in radians. Interval [-1,+1] (eg: acos(x))
acosh Inverse hyperbolic cosine of x expressed in radians. (eg: acosh(x))
asin Arc sine of x expressed in radians. Interval [-1,+1] (eg: asin(x))
asinh Inverse hyperbolic sine of x expressed in radians. (eg: asinh(x))
atan Arc tangent of x expressed in radians. Interval [-1,+1] (eg: atan(x))
atan2 Arc tangent of (x / y) expressed in radians. [-pi,+pi] eg: atan2(x,y)
atanh Inverse hyperbolic tangent of x expressed in radians. (eg: atanh(x))
cos Cosine of x. (eg: cos(x))
cosh Hyperbolic cosine of x. (eg: cosh(x))
cot Cotangent of x. (eg: cot(x))
csc Cosecant of x. (eg: csc(x))
sec Secant of x. (eg: sec(x))
sin Sine of x. (eg: sin(x))
sinc Sine cardinal of x. (eg: sinc(x))
sinh Hyperbolic sine of x. (eg: sinh(x))
tan Tangent of x. (eg: tan(x))
tanh Hyperbolic tangent of x. (eg: tanh(x))
deg2rad Convert x from degrees to radians. (eg: deg2rad(x))
deg2grad Convert x from degrees to gradians. (eg: deg2grad(x))
rad2deg Convert x from radians to degrees. (eg: rad2deg(x))
grad2deg Convert x from gradians to degrees. (eg: grad2deg(x))

String Processing

1.3. Compositing 27
Natron Documentation, Release 3.0.0

FUNC- DEFINITION
TION
= , All common equality/inequality operators are applicable to strings and are applied in a case sensitive
== manner. In the following example x, y and z are of type string. (eg: not((x <= ‘AbC’) and (‘1x2y3z’
!=, <> y)) or (z == x)
<>
<=,
>= <
,>
in True only if x is a substring of y. (eg: x in y or ‘abc’ in ‘abcdefgh’)
like True only if the string x matches the pattern y. Available wildcard characters are ‘*’ and ‘?’ denoting
zero or more and zero or one matches respectively. (eg: x like y or ‘abcdefgh’ like ‘a?d*h’)
ilike True only if the string x matches the pattern y in a case insensitive manner. Available wildcard
characters are ‘*’ and ‘?’ denoting zero or more and zero or one matches respectively. (eg: x ilike y
or ‘a1B2c3D4e5F6g7H’ ilike ‘a?d*h’)
[r0:r1] The closed interval [r0,r1] of the specified string. eg: Given a string x with a value of ‘abcdefgh’ then:
1. x[1:4] == ‘bcde’ 2. x[ :5] == x[:5] == ‘abcdef’ 3. x[3: ] == x[3:] ==’cdefgh’ 4. x[ : ] == x[:] ==
‘abcdefgh’ 5. x[4/2:3+2] == x[2:5] == ‘cdef’
Note: Both r0 and r1 are assumed to be integers, where r0 <= r1. They may also be the result of an
expression, in the event they have fractional components truncation will be performed. (eg: 1.67 –>
1)
:= Assign the value of x to y. Where y is a mutable string or string range and x is either a string or a string
range. eg: 1. y := x 2. y := ‘abc’ 3. y := x[:i + j] 4. y := ‘0123456789’[2:7] 5. y := ‘0123456789’[2i +
1:7] 6. y := (x := ‘0123456789’[2:7]) 7. y[i:j] := x 8. y[i:j] := (x + ‘abcdefg’[8 / 4:5])[m:n]
Note: For options 7 and 8 the shorter of the two ranges will denote the number characters that are to
be copied.
+ Concatenation of x and y. Where x and y are strings or string ranges. eg 1. x + y 2. x + ‘abc’ 3.
x + y[:i + j] 4. x[i:j] + y[2:3] + ‘0123456789’[2:7] 5. ‘abc’ + x + y 6. ‘abc’ + ‘1234567’ 7. (x +
‘a1B2c3D4’ + y)[i:2j]
+= Append to x the value of y. Where x is a mutable string and y is either a string or a string range. eg:
1. x += y 2. x += ‘abc’ 3. x += y[:i + j] + ‘abc’ 4. x += ‘0123456789’[2:7]
<=> Swap the values of x and y. Where x and y are mutable strings. (eg: x <=> y)
[] The string size operator returns the size of the string being actioned. eg: 1. ‘abc’[] == 3 2. var
max_str_length := max(s0[],s1[],s2[],s3[]) 3. (‘abc’ + ‘xyz’)[] == 6 4. ((‘abc’ + ‘xyz’)[1:4])[] == 4

Control Structures

28 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

STRUCTURE DEFINITION
if If x is true then return y else return z. eg: 1. if (x, y,
z) 2. if ((x + 1) > 2y, z + 1, w / v) 3. if (x > y) z; 4. if
(x <= 2*y) { z + w };
if-else The if-else/else-if statement. Subject to the condition
branch the statement will return either the value of the
consequent or the alternative branch. eg: 1. if (x > y)
z; else w; 2. if (x > y) z; else if (w != u) v; 3. if (x <
y) {z; w + 1;} else u; 4. if ((x != y) and (z > w))
{ y := sin(x) / u; z := w + 1;
} else if (x > (z + 1)) {
w := abs (x - y) + z; u := (x +
1) > 2y ? 2u : 3u;
}

switch The first true case condition that is encountered will


determine the result of the switch. If none of the case
conditions hold true, the default action is assumed as
the final return value. This is sometimes also known
as a multi-way branch mechanism. eg: switch {
case x > (y + z) : 2 * x / abs(y - z); case x
< 3 : sin(x + y); default : 1 + x;
}
while The structure will repeatedly evaluate the internal
statement(s) ‘while’ the condition is true. The final
statement in the final iteration will be used as the re-
turn value of the loop. eg: while ((x -= 1) > 0) {
y := x + z; w := u + y;
}
repeat/ until The structure will repeatedly evaluate the internal
statement(s) ‘until’ the condition is true. The final
statement in the final iteration will be used as the re-
turn value of the loop. eg: repeat
y := x + z; w := u + y;
until ((x += 1) > 100)
for The structure will repeatedly evaluate the internal
statement(s) while the condition is true. On each loop
iteration, an ‘incrementing’ expression is evaluated.
The conditional is mandatory whereas the initialiser
and incrementing expressions are optional. eg: for
(var x := 0; (x < n) and (x != y); x += 1) {
y := y + x / 2 - z; w := u + y;
}
break break[] Break terminates the execution of the nearest enclosed
loop, allowing for the execution to continue on exter-
nal to the loop. The default break statement will set
the return value of the loop to NaN, where as the re-
turn based form will set the value to that of the break
expression. eg: while ((i += 1) < 10) {
if (i < 5) j -= i + 2;
else if (i % 2 == 0) break;
else break[2i + 3];
}
continue Continue results in the remaining portion of the near-
est enclosing loop body to be skipped. eg: for (var i
:= 0; i < 10; i += 1) {
if (i < 5) continue;
j -= i + 2;
}
return
1.3. Compositing Return immediately from within the current expres-29
sion. With the option of passing back a variable num-
ber of values (scalar, vector or string). eg: 1. return
[1]; 2. return [x, ‘abx’]; 3. return [x, x + y,’abx’]; 4.
Natron Documentation, Release 3.0.0

To get more details on the language syntax and available mathematical functions, this is fully covered by the
README.
Additional variables and functions are made available by Natron to access values of other parameters and effects.

Parameters

Parameters value can be referenced by their script-name. See this section to learn how to determine the script-
name of a node. See this section to learn how to determine the script-name of a parameter.
For instance:

# This is the value in the x dimension of the size parameter of the Blur1 node
Blur1.size.x

# The operator parameter is a 1-dimensional Choice parameter, there's no dimension


# suffix
Merge1.operator

Note that parameters on the node on which the expression is actually set can be referenced without prefixing the
script-name of the node:

# Assuming we are writing an expression on the node Blur1,


# its parameter size can be accessed directly
size.y

In the same way, values of dimensions can be accessed directly using the special variable thisParam:

# Assuming we are writing an expression for Merge1.operator


thisParam

# Assuming we are writing an expression for Blur1.size.y


thisParam.x

Warning: Returning the value of the parameter dimension for which the expression is being evaluated will not
cause an infinite recursion but instead will return the value of the parameter without evaluating the expression.

Dimension names (x,y,r,g,b, w,h , etc. . . ) are merely corresponding to a 0-based index, and can be interchanged,
e.g:

# Referencing dimension 0 of the parameter size


size.r

# Referencing dimension 1 of the parameter size


size.g

# Referencing dimension 0 of the parameter size


size.x

# Referencing dimension 0 of the parameter size


size.0

# Referencing dimension 1 of the parameter size


size.1

This allows to write easier expressions when referencing other parameters that do not have the same dimensions.
Possible variants to reference a dimension is as follow:
• r,g,b,a

30 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

• x,y,z,w
• 0,1,2,3
The dimension of the parameter on which the expression is currently executed can be referenced with dimension:

# Assuming we are writing an expression for size.y


# We return the value of the masterSaturation parameter of the ColorCorrect1 node
# at the same dimension (y)

ColorCorrect1.masterSaturation.dimension

An expression on a parameter can reference any other parameter on the same node and may also reference param-
eters on some other nodes, including:
• Any other node in the same Group
• If this node belongs to a sub-group, it may reference the Group node itself using the special
variable thisGroup
• If this node is a Group itself, it may reference any node within its sub-group by prefixing
thisNode, e.g:
thisNode.Blur1
# Assuming we are editing an expression on the disabled parameter of the # Group1.Blur1 node and
that the Group1 node has a boolean parameter, # that was created with a script-name enableBlur, #
we could write an expression referencing enableBlur # to enable or disable the internal Blur1 node as
such:
thisGroup.enableBlur
To easily get the input of a node, you may use the variable input followed by the index, e.g:

# Assuming the input 0 of the Blur1 node is a Merge node, we


# can reference the operator param of the input node
Blur1.input0.operator

Animated parameters

A parameter may be animated with keyframes. Similarly, each curve may be different for each project view if the
user split views for the parameter.
To retrieve the value at a different frame and view than the frame and view for which the expression, is being
evaluated you may specify it in arguments:

# Returns the value at the current frame for the current view
Blur1.size.x

# Returns the value at frame + 1 for the current view


Blur1.size.x(frame + 1)

# Returns the value at frame + 1 for the given view


Blur1.size.x(frame + 1, 'Right')

Pre-defined variables

When the expression is called, a number of pre-declared variables can be used:


• thisNode: It references the node holding the parameter being edited. This can only
be used to reference parameters on the current node or sub-nodes if this node is a Group
• thisGroup: It references the group containing thisNode. This is useful to reference

1.3. Compositing 31
Natron Documentation, Release 3.0.0

a parameter on the group node containing this node


• thisParam: It references the param being edited. This is useful to reference a value
on the parameter on which the expression is evaluated
• thisItem: If the expression is edited on a table item such as a Bezier or a Track
this is the item holding the parameter to which the expression is being edited
• dimension: It indicates the dimension (0-based index) of the parameter on which the expression
is evaluated, this can only be used after a parameter, e.g: Blur1.size.dimension
• app: References the project settings. This can be used as a prefix to reference
project parameters, e.g: app.outputFormat
• frame: It references the current time on the timeline at which the expression is evaluated
this may be a floating point number if the parameter is referenced from a node that uses motion blur.
If the parameter is a string parameter, the frame variable is already a string otherwise it will be a
scalar.
• view: It references the current view for which the expression is evaluated.
If the parameter is a string parameter, the view will be the name of the view as seen in the project
settings, otherwise this will be a 0-based index.

Script-name of a node or parameter

The name of a parameter or Node can be returned in an expression using the attribute name:

thisNode.name
thisNode.input0.name
thisKnob.name
...

Converting numbers to string

You can convert numbers to string with the str(value, format, precision) function.
The format controls how the number will be formatted in the string. It must match one of the following letters:
• e format as [-]9.9e[+|-]999
• E format as [-]9.9E[+|-]999
• f format as [-]9.9
• g use e or f format, whichever is the most concise
• G use E or f format, whichever is the most concise
A precision is also specified with the argument format. For the ‘e’, ‘E’, and ‘f’ formats, the precision represents
the number of digits after the decimal point. For the ‘g’ and ‘G’ formats, the precision represents the maximum
number of significant digits (trailing zeroes are omitted).
Example:

str(2.8940,'f',2) = "2.89"

32 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

Effect Region of Definition

It is possible for an expression to need the region of definition (size of the image) produced by an effect. This can
be retrieved with the variable rod*
The rod itself is a vector variable containing 4 scalar being in order the left, bottom, right and top coordinates of
the rectangle produced by the effect.:

# Expression on the translate.x parameter of a Transform node


input0.rod[0]

Current parameter animation

To achieve complex motion design, (see examples below such as loop) an expression may need to access the ani-
mation of the parameter for which the expression is evaluated. To access the underlying animation of a parameter
the curve(frame, dimension, view)() function can be used:

# Loop a parameter animation curve over the [firstFrame, lastFrame] interval


firstFrame = 0
lastFrame = 10
curve(((frame - firstFrame) % (lastFrame - firstFrame + 1)) + firstFrame)

Random

Some expression may need to use a pseudo random function. It is pseudo random because the results of the
random function are reproducible for each frame and seed.
• def random (seed)
• def randomInt (seed)
ExprTk.random([seed=0, min=0., max=1. ])
Parameters
• seed – float
• min – float
• max – float
Return type float
Returns a pseudo-random value in the interval [min, max[. The value is produced such that for a given parameter
it will always be the same for a given time on the timeline, so that the value can be reproduced exactly. However,
successive calls to this function within the same expression will yield different results after each call. By default
the random is seed with the current frame, meaning that 2 expressions using random and evaluated at the same
frame will always return the same number. If you want to force a different number for an expression, you can set
the seed parameter to a non zero value.
ExprTk.randomInt([seed=0, min=INT_MIN, max=INT_MAX ])
Parameters
• seed – int
• min – int
• max – int
Return type int
Same as random(seed, min,max) but returns an integer in the range [min,max[

1.3. Compositing 33
Natron Documentation, Release 3.0.0

Advanced noise functions

More advanced noise functions are available such as fractional brownian motion. All the functions available in
Python in the NatronEngine.ExprUtils class are also available to basic expressions. See the their documentation
in the Python API as they have the same signature.

1.4 Tutorials

1.4.1 Writing documentation

This quick tutorial will guide you through the creation/modification of documentation for Natron and the plugins.

Natron Manual

Writing contributions

Contributing to the Natron documentation is rather easy. The source for the documentation is located in the
Documentation/source folder.
The documentation is generated using Sphinx, and the source files are in reStructuredText format.
Most likely you will want to contribute to the User Guide. The source files for the guide are located in the directory
named Documentation/source/guide. If you want to contribute to an already existing document just open
the file in your favorite (plain) text-editor and do your modifications.

Note: The following files are generated automatically and can thus not be edited:
• The _group.rst file, and any file with a name starting with _group.
• The _prefs.rst.
• The documentation for each individual plugin, which can be found in the Documentation/source/plugins
directory (see Plugins Manual).

If you prefer editing with LibreOffice (or even MSWord), just keep the document simple (use styles for section
headers, don’t try to format too much, etc.), and use pandoc to get a first working version in reStructuredText
format: pandoc your_document.docx -t rst -o output_doc.rst
This reStructuredText file will probably require a few touch-ups afterwards, but it is usually a good starting point.

Submitting contributions

To send your contributions, the best way is to follow the procedure below. However, if you wrote a nice piece of
documentation, in any standard format, and have difficulties following that procedure, do not hesitate to ask for
assistance on the Natron forum, or to file a GitHub issue, with your document attached to your message.
The standard procedure is the following:
• Fork https://github.com/NatronGitHub/Natron using your github account.
• On your fork, create a branch from the RB-2.3 branch (do not use the master branch), and give it a name
like “documentation-keying” if you are going to write the keying doc (which we really need).
• To add your doc, you can either:
– Clone the repository to your computer, edit and add files, commit your changes locally (the github
desktop application is easy to use), and then push your changes,

34 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

– Or edit the files directly on github. See tutorials-hsvtool.rst for en example (you will probably need to
fork the repository first, see below, and browse to that file on your fork). Click on the pencil icon on
the top right. You get an editable the text view and can get a preview by clicking on the preview tab
on top.
• Then, submit a pull request to the RB-2.3 branch on the main repository from your branch (there is a button
to submit a pull request when you view your fork on github). Give an accurate description of the pull
request, and remember to follow the Contributor Covenant Code of Conduct, as with all contributions to
Natron or the plugins. The Natron maintainers can either accept it as it is, or ask for a few modifications.
You can view the formatted documentation on your github repository, as explained above, but you can also
preview your modifications by using pandoc to convert it to another format, or install Sphinx and recom-
pile the whole documentation. On Linux and Mac you can install Sphinx through your package manager
(using MacPorts type sudo port install py27-sphinx py27-sphinx_rtd_theme, on Home-
Brew type brew install sphinx-doc; /usr/local/opt/sphinx-doc/libexec/bin/pip3
install sphinx_rtd_theme`, on Linux type pip install sphinx sphinx_rtd_theme), on
Windows refer to the Sphinx documentation.
When you have Sphinx installed go to the Documentation folder and launch the following command:
sphinx-build -b html source html
The Natron documentation has now been generated in the Documentation/html folder. Open Documenta-
tion/html/index.html in your web browser to review your changes.
When your are satisfied with your modifications do a pull request against the master repository on GitHub.

Plugins Manual

The documentation for each plugin contains two parts:


• The main documentation, including the short description, and the documentation for individual parameters.
This part of the documentation is available in the C++ source file of each plugin.
• An extra documentation, in the form of a Markdown file in the plugin bundle, named Contents/
Resources/pluginId.md (in the same directory as the plugin icon files), where pluginId is the full
plugin identifier (e.g. net.sf.openfx.MergePlugin). The extra documentation is inserted after the
Description section and before the Inputs section of the generated documentation.

Main Plugin Documentation

Editing or adding the main documentation for the Natron plugins requires you to edit the C++ source file for each
plugin. Usually the plugin(s) has a kPluginDescription define where you can edit the description found when
hovering or clicking the ? button of the plugin properties panel in Natron.
Let us say you want to edit the description in the Checkerboard plugin.
1. Fork the https://github.com/NatronGitHub/openfx-misc repository on GitHub.
2. Open the file Checkerboard/Checkerboard.cpp in your favorite (plain) text-editor
Navigate to the line #define kPluginDescription, where you can edit the description. Line breaks are added with
\n.
You will also notice that each parameter has a hint define, for example the Checkerboard has #define kParam-
BoxSizeHint, #define kParamColor0Hint etc. These describe each parameter in the plugin and shows up when
you hover the parameter in Natron, or access the HTML documentation online or through Natron.
To test your modifications, you must build the plugin(s) and load them in Natron, refer to each plugin bundle on
GitHub on how to build the plugin(s). Click the ? button of the plugin properties panel in Natron to check your
modifications.

1.4. Tutorials 35
Natron Documentation, Release 3.0.0

Markdown

The plugin description and parameters optionally supports Markdown format. This enables you to have more
control over how the information is displayed.
Enabling Markdown on a plugin requires some modifications, as the plugin must tell the host (Natron) that it
supports Markdown on the description and/or parameters. See the Shadertoy plugin for an example of how this
works.
Basically you need to add desc.setPluginDescription(kPluginDescriptionMarkdown, true); in the describe
function for each plugin. If you are not comfortable with this, contact the repository maintainer(s) and ask them
to enable Markdown for you.

Submitting contributions

As with the Natron Manual, the standard way of submitting your contributions is by forking the relevant plugins
repo on GitHub (openfx-misc, openfx-io, openfx-arena or openfx-gmic) and submitting a pull request to the master
branch of that repo.
However, if you wrote a nice piece of documentation, in any standard format, and have difficulties following that
procedure, do not hesitate to ask for assistance on the Natron forum, or to file a GitHub issue, with your document
attached to your message.

1.4.2 HSVTool

The HSVTool node converts the input color space to a HSV color space and converts the adjusted values back to
the image input color space for further processing for the output. The HSVTool node is used to adjust the HSV
channel components of an image the the Read node stream. It’s basic operation are to adjust the Hue: which is
the color of the input image, Saturation: which is the color range of the input image, and Brightness: which is the
color value level and the grayscale of the input image.
Each section has a rang controls that can be adjusted to limit the effects of a node by narrowing the input color
ranges.
What are some standard work-flow using HSVTool?
1. You can do secondary color corrections or color replacements with the source/destination eyedropper tool.
2. You can use the HSVTool for linear/color keying.
3. You can do an overall color shift by using the rotation range adjuster in the Hue parameters etc.

The following screen captures are based on a single pixel selection without manual component modifications. You
will see different alpha mattes display based on the alpha output components.
The image above is the result of a single color pixel selection using the blue destination replacement color.

Brightness adjustment ranges

This is when you make adjustments to Hue, Saturation, and Brightness to limit the input color ranges for the
desired effect. You can look at the third viewer on the right that has matte/alpha generated by the color selection
key using the source color eyedropper. This is the alpha interpretation of the alpha output component which is the
to Hue.

36 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

1.4. Tutorials 37
Natron Documentation, Release 3.0.0

There are several alpha output component that the HSVTool uses to limit effects. The next images are the results
of the output alpha mode from the HSVTool.

Note: Each of the matte generated displays are based from the colors that are spread across the image on a single
pixel selection and it HSV values.

By using a low resolution and/or compressed image you will see the artifacts in the alpha channel. This makes
it harder to do a replacement or secondary color correction. Is is evident that the blue channel has the most
artifacts/noise, you can use the CImgDenoise or CImgBlur node and blur one or two pixels in the blue channel to
soften the pixel edges. This technique will not always work, remember to apply dynamic range applications when
using the HSVTool. You can only push the Saturation and Brightness so far. Also remember that HSVTool need
color input in order to apply any color filtering even though it can output greyscale and matte data.

38 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

HSVTool Keyer

The HSVTool can be used as a color keyer. It uses the same principles as the ChromaKeyer and the Keyer nodes.
What separates the HSVTool as a keyer is that the matte is inverted with it’s selection.
When you need to pull a key with the ChromaKeyer the key color is outputted as black or represents a transparency.
See node grap below for an example.
The image below is the ChromaKeyer parameters panel. You can see that the eyedropper has a chroma green
selection from the input image. You may also notice the acceptance angle is very high, this is because the source
material is compressed.
As you can see from the panel the chromakey subtracted the chroma green, replacing it with black/transparent.
The “Key Lift” and “Key Gain” clamps the black/white to make a clean matte from the keyed selection.
Even if the chromakey generates transparency from the node, it still outputs a black and white matte that can be
used as an inverted mask or holdout matte to apply needed filter effects.

Note: A holdout matte is a section of your image that tells the keyer not to key the selected area. A holdout matte
is commonly used to define a area within your image that might have similar colors to the color being keyed.

The node graph below is using the same green screen image when pulling a key with the HSVTool. The alpha
output shows up as the white color. This HSVTool does not subtract the color to generate a matte, as oppose to
the ChromaKeyer and Keyer nodes that subtracts the color to generate a matte. If you are concerned about color
spaces, ChromaKeyer and Keyer process data in RGB color space and the HSVTool process in HSV color space.
The image below is the HSVTool parameters panel. You can see that the source color eyedropper operator has a
chroma green selected. As you look further down the panel you will notice the Hue, Saturation, and Brightness
parameters which has all the values the make up the chroma green selection.
The important part to remember is that Hue, Saturation, and Brightness are used to generate and adjust the matte(s)
based on the output alpha mode. The image output alpha is set to min(All), when selected, Hue, Saturation, and
Brightness can be used to adjust the matte/mask output.

1.4. Tutorials 39
Natron Documentation, Release 3.0.0

40 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

1.4. Tutorials 41
Natron Documentation, Release 3.0.0

42 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

There are eight output alpha modes. The only mode that can’t generate a matte is the “Source” mode. Even if
there’s no matte generated you can still do color replacements and color corrections.

The image above displays two HSVTool nodes that is keying the same input, but generating two different mattes
based on the output alpha. The middle viewer is the Hue mode output. The viewer on the right is the min(Hue,
Saturation) mode output. When you are working with compressed source images the output alpha modes will
yield different results.

Note: If you need more control on the alpha/matte output, the ColorLookup node can help adjusting edges.

1.4.3 FFmpeg (empty)

1.4. Tutorials 43
Natron Documentation, Release 3.0.0

Producing digital intermediates (empty)

Muxing audio (empty)

Encoding HEVC (empty)

1.4.4 Using PanoTools projects within Natron

Those are preliminary notes on using PanoTools or Hugin projects from within Natron.

Creating a PanoTools (pto) project

Using the Hugin GUI

• download Hugin - on macOS this can be done using homebrew, by typing the command brew cask
install hugin in a terminal.
• read the Hugin documentation or start with a Hugin tutorial
• make your panorama

Using command-line tools

Full details on using command-line tools are given in the Panorama scripting in a nutshell documentation.
On macOS, if Hugin was installed using homebrew, the tools are available in various directories, and they can be
added to the PATH using:
PATH="$PATH:/Applications/Hugin/tools_mac:/Applications/Hugin/Hugin.app/Contents/
˓→MacOS:/Applications/Hugin/HuginStitchProject.app/Contents/MacOS"

Here is an example of running the panorama tools from a set of JPEG images (with suffix .jpg) placed in the
current directory to generate e perspective panorama (other options are described in the documentation):
pto_gen -o project.pto *.JPG
cpfind --multirow -o project.pto project.pto

celeste_standalone -i project.pto -o project.pto


cpclean -v --output project.pto project.pto

autooptimiser -a -l -s -m -o project.pto project.pto

nona -m TIFF_m -o project project.pto

enblend --save-masks -o panorama.tif project*.tif

The result is:


• A project.pto file, which is the Hugin project itself
• The project*.tif images, which are images warped to the reference projection.
• The mask-*.tif images, which are masks generated by enblend.
• The panorama.tif image, which is the final panorama.

Using Hugin/PanoTools parameters in Natron

The pto file syntax is described is the PTOptimizer and PTStitcher docs.
This file can be viewed and edited in any text editor.

44 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

Project size

The project size, or format, should be set to the panorama size, which is given in pixels on the p line (at the start
of the file).

Distortion correction

The distortion correction parameters for the input images are given in the i lines (one for each image).
The values for the a, b, c, d, e, g, t parameters should be entered in a LensDistortion node, with
Model/model=PanoTools and Direction/direction=Undistort, placed after the Read node for each input im-
age or video. The script name for these values are pt_a, pt_b, pt_c, pt_d, pt_e, pt_g, pt_t.
Note that if all images share the same distortion parameters (this is written as a=0 b=0 c=0 d=0 e=0 g=0
t=0 on the i line), the LensDistortion node can be cloned in Natron (right-click on node, Edit, Clone Nodes).

Projection

The projection (which can be performed by the Nona tool) can be done using Card3D nodes placed after each
LensDistortion node.
Each Card3D node must have its Transform Order/cardXFormOrder set to STR, and the Rotation Or-
der/cardRotOrder should be left to the default value (ZXY). Be careful, these are neither the Axis nor the
Cam Transform Order, which are in the two first groups of the Card3Dnode.
Set the Output Format to Project.
The r p and y values from the i line are roll, yaw, pitch angles. Their values should be put in the Rotate
parameter of the Card3D (script name is cardRotate), using the following convention: cardRotate.x =
p, cardRotate.y = -y, cardRotate.z = -r.
The v value from the i line corresponds to the horizontal field of view, and has to be converted to an aperture value.
The Lens-In H.Aperture/lensInHAperture param should be set to 2*tan(v*pi/360). This expression
can be directly typed in the value field, with v replaced by the actual value from the corresponding i line of the
pto file.
Setup all the Card3D nodes for each input image that way.

Camera

In Natron 2, the camera used by the Card3D node is set in the Cam group at the top of the parameters list.
In the Card3D node for the first image, unfold this group, and unfold the Cam Projection group.
The v value on the p line (usually at the top of the pto file) gives the horizontal field of view of the output
panorama.
Set the Focal Length/camfocal to 1., and set the Horiz. Aperture/camhaperture to 2*tan(v*pi/360),
replacing v with its actual value.
You can then copy these two parameters to all the Card3D nodes, or - even better - link these parameters, so that
the output camera for the panorama can then be modified: Right-click on the parameter from the first Card3D,
Copy Link, then right-click on the same parameter of every other Card3D node, Paste Link.
If you intend to modify the camera orientation later, you can also link the same way the Rotate/camRotate
parameter (those for the camera, not the card).
Note that when the Natron Card3D node is used in Nuke (where it appears as Card3DOFX), the node has an
external Cam input, to which a Camera node may be connected. There may be a similar concept in future versions
of Natron.

1.4. Tutorials 45
Natron Documentation, Release 3.0.0

Building the panorama in Natron

First sketch: overlap the images

Make sure that the Output Components parameter in all readers is set to RGBA, so that images have a transparent
value outside of their domain.
Now, connect the outpput of the first Card3D to the B input of a Merge node, connect the secont to the A input,
the third to the A2 input, etc. . .
The output of the Merge node should show a first panorama, obtained by overlapping all images.

Drawing the masks

Add a Roto node after each LensDistortion, before each Card3D.


Only leave connected the A and B inputs to the Merge node to the two first Card3D nodes.
Check Premultiply in each Roto node, check that only the A channel is affected by Roto in its parameters, and
start editing the roto mask on the second image, for which the LensDistortion output is connected to the A input
of the Merge, while viewing the output of the Merge.
Set the compositing operator of each roto shape to “min” instead of “over”, so that the original image alpha gets
masked by the roto shape.
Do not forget to add feather, especially in the overlap area.
Then, reconnect the A2 input to the third Card3D, and start editing its roto mask, always in “min” compositing
mode.
Do the same with A3, A4, etc. . . and you should end up with a full panorama.

Future work

Camera response

See Camera response curve and Vig_optimize.


The values Ra Rb Rc Rd Re on the i line encode a color response curve (EMoR). See EMoRParamsin the hugin
source code.

Exposure and color

See Vignetting and Vig_optimize.


Eev encodes the exposure, see ExposureValue in the hugin source code.
Er and Eb encode the red and blue multipliers, see WhiteBalanceRed and WhiteBalanceBlue in the
hugin source code.

Vignetting

See Vignetting and Vig_optimize.


Va is always 1, see VigCorrMode in the hugin source code.
Vb Vc Vd encode the degree 2, 4 and 6 coefficients for vignette correction, see RadialVigCorrCoeff in the
hugin source code.
Vx and Vy encode the vignetting center shift, see RadialVigCorrCenterShift in the hugin source code.

46 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

Blending

• importing enblend masks, using them as roto masks


• executing enblend externally (using RunScript maybe?)

1.4.5 Vector graphics workflow

Software development is constantly growing. The film and multimedia industry are coming together as partners
to provide a one stop shop by allowing applications to communicate via different file formats. One of the formats
that have proven to be useful in both industries is the SVG (Scalable Vector Graphics) format. Its architecture
algorithm is based on mathematical expressions. In simpler terms, in doesn’t suffer image noise & artifacts like
bitmap formats such as PNG, TIFF, JPG and etc.
Inkscape’s SVG format uses multiple layers and paths, but most graphics applications can only parse this as a flat
bitmap. There will times when an artist may want to animate and/or modify those layers in a compositing program
but can’t due to limitation in the SVG importer. Natron however supports all layers and paths in the SVG file, this
enables enhanced control over the vector graphics.
This tutorial will show you how to use vector graphics from Inkscape in Natron.

Inkscape

Inkscape has multiple ways to create vector graphics to be saved and imported into Natron. The default is to
first create your document layout. This entails formatting the resolution for the project upon which your vector
graphics will be displayed. Inkscape starts with one layer and you can draw and type your graphics on that layer
or additional layers. You can then save the project to SVG file.

1.4. Tutorials 47
Natron Documentation, Release 3.0.0

This image is SVG letters being converted to a group and layers for each word so that they may have their own
layer/alpha channel in Natron.
The image below is the same vector letters being converted to paths and eventually ungrouping each of the vector
letters so that they may have their own layer and alpha channel in Natron.

Note: Remember to make sure that you convert your objects to paths, it is highly advisable to name each path
with its separate id name. It will make it much easier to find Color.RGB and alpha channel names in Natron after
loading the SVG file in the node graph.

It is also possible and good practice to select objects/paths and create groups of them. This will allow easy
animation work-flows without having to duplicate animated key-frames if needed. Those groups will also show
up as Color.RGB and Alpha channels in Natron.

Natron

The image below is Natron with the SVG file loaded. We have two viewers displaying the Color.RGB and alpha
channels generated from the SVG file.
After you have loaded the file, you can check the Color.RGB/Alpha Channels headers to see how the layers, paths
and groups are read. The ReadSVG node is multi-plane aware. The next few images are Natron screen captures
of the headers, merge and shuffle nodes.

Note: To clarify the Merge: Paths Channels image. In the SVG image, I broke apart the vector characters and
converted them to paths. Then each letter of the SVG was giving the name assigned to that letter. That information
got saved as individual Color.RGB/Alpha channels.

Be sure to look carefully at the Color.RGB and alpha headers in the images below. When your finished designing
your vector document with layers/paths/groups, this is where the channels are displayed.
The Shuffle and Merge nodes are used to access multi-
plane layers. Though they both can process the different
SVG files objects, paths, layers, they work differently.
As you can see in the image on the left the shuffle node

48 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

1.4. Tutorials 49
Natron Documentation, Release 3.0.0

50 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

display every channel(s) from a file and also copy chan-


nels from other files into the “A” input from the “B”
input.
The merge node only perform mathematical blending
operations on the inputs “B” and “A:A1000”. In order
to access the alpha channels from the SVG file you must
use the maskChannel mask inputs.
So plan your work before you start a project. Organiza-
tion is key. Make sure that Layer(s), Object(s), Path(s)
and Group(s) have logical naming conventions.

The node graph below shows how to extract individual


layers using the shuffle node and the merge node. Both
can extract the RGB layers and individual paths from
an SVG file, but the Shuffle node allow you to pipe any
of the layers or single channels to another node mask
input.

1.4.6 Alternative Matte Extraction Tuto-


rial

In the world of vfx in current films these days, it is hard


to even phathom that pulling keys (aka chromakey-
ing) or generally just creating mattes from images is
not common place. Today I want to share some fea-
tures in a few nodes that are in Natron VFX Digital
Compositor. The nodes that I want to discuss are De-
spill, Ip_ChillSpill and ColorSuppression. You can
guess by the name the functions that they perform. Basi-
cally, they subtract any blue or green screen spillage
that happens to contaminate your foreground ob-
jects during the production process. These types of
functions are common place in every post-production
facilities in the industry. It doesn’t matter if you are a

1.4. Tutorials 51
Natron Documentation, Release 3.0.0

52 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

beginner wanting to produce your own short films or a


professional working on block buster films. The needs
are the same. The attached image is a greenscreen im-
age that I pulled off google to demonstrate what the
Natron developers had implemented to take these de-
spillers to another level or just added functionality.

The added functionality is having the ability to use the


suppressed or despill color information and convert it to
a matte or alpha. I am unaware if any other compositing
applications has these abilities. Natron is my main compositing app and from time to time I use these despilling
node algorithms to help generate masks, general mattes and scaled alphas. This is Natron’s node graph pipeline
for each node that I will be discussing. The pipeline for each node is really simple. You just connect the green/blue
screen footage to the input of the nodes, adjust whatever you have to adjust, click on the very simple knob that
says “Spillmap to Alpha” if you are using the Despill node, “Shuffle Spillmatte to Alpha” if you are using the
community openfx plugin called Ip_ChillSpill Node, and “Output: Image, Alpha & Image and Alpha” if you
are using the ColorSuppression node.

The first screenshot demonstration if for the node Ip_ChillSpill. This despilling node has the most of features
and functions that I can tell that exist amongst all the despilling nodes. in the image below you will see the spill
suppression on the left and the alpha channel from selecting “Shuffle Spillmatte to Alpha” on the right.

Now just selecting the Shuffle Spillmatte to Alpha feature is not some magic trick and you get a perfect matte, not
by a long shot. For a matter a fact its not for any of them. Attached are example of the nodes in their default state
before the scaling process begins. The first image is the Ip_ChillSpill default matte output and the second in the
ColorSuppression default matte output. It looks like if I was trying to use the HSVTool Node to pull a Saturation
or Brightness Key. You can read more about that in my HSVTool node tutorial. I used a very underated and
under used node amongst beginners called the ColorLookup Node. You can be very familiar with the node if you
have used Photoshop or Gimp’s curve tool.
Here are the nodes and their settings to show what I had to do to get it to scale my suppression mattes. The key
tool is to use the ColorLookup Node connected after the despilling nodes. The ColorLookup Node four color
channels and the channel that you use the scale your mattes is the “alpha curve channel”. The bottom left of the
alpha curve is used the to crush your blacks/shadows and the top right is used to extend your white/highlights.
In the ColorLookup Node you will also see a feature called “Luminance Math”. This feature will yield its full

1.4. Tutorials 53
Natron Documentation, Release 3.0.0

benefits based off the resolution and color spaces of your footage. The ColorLookup node is very powerful in a
sense because the channel curves can have multiple points to limit its effects.

As you can see these nodes all perform the same functions but some has different parameters to accomplishes the
same thing and well as providing other color processing effects. Here are some screen captures of the effects using
the ColorLookup Node.

Now this by node means a primary replacement for powerful keying node in Natron. The extended func-
tionality should only be considered as compliment to Chromakeyer, PIK/PIK Color and Keyer nodes. Just
remember that the Here are some screen captures of the effects using the ColorLookup node is needed to scaled
that matte. Also this process doesn’t treat your edges with a choking or eroding effect. You would have to exper-
iment with some of the filters to process them. Now you can try and cheat by using the Shuffle Node to convert to
this matte output to an real alpha channel and maybe you can process your edges directly as if you were coming
out of a keyer. You will need to do some serious testing. After you have done that, please feel free to talk about it
and join NatronNation and read my blog.

Despill and Color Suppression Pipeline

54 Chapter 1. User Guide


Natron Documentation, Release 3.0.0

1.4. Tutorials 55
Natron Documentation, Release 3.0.0

56 Chapter 1. User Guide


CHAPTER 2

Reference Guide

The first section in this manual describes the various options available from the Natron preference settings. It is
followed by one section for each node group in Natron. Node groups are available by clicking on buttons in the
left toolbar, or by right-clicking the mouse in the Node Graph area.

2.1 Preferences

2.1.1 General

Always check for updates on start-up


When checked, Natron will check for new updates on start-up of the application.
Auto-save trigger delay
The number of seconds after an event that Natron should wait before auto-saving. Note that if a render is in
progress, Natron will wait until it is done to actually auto-save.
Enable Auto-save for unsaved projects
When activated Natron will auto-save projects that have never been saved and will prompt you on startup if an
auto-save of that unsaved project was found. Disabling this will no longer save un-saved project.
Appear to plug-ins as
Natron will appear with the name of the selected application to the OpenFX plug-ins. Changing it to the name of
another application can help loading plugins which restrict their usage to specific OpenFX host(s). If a Host is not
listed here, use the “Custom” entry to enter a custom host name. Changing this requires a restart of the application
and requires clearing the OpenFX plugins cache from the Cache menu.

2.1.2 Threading

Number of render threads (0=“guess”)


Controls how many threads Natron should use to render.
-1: Disable multithreading totally (useful for debugging)
0: Guess the thread count from the number of cores.

57
Natron Documentation, Release 3.0.0

Number of parallel renders (0=“guess”)


Controls the number of parallel frame that will be rendered at the same time by the renderer.A value of 0 indicate
that Natron should automatically determine the best number of parallel renders to launch given your CPU activity.
Setting a value different than 0 should be done only if you know what you’re doing and can lead in some situations
to worse performances. Overall to get the best performances you should have your CPU at 100% activity without
idle times.
Effects use the thread-pool
When checked, all effects will use a global thread-pool to do their processing instead of launching their own
threads. This suppresses the overhead created by the operating system creating new threads on demand for each
rendering of a special effect. As a result of this, the rendering might be faster on systems with a lot of cores (>=
8).
WARNING: This is known not to work when using The Foundry’s Furnace plug-ins (and potentially some other
plug-ins that the dev team hasn’t not tested against it). When using these plug-ins, make sure to uncheck this
option first otherwise it will crash Natron.
Max threads usable per effect (0=“guess”)
Controls how many threads a specific effect can use at most to do its processing. A high value will allow 1 effect
to spawn lots of thread and might not be efficient because the time spent to launch all the threads might exceed the
time spent actually processing.By default (0) the renderer applies an heuristic to determine what’s the best number
of threads for an effect.
Render in a separate process
If true, Natron will render frames to disk in a separate process so that if the main application crashes, the render
goes on.
Append new renders to queue
When checked, renders will be queued in the Progress Panel and will start only when all other prior tasks are done.

2.1.3 Rendering

Convert NaN values


When activated, any pixel that is a Not-a-Number will be converted to 1 to avoid potential crashes from down-
stream nodes. These values can be produced by faulty plug-ins when they use wrong arithmetic such as division
by zero. Disabling this option will keep the NaN(s) in the buffers: this may lead to an undefined behavior.
Copy input image before rendering any plug-in
If checked, when before rendering any node, Natron will copy the input image to a local temporary image. This is
to work-around some plug-ins that write to the source image, thus modifying the output of the node upstream in
the cache. This is a known bug of an old version of RevisionFX REMap for instance. By default, this parameter
should be leaved unchecked, as this will require an extra image allocation and copy before rendering any plug-in.
RGB components support
When checked Natron is able to process images with only RGB components (support for images with RGBA and
Alpha components is always enabled). Un-checking this option may prevent plugins that do not well support RGB
components from crashing Natron. Changing this option requires a restart of the application.
Transforms concatenation support
When checked Natron is able to concatenate transform effects when they are chained in the compositing tree. This
yields better results and faster render times because the image is only filtered once instead of as many times as
there are transformations.

58 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

2.1.4 GPU Rendering

Active OpenGL renderer


The currently active OpenGL renderer.
OpenGL renderer
The renderer used to perform OpenGL rendering. Changing the OpenGL renderer requires a restart of the appli-
cation.
No. of OpenGL Contexts
The number of OpenGL contexts created to perform OpenGL rendering. Each OpenGL context can be attached
to a CPU thread, allowing for more frames to be rendered simultaneously. Increasing this value may increase per-
formances for graphs with mixed CPU/GPU nodes but can drastically reduce performances if too many OpenGL
contexts are active at once.
OpenGL Rendering
Select whether to activate OpenGL rendering or not. If disabled, even though a Project enable GPU rendering, it
will not be activated.

2.1.5 Project Setup

First image read set project format


If checked, the project size is set to this of the first image or video read within the project.
Auto-preview enabled by default for new projects
If checked, then when creating a new project, the Auto-preview option is enabled.
Auto fix relative file-paths
If checked, when a project-path changes (either the name or the value pointed to), Natron checks all file-path
parameters in the project and tries to fix them.
Use drive letters instead of server names (Windows only)
This is only relevant for Windows: If checked, Natron will not convert a path starting with a drive letter from the
file dialog to a network share name. You may use this if for example you want to share a same project with several
users across facilities with different servers but where users have all the same drive attached to a server.

2.1.6 Documentation

Documentation Source
Documentation source.
Documentation local port (0=auto)
The port onto which the documentation server will listen to. A value of 0 indicate that the documentation should
automatically find a port by itself.

2.1.7 User Interface

Warn when a file changes externally


When checked, if a file read from a file parameter changes externally, a warning will be displayed on the viewer.
Turning this off will suspend the notification system.
Prompt with file dialog when creating Write node
When checked, opens-up a file dialog when creating a Write node

2.1. Preferences 59
Natron Documentation, Release 3.0.0

Refresh viewer only when editing is finished


When checked, the viewer triggers a new render only when mouse is released when editing parameters, curves or
the timeline. This setting doesn’t apply to roto splines editing.
Linear color pickers
When activated, all colors picked from the color parameters are linearized before being fetched. Otherwise they
are in the same colorspace as the viewer they were picked from.
Maximum number of open settings panels (0=“unlimited”)
This property holds the maximum number of settings panels that can be held by the properties dock at the same
time.The special value of 0 indicates there can be an unlimited number of panels opened.
Value increments based on cursor position
When enabled, incrementing the value fields of parameters with the mouse wheel or with arrow keys will increment
the digits on the right of the cursor.
When disabled, the value fields are incremented given what the plug-in decided it should be. You can alter this
increment by holding Shift (x10) or Control (/10) while incrementing.
Default layout file
When set, Natron uses the given layout file as default layout for new projects. You can export/import a layout
to/from a file from the Layout menu. If empty, the default application layout is used.
Load workspace embedded within projects
When checked, when loading a project, the workspace (windows layout) will also be loaded, otherwise it will use
your current layout.

2.1.8 Color Management

OpenColorIO configuration
Select the OpenColorIO configuration you would like to use globally for all operators and plugins that use Open-
ColorIO, by setting the “OCIO” environment variable. Only nodes created after changing this parameter will take
it into account, and it is better to restart the application after changing it. When “Custom config” is selected, the
“Custom OpenColorIO config file” parameter is used.
Custom OpenColorIO configuration file
OpenColorIO configuration file (config.ocio) to use when “Custom config” is selected as the OpenColorIO config.
Warn on OpenColorIO config change
Show a warning dialog when changing the OpenColorIO config to remember that a restart is required.

2.1.9 Caching

Aggressive caching
When checked, Natron will cache the output of all images rendered by all nodes, regardless of their “Force
caching” parameter. When enabling this option you need to have at least 8GiB of RAM, and 16GiB is recom-
mended.
If not checked, Natron will only cache the nodes which have multiple outputs, or their parameter “Force caching”
checked or if one of its output has its settings panel opened.
Maximum amount of RAM memory used for caching (% of total RAM)
This setting indicates the percentage of the total RAM which can be used by the memory caches.
System RAM to keep free (% of total RAM)

60 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

This determines how much RAM should be kept free for other applications running on the same system. When
this limit is reached, the caches start recycling memory instead of growing. This value should reflect the amount
of memory you want to keep available on your computer for other usage. A low value may result in a massive
slowdown and high disk usage.
Maximum playback disk cache size (GiB)
The maximum size that may be used by the playback cache on disk (in GiB)
Maximum DiskCache node disk usage (GiB)
The maximum size that may be used by the DiskCache node on disk (in GiB)
Disk cache path (empty = default)
WARNING: Changing this parameter requires a restart of the application.
This points to the location where Natron on-disk caches will be. This variable should point to your fastest disk. If
the parameter is left empty or the location set is invalid, the default location will be used.
Wipe Disk Cache
Cleans-up all caches, deleting all folders that may contain cached data. This is provided in case Natron lost track
of cached images for some reason.

2.1.10 Viewer

Viewer textures bit depth


Bit depth of the viewer textures used for rendering. Hover each option with the mouse for a detailed description.
Viewer tile size is 2 to the power of. . .
The dimension of the viewer tiles is 2^n by 2^n (i.e. 256 by 256 pixels for n=8). A high value means that the
viewer renders large tiles, so that rendering is done less often, but on larger areas.
Checkerboard tile size (pixels)
The size (in screen pixels) of one tile of the checkerboard.
Checkerboard color 1
The first color used by the checkerboard.
Checkerboard color 2
The second color used by the checkerboard.
Automatically enable wipe
When checked, the wipe tool of the viewer will be automatically enabled when the mouse is hovering the viewer
and changing an input of a viewer.
Automatically enable proxy when scrubbing the timeline
When checked, the proxy mode will be at least at the level indicated by the auto-proxy parameter.
Max. opened node viewer interface
Controls the maximum amount of nodes that can have their interface showing up at the same time in the viewer
Use number keys for the viewer
When enabled, the row of number keys on the keyboard is used for switching input (<key> connects input to A
side, <shift-key> connects input to B side), even if the corresponding character in the current keyboard layout is
not a number.
This may have to be disabled when using a remote display connection to Linux from a different OS.

2.1. Preferences 61
Natron Documentation, Release 3.0.0

2.1.11 Nodegraph

Auto Scroll
When checked the node graph will auto scroll if you move a node outside the current graph view.
Auto-turbo
When checked the Turbo-mode will be enabled automatically when playback is started and disabled when finished.
Snap to node
When moving nodes on the node graph, snap to positions where they are lined up with the inputs and output nodes.
Maximum undo/redo for the node graph
Set the maximum of events related to the node graph Natron remembers. Past this limit, older events will be
deleted forever, allowing to re-use the RAM for other purposes.
Changing this value will clear the undo/redo stack.
Disconnected arrow length
The size of a disconnected node input arrow in pixels.
Auto hide masks inputs
When checked, any diconnected mask input of a node in the nodegraph will be visible only when the mouse is
hovering the node or when it is selected.
Merge node connect to A input
If checked, upon creation of a new Merge node, or any other node with inputs named A and B, input A is be
preferred for auto-connection. When the node is disabled, B is always output, whether this is checked or not.

2.1.12 Plug-ins

Use bundled plug-ins


When checked, Natron also uses the plug-ins bundled with the binary distribution.
When unchecked, only system-wide plug-ins found in are loaded (more information can be found in the help for
the “Extra plug-ins search paths” setting).
Prefer bundled plug-ins over system-wide plug-ins
When checked, and if “Use bundled plug-ins” is also checked, plug-ins bundled with the Natron binary distribution
will take precedence over system-wide plug-ins if they have the same internal ID.
Enable default OpenFX plugins location
When checked, Natron also uses the OpenFX plug-ins found in the default location (/Library/OFX/Plugins).
OpenFX plug-ins search path
Extra search paths where Natron should scan for OpenFX plug-ins. Extra plug-ins search paths can also be
specified using the OFX_PLUGIN_PATH environment variable.
The priority order for system-wide plug-ins, from high to low, is:
• plugins bundled with the binary distribution of Natron (if “Prefer bundled plug-ins over system-wide plug-
ins” is checked)
• plug-ins found in OFX_PLUGIN_PATH
• plug-ins found in /Library/OFX/Plugins (if “Enable default OpenFX plug-ins location” is checked)
• plugins bundled with the binary distribution of Natron (if “Prefer bundled plug-ins over system-wide plug-
ins” is not checked)

62 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Any change will take effect on the next launch of Natron.


PyPlugs search path
Search path where Natron should scan for Python group scripts (PyPlugs). The search paths for groups can also
be specified using the NATRON_PLUGIN_PATH environment variable.

2.1.13 Python

After project created


Callback called once a new project is created (this is never called when “After project loaded” is called.)
The signature of the callback is: callback(app) where:
• app: points to the current application instance
Default after project loaded
The default afterProjectLoad callback that will be set for new projects.
Default before project save
The default beforeProjectSave callback that will be set for new projects.
Default before project close
The default beforeProjectClose callback that will be set for new projects.
Default after node created
The default afterNodeCreated callback that will be set for new projects.
Default before node removal
The default beforeNodeRemoval callback that will be set for new projects.
Load PyPlugs in projects from .py if possible
When checked, if a project contains a PyPlug, it will try to first load the PyPlug from the .py file. If the version
of the PyPlug has changed Natron will ask you whether you want to upgrade to the new version of the PyPlug in
your project. If the .py file is not found, it will fallback to the same behavior as when this option is unchecked.
When unchecked the PyPlug will load as a regular group with the information embedded in the project file.
Print auto-declared variables in the Script Editor
When checked, Natron will print in the Script Editor all variables that are automatically declared, such as the app
variable or node attributes.

2.1.14 Appearance

Font
List of all fonts available on your system
Stylesheet file (.qss)
When pointing to a valid .qss file, the stylesheet of the application will be set according to this file instead of the
default stylesheet. You can adapt the default stylesheet that can be found in your distribution of Natron.

Main Window

Use black & white toolbutton icons


When checked, the tools icons in the left toolbar are greyscale. Changing this takes effect upon the next launch of
the application.

2.1. Preferences 63
Natron Documentation, Release 3.0.0

Curve Editor

Dope Sheet

Node Graph

Display plug-in icon on node-graph


When checked, each node that has a plug-in icon will display it in the node-graph.Changing this option will not
affect already existing nodes, unless a restart of Natron is made.
Anti-Aliasing
When checked, the node graph will be painted using anti-aliasing. Unchecking it may increase performances.
Changing this requires a restart of Natron
Default node color
The default color used for newly created nodes.
Default backdrop color
The default color used for newly created backdrop nodes.
Readers
The color used for newly created Reader nodes.
Writers
The color used for newly created Writer nodes.
Generators
The color used for newly created Generator nodes.
Color group
The color used for newly created Color nodes.
Filter group
The color used for newly created Filter nodes.
Transform group
The color used for newly created Transform nodes.
Time group
The color used for newly created Time nodes.
Draw group
The color used for newly created Draw nodes.
Keyer group
The color used for newly created Keyer nodes.
Channel group
The color used for newly created Channel nodes.
Merge group
The color used for newly created Merge nodes.
Views group
The color used for newly created Views nodes.
Deep group

64 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

The color used for newly created Deep nodes.

Script Editor

Font
List of all fonts available on your system
Font Size
The font size

2.2 Image nodes

The following sections contain documentation about every node in the Image group. Node groups are available
by clicking on buttons in the left toolbar, or by right-clicking the mouse in the Node Graph area.

2.2.1 CheckerBoard node

This documentation is for version 1.0 of CheckerBoard (net.sf.openfx.CheckerBoardPlugin).

Description

Generate an image with a checkerboard.


A frame range may be specified for operators that need it.
See also: http://opticalenquiry.com/nuke/index.php?title=Constant,_CheckerBoard,_ColorBars,_ColorWheel

Inputs

Input Description Optional


Source Yes

Controls

Parameter / script Type Default Function


name
Extent / extent Choice Default
Extent (size and offset) of the output.
Format (format): Use a pre-defined image format.
Size (size): Use a specific extent (size and offset).
Project (project): Use the project extent (size and offset).
Default (default): Use the default extent (e.g. the source clip extent, if
connected).

Continued on next page

2.2. Image nodes 65


Natron Documentation, Release 3.0.0

Table 1 – continued from previous page


Parameter / script Type Default Function
name
Center / recenter Button Centers the region of definition to the input region of definition. If there
is no input, then the region of definition is centered to the project win-
dow.
Reformat / Boolean Off Set the output format to the given extent, except if the Bottom Left or
reformat Size parameters is animated.
Format / Choice HD
NatronParamFormatChoice 1920x1080The output format
PC_Video 640x480 (PC_Video)
NTSC 720x486 0.91 (NTSC)
PAL 720x576 1.09 (PAL)
NTSC_16:9 720x486 1.21 (NTSC_16:9)
PAL_16:9 720x576 1.46 (PAL_16:9)
HD_720 1280x720 (HD_720)
HD 1920x1080 (HD)
UHD_4K 3840x2160 (UHD_4K)
1K_Super_35(full-ap) 1024x778 (1K_Super_35(full-ap))
1K_Cinemascope 914x778 2.00 (1K_Cinemascope)
2K_Super_35(full-ap) 2048x1556 (2K_Super_35(full-ap))
2K_Cinemascope 1828x1556 2.00 (2K_Cinemascope)
2K_DCP 2048x1080 (2K_DCP)
4K_Super_35(full-ap) 4096x3112 (4K_Super_35(full-ap))
4K_Cinemascope 3656x3112 2.00 (4K_Cinemascope)
4K_DCP 4096x2160 (4K_DCP)
square_256 256x256 (square_256)
square_512 512x512 (square_512)
square_1K 1024x1024 (square_1K)
square_2K 2048x2048 (square_2K)

Bottom Left / Double x: 0 y: Coordinates of the bottom left corner of the size rectangle.
bottomLeft 0
Size / size Double w: 1 h: Width and height of the size rectangle.
1
Interactive Update / Boolean Off If checked, update the parameter values during interaction with the im-
interactive age viewer, else update the values when pen is released.
Frame Range / Integer min: 1 Time domain.
frameRange max: 1
Output Components / Choice RGBA
outputComponents Components in the output
RGBA
RGB
Alpha

Box Size / boxSize Double x: 64 y: Size of the checkerboard boxes in pixels.


64
Color 0 / color0 Color r: 0.1 g: Color to fill the box on top-left of image center and every other row and
0.1 b: column.
0.1 a: 1
Color 1 / color1 Color r: 0.5 g: Color to fill the box on top-right of image center and every other row
0.5 b: and column.
0.5 a: 1
Continued on next page

66 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 1 – continued from previous page


Parameter / script Type Default Function
name
Color 2 / color2 Color r: 0.1 g: Color to fill the box on bottom-right of image center and every other
0.1 b: row and column.
0.1 a: 1
Color 3 / color3 Color r: 0.5 g: Color to fill the box on bottom-left of image center and every other row
0.5 b: and column.
0.5 a: 1
Line Color / Color r: 1 g: Color of the line drawn between boxes.
lineColor 1 b: 1
a: 1
Line Width / Double 0 Width, in pixels, of the lines drawn between boxes.
lineWidth
Centerline Color / Color r: 1 g: Color of the center lines.
centerlineColor 1 b: 0
a: 1
Centerline Width / Double 1 Width, in pixels, of the center lines.
centerlineWidth

2.2.2 ColorBars node

This documentation is for version 1.0 of ColorBars (net.sf.openfx.ColorBars).

Description

Generate an image with SMPTE RP 219:2002 color bars.


The output of this plugin is broadcast-safe of “Output IRE” is unchecked. Be careful that colorbars are defined in
a nonlinear colorspace. In order to get linear RGB, this plug-in should be combined with a transformation from
the video space to linear.
See also: http://opticalenquiry.com/nuke/index.php?title=Constant,_CheckerBoard,_ColorBars,_ColorWheel

Inputs

Input Description Optional


Source Yes

Controls

2.2. Image nodes 67


Natron Documentation, Release 3.0.0

Parameter / script Type Default Function


name
Extent / extent Choice Default
Extent (size and offset) of the output.
Format (format): Use a pre-defined image format.
Size (size): Use a specific extent (size and offset).
Project (project): Use the project extent (size and offset).
Default (default): Use the default extent (e.g. the source clip extent, if
connected).

Center / recenter Button Centers the region of definition to the input region of definition. If there
is no input, then the region of definition is centered to the project win-
dow.
Reformat / Boolean Off Set the output format to the given extent, except if the Bottom Left or
reformat Size parameters is animated.
Format / Choice HD
NatronParamFormatChoice 1920x1080The output format
PC_Video 640x480 (PC_Video)
NTSC 720x486 0.91 (NTSC)
PAL 720x576 1.09 (PAL)
NTSC_16:9 720x486 1.21 (NTSC_16:9)
PAL_16:9 720x576 1.46 (PAL_16:9)
HD_720 1280x720 (HD_720)
HD 1920x1080 (HD)
UHD_4K 3840x2160 (UHD_4K)
1K_Super_35(full-ap) 1024x778 (1K_Super_35(full-ap))
1K_Cinemascope 914x778 2.00 (1K_Cinemascope)
2K_Super_35(full-ap) 2048x1556 (2K_Super_35(full-ap))
2K_Cinemascope 1828x1556 2.00 (2K_Cinemascope)
2K_DCP 2048x1080 (2K_DCP)
4K_Super_35(full-ap) 4096x3112 (4K_Super_35(full-ap))
4K_Cinemascope 3656x3112 2.00 (4K_Cinemascope)
4K_DCP 4096x2160 (4K_DCP)
square_256 256x256 (square_256)
square_512 512x512 (square_512)
square_1K 1024x1024 (square_1K)
square_2K 2048x2048 (square_2K)

Bottom Left / Double x: 0 y: Coordinates of the bottom left corner of the size rectangle.
bottomLeft 0
Size / size Double w: 1 h: Width and height of the size rectangle.
1
Interactive Update / Boolean Off If checked, update the parameter values during interaction with the im-
interactive age viewer, else update the values when pen is released.
Frame Range / Integer min: 1 Time domain.
frameRange max: 1
Output Components / Choice RGBA
outputComponents Components in the output
RGBA
RGB

Bar Intensity / Double 75 Bar Intensity, in IRE unit.


barIntensity
Continued on next page

68 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 2 – continued from previous page


Parameter / script Type Default Function
name
Output IRE / Boolean Off When checked, the output is scaled so that 0 is black, the max value is
outputIRE white, and the superblack (under the middle of the magenta bar) has a
negative value.

2.2.3 ColorWheel node

This documentation is for version 1.0 of ColorWheel (net.sf.openfx.ColorWheel).

Description

Generate an image with a color wheel.


The color wheel occupies the full area, minus a one-pixel black and transparent border
See also: http://opticalenquiry.com/nuke/index.php?title=Constant,_CheckerBoard,_ColorBars,_ColorWheel

Inputs

Input Description Optional


Source Yes

Controls

Parameter / script Type Default Function


name
Extent / extent Choice Default
Extent (size and offset) of the output.
Format (format): Use a pre-defined image format.
Size (size): Use a specific extent (size and offset).
Project (project): Use the project extent (size and offset).
Default (default): Use the default extent (e.g. the source clip extent, if
connected).

Center / recenter Button Centers the region of definition to the input region of definition. If there
is no input, then the region of definition is centered to the project win-
dow.
Reformat / Boolean Off Set the output format to the given extent, except if the Bottom Left or
reformat Size parameters is animated.
Continued on next page

2.2. Image nodes 69


Natron Documentation, Release 3.0.0

Table 3 – continued from previous page


Parameter / script Type Default Function
name
Format / Choice HD
NatronParamFormatChoice 1920x1080The output format
PC_Video 640x480 (PC_Video)
NTSC 720x486 0.91 (NTSC)
PAL 720x576 1.09 (PAL)
NTSC_16:9 720x486 1.21 (NTSC_16:9)
PAL_16:9 720x576 1.46 (PAL_16:9)
HD_720 1280x720 (HD_720)
HD 1920x1080 (HD)
UHD_4K 3840x2160 (UHD_4K)
1K_Super_35(full-ap) 1024x778 (1K_Super_35(full-ap))
1K_Cinemascope 914x778 2.00 (1K_Cinemascope)
2K_Super_35(full-ap) 2048x1556 (2K_Super_35(full-ap))
2K_Cinemascope 1828x1556 2.00 (2K_Cinemascope)
2K_DCP 2048x1080 (2K_DCP)
4K_Super_35(full-ap) 4096x3112 (4K_Super_35(full-ap))
4K_Cinemascope 3656x3112 2.00 (4K_Cinemascope)
4K_DCP 4096x2160 (4K_DCP)
square_256 256x256 (square_256)
square_512 512x512 (square_512)
square_1K 1024x1024 (square_1K)
square_2K 2048x2048 (square_2K)

Bottom Left / Double x: 0 y: Coordinates of the bottom left corner of the size rectangle.
bottomLeft 0
Size / size Double w: 1 h: Width and height of the size rectangle.
1
Interactive Update / Boolean Off If checked, update the parameter values during interaction with the im-
interactive age viewer, else update the values when pen is released.
Frame Range / Integer min: 1 Time domain.
frameRange max: 1
Output Components / Choice RGBA
outputComponents Components in the output
RGBA
RGB
XY
Alpha

Center Saturation / Double 0 Sets the HSV saturation level in the center of the color wheel.
centerSaturation
Edge Saturation / Double 1 Sets the HSV saturation level at the edges of the color wheel.
edgeSaturation
Center Value / Double 1 Sets the HSV value level in the center of the color wheel.
centerValue
Edge Value / Double 1 Sets the HSV value level at the edges of the color wheel.
edgeValue
Gamma / gamma Double 0.45 Sets the overall gamma level of the color wheel.
Rotate / rotate Double 0 Sets the amount of rotation to apply to color position in the color wheel.
Negative values produce clockwise rotation and vice-versa.

70 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

2.2.4 Constant node

This documentation is for version 1.0 of Constant (net.sf.openfx.ConstantPlugin).

Description

Generate an image with a constant color.


See also: http://opticalenquiry.com/nuke/index.php?title=Constant,_CheckerBoard,_ColorBars,_ColorWheel

Inputs

Input Description Optional


Source Yes

Controls

Parameter / script Type Default Function


name
Extent / extent Choice Default
Extent (size and offset) of the output.
Format (format): Use a pre-defined image format.
Size (size): Use a specific extent (size and offset).
Project (project): Use the project extent (size and offset).
Default (default): Use the default extent (e.g. the source clip extent, if
connected).

Center / recenter Button Centers the region of definition to the input region of definition. If there
is no input, then the region of definition is centered to the project win-
dow.
Reformat / Boolean Off Set the output format to the given extent, except if the Bottom Left or
reformat Size parameters is animated.
Continued on next page

2.2. Image nodes 71


Natron Documentation, Release 3.0.0

Table 4 – continued from previous page


Parameter / script Type Default Function
name
Format / Choice HD
NatronParamFormatChoice 1920x1080The output format
PC_Video 640x480 (PC_Video)
NTSC 720x486 0.91 (NTSC)
PAL 720x576 1.09 (PAL)
NTSC_16:9 720x486 1.21 (NTSC_16:9)
PAL_16:9 720x576 1.46 (PAL_16:9)
HD_720 1280x720 (HD_720)
HD 1920x1080 (HD)
UHD_4K 3840x2160 (UHD_4K)
1K_Super_35(full-ap) 1024x778 (1K_Super_35(full-ap))
1K_Cinemascope 914x778 2.00 (1K_Cinemascope)
2K_Super_35(full-ap) 2048x1556 (2K_Super_35(full-ap))
2K_Cinemascope 1828x1556 2.00 (2K_Cinemascope)
2K_DCP 2048x1080 (2K_DCP)
4K_Super_35(full-ap) 4096x3112 (4K_Super_35(full-ap))
4K_Cinemascope 3656x3112 2.00 (4K_Cinemascope)
4K_DCP 4096x2160 (4K_DCP)
square_256 256x256 (square_256)
square_512 512x512 (square_512)
square_1K 1024x1024 (square_1K)
square_2K 2048x2048 (square_2K)

Bottom Left / Double x: 0 y: Coordinates of the bottom left corner of the size rectangle.
bottomLeft 0
Size / size Double w: 1 h: Width and height of the size rectangle.
1
Interactive Update / Boolean Off If checked, update the parameter values during interaction with the im-
interactive age viewer, else update the values when pen is released.
Frame Range / Integer min: 1 Time domain.
frameRange max: 1
Output Components / Choice RGBA
outputComponents Components in the output
RGBA
RGB
XY
Alpha

Color / color Color r: 0 g: Color to fill the image with.


0 b: 0
a: 0

2.2.5 OpenRaster node

This documentation is for version 2.1 of OpenRaster (fr.inria.openfx.OpenRaster).

72 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Description

Read OpenRaster image format.

Inputs

Input Description Optional


Sync Sync Yes

Controls

Parameter / script Type Default Function


name
File / filename N/A The input image sequence/video stream file(s).
First Frame / Integer 0 The first frame number to read from this image sequence or video file.
firstFrame This cannot be less than the first frame of the image sequence or video
file, and cannot be greater than the last frame of the image sequence or
video file. The first frame of a video file is numbered 1. If startingTime
is 1 or timeOffset is 0, this is also the first output frame.
Before / before Choice Hold
What to do before the first frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

Last Frame / Integer 0 The last frame number to read from this image sequence or video file.
lastFrame This cannot be less than the first frame of the image sequence or video
file, and cannot be greater than the last frame of the image sequence or
video file. The first frame of a video file is numbered 1. If startingTime
is 1 or timeOffset is 0, this is also the last output frame.
After / after Choice Hold
What to do after the last frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

On Missing Frame / Choice Error


onMissingFrame What to do when a frame is missing from the sequence/stream.
Hold previous (previous): Try to load the previous frame in the
sequence/stream, if any.
Load next (next): Try to load the next frame in the sequence/stream, if
any.
Load nearest (nearest): Try to load the nearest frame in the
sequence/stream, if any.
Error (error): Report an error
Black (black): Render a black image

Continued on next page

2.2. Image nodes 73


Natron Documentation, Release 3.0.0

Table 5 – continued from previous page


Parameter / script Type Default Function
name
Frame Mode / Choice Starting
frameMode Time
Starting Time (startingTime): Set at what output frame the first
sequence frame is output. The sequence frame designated by the
firstFrame parameter is output at frame timeOffset.
Time Offset (timeOffset): Set an offset to be applied as a number of
frames. The sequence frame designated by the firstFrame parameter is
output at frame firstFrame+timeOffset.

Starting Time / Integer 0 At what time (on the timeline) should this sequence/video start.
startingTime
Time Offset / Integer 0 Offset applied to the sequence in time units (i.e. frames).
timeOffset
Proxy File / proxy N/A Filename of the proxy images. They will be used instead of the images
read from the File parameter when the proxy mode (downscaling of the
images) is activated.
Proxy threshold / Double x: 1 y: The scale of the proxy images. By default it will be automatically com-
proxyThreshold 1 puted out of the images headers when you set the proxy file(s) path.
When the render scale (proxy) is set to a scale lower or equal to this
value then the proxy image files will be used instead of the original im-
ages. You can change this parameter by checking the “Custom scale”
checkbox so that you can change the scale at which the proxy images
should be used instead of the original images.
Custom Proxy Scale / Boolean Off Check to enable the Proxy scale edition.
customProxyScale
Continued on next page

74 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 5 – continued from previous page


Parameter / script Type Default Function
name
File Premult / Choice PreMultiplied
filePremult The image file being read is considered to have this premultiplication
state.
To get UnPremultiplied (or “unassociated alpha”) images, set the
“Output Premult” parameter to Unpremultiplied.
By default the value should be correctly be guessed by the image file,
but this parameter can be edited if the metadatas inside the file are
wrong.
- Opaque means that the alpha channel is considered to be 1 (one), and
it is not taken into account in colorspace conversion.
- Premultiplied, red, green and blue channels are divided by the alpha
channel before applying the colorspace conversion, and re-multiplied
by alpha after colorspace conversion.
- UnPremultiplied, means that red, green and blue channels are not
modified before applying the colorspace conversion, and are multiplied
by alpha after colorspace conversion.
This is set automatically from the image file and the plugin, but can be
adjusted if this information is wrong in the file metadata.
RGB images can only be Opaque, and Alpha images can only be
Premultiplied (the value of this parameter doesn’t matter).
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Output Premult / Choice PreMultiplied


outputPremult The alpha premultiplication in output of this node will have this state.
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Output Components / Choice RGBA


outputComponents What type of components this effect should output when the main
color plane is requested. For the Read node it will map (in number of
components) the Output Layer choice to these.
RGBA

Frame rate / Double 24 By default this value is guessed from the file. You can override it by
frameRate checking the Custom fps parameter. The value of this parameter is what
will be visible by the effects down-stream.
Custom FPS / Boolean Off If checked, you can freely force the value of the frame rate parameter.
customFps The frame-rate is just the meta-data that will be passed downstream to
the graph, no retime will actually take place.
OCIO Config File / N/A OpenColorIO configuration file
ocioConfigFile
Continued on next page

2.2. Image nodes 75


Natron Documentation, Release 3.0.0

Table 5 – continued from previous page


Parameter / script Type Default Function
name
File Colorspace / Choice Input data is taken to be in this colorspace.
ocioInputSpaceIndex
Output Colorspace / Choice Output data is taken to be in this colorspace.
ocioOutputSpaceIndex
key1 / key1 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value1 / value1 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key2 / key2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value2 / value2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key3 / key3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

Continued on next page

76 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 5 – continued from previous page


Parameter / script Type Default Function
name
value3 / value3 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key4 / key4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value4 / value4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

OCIO config help. . . / Button Help about the OpenColorIO configuration.


ocioHelp

2.2.6 Read node

This documentation is for version 1.0 of Read (fr.inria.built-in.Read).

Description

Node used to read images or videos from disk. The image/video is identified by its filename and its extension.
Given the extension, the Reader selected from the Preferences to decode that specific format will be used.

Inputs

Input Description Optional


Sync Yes

Controls

2.2. Image nodes 77


Natron Documentation, Release 3.0.0

Parameter / script Type Default Function


name
File Info. . . / Button Press to display information about the file
fileInfo
Decoder / Choice Default
decodingPluginChoice Select the internal decoder plug-in used for this file format. By default
this uses the plug-in selected for this file extension in the Preferences
of Natron
Default: Use the default plug-in chosen from the Preferences to read
this file format

File / filename N/A The input image sequence/video stream file(s).


First Frame / Integer 0 The first frame number to read from this image sequence or video file.
firstFrame This cannot be less than the first frame of the image sequence or video
file, and cannot be greater than the last frame of the image sequence or
video file. The first frame of a video file is numbered 1. If startingTime
is 1 or timeOffset is 0, this is also the first output frame.
Before / before Choice Hold
What to do before the first frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

Last Frame / Integer 0 The last frame number to read from this image sequence or video file.
lastFrame This cannot be less than the first frame of the image sequence or video
file, and cannot be greater than the last frame of the image sequence or
video file. The first frame of a video file is numbered 1. If startingTime
is 1 or timeOffset is 0, this is also the last output frame.
After / after Choice Hold
What to do after the last frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

On Missing Frame / Choice Error


onMissingFrame What to do when a frame is missing from the sequence/stream.
Hold previous (previous): Try to load the previous frame in the
sequence/stream, if any.
Load next (next): Try to load the next frame in the sequence/stream, if
any.
Load nearest (nearest): Try to load the nearest frame in the
sequence/stream, if any.
Error (error): Report an error
Black (black): Render a black image

Continued on next page

78 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 6 – continued from previous page


Parameter / script Type Default Function
name
Frame Mode / Choice Starting
frameMode Time
Starting Time (startingTime): Set at what output frame the first
sequence frame is output. The sequence frame designated by the
firstFrame parameter is output at frame timeOffset.
Time Offset (timeOffset): Set an offset to be applied as a number of
frames. The sequence frame designated by the firstFrame parameter is
output at frame firstFrame+timeOffset.

Starting Time / Integer 0 At what time (on the timeline) should this sequence/video start.
startingTime
Time Offset / Integer 0 Offset applied to the sequence in time units (i.e. frames).
timeOffset
Proxy File / proxy N/A Filename of the proxy images. They will be used instead of the images
read from the File parameter when the proxy mode (downscaling of the
images) is activated.
Proxy threshold / Double x: 1 y: The scale of the proxy images. By default it will be automatically com-
proxyThreshold 1 puted out of the images headers when you set the proxy file(s) path.
When the render scale (proxy) is set to a scale lower or equal to this
value then the proxy image files will be used instead of the original im-
ages. You can change this parameter by checking the “Custom scale”
checkbox so that you can change the scale at which the proxy images
should be used instead of the original images.
Custom Proxy Scale / Boolean Off Check to enable the Proxy scale edition.
customProxyScale
Continued on next page

2.2. Image nodes 79


Natron Documentation, Release 3.0.0

Table 6 – continued from previous page


Parameter / script Type Default Function
name
File Premult / Choice PreMultiplied
filePremult The image file being read is considered to have this premultiplication
state.
To get UnPremultiplied (or “unassociated alpha”) images, set the
“Output Premult” parameter to Unpremultiplied.
By default the value should be correctly be guessed by the image file,
but this parameter can be edited if the metadatas inside the file are
wrong.
- Opaque means that the alpha channel is considered to be 1 (one), and
it is not taken into account in colorspace conversion.
- Premultiplied, red, green and blue channels are divided by the alpha
channel before applying the colorspace conversion, and re-multiplied
by alpha after colorspace conversion.
- UnPremultiplied, means that red, green and blue channels are not
modified before applying the colorspace conversion, and are multiplied
by alpha after colorspace conversion.
This is set automatically from the image file and the plugin, but can be
adjusted if this information is wrong in the file metadata.
RGB images can only be Opaque, and Alpha images can only be
Premultiplied (the value of this parameter doesn’t matter).
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Output Premult / Choice PreMultiplied


outputPremult The alpha premultiplication in output of this node will have this state.
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Output Components / Choice RGBA


outputComponents What type of components this effect should output when the main
color plane is requested. For the Read node it will map (in number of
components) the Output Layer choice to these.
RGBA
RGB
RG
Alpha

Frame rate / Double 24 By default this value is guessed from the file. You can override it by
frameRate checking the Custom fps parameter. The value of this parameter is what
will be visible by the effects down-stream.
Continued on next page

80 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 6 – continued from previous page


Parameter / script Type Default Function
name
Custom FPS / Boolean Off If checked, you can freely force the value of the frame rate parameter.
customFps The frame-rate is just the meta-data that will be passed downstream to
the graph, no retime will actually take place.
OCIO Config File / N/A OpenColorIO configuration file
ocioConfigFile
File Colorspace / Choice Input data is taken to be in this colorspace.
ocioInputSpaceIndex
Output Colorspace / Choice Output data is taken to be in this colorspace.
ocioOutputSpaceIndex
OCIO config help. . . / Button Help about the OpenColorIO configuration.
ocioHelp

2.2.7 ReadCDR node

This documentation is for version 1.0 of ReadCDR (fr.inria.openfx.ReadCDR).

Description

Read CorelDRAW(R) document format.


This plugin is not manufactured, approved, or supported by Corel Corporation or Corel Corporation Limited.

Inputs

Input Description Optional


Sync Sync Yes

Controls

Parameter / script Type Default Function


name
File / filename N/A The input image sequence/video stream file(s).
First Frame / Integer 0 The first frame number to read from this image sequence or video file.
firstFrame This cannot be less than the first frame of the image sequence or video
file, and cannot be greater than the last frame of the image sequence or
video file. The first frame of a video file is numbered 1. If startingTime
is 1 or timeOffset is 0, this is also the first output frame.
Before / before Choice Hold
What to do before the first frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

Continued on next page

2.2. Image nodes 81


Natron Documentation, Release 3.0.0

Table 7 – continued from previous page


Parameter / script Type Default Function
name
Last Frame / Integer 0 The last frame number to read from this image sequence or video file.
lastFrame This cannot be less than the first frame of the image sequence or video
file, and cannot be greater than the last frame of the image sequence or
video file. The first frame of a video file is numbered 1. If startingTime
is 1 or timeOffset is 0, this is also the last output frame.
After / after Choice Hold
What to do after the last frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

On Missing Frame / Choice Error


onMissingFrame What to do when a frame is missing from the sequence/stream.
Hold previous (previous): Try to load the previous frame in the
sequence/stream, if any.
Load next (next): Try to load the next frame in the sequence/stream, if
any.
Load nearest (nearest): Try to load the nearest frame in the
sequence/stream, if any.
Error (error): Report an error
Black (black): Render a black image

Frame Mode / Choice Starting


frameMode Time
Starting Time (startingTime): Set at what output frame the first
sequence frame is output. The sequence frame designated by the
firstFrame parameter is output at frame timeOffset.
Time Offset (timeOffset): Set an offset to be applied as a number of
frames. The sequence frame designated by the firstFrame parameter is
output at frame firstFrame+timeOffset.

Starting Time / Integer 0 At what time (on the timeline) should this sequence/video start.
startingTime
Time Offset / Integer 0 Offset applied to the sequence in time units (i.e. frames).
timeOffset
Proxy File / proxy N/A Filename of the proxy images. They will be used instead of the images
read from the File parameter when the proxy mode (downscaling of the
images) is activated.
Proxy threshold / Double x: 1 y: The scale of the proxy images. By default it will be automatically com-
proxyThreshold 1 puted out of the images headers when you set the proxy file(s) path.
When the render scale (proxy) is set to a scale lower or equal to this
value then the proxy image files will be used instead of the original im-
ages. You can change this parameter by checking the “Custom scale”
checkbox so that you can change the scale at which the proxy images
should be used instead of the original images.
Custom Proxy Scale / Boolean Off Check to enable the Proxy scale edition.
customProxyScale
Continued on next page

82 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 7 – continued from previous page


Parameter / script Type Default Function
name
File Premult / Choice PreMultiplied
filePremult The image file being read is considered to have this premultiplication
state.
To get UnPremultiplied (or “unassociated alpha”) images, set the
“Output Premult” parameter to Unpremultiplied.
By default the value should be correctly be guessed by the image file,
but this parameter can be edited if the metadatas inside the file are
wrong.
- Opaque means that the alpha channel is considered to be 1 (one), and
it is not taken into account in colorspace conversion.
- Premultiplied, red, green and blue channels are divided by the alpha
channel before applying the colorspace conversion, and re-multiplied
by alpha after colorspace conversion.
- UnPremultiplied, means that red, green and blue channels are not
modified before applying the colorspace conversion, and are multiplied
by alpha after colorspace conversion.
This is set automatically from the image file and the plugin, but can be
adjusted if this information is wrong in the file metadata.
RGB images can only be Opaque, and Alpha images can only be
Premultiplied (the value of this parameter doesn’t matter).
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Output Premult / Choice PreMultiplied


outputPremult The alpha premultiplication in output of this node will have this state.
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Output Components / Choice RGBA


outputComponents What type of components this effect should output when the main
color plane is requested. For the Read node it will map (in number of
components) the Output Layer choice to these.
RGBA

Frame rate / Double 24 By default this value is guessed from the file. You can override it by
frameRate checking the Custom fps parameter. The value of this parameter is what
will be visible by the effects down-stream.
Custom FPS / Boolean Off If checked, you can freely force the value of the frame rate parameter.
customFps The frame-rate is just the meta-data that will be passed downstream to
the graph, no retime will actually take place.
DPI / dpi Integer 90 Dots-per-inch (90 is default)
Continued on next page

2.2. Image nodes 83


Natron Documentation, Release 3.0.0

Table 7 – continued from previous page


Parameter / script Type Default Function
name
OCIO Config File / N/A OpenColorIO configuration file
ocioConfigFile
File Colorspace / Choice Input data is taken to be in this colorspace.
ocioInputSpaceIndex
Output Colorspace / Choice Output data is taken to be in this colorspace.
ocioOutputSpaceIndex
key1 / key1 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value1 / value1 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key2 / key2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value2 / value2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key3 / key3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

Continued on next page

84 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 7 – continued from previous page


Parameter / script Type Default Function
name
value3 / value3 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key4 / key4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value4 / value4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

OCIO config help. . . / Button Help about the OpenColorIO configuration.


ocioHelp

2.2.8 ReadFFmpeg node

This documentation is for version 1.0 of ReadFFmpeg (fr.inria.openfx.ReadFFmpeg).

Description

Read video using FFmpeg.


All formats supported by FFmpeg should be supported, but there may be issues with some non-conform files. In
this case, it is recommended to transcode the video to a digital intermediate format, which is more suitable for
grading, compositing and video editing.
This can be done using the ffmpeg command-line tool, by following the instructions at https://trac.ffmpeg.org/
wiki/Encode/VFX

2.2. Image nodes 85


Natron Documentation, Release 3.0.0

Inputs

Input Description Optional


Sync Sync Yes

Controls

Parameter / script Type Default Function


name
File / filename N/A The input image sequence/video stream file(s).
First Frame / Integer 0 The first frame number to read from this image sequence or video file.
firstFrame This cannot be less than the first frame of the image sequence or video
file, and cannot be greater than the last frame of the image sequence or
video file. The first frame of a video file is numbered 1. If startingTime
is 1 or timeOffset is 0, this is also the first output frame.
Before / before Choice Hold
What to do before the first frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

Last Frame / Integer 0 The last frame number to read from this image sequence or video file.
lastFrame This cannot be less than the first frame of the image sequence or video
file, and cannot be greater than the last frame of the image sequence or
video file. The first frame of a video file is numbered 1. If startingTime
is 1 or timeOffset is 0, this is also the last output frame.
After / after Choice Hold
What to do after the last frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

On Missing Frame / Choice Error


onMissingFrame What to do when a frame is missing from the sequence/stream.
Hold previous (previous): Try to load the previous frame in the
sequence/stream, if any.
Load next (next): Try to load the next frame in the sequence/stream, if
any.
Load nearest (nearest): Try to load the nearest frame in the
sequence/stream, if any.
Error (error): Report an error
Black (black): Render a black image

Continued on next page

86 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 8 – continued from previous page


Parameter / script Type Default Function
name
Frame Mode / Choice Starting
frameMode Time
Starting Time (startingTime): Set at what output frame the first
sequence frame is output. The sequence frame designated by the
firstFrame parameter is output at frame timeOffset.
Time Offset (timeOffset): Set an offset to be applied as a number of
frames. The sequence frame designated by the firstFrame parameter is
output at frame firstFrame+timeOffset.

Starting Time / Integer 0 At what time (on the timeline) should this sequence/video start.
startingTime
Time Offset / Integer 0 Offset applied to the sequence in time units (i.e. frames).
timeOffset
Proxy File / proxy N/A Filename of the proxy images. They will be used instead of the images
read from the File parameter when the proxy mode (downscaling of the
images) is activated.
Proxy threshold / Double x: 1 y: The scale of the proxy images. By default it will be automatically com-
proxyThreshold 1 puted out of the images headers when you set the proxy file(s) path.
When the render scale (proxy) is set to a scale lower or equal to this
value then the proxy image files will be used instead of the original im-
ages. You can change this parameter by checking the “Custom scale”
checkbox so that you can change the scale at which the proxy images
should be used instead of the original images.
Custom Proxy Scale / Boolean Off Check to enable the Proxy scale edition.
customProxyScale
Continued on next page

2.2. Image nodes 87


Natron Documentation, Release 3.0.0

Table 8 – continued from previous page


Parameter / script Type Default Function
name
File Premult / Choice PreMultiplied
filePremult The image file being read is considered to have this premultiplication
state.
To get UnPremultiplied (or “unassociated alpha”) images, set the
“Output Premult” parameter to Unpremultiplied.
By default the value should be correctly be guessed by the image file,
but this parameter can be edited if the metadatas inside the file are
wrong.
- Opaque means that the alpha channel is considered to be 1 (one), and
it is not taken into account in colorspace conversion.
- Premultiplied, red, green and blue channels are divided by the alpha
channel before applying the colorspace conversion, and re-multiplied
by alpha after colorspace conversion.
- UnPremultiplied, means that red, green and blue channels are not
modified before applying the colorspace conversion, and are multiplied
by alpha after colorspace conversion.
This is set automatically from the image file and the plugin, but can be
adjusted if this information is wrong in the file metadata.
RGB images can only be Opaque, and Alpha images can only be
Premultiplied (the value of this parameter doesn’t matter).
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Output Premult / Choice PreMultiplied


outputPremult The alpha premultiplication in output of this node will have this state.
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Output Components / Choice RGBA


outputComponents What type of components this effect should output when the main
color plane is requested. For the Read node it will map (in number of
components) the Output Layer choice to these.
RGBA
RGB

Frame rate / Double 24 By default this value is guessed from the file. You can override it by
frameRate checking the Custom fps parameter. The value of this parameter is what
will be visible by the effects down-stream.
Custom FPS / Boolean Off If checked, you can freely force the value of the frame rate parameter.
customFps The frame-rate is just the meta-data that will be passed downstream to
the graph, no retime will actually take place.
Continued on next page

88 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 8 – continued from previous page


Parameter / script Type Default Function
name
Max retries per frame Integer 10 Some video files are sometimes tricky to read and needs several re-
/ maxRetries tries before successfully decoding a frame. This parameter controls how
many times we should attempt to decode the same frame before failing.
First Track Only / Boolean Off Causes the reader to ignore all but the first video track it finds in the
firstTrackOnly file. This should be selected in a multiview project if the file happens to
contain multiple video tracks that don’t correspond to different views.
FFmpeg Info. . . / Button Display information about the underlying library.
libraryInfo
OCIO Config File / N/A OpenColorIO configuration file
ocioConfigFile
File Colorspace / Choice Input data is taken to be in this colorspace.
ocioInputSpaceIndex
Output Colorspace / Choice Output data is taken to be in this colorspace.
ocioOutputSpaceIndex
key1 / key1 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value1 / value1 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key2 / key2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value2 / value2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

Continued on next page

2.2. Image nodes 89


Natron Documentation, Release 3.0.0

Table 8 – continued from previous page


Parameter / script Type Default Function
name
key3 / key3 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value3 / value3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key4 / key4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value4 / value4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

OCIO config help. . . / Button Help about the OpenColorIO configuration.


ocioHelp

2.2.9 ReadKrita node

This documentation is for version 2.0 of ReadKrita (fr.inria.openfx.ReadKrita).

Description

Read Krita image format.

90 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Inputs

Input Description Optional


Sync Sync Yes

Controls

Parameter / script Type Default Function


name
File / filename N/A The input image sequence/video stream file(s).
First Frame / Integer 0 The first frame number to read from this image sequence or video file.
firstFrame This cannot be less than the first frame of the image sequence or video
file, and cannot be greater than the last frame of the image sequence or
video file. The first frame of a video file is numbered 1. If startingTime
is 1 or timeOffset is 0, this is also the first output frame.
Before / before Choice Hold
What to do before the first frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

Last Frame / Integer 0 The last frame number to read from this image sequence or video file.
lastFrame This cannot be less than the first frame of the image sequence or video
file, and cannot be greater than the last frame of the image sequence or
video file. The first frame of a video file is numbered 1. If startingTime
is 1 or timeOffset is 0, this is also the last output frame.
After / after Choice Hold
What to do after the last frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

On Missing Frame / Choice Error


onMissingFrame What to do when a frame is missing from the sequence/stream.
Hold previous (previous): Try to load the previous frame in the
sequence/stream, if any.
Load next (next): Try to load the next frame in the sequence/stream, if
any.
Load nearest (nearest): Try to load the nearest frame in the
sequence/stream, if any.
Error (error): Report an error
Black (black): Render a black image

Continued on next page

2.2. Image nodes 91


Natron Documentation, Release 3.0.0

Table 9 – continued from previous page


Parameter / script Type Default Function
name
Frame Mode / Choice Starting
frameMode Time
Starting Time (startingTime): Set at what output frame the first
sequence frame is output. The sequence frame designated by the
firstFrame parameter is output at frame timeOffset.
Time Offset (timeOffset): Set an offset to be applied as a number of
frames. The sequence frame designated by the firstFrame parameter is
output at frame firstFrame+timeOffset.

Starting Time / Integer 0 At what time (on the timeline) should this sequence/video start.
startingTime
Time Offset / Integer 0 Offset applied to the sequence in time units (i.e. frames).
timeOffset
Proxy File / proxy N/A Filename of the proxy images. They will be used instead of the images
read from the File parameter when the proxy mode (downscaling of the
images) is activated.
Proxy threshold / Double x: 1 y: The scale of the proxy images. By default it will be automatically com-
proxyThreshold 1 puted out of the images headers when you set the proxy file(s) path.
When the render scale (proxy) is set to a scale lower or equal to this
value then the proxy image files will be used instead of the original im-
ages. You can change this parameter by checking the “Custom scale”
checkbox so that you can change the scale at which the proxy images
should be used instead of the original images.
Custom Proxy Scale / Boolean Off Check to enable the Proxy scale edition.
customProxyScale
Continued on next page

92 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 9 – continued from previous page


Parameter / script Type Default Function
name
File Premult / Choice PreMultiplied
filePremult The image file being read is considered to have this premultiplication
state.
To get UnPremultiplied (or “unassociated alpha”) images, set the
“Output Premult” parameter to Unpremultiplied.
By default the value should be correctly be guessed by the image file,
but this parameter can be edited if the metadatas inside the file are
wrong.
- Opaque means that the alpha channel is considered to be 1 (one), and
it is not taken into account in colorspace conversion.
- Premultiplied, red, green and blue channels are divided by the alpha
channel before applying the colorspace conversion, and re-multiplied
by alpha after colorspace conversion.
- UnPremultiplied, means that red, green and blue channels are not
modified before applying the colorspace conversion, and are multiplied
by alpha after colorspace conversion.
This is set automatically from the image file and the plugin, but can be
adjusted if this information is wrong in the file metadata.
RGB images can only be Opaque, and Alpha images can only be
Premultiplied (the value of this parameter doesn’t matter).
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Output Premult / Choice PreMultiplied


outputPremult The alpha premultiplication in output of this node will have this state.
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Output Components / Choice RGBA


outputComponents What type of components this effect should output when the main
color plane is requested. For the Read node it will map (in number of
components) the Output Layer choice to these.
RGBA

Frame rate / Double 24 By default this value is guessed from the file. You can override it by
frameRate checking the Custom fps parameter. The value of this parameter is what
will be visible by the effects down-stream.
Custom FPS / Boolean Off If checked, you can freely force the value of the frame rate parameter.
customFps The frame-rate is just the meta-data that will be passed downstream to
the graph, no retime will actually take place.
OCIO Config File / N/A OpenColorIO configuration file
ocioConfigFile
Continued on next page

2.2. Image nodes 93


Natron Documentation, Release 3.0.0

Table 9 – continued from previous page


Parameter / script Type Default Function
name
File Colorspace / Choice Input data is taken to be in this colorspace.
ocioInputSpaceIndex
Output Colorspace / Choice Output data is taken to be in this colorspace.
ocioOutputSpaceIndex
key1 / key1 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value1 / value1 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key2 / key2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value2 / value2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key3 / key3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

Continued on next page

94 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 9 – continued from previous page


Parameter / script Type Default Function
name
value3 / value3 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key4 / key4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value4 / value4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

OCIO config help. . . / Button Help about the OpenColorIO configuration.


ocioHelp

2.2.10 ReadMisc node

This documentation is for version 1.1 of ReadMisc (fr.inria.openfx.ReadMisc).

Description

Read Misc image format.

Inputs

Input Description Optional


Sync Sync Yes

Controls

2.2. Image nodes 95


Natron Documentation, Release 3.0.0

Parameter / script Type Default Function


name
File / filename N/A The input image sequence/video stream file(s).
First Frame / Integer 0 The first frame number to read from this image sequence or video file.
firstFrame This cannot be less than the first frame of the image sequence or video
file, and cannot be greater than the last frame of the image sequence or
video file. The first frame of a video file is numbered 1. If startingTime
is 1 or timeOffset is 0, this is also the first output frame.
Before / before Choice Hold
What to do before the first frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

Last Frame / Integer 0 The last frame number to read from this image sequence or video file.
lastFrame This cannot be less than the first frame of the image sequence or video
file, and cannot be greater than the last frame of the image sequence or
video file. The first frame of a video file is numbered 1. If startingTime
is 1 or timeOffset is 0, this is also the last output frame.
After / after Choice Hold
What to do after the last frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

On Missing Frame / Choice Error


onMissingFrame What to do when a frame is missing from the sequence/stream.
Hold previous (previous): Try to load the previous frame in the
sequence/stream, if any.
Load next (next): Try to load the next frame in the sequence/stream, if
any.
Load nearest (nearest): Try to load the nearest frame in the
sequence/stream, if any.
Error (error): Report an error
Black (black): Render a black image

Frame Mode / Choice Starting


frameMode Time
Starting Time (startingTime): Set at what output frame the first
sequence frame is output. The sequence frame designated by the
firstFrame parameter is output at frame timeOffset.
Time Offset (timeOffset): Set an offset to be applied as a number of
frames. The sequence frame designated by the firstFrame parameter is
output at frame firstFrame+timeOffset.

Starting Time / Integer 0 At what time (on the timeline) should this sequence/video start.
startingTime
Time Offset / Integer 0 Offset applied to the sequence in time units (i.e. frames).
timeOffset
Continued on next page

96 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 10 – continued from previous page


Parameter / script Type Default Function
name
Proxy File / proxy N/A Filename of the proxy images. They will be used instead of the images
read from the File parameter when the proxy mode (downscaling of the
images) is activated.
Proxy threshold / Double x: 1 y: The scale of the proxy images. By default it will be automatically com-
proxyThreshold 1 puted out of the images headers when you set the proxy file(s) path.
When the render scale (proxy) is set to a scale lower or equal to this
value then the proxy image files will be used instead of the original im-
ages. You can change this parameter by checking the “Custom scale”
checkbox so that you can change the scale at which the proxy images
should be used instead of the original images.
Custom Proxy Scale / Boolean Off Check to enable the Proxy scale edition.
customProxyScale
File Premult / Choice PreMultiplied
filePremult The image file being read is considered to have this premultiplication
state.
To get UnPremultiplied (or “unassociated alpha”) images, set the
“Output Premult” parameter to Unpremultiplied.
By default the value should be correctly be guessed by the image file,
but this parameter can be edited if the metadatas inside the file are
wrong.
- Opaque means that the alpha channel is considered to be 1 (one), and
it is not taken into account in colorspace conversion.
- Premultiplied, red, green and blue channels are divided by the alpha
channel before applying the colorspace conversion, and re-multiplied
by alpha after colorspace conversion.
- UnPremultiplied, means that red, green and blue channels are not
modified before applying the colorspace conversion, and are multiplied
by alpha after colorspace conversion.
This is set automatically from the image file and the plugin, but can be
adjusted if this information is wrong in the file metadata.
RGB images can only be Opaque, and Alpha images can only be
Premultiplied (the value of this parameter doesn’t matter).
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Output Premult / Choice PreMultiplied


outputPremult The alpha premultiplication in output of this node will have this state.
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Continued on next page

2.2. Image nodes 97


Natron Documentation, Release 3.0.0

Table 10 – continued from previous page


Parameter / script Type Default Function
name
Output Components / Choice RGBA
outputComponents What type of components this effect should output when the main
color plane is requested. For the Read node it will map (in number of
components) the Output Layer choice to these.
RGBA

Frame rate / Double 24 By default this value is guessed from the file. You can override it by
frameRate checking the Custom fps parameter. The value of this parameter is what
will be visible by the effects down-stream.
Custom FPS / Boolean Off If checked, you can freely force the value of the frame rate parameter.
customFps The frame-rate is just the meta-data that will be passed downstream to
the graph, no retime will actually take place.
OCIO Config File / N/A OpenColorIO configuration file
ocioConfigFile
File Colorspace / Choice Input data is taken to be in this colorspace.
ocioInputSpaceIndex
Output Colorspace / Choice Output data is taken to be in this colorspace.
ocioOutputSpaceIndex
key1 / key1 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value1 / value1 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key2 / key2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

Continued on next page

98 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 10 – continued from previous page


Parameter / script Type Default Function
name
value2 / value2 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key3 / key3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value3 / value3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key4 / key4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value4 / value4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

OCIO config help. . . / Button Help about the OpenColorIO configuration.


ocioHelp

2.2. Image nodes 99


Natron Documentation, Release 3.0.0

2.2.11 ReadOIIO node

This documentation is for version 2.0 of ReadOIIO (fr.inria.openfx.ReadOIIO).

Description

Read images using OpenImageIO.


Output is always Premultiplied (alpha is associated).
The “Image Premult” parameter controls the file premultiplication state, and can be used to fix wrong file metadata
(see the help for that parameter).
OpenImageIO supports reading/writing the following file formats:
BMP (*.bmp)
Cineon (*.cin)
Direct Draw Surface (*.dds)
DPX (*.dpx)
Field3D (*.f3d)
FITS (*.fits)
GIF (*.gif)
HDR/RGBE (*.hdr)
ICO (*.ico)
IFF (*.iff)
JPEG (*.jpg *.jpe *.jpeg *.jif *.jfif *.jfi)
JPEG-2000 (*.jp2 *.j2k)
OpenEXR (*.exr)
PNG / Portable Network Graphics (*.png)
PNM / Netpbm (*.pbm *.pgm *.ppm *.pfm)
PSD (*.psd *.pdd *.psb)
Ptex (*.ptex)
RAW digital camera files (*.crw *.cr2 *.nef *.raf *.dng and others)
RLA (*.rla)
SGI (*.sgi *.rgb *.rgba *.bw *.int *.inta)
Softimage PIC (*.pic)
Targa (*.tga *.tpic)
TIFF (*.tif *.tiff *.tx *.env *.sm *.vsm)
Webp (*.webp)
Zfile (*.zfile)

100 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Inputs

Input Description Optional


Sync Sync Yes

Controls

Parameter / script Type Default Function


name
File / filename N/A The input image sequence/video stream file(s).
First Frame / Integer 0 The first frame number to read from this image sequence or video file.
firstFrame This cannot be less than the first frame of the image sequence or video
file, and cannot be greater than the last frame of the image sequence or
video file. The first frame of a video file is numbered 1. If startingTime
is 1 or timeOffset is 0, this is also the first output frame.
Before / before Choice Hold
What to do before the first frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

Last Frame / Integer 0 The last frame number to read from this image sequence or video file.
lastFrame This cannot be less than the first frame of the image sequence or video
file, and cannot be greater than the last frame of the image sequence or
video file. The first frame of a video file is numbered 1. If startingTime
is 1 or timeOffset is 0, this is also the last output frame.
After / after Choice Hold
What to do after the last frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

On Missing Frame / Choice Error


onMissingFrame What to do when a frame is missing from the sequence/stream.
Hold previous (previous): Try to load the previous frame in the
sequence/stream, if any.
Load next (next): Try to load the next frame in the sequence/stream, if
any.
Load nearest (nearest): Try to load the nearest frame in the
sequence/stream, if any.
Error (error): Report an error
Black (black): Render a black image

Continued on next page

2.2. Image nodes 101


Natron Documentation, Release 3.0.0

Table 11 – continued from previous page


Parameter / script Type Default Function
name
Frame Mode / Choice Starting
frameMode Time
Starting Time (startingTime): Set at what output frame the first
sequence frame is output. The sequence frame designated by the
firstFrame parameter is output at frame timeOffset.
Time Offset (timeOffset): Set an offset to be applied as a number of
frames. The sequence frame designated by the firstFrame parameter is
output at frame firstFrame+timeOffset.

Starting Time / Integer 0 At what time (on the timeline) should this sequence/video start.
startingTime
Time Offset / Integer 0 Offset applied to the sequence in time units (i.e. frames).
timeOffset
Proxy File / proxy N/A Filename of the proxy images. They will be used instead of the images
read from the File parameter when the proxy mode (downscaling of the
images) is activated.
Proxy threshold / Double x: 1 y: The scale of the proxy images. By default it will be automatically com-
proxyThreshold 1 puted out of the images headers when you set the proxy file(s) path.
When the render scale (proxy) is set to a scale lower or equal to this
value then the proxy image files will be used instead of the original im-
ages. You can change this parameter by checking the “Custom scale”
checkbox so that you can change the scale at which the proxy images
should be used instead of the original images.
Custom Proxy Scale / Boolean Off Check to enable the Proxy scale edition.
customProxyScale
Continued on next page

102 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 11 – continued from previous page


Parameter / script Type Default Function
name
File Premult / Choice PreMultiplied
filePremult The image file being read is considered to have this premultiplication
state.
To get UnPremultiplied (or “unassociated alpha”) images, set the
“Output Premult” parameter to Unpremultiplied.
By default the value should be correctly be guessed by the image file,
but this parameter can be edited if the metadatas inside the file are
wrong.
- Opaque means that the alpha channel is considered to be 1 (one), and
it is not taken into account in colorspace conversion.
- Premultiplied, red, green and blue channels are divided by the alpha
channel before applying the colorspace conversion, and re-multiplied
by alpha after colorspace conversion.
- UnPremultiplied, means that red, green and blue channels are not
modified before applying the colorspace conversion, and are multiplied
by alpha after colorspace conversion.
This is set automatically from the image file and the plugin, but can be
adjusted if this information is wrong in the file metadata.
RGB images can only be Opaque, and Alpha images can only be
Premultiplied (the value of this parameter doesn’t matter).
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Output Premult / Choice PreMultiplied


outputPremult The alpha premultiplication in output of this node will have this state.
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Output Components / Choice RGBA


outputComponents What type of components this effect should output when the main
color plane is requested. For the Read node it will map (in number of
components) the Output Layer choice to these.
RGBA
RGB
RG
Alpha

Frame rate / Double 24 By default this value is guessed from the file. You can override it by
frameRate checking the Custom fps parameter. The value of this parameter is what
will be visible by the effects down-stream.
Continued on next page

2.2. Image nodes 103


Natron Documentation, Release 3.0.0

Table 11 – continued from previous page


Parameter / script Type Default Function
name
Custom FPS / Boolean Off If checked, you can freely force the value of the frame rate parameter.
customFps The frame-rate is just the meta-data that will be passed downstream to
the graph, no retime will actually take place.
Image Info. . . / Button Shows information and metadata from the image at current time.
showMetadata
Auto Bright / Boolean Off If checked, use libraw’s automatic increase of brightness by histogram
rawAutoBright (exposure correction).
Use Camera WB / Boolean On If checked, and if possible, use the white balance from the camera.
rawUseCameraWB
Adjust Maximum Thr. Double 0
/ This parameters controls auto-adjusting of maximum value based on
rawAdjustMaximumThr channel_maximum[] data, calculated from real frame data. If
calculated maximum is greater than adjust_maximum_thr*maximum,
than maximum is set to calculated_maximum.
Default: 0. If you set this value above 0.99999, then default value will
be used. If you set this value below 0.00001, then no maximum
adjustment will be performed. A value of 0.75 is reasonable for still
shots, but sequences should always use 0.
Adjusting maximum should not damage any picture (esp. if you use
default value) and is very useful for correcting channel overflow
problems (magenta clouds on landscape shots, green-blue highlights
for indoor shots).

Max. value / Integer 0 The camera sensor saturation (maximum) value. Raw values greater
rawUserSat or equal to this are considered saturated and are processed using the
algorithm specified by the rawHighlightMode parameter. 0 means to
use the default value.
Output Colorspace / Choice sRGB
rawOutputColor Output colorspace.
Raw (raw): Raw data
sRGB (srgb): sRGB
Adobe (adobergb): Adobe RGB (1998)
Wide (wide): Wide-gamut RGB color space (or Adobe Wide Gamut
RGB)
ProPhoto (prophoto): Kodak ProPhoto RGB (or ROMM RGB)
XYZ (xyz): CIE XYZ
ACES (aces): AMPAS ACES

Camera Matrix / Choice Default


rawUseCameraMatrix Use/don’t use an embedded color matrix.
None (none): Do not use the embedded color matrix.
Default (default): Use embedded color profile (if present) for DNG
files (always); for other files only if rawUseCameraWb is set.
Force (force): Use embedded color data (if present) regardless of
white balance setting.

Continued on next page

104 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 11 – continued from previous page


Parameter / script Type Default Function
name
Highlight Mode / Choice Clip
rawHighlightMode Algorithm for restoring highlight clippings. Highlights are part of your
images that are burned due to the inability of your camera to capture
the highlights. Highlight recovery is applied after white balance and
demosaic.
Clip (clip): Clip all highlights to white.
Unclip (unclip): Leave highlights unclipped in various shades of pink.
Blend (blend): Blend clipped and unclipped values for a gradual fade
to white.
Rebuild (rebuild): Reconstruct highlights with various levels of
aggressiveness.

Rebuild Level / Integer 2 Level of aggressiveness used to rebuild highlights. rawHighlightRe-


rawHighlightRebuildLevel buildLevel=2 (which corresponds to -H 5 in LibRaw/dcraw) is a
good compromise. If that’s not good enough, use rawHighlightRe-
buildLevel=6, cut out the non-white highlights, and paste them into an
image generated with rawHighlightRebuildLevel=0.
Exposure / Double 1 Amount of exposure correction before de-mosaicing, from 0.25 (2-stop
rawExposure darken) to 8 (3-stop brighten). (Default: 1., meaning no correction.)
Demosaic / Choice AHD
rawDemosaic Force a demosaicing algorithm. Will fall back on AHD if the
demosaicing algorithm is not available due to licence restrictions
(AHD-Mod, AFD, VCD, Mixed, LMMSE are GPL2, AMaZE is
GPL3).
None (none): No demosaicing.
Linear (linear): Linear interpolation.
VNG (vng): VNG interpolation.
PPG (ppg): PPG interpolation.
AHD (ahd): AHD interpolation.
DCB (dcb): DCB interpolation.
DHT (dht): DHT interpolation.
AAHD (aahd): Modified AHD interpolation by Anton Petrusevich.

Aber. / rawAber Double x: 1 y: Correction of chromatic aberrations, given as a red multiplier and a blue
1 multiplier. The default values of (1.,1.) correspond to no correction.
Output Layer / Choice This is the layer that will be set to the the color plane. This is relevant
outputLayer only for image formats that can have multiple layers: exr, tiff, psd, etc. . .
Note that in Natron you can access other layers with a Shuffle node
downstream of this node.
Edge Pixels / Choice Auto
edgePixels Specifies how pixels in the border of the region of definition are
handled
Auto (auto): If the region of definition and format match exactly then
repeat the border pixel otherwise use black
Edge Detect (edge): For each edge, if the region of definition and
format match exactly then repeat border pixel, otherwise use black
Repeat (repeat): Repeat pixels outside the region of definition
Black (black): Add black pixels outside the region of definition

Continued on next page

2.2. Image nodes 105


Natron Documentation, Release 3.0.0

Table 11 – continued from previous page


Parameter / script Type Default Function
name
Offset Negative Boolean On The EXR file format can have its “display window” origin at another
Display Window / location than (0,0). However in OpenFX, formats should have their
offsetNegativeDispWindow origin at (0,0). If the left edge of the display window is not 0, either
you can offset the display window so it goes to 0, or you can treat the
negative portion as overscan and resize the format.
OpenImageIO Info. . . Button Display information about the underlying library.
/ libraryInfo
OCIO Config File / N/A OpenColorIO configuration file
ocioConfigFile
File Colorspace / Choice Input data is taken to be in this colorspace.
ocioInputSpaceIndex
Output Colorspace / Choice Output data is taken to be in this colorspace.
ocioOutputSpaceIndex
key1 / key1 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value1 / value1 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key2 / key2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value2 / value2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

Continued on next page

106 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 11 – continued from previous page


Parameter / script Type Default Function
name
key3 / key3 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value3 / value3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key4 / key4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value4 / value4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

OCIO config help. . . / Button Help about the OpenColorIO configuration.


ocioHelp

2.2.12 ReadPDF node

This documentation is for version 1.4 of ReadPDF (fr.inria.openfx.ReadPDF).

Description

Read PDF documents using poppler.

2.2. Image nodes 107


Natron Documentation, Release 3.0.0

Inputs

Input Description Optional


Sync Sync Yes

Controls

Parameter / script Type Default Function


name
File / filename N/A The input image sequence/video stream file(s).
First Frame / Integer 0 The first frame number to read from this image sequence or video file.
firstFrame This cannot be less than the first frame of the image sequence or video
file, and cannot be greater than the last frame of the image sequence or
video file. The first frame of a video file is numbered 1. If startingTime
is 1 or timeOffset is 0, this is also the first output frame.
Before / before Choice Hold
What to do before the first frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

Last Frame / Integer 0 The last frame number to read from this image sequence or video file.
lastFrame This cannot be less than the first frame of the image sequence or video
file, and cannot be greater than the last frame of the image sequence or
video file. The first frame of a video file is numbered 1. If startingTime
is 1 or timeOffset is 0, this is also the last output frame.
After / after Choice Hold
What to do after the last frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

On Missing Frame / Choice Error


onMissingFrame What to do when a frame is missing from the sequence/stream.
Hold previous (previous): Try to load the previous frame in the
sequence/stream, if any.
Load next (next): Try to load the next frame in the sequence/stream, if
any.
Load nearest (nearest): Try to load the nearest frame in the
sequence/stream, if any.
Error (error): Report an error
Black (black): Render a black image

Continued on next page

108 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 12 – continued from previous page


Parameter / script Type Default Function
name
Frame Mode / Choice Starting
frameMode Time
Starting Time (startingTime): Set at what output frame the first
sequence frame is output. The sequence frame designated by the
firstFrame parameter is output at frame timeOffset.
Time Offset (timeOffset): Set an offset to be applied as a number of
frames. The sequence frame designated by the firstFrame parameter is
output at frame firstFrame+timeOffset.

Starting Time / Integer 0 At what time (on the timeline) should this sequence/video start.
startingTime
Time Offset / Integer 0 Offset applied to the sequence in time units (i.e. frames).
timeOffset
Proxy File / proxy N/A Filename of the proxy images. They will be used instead of the images
read from the File parameter when the proxy mode (downscaling of the
images) is activated.
Proxy threshold / Double x: 1 y: The scale of the proxy images. By default it will be automatically com-
proxyThreshold 1 puted out of the images headers when you set the proxy file(s) path.
When the render scale (proxy) is set to a scale lower or equal to this
value then the proxy image files will be used instead of the original im-
ages. You can change this parameter by checking the “Custom scale”
checkbox so that you can change the scale at which the proxy images
should be used instead of the original images.
Custom Proxy Scale / Boolean Off Check to enable the Proxy scale edition.
customProxyScale
Continued on next page

2.2. Image nodes 109


Natron Documentation, Release 3.0.0

Table 12 – continued from previous page


Parameter / script Type Default Function
name
File Premult / Choice PreMultiplied
filePremult The image file being read is considered to have this premultiplication
state.
To get UnPremultiplied (or “unassociated alpha”) images, set the
“Output Premult” parameter to Unpremultiplied.
By default the value should be correctly be guessed by the image file,
but this parameter can be edited if the metadatas inside the file are
wrong.
- Opaque means that the alpha channel is considered to be 1 (one), and
it is not taken into account in colorspace conversion.
- Premultiplied, red, green and blue channels are divided by the alpha
channel before applying the colorspace conversion, and re-multiplied
by alpha after colorspace conversion.
- UnPremultiplied, means that red, green and blue channels are not
modified before applying the colorspace conversion, and are multiplied
by alpha after colorspace conversion.
This is set automatically from the image file and the plugin, but can be
adjusted if this information is wrong in the file metadata.
RGB images can only be Opaque, and Alpha images can only be
Premultiplied (the value of this parameter doesn’t matter).
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Output Premult / Choice PreMultiplied


outputPremult The alpha premultiplication in output of this node will have this state.
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Output Components / Choice RGBA


outputComponents What type of components this effect should output when the main
color plane is requested. For the Read node it will map (in number of
components) the Output Layer choice to these.
RGBA

Frame rate / Double 24 By default this value is guessed from the file. You can override it by
frameRate checking the Custom fps parameter. The value of this parameter is what
will be visible by the effects down-stream.
Custom FPS / Boolean Off If checked, you can freely force the value of the frame rate parameter.
customFps The frame-rate is just the meta-data that will be passed downstream to
the graph, no retime will actually take place.
DPI / dpi Double 150 Dots-per-inch (150 is default)
Continued on next page

110 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 12 – continued from previous page


Parameter / script Type Default Function
name
OCIO Config File / N/A OpenColorIO configuration file
ocioConfigFile
File Colorspace / Choice Input data is taken to be in this colorspace.
ocioInputSpaceIndex
Output Colorspace / Choice Output data is taken to be in this colorspace.
ocioOutputSpaceIndex
key1 / key1 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value1 / value1 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key2 / key2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value2 / value2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key3 / key3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

Continued on next page

2.2. Image nodes 111


Natron Documentation, Release 3.0.0

Table 12 – continued from previous page


Parameter / script Type Default Function
name
value3 / value3 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key4 / key4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value4 / value4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

OCIO config help. . . / Button Help about the OpenColorIO configuration.


ocioHelp

2.2.13 ReadPFM node

This documentation is for version 1.0 of ReadPFM (fr.inria.openfx.ReadPFM).

Description

Read PFM (Portable Float Map) files.

Inputs

Input Description Optional


Sync Sync Yes

Controls

112 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Parameter / script Type Default Function


name
File / filename N/A The input image sequence/video stream file(s).
First Frame / Integer 0 The first frame number to read from this image sequence or video file.
firstFrame This cannot be less than the first frame of the image sequence or video
file, and cannot be greater than the last frame of the image sequence or
video file. The first frame of a video file is numbered 1. If startingTime
is 1 or timeOffset is 0, this is also the first output frame.
Before / before Choice Hold
What to do before the first frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

Last Frame / Integer 0 The last frame number to read from this image sequence or video file.
lastFrame This cannot be less than the first frame of the image sequence or video
file, and cannot be greater than the last frame of the image sequence or
video file. The first frame of a video file is numbered 1. If startingTime
is 1 or timeOffset is 0, this is also the last output frame.
After / after Choice Hold
What to do after the last frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

On Missing Frame / Choice Error


onMissingFrame What to do when a frame is missing from the sequence/stream.
Hold previous (previous): Try to load the previous frame in the
sequence/stream, if any.
Load next (next): Try to load the next frame in the sequence/stream, if
any.
Load nearest (nearest): Try to load the nearest frame in the
sequence/stream, if any.
Error (error): Report an error
Black (black): Render a black image

Frame Mode / Choice Starting


frameMode Time
Starting Time (startingTime): Set at what output frame the first
sequence frame is output. The sequence frame designated by the
firstFrame parameter is output at frame timeOffset.
Time Offset (timeOffset): Set an offset to be applied as a number of
frames. The sequence frame designated by the firstFrame parameter is
output at frame firstFrame+timeOffset.

Starting Time / Integer 0 At what time (on the timeline) should this sequence/video start.
startingTime
Time Offset / Integer 0 Offset applied to the sequence in time units (i.e. frames).
timeOffset
Continued on next page

2.2. Image nodes 113


Natron Documentation, Release 3.0.0

Table 13 – continued from previous page


Parameter / script Type Default Function
name
Proxy File / proxy N/A Filename of the proxy images. They will be used instead of the images
read from the File parameter when the proxy mode (downscaling of the
images) is activated.
Proxy threshold / Double x: 1 y: The scale of the proxy images. By default it will be automatically com-
proxyThreshold 1 puted out of the images headers when you set the proxy file(s) path.
When the render scale (proxy) is set to a scale lower or equal to this
value then the proxy image files will be used instead of the original im-
ages. You can change this parameter by checking the “Custom scale”
checkbox so that you can change the scale at which the proxy images
should be used instead of the original images.
Custom Proxy Scale / Boolean Off Check to enable the Proxy scale edition.
customProxyScale
File Premult / Choice PreMultiplied
filePremult The image file being read is considered to have this premultiplication
state.
To get UnPremultiplied (or “unassociated alpha”) images, set the
“Output Premult” parameter to Unpremultiplied.
By default the value should be correctly be guessed by the image file,
but this parameter can be edited if the metadatas inside the file are
wrong.
- Opaque means that the alpha channel is considered to be 1 (one), and
it is not taken into account in colorspace conversion.
- Premultiplied, red, green and blue channels are divided by the alpha
channel before applying the colorspace conversion, and re-multiplied
by alpha after colorspace conversion.
- UnPremultiplied, means that red, green and blue channels are not
modified before applying the colorspace conversion, and are multiplied
by alpha after colorspace conversion.
This is set automatically from the image file and the plugin, but can be
adjusted if this information is wrong in the file metadata.
RGB images can only be Opaque, and Alpha images can only be
Premultiplied (the value of this parameter doesn’t matter).
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Output Premult / Choice PreMultiplied


outputPremult The alpha premultiplication in output of this node will have this state.
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Continued on next page

114 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 13 – continued from previous page


Parameter / script Type Default Function
name
Output Components / Choice RGBA
outputComponents What type of components this effect should output when the main
color plane is requested. For the Read node it will map (in number of
components) the Output Layer choice to these.
RGBA
RGB
Alpha

Frame rate / Double 24 By default this value is guessed from the file. You can override it by
frameRate checking the Custom fps parameter. The value of this parameter is what
will be visible by the effects down-stream.
Custom FPS / Boolean Off If checked, you can freely force the value of the frame rate parameter.
customFps The frame-rate is just the meta-data that will be passed downstream to
the graph, no retime will actually take place.
OCIO Config File / N/A OpenColorIO configuration file
ocioConfigFile
File Colorspace / Choice Input data is taken to be in this colorspace.
ocioInputSpaceIndex
Output Colorspace / Choice Output data is taken to be in this colorspace.
ocioOutputSpaceIndex
key1 / key1 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value1 / value1 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key2 / key2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

Continued on next page

2.2. Image nodes 115


Natron Documentation, Release 3.0.0

Table 13 – continued from previous page


Parameter / script Type Default Function
name
value2 / value2 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key3 / key3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value3 / value3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key4 / key4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value4 / value4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

OCIO config help. . . / Button Help about the OpenColorIO configuration.


ocioHelp

116 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

2.2.14 ReadPNG node

This documentation is for version 1.0 of ReadPNG (fr.inria.openfx.ReadPNG).

Description

Read PNG files.

Inputs

Input Description Optional


Sync Sync Yes

Controls

Parameter / script Type Default Function


name
File / filename N/A The input image sequence/video stream file(s).
First Frame / Integer 0 The first frame number to read from this image sequence or video file.
firstFrame This cannot be less than the first frame of the image sequence or video
file, and cannot be greater than the last frame of the image sequence or
video file. The first frame of a video file is numbered 1. If startingTime
is 1 or timeOffset is 0, this is also the first output frame.
Before / before Choice Hold
What to do before the first frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

Last Frame / Integer 0 The last frame number to read from this image sequence or video file.
lastFrame This cannot be less than the first frame of the image sequence or video
file, and cannot be greater than the last frame of the image sequence or
video file. The first frame of a video file is numbered 1. If startingTime
is 1 or timeOffset is 0, this is also the last output frame.
After / after Choice Hold
What to do after the last frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

Continued on next page

2.2. Image nodes 117


Natron Documentation, Release 3.0.0

Table 14 – continued from previous page


Parameter / script Type Default Function
name
On Missing Frame / Choice Error
onMissingFrame What to do when a frame is missing from the sequence/stream.
Hold previous (previous): Try to load the previous frame in the
sequence/stream, if any.
Load next (next): Try to load the next frame in the sequence/stream, if
any.
Load nearest (nearest): Try to load the nearest frame in the
sequence/stream, if any.
Error (error): Report an error
Black (black): Render a black image

Frame Mode / Choice Starting


frameMode Time
Starting Time (startingTime): Set at what output frame the first
sequence frame is output. The sequence frame designated by the
firstFrame parameter is output at frame timeOffset.
Time Offset (timeOffset): Set an offset to be applied as a number of
frames. The sequence frame designated by the firstFrame parameter is
output at frame firstFrame+timeOffset.

Starting Time / Integer 0 At what time (on the timeline) should this sequence/video start.
startingTime
Time Offset / Integer 0 Offset applied to the sequence in time units (i.e. frames).
timeOffset
Proxy File / proxy N/A Filename of the proxy images. They will be used instead of the images
read from the File parameter when the proxy mode (downscaling of the
images) is activated.
Proxy threshold / Double x: 1 y: The scale of the proxy images. By default it will be automatically com-
proxyThreshold 1 puted out of the images headers when you set the proxy file(s) path.
When the render scale (proxy) is set to a scale lower or equal to this
value then the proxy image files will be used instead of the original im-
ages. You can change this parameter by checking the “Custom scale”
checkbox so that you can change the scale at which the proxy images
should be used instead of the original images.
Custom Proxy Scale / Boolean Off Check to enable the Proxy scale edition.
customProxyScale
Continued on next page

118 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 14 – continued from previous page


Parameter / script Type Default Function
name
File Premult / Choice PreMultiplied
filePremult The image file being read is considered to have this premultiplication
state.
To get UnPremultiplied (or “unassociated alpha”) images, set the
“Output Premult” parameter to Unpremultiplied.
By default the value should be correctly be guessed by the image file,
but this parameter can be edited if the metadatas inside the file are
wrong.
- Opaque means that the alpha channel is considered to be 1 (one), and
it is not taken into account in colorspace conversion.
- Premultiplied, red, green and blue channels are divided by the alpha
channel before applying the colorspace conversion, and re-multiplied
by alpha after colorspace conversion.
- UnPremultiplied, means that red, green and blue channels are not
modified before applying the colorspace conversion, and are multiplied
by alpha after colorspace conversion.
This is set automatically from the image file and the plugin, but can be
adjusted if this information is wrong in the file metadata.
RGB images can only be Opaque, and Alpha images can only be
Premultiplied (the value of this parameter doesn’t matter).
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Output Premult / Choice PreMultiplied


outputPremult The alpha premultiplication in output of this node will have this state.
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Output Components / Choice RGBA


outputComponents What type of components this effect should output when the main
color plane is requested. For the Read node it will map (in number of
components) the Output Layer choice to these.
RGBA
RGB

Frame rate / Double 24 By default this value is guessed from the file. You can override it by
frameRate checking the Custom fps parameter. The value of this parameter is what
will be visible by the effects down-stream.
Custom FPS / Boolean Off If checked, you can freely force the value of the frame rate parameter.
customFps The frame-rate is just the meta-data that will be passed downstream to
the graph, no retime will actually take place.
Continued on next page

2.2. Image nodes 119


Natron Documentation, Release 3.0.0

Table 14 – continued from previous page


Parameter / script Type Default Function
name
Image Info. . . / Button Shows information and metadata from the image at current time.
showMetadata
libpng Info. . . / Button Display information about the underlying library.
libraryInfo
OCIO Config File / N/A OpenColorIO configuration file
ocioConfigFile
File Colorspace / Choice Input data is taken to be in this colorspace.
ocioInputSpaceIndex
Output Colorspace / Choice Output data is taken to be in this colorspace.
ocioOutputSpaceIndex
key1 / key1 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value1 / value1 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key2 / key2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value2 / value2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

Continued on next page

120 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 14 – continued from previous page


Parameter / script Type Default Function
name
key3 / key3 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value3 / value3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key4 / key4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value4 / value4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

OCIO config help. . . / Button Help about the OpenColorIO configuration.


ocioHelp

2.2.15 ReadPSD node

This documentation is for version 2.7 of ReadPSD (net.fxarena.openfx.ReadPSD).

Description

Read Photoshop/GIMP/Cinepaint (RGB/CMYK/GRAY) image formats with ICC color management.

2.2. Image nodes 121


Natron Documentation, Release 3.0.0

Inputs

Input Description Optional


Sync Sync Yes

Controls

Parameter / script Type Default Function


name
File / filename N/A The input image sequence/video stream file(s).
First Frame / Integer 0 The first frame number to read from this image sequence or video file.
firstFrame This cannot be less than the first frame of the image sequence or video
file, and cannot be greater than the last frame of the image sequence or
video file. The first frame of a video file is numbered 1. If startingTime
is 1 or timeOffset is 0, this is also the first output frame.
Before / before Choice Hold
What to do before the first frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

Last Frame / Integer 0 The last frame number to read from this image sequence or video file.
lastFrame This cannot be less than the first frame of the image sequence or video
file, and cannot be greater than the last frame of the image sequence or
video file. The first frame of a video file is numbered 1. If startingTime
is 1 or timeOffset is 0, this is also the last output frame.
After / after Choice Hold
What to do after the last frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

On Missing Frame / Choice Error


onMissingFrame What to do when a frame is missing from the sequence/stream.
Hold previous (previous): Try to load the previous frame in the
sequence/stream, if any.
Load next (next): Try to load the next frame in the sequence/stream, if
any.
Load nearest (nearest): Try to load the nearest frame in the
sequence/stream, if any.
Error (error): Report an error
Black (black): Render a black image

Continued on next page

122 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 15 – continued from previous page


Parameter / script Type Default Function
name
Frame Mode / Choice Starting
frameMode Time
Starting Time (startingTime): Set at what output frame the first
sequence frame is output. The sequence frame designated by the
firstFrame parameter is output at frame timeOffset.
Time Offset (timeOffset): Set an offset to be applied as a number of
frames. The sequence frame designated by the firstFrame parameter is
output at frame firstFrame+timeOffset.

Starting Time / Integer 0 At what time (on the timeline) should this sequence/video start.
startingTime
Time Offset / Integer 0 Offset applied to the sequence in time units (i.e. frames).
timeOffset
Proxy File / proxy N/A Filename of the proxy images. They will be used instead of the images
read from the File parameter when the proxy mode (downscaling of the
images) is activated.
Proxy threshold / Double x: 1 y: The scale of the proxy images. By default it will be automatically com-
proxyThreshold 1 puted out of the images headers when you set the proxy file(s) path.
When the render scale (proxy) is set to a scale lower or equal to this
value then the proxy image files will be used instead of the original im-
ages. You can change this parameter by checking the “Custom scale”
checkbox so that you can change the scale at which the proxy images
should be used instead of the original images.
Custom Proxy Scale / Boolean Off Check to enable the Proxy scale edition.
customProxyScale
Continued on next page

2.2. Image nodes 123


Natron Documentation, Release 3.0.0

Table 15 – continued from previous page


Parameter / script Type Default Function
name
File Premult / Choice PreMultiplied
filePremult The image file being read is considered to have this premultiplication
state.
To get UnPremultiplied (or “unassociated alpha”) images, set the
“Output Premult” parameter to Unpremultiplied.
By default the value should be correctly be guessed by the image file,
but this parameter can be edited if the metadatas inside the file are
wrong.
- Opaque means that the alpha channel is considered to be 1 (one), and
it is not taken into account in colorspace conversion.
- Premultiplied, red, green and blue channels are divided by the alpha
channel before applying the colorspace conversion, and re-multiplied
by alpha after colorspace conversion.
- UnPremultiplied, means that red, green and blue channels are not
modified before applying the colorspace conversion, and are multiplied
by alpha after colorspace conversion.
This is set automatically from the image file and the plugin, but can be
adjusted if this information is wrong in the file metadata.
RGB images can only be Opaque, and Alpha images can only be
Premultiplied (the value of this parameter doesn’t matter).
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Output Premult / Choice PreMultiplied


outputPremult The alpha premultiplication in output of this node will have this state.
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Output Components / Choice RGBA


outputComponents What type of components this effect should output when the main
color plane is requested. For the Read node it will map (in number of
components) the Output Layer choice to these.
RGBA

Frame rate / Double 24 By default this value is guessed from the file. You can override it by
frameRate checking the Custom fps parameter. The value of this parameter is what
will be visible by the effects down-stream.
Custom FPS / Boolean Off If checked, you can freely force the value of the frame rate parameter.
customFps The frame-rate is just the meta-data that will be passed downstream to
the graph, no retime will actually take place.
Continued on next page

124 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 15 – continued from previous page


Parameter / script Type Default Function
name
Image layer / layer Choice Default
Select image layer

The recommended way to access layers is through a merge/shuffle


node (multi-plane).
Default
Layer 1
Layer 2
Layer 3
Layer 4
Layer 5
Layer 6
Layer 7
Layer 8
Layer 9

Offset layers / Boolean On Enable/Disable layer offset


offset
Color management / Boolean Off
icc Enable/Disable ICC color management

Requires installed ICC v2/v4 color profiles.

Continued on next page

2.2. Image nodes 125


Natron Documentation, Release 3.0.0

Table 15 – continued from previous page


Parameter / script Type Default Function
name
Default RGB profile / Choice s/sRGB
iccRGB IEC61966-Default RGB profile
2.1
Used when a RGB image is missing an embedded color profile.
None
W/Web Safe Colors
P/ProPhoto RGB
s/sRGB IEC61966-2.1
C/ColorMatch RGB
A/Apple RGB
A/Adobe RGB (1998)
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
S/Smokey
H/HDTV (Rec. 709)
C/ColorNegative
C/CIE RGB
N/NTSC (1953)
R/RedBlueYellow
S/SMPTE-C
A/AnimePalette
P/PAL/SECAM
126 W/Wide Gamut RGB Chapter 2. Reference Guide
T/TealMagentaGold
S/SDTV PAL
Natron Documentation, Release 3.0.0

Table 15 – continued from previous page


Parameter / script Type Default Function
name
Default CMYK Choice U/U.S.
profile / iccCMYK Web Default CMYK profile
Coated
(SWOP) Used when a CMYK image is missing an embedded color profile.
v2
None
J/Japan Color 2002 Newspaper
C/Coated GRACoL 2006 (ISO 12647-2:2004)
W/Web Coated SWOP 2006 Grade 3 Paper
U/U.S. Sheetfed Uncoated v2
J/Japan Color 2001 Uncoated
W/Web Coated SWOP 2006 Grade 5 Paper
C/Coated FOGRA27 (ISO 12647-2:2004)
U/US Newsprint (SNAP 2007)
U/Uncoated FOGRA29 (ISO 12647-2:2004)
U/U.S. Web Coated (SWOP) v2
J/Japan Color 2001 Coated
J/Japan Web Coated (Ad)
W/Web Coated FOGRA28 (ISO 12647-2:2004)
U/U.S. Web Uncoated v2
C/Coated FOGRA39 (ISO 12647-2:2004)
U/U.S. Sheetfed Coated v2
J/Japan Color 2003 Web Coated
E/Euroscale Coated v2
E/Euroscale Uncoated v2
P/Photoshop 5 Default CMYK
P/Photoshop 4 Default CMYK
T/Total Ink Preview
J/Japan Color 2002 Newspaper
C/Coated GRACoL 2006 (ISO 12647-2:2004)
W/Web Coated SWOP 2006 Grade 3 Paper
U/U.S. Sheetfed Uncoated v2
J/Japan Color 2001 Uncoated
W/Web Coated SWOP 2006 Grade 5 Paper
C/Coated FOGRA27 (ISO 12647-2:2004)
U/US Newsprint (SNAP 2007)
U/Uncoated FOGRA29 (ISO 12647-2:2004)
U/U.S. Web Coated (SWOP) v2
J/Japan Color 2001 Coated
J/Japan Web Coated (Ad)
W/Web Coated FOGRA28 (ISO 12647-2:2004)
U/U.S. Web Uncoated v2
C/Coated FOGRA39 (ISO 12647-2:2004)
U/U.S. Sheetfed Coated v2
J/Japan Color 2003 Web Coated

Continued on next page

2.2. Image nodes 127


Natron Documentation, Release 3.0.0

Table 15 – continued from previous page


Parameter / script Type Default Function
name
Default GRAY profile Choice None
/ iccGRAY Default GRAY profile

Used when a GRAY image is missing an embedded color profile.


None
B/Black & White

Rendering intent / Choice Perceptual


renderingIntent Rendering intent specifies the style of reproduction to be used.
Undefined
Saturation
Perceptual
Absolute
Relative

Black point / Boolean Off Enable/Disable black point compensation


blackPoint
Continued on next page

128 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 15 – continued from previous page


Parameter / script Type Default Function
name
Input color profile / Choice None
iccIn ICC input profile

If profile colorspace differs from image colorspace then a colorspace


convert will happen.
None
L/Lightness Increase
L/Lightness Decrease
S/Sepia
W/Web Safe Colors
B/Black & White
B/Blue Tone
G/Gray Tone
P/ProPhoto RGB
J/Japan Color 2002 Newspaper
C/Coated GRACoL 2006 (ISO 12647-2:2004)
W/Web Coated SWOP 2006 Grade 3 Paper
s/sRGB IEC61966-2.1
U/U.S. Sheetfed Uncoated v2
J/Japan Color 2001 Uncoated
W/Web Coated SWOP 2006 Grade 5 Paper
C/Coated FOGRA27 (ISO 12647-2:2004)
U/US Newsprint (SNAP 2007)
U/Uncoated FOGRA29 (ISO 12647-2:2004)
U/U.S. Web Coated (SWOP) v2
J/Japan Color 2001 Coated
J/Japan Web Coated (Ad)
W/Web Coated FOGRA28 (ISO 12647-2:2004)
C/ColorMatch RGB
U/U.S. Web Uncoated v2
C/Coated FOGRA39 (ISO 12647-2:2004)
U/U.S. Sheetfed Coated v2
J/Japan Color 2003 Web Coated
A/Apple RGB
A/Adobe RGB (1998)
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
2.2. Image nodes D/Display 129
D/Display
D/Display
Natron Documentation, Release 3.0.0

Table 15 – continued from previous page


Parameter / script Type Default Function
name
Output color profile / Choice s/sRGB
iccOut IEC61966-ICC RGB output profile
2.1
If image is CMYK/GRAY a colorspace convert will happen.
None
W/Web Safe Colors
P/ProPhoto RGB
s/sRGB IEC61966-2.1
C/ColorMatch RGB
A/Apple RGB
A/Adobe RGB (1998)
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
D/Display
S/Smokey
H/HDTV (Rec. 709)
C/ColorNegative
C/CIE RGB
N/NTSC (1953)
R/RedBlueYellow
S/SMPTE-C
A/AnimePalette
P/PAL/SECAM
130 W/Wide Gamut RGB Chapter 2. Reference Guide
T/TealMagentaGold
S/SDTV PAL
Natron Documentation, Release 3.0.0

Table 15 – continued from previous page


Parameter / script Type Default Function
name
OCIO Config File / N/A OpenColorIO configuration file
ocioConfigFile
File Colorspace / Choice Input data is taken to be in this colorspace.
ocioInputSpaceIndex
Output Colorspace / Choice Output data is taken to be in this colorspace.
ocioOutputSpaceIndex
key1 / key1 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value1 / value1 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key2 / key2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value2 / value2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key3 / key3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

Continued on next page

2.2. Image nodes 131


Natron Documentation, Release 3.0.0

Table 15 – continued from previous page


Parameter / script Type Default Function
name
value3 / value3 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key4 / key4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value4 / value4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

OCIO config help. . . / Button Help about the OpenColorIO configuration.


ocioHelp

2.2.16 ReadSVG node

This documentation is for version 3.3 of ReadSVG (net.fxarena.openfx.ReadSVG).

Description

Fast SVG (Scalable Vector Graphics) reader using librsvg and Cairo.

Inputs

Input Description Optional


Sync Sync Yes

Controls

132 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Parameter / script Type Default Function


name
File / filename N/A The input image sequence/video stream file(s).
First Frame / Integer 0 The first frame number to read from this image sequence or video file.
firstFrame This cannot be less than the first frame of the image sequence or video
file, and cannot be greater than the last frame of the image sequence or
video file. The first frame of a video file is numbered 1. If startingTime
is 1 or timeOffset is 0, this is also the first output frame.
Before / before Choice Hold
What to do before the first frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

Last Frame / Integer 0 The last frame number to read from this image sequence or video file.
lastFrame This cannot be less than the first frame of the image sequence or video
file, and cannot be greater than the last frame of the image sequence or
video file. The first frame of a video file is numbered 1. If startingTime
is 1 or timeOffset is 0, this is also the last output frame.
After / after Choice Hold
What to do after the last frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

On Missing Frame / Choice Error


onMissingFrame What to do when a frame is missing from the sequence/stream.
Hold previous (previous): Try to load the previous frame in the
sequence/stream, if any.
Load next (next): Try to load the next frame in the sequence/stream, if
any.
Load nearest (nearest): Try to load the nearest frame in the
sequence/stream, if any.
Error (error): Report an error
Black (black): Render a black image

Frame Mode / Choice Starting


frameMode Time
Starting Time (startingTime): Set at what output frame the first
sequence frame is output. The sequence frame designated by the
firstFrame parameter is output at frame timeOffset.
Time Offset (timeOffset): Set an offset to be applied as a number of
frames. The sequence frame designated by the firstFrame parameter is
output at frame firstFrame+timeOffset.

Starting Time / Integer 0 At what time (on the timeline) should this sequence/video start.
startingTime
Time Offset / Integer 0 Offset applied to the sequence in time units (i.e. frames).
timeOffset
Continued on next page

2.2. Image nodes 133


Natron Documentation, Release 3.0.0

Table 16 – continued from previous page


Parameter / script Type Default Function
name
Proxy File / proxy N/A Filename of the proxy images. They will be used instead of the images
read from the File parameter when the proxy mode (downscaling of the
images) is activated.
Proxy threshold / Double x: 1 y: The scale of the proxy images. By default it will be automatically com-
proxyThreshold 1 puted out of the images headers when you set the proxy file(s) path.
When the render scale (proxy) is set to a scale lower or equal to this
value then the proxy image files will be used instead of the original im-
ages. You can change this parameter by checking the “Custom scale”
checkbox so that you can change the scale at which the proxy images
should be used instead of the original images.
Custom Proxy Scale / Boolean Off Check to enable the Proxy scale edition.
customProxyScale
File Premult / Choice PreMultiplied
filePremult The image file being read is considered to have this premultiplication
state.
To get UnPremultiplied (or “unassociated alpha”) images, set the
“Output Premult” parameter to Unpremultiplied.
By default the value should be correctly be guessed by the image file,
but this parameter can be edited if the metadatas inside the file are
wrong.
- Opaque means that the alpha channel is considered to be 1 (one), and
it is not taken into account in colorspace conversion.
- Premultiplied, red, green and blue channels are divided by the alpha
channel before applying the colorspace conversion, and re-multiplied
by alpha after colorspace conversion.
- UnPremultiplied, means that red, green and blue channels are not
modified before applying the colorspace conversion, and are multiplied
by alpha after colorspace conversion.
This is set automatically from the image file and the plugin, but can be
adjusted if this information is wrong in the file metadata.
RGB images can only be Opaque, and Alpha images can only be
Premultiplied (the value of this parameter doesn’t matter).
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Output Premult / Choice PreMultiplied


outputPremult The alpha premultiplication in output of this node will have this state.
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Continued on next page

134 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 16 – continued from previous page


Parameter / script Type Default Function
name
Output Components / Choice RGBA
outputComponents What type of components this effect should output when the main
color plane is requested. For the Read node it will map (in number of
components) the Output Layer choice to these.
RGBA

Frame rate / Double 24 By default this value is guessed from the file. You can override it by
frameRate checking the Custom fps parameter. The value of this parameter is what
will be visible by the effects down-stream.
Custom FPS / Boolean Off If checked, you can freely force the value of the frame rate parameter.
customFps The frame-rate is just the meta-data that will be passed downstream to
the graph, no retime will actually take place.
DPI / dpi Integer 90 Dots-per-inch (90 is default)
OCIO Config File / N/A OpenColorIO configuration file
ocioConfigFile
File Colorspace / Choice Input data is taken to be in this colorspace.
ocioInputSpaceIndex
Output Colorspace / Choice Output data is taken to be in this colorspace.
ocioOutputSpaceIndex
key1 / key1 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value1 / value1 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key2 / key2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

Continued on next page

2.2. Image nodes 135


Natron Documentation, Release 3.0.0

Table 16 – continued from previous page


Parameter / script Type Default Function
name
value2 / value2 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key3 / key3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value3 / value3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key4 / key4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value4 / value4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

OCIO config help. . . / Button Help about the OpenColorIO configuration.


ocioHelp

136 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

2.2.17 RunScript node

This documentation is for version 1.0 of RunScript (fr.inria.openfx.RunScript).

Description

Run a script with the given arguments. This is mostly useful to execute an external program on a set of input
images files, which outputs image files. Writers should be connected to each input, so that the image files are
written before running the script, and the output of this node should be fed into one or more Readers, which read
the images written by the script.
Sample section of a node graph which uses RunScript:

...
^
|
Write([Project]/scriptinput#####.png)
^
|
RunScript1(processes [Project]/scriptinput#####.png, output is [Project]/
˓→scriptoutput#####.png)

^
|
Read([Project]/scriptoutput#####.png, set the frame range manually)
^
|
RunScript2(deletes temporary files [Project]/scriptinput#####.png and [Project]/
˓→scriptoutput#####.png, optional)

^
|
...

Keep in mind that the input and output files are never removed in the above graph. The output of RunScript is a
copy of its first input.
Each argument may be:
• A filename (RunScript1 and RunScript2 in the example above should have [Project]/
scriptinput#####.png and [Project]/scriptoutput#####.png as filename parameters 1
and 2)
• A floating-point value (which can be linked to any plugin)
• An integer
• A string
Under Unix, the script should begin with a traditional shebang line, e.g. ‘#!/bin/sh’ or ‘#!/usr/bin/env python’ The
arguments can be accessed as usual from the script (in a Unix shell-script, argument 1 would be accessed as “$1”
- use double quotes to avoid problems with spaces). For example, the script in RunScript2 in the above example
would be:

#!/bin/sh
rm "$1" "$2"

This plugin uses pstream (http://pstreams.sourceforge.net), which is distributed under the Boost Software License,
Version 1.0.

2.2. Image nodes 137


Natron Documentation, Release 3.0.0

Inputs

Input Description Optional


1 Yes
2 Yes
3 Yes
4 Yes

Controls

Parameter / script Type Default Function


name
Number of Parameters Integer 0
/ paramCount
Type of Parameter 1 / Choice File
type1 Name
File Name: . A constant or animated string containing a filename.
If the string contains hashes (like ####) or a printf token (like %04d),
they will be replaced by the frame number, and if it contains %v or
%V, it will be replaced by the view ID (“l” or “r” for %v, “left” or
“right” for %V).
This is usually linked to the output filename of an upstream Writer
node, or to the input filename of a downstream Reader node.
String: A string (or sequence of characters).
Floating Point: A floating point numerical value.
Integer: An integer numerical value.

File Name1 / N/A


filename1 A constant or animated string containing a filename.
If the string contains hashes (like ####) or a printf token (like %04d),
they will be replaced by the frame number, and if it contains %v or
%V, it will be replaced by the view ID (“l” or “r” for %v, “left” or
“right” for %V).
This is usually linked to the output filename of an upstream Writer
node, or to the input filename of a downstream Reader node.

String1 / string1 String A string (or sequence of characters).


Floating Point1 / Double 0 A floating point numerical value.
double1
Integer1 / integer1 Integer 0 An integer numerical value.
Continued on next page

138 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 17 – continued from previous page


Parameter / script Type Default Function
name
Type of Parameter 2 / Choice File
type2 Name
File Name: . A constant or animated string containing a filename.
If the string contains hashes (like ####) or a printf token (like %04d),
they will be replaced by the frame number, and if it contains %v or
%V, it will be replaced by the view ID (“l” or “r” for %v, “left” or
“right” for %V).
This is usually linked to the output filename of an upstream Writer
node, or to the input filename of a downstream Reader node.
String: A string (or sequence of characters).
Floating Point: A floating point numerical value.
Integer: An integer numerical value.

File Name2 / N/A


filename2 A constant or animated string containing a filename.
If the string contains hashes (like ####) or a printf token (like %04d),
they will be replaced by the frame number, and if it contains %v or
%V, it will be replaced by the view ID (“l” or “r” for %v, “left” or
“right” for %V).
This is usually linked to the output filename of an upstream Writer
node, or to the input filename of a downstream Reader node.

String2 / string2 String A string (or sequence of characters).


Floating Point2 / Double 0 A floating point numerical value.
double2
Integer2 / integer2 Integer 0 An integer numerical value.
Type of Parameter 3 / Choice File
type3 Name
File Name: . A constant or animated string containing a filename.
If the string contains hashes (like ####) or a printf token (like %04d),
they will be replaced by the frame number, and if it contains %v or
%V, it will be replaced by the view ID (“l” or “r” for %v, “left” or
“right” for %V).
This is usually linked to the output filename of an upstream Writer
node, or to the input filename of a downstream Reader node.
String: A string (or sequence of characters).
Floating Point: A floating point numerical value.
Integer: An integer numerical value.

File Name3 / N/A


filename3 A constant or animated string containing a filename.
If the string contains hashes (like ####) or a printf token (like %04d),
they will be replaced by the frame number, and if it contains %v or
%V, it will be replaced by the view ID (“l” or “r” for %v, “left” or
“right” for %V).
This is usually linked to the output filename of an upstream Writer
node, or to the input filename of a downstream Reader node.

String3 / string3 String A string (or sequence of characters).


Floating Point3 / Double 0 A floating point numerical value.
double3
Continued on next page

2.2. Image nodes 139


Natron Documentation, Release 3.0.0

Table 17 – continued from previous page


Parameter / script Type Default Function
name
Integer3 / integer3 Integer 0 An integer numerical value.
Type of Parameter 4 / Choice File
type4 Name
File Name: . A constant or animated string containing a filename.
If the string contains hashes (like ####) or a printf token (like %04d),
they will be replaced by the frame number, and if it contains %v or
%V, it will be replaced by the view ID (“l” or “r” for %v, “left” or
“right” for %V).
This is usually linked to the output filename of an upstream Writer
node, or to the input filename of a downstream Reader node.
String: A string (or sequence of characters).
Floating Point: A floating point numerical value.
Integer: An integer numerical value.

File Name4 / N/A


filename4 A constant or animated string containing a filename.
If the string contains hashes (like ####) or a printf token (like %04d),
they will be replaced by the frame number, and if it contains %v or
%V, it will be replaced by the view ID (“l” or “r” for %v, “left” or
“right” for %V).
This is usually linked to the output filename of an upstream Writer
node, or to the input filename of a downstream Reader node.

String4 / string4 String A string (or sequence of characters).


Floating Point4 / Double 0 A floating point numerical value.
double4
Integer4 / integer4 Integer 0 An integer numerical value.
Type of Parameter 5 / Choice File
type5 Name
File Name: . A constant or animated string containing a filename.
If the string contains hashes (like ####) or a printf token (like %04d),
they will be replaced by the frame number, and if it contains %v or
%V, it will be replaced by the view ID (“l” or “r” for %v, “left” or
“right” for %V).
This is usually linked to the output filename of an upstream Writer
node, or to the input filename of a downstream Reader node.
String: A string (or sequence of characters).
Floating Point: A floating point numerical value.
Integer: An integer numerical value.

File Name5 / N/A


filename5 A constant or animated string containing a filename.
If the string contains hashes (like ####) or a printf token (like %04d),
they will be replaced by the frame number, and if it contains %v or
%V, it will be replaced by the view ID (“l” or “r” for %v, “left” or
“right” for %V).
This is usually linked to the output filename of an upstream Writer
node, or to the input filename of a downstream Reader node.

String5 / string5 String A string (or sequence of characters).


Continued on next page

140 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 17 – continued from previous page


Parameter / script Type Default Function
name
Floating Point5 / Double 0 A floating point numerical value.
double5
Integer5 / integer5 Integer 0 An integer numerical value.
Type of Parameter 6 / Choice File
type6 Name
File Name: . A constant or animated string containing a filename.
If the string contains hashes (like ####) or a printf token (like %04d),
they will be replaced by the frame number, and if it contains %v or
%V, it will be replaced by the view ID (“l” or “r” for %v, “left” or
“right” for %V).
This is usually linked to the output filename of an upstream Writer
node, or to the input filename of a downstream Reader node.
String: A string (or sequence of characters).
Floating Point: A floating point numerical value.
Integer: An integer numerical value.

File Name6 / N/A


filename6 A constant or animated string containing a filename.
If the string contains hashes (like ####) or a printf token (like %04d),
they will be replaced by the frame number, and if it contains %v or
%V, it will be replaced by the view ID (“l” or “r” for %v, “left” or
“right” for %V).
This is usually linked to the output filename of an upstream Writer
node, or to the input filename of a downstream Reader node.

String6 / string6 String A string (or sequence of characters).


Floating Point6 / Double 0 A floating point numerical value.
double6
Integer6 / integer6 Integer 0 An integer numerical value.
Type of Parameter 7 / Choice File
type7 Name
File Name: . A constant or animated string containing a filename.
If the string contains hashes (like ####) or a printf token (like %04d),
they will be replaced by the frame number, and if it contains %v or
%V, it will be replaced by the view ID (“l” or “r” for %v, “left” or
“right” for %V).
This is usually linked to the output filename of an upstream Writer
node, or to the input filename of a downstream Reader node.
String: A string (or sequence of characters).
Floating Point: A floating point numerical value.
Integer: An integer numerical value.

File Name7 / N/A


filename7 A constant or animated string containing a filename.
If the string contains hashes (like ####) or a printf token (like %04d),
they will be replaced by the frame number, and if it contains %v or
%V, it will be replaced by the view ID (“l” or “r” for %v, “left” or
“right” for %V).
This is usually linked to the output filename of an upstream Writer
node, or to the input filename of a downstream Reader node.

Continued on next page

2.2. Image nodes 141


Natron Documentation, Release 3.0.0

Table 17 – continued from previous page


Parameter / script Type Default Function
name
String7 / string7 String A string (or sequence of characters).
Floating Point7 / Double 0 A floating point numerical value.
double7
Integer7 / integer7 Integer 0 An integer numerical value.
Type of Parameter 8 / Choice File
type8 Name
File Name: . A constant or animated string containing a filename.
If the string contains hashes (like ####) or a printf token (like %04d),
they will be replaced by the frame number, and if it contains %v or
%V, it will be replaced by the view ID (“l” or “r” for %v, “left” or
“right” for %V).
This is usually linked to the output filename of an upstream Writer
node, or to the input filename of a downstream Reader node.
String: A string (or sequence of characters).
Floating Point: A floating point numerical value.
Integer: An integer numerical value.

File Name8 / N/A


filename8 A constant or animated string containing a filename.
If the string contains hashes (like ####) or a printf token (like %04d),
they will be replaced by the frame number, and if it contains %v or
%V, it will be replaced by the view ID (“l” or “r” for %v, “left” or
“right” for %V).
This is usually linked to the output filename of an upstream Writer
node, or to the input filename of a downstream Reader node.

String8 / string8 String A string (or sequence of characters).


Floating Point8 / Double 0 A floating point numerical value.
double8
Integer8 / integer8 Integer 0 An integer numerical value.
Type of Parameter 9 / Choice File
type9 Name
File Name: . A constant or animated string containing a filename.
If the string contains hashes (like ####) or a printf token (like %04d),
they will be replaced by the frame number, and if it contains %v or
%V, it will be replaced by the view ID (“l” or “r” for %v, “left” or
“right” for %V).
This is usually linked to the output filename of an upstream Writer
node, or to the input filename of a downstream Reader node.
String: A string (or sequence of characters).
Floating Point: A floating point numerical value.
Integer: An integer numerical value.

Continued on next page

142 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 17 – continued from previous page


Parameter / script Type Default Function
name
File Name9 / N/A
filename9 A constant or animated string containing a filename.
If the string contains hashes (like ####) or a printf token (like %04d),
they will be replaced by the frame number, and if it contains %v or
%V, it will be replaced by the view ID (“l” or “r” for %v, “left” or
“right” for %V).
This is usually linked to the output filename of an upstream Writer
node, or to the input filename of a downstream Reader node.

String9 / string9 String A string (or sequence of characters).


Floating Point9 / Double 0 A floating point numerical value.
double9
Integer9 / integer9 Integer 0 An integer numerical value.
Type of Parameter 10 Choice File
/ type10 Name
File Name: . A constant or animated string containing a filename.
If the string contains hashes (like ####) or a printf token (like %04d),
they will be replaced by the frame number, and if it contains %v or
%V, it will be replaced by the view ID (“l” or “r” for %v, “left” or
“right” for %V).
This is usually linked to the output filename of an upstream Writer
node, or to the input filename of a downstream Reader node.
String: A string (or sequence of characters).
Floating Point: A floating point numerical value.
Integer: An integer numerical value.

File Name10 / N/A


filename10 A constant or animated string containing a filename.
If the string contains hashes (like ####) or a printf token (like %04d),
they will be replaced by the frame number, and if it contains %v or
%V, it will be replaced by the view ID (“l” or “r” for %v, “left” or
“right” for %V).
This is usually linked to the output filename of an upstream Writer
node, or to the input filename of a downstream Reader node.

String10 / string10 String A string (or sequence of characters).


Floating Point10 / Double 0 A floating point numerical value.
double10
Integer10 / Integer 0 An integer numerical value.
integer10
Script / script String #!/bin/sh
Contents of the script. Under Unix, the script should begin with a
traditional shebang line, e.g. ‘#!/bin/sh’ or ‘#!/usr/bin/env python’
The arguments can be accessed as usual from the script (in a Unix
shell-script, argument 1 would be accessed as “$1” - use double quotes
to avoid problems with spaces).

Validate / validate Boolean Off Validate the script contents and execute it on next render. This locks the
script and all its parameters.

2.2.18 Solid node

This documentation is for version 1.0 of Solid (net.sf.openfx.Solid).

2.2. Image nodes 143


Natron Documentation, Release 3.0.0

Description

Generate an image with a constant opaque color.

Inputs

Input Description Optional


Source Yes

Controls

Parameter / script Type Default Function


name
Extent / extent Choice Default
Extent (size and offset) of the output.
Format (format): Use a pre-defined image format.
Size (size): Use a specific extent (size and offset).
Project (project): Use the project extent (size and offset).
Default (default): Use the default extent (e.g. the source clip extent, if
connected).

Center / recenter Button Centers the region of definition to the input region of definition. If there
is no input, then the region of definition is centered to the project win-
dow.
Reformat / Boolean Off Set the output format to the given extent, except if the Bottom Left or
reformat Size parameters is animated.
Format / Choice HD
NatronParamFormatChoice 1920x1080The output format
PC_Video 640x480 (PC_Video)
NTSC 720x486 0.91 (NTSC)
PAL 720x576 1.09 (PAL)
NTSC_16:9 720x486 1.21 (NTSC_16:9)
PAL_16:9 720x576 1.46 (PAL_16:9)
HD_720 1280x720 (HD_720)
HD 1920x1080 (HD)
UHD_4K 3840x2160 (UHD_4K)
1K_Super_35(full-ap) 1024x778 (1K_Super_35(full-ap))
1K_Cinemascope 914x778 2.00 (1K_Cinemascope)
2K_Super_35(full-ap) 2048x1556 (2K_Super_35(full-ap))
2K_Cinemascope 1828x1556 2.00 (2K_Cinemascope)
2K_DCP 2048x1080 (2K_DCP)
4K_Super_35(full-ap) 4096x3112 (4K_Super_35(full-ap))
4K_Cinemascope 3656x3112 2.00 (4K_Cinemascope)
4K_DCP 4096x2160 (4K_DCP)
square_256 256x256 (square_256)
square_512 512x512 (square_512)
square_1K 1024x1024 (square_1K)
square_2K 2048x2048 (square_2K)

Continued on next page

144 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 18 – continued from previous page


Parameter / script Type Default Function
name
Bottom Left / Double x: 0 y: Coordinates of the bottom left corner of the size rectangle.
bottomLeft 0
Size / size Double w: 1 h: Width and height of the size rectangle.
1
Interactive Update / Boolean Off If checked, update the parameter values during interaction with the im-
interactive age viewer, else update the values when pen is released.
Frame Range / Integer min: 1 Time domain.
frameRange max: 1
Output Components / Choice RGB
outputComponents Components in the output
RGBA
RGB
XY
Alpha

Color / color Color r: 0 g: Color to fill the image with.


0 b: 0

2.2.19 Write node

This documentation is for version 1.0 of Write (fr.inria.built-in.Write).

Description

Node used to write images or videos on disk. The image/video is identified by its filename and its extension.
Given the extension, the Writer selected from the Preferences to encode that specific format will be used.

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Frame Increment / Integer 1 The number of frames the timeline should step before rendering the new
frameIncr frame. If 1, all frames will be rendered, if 2 only 1 frame out of 2, etc.
This number cannot be less than 1.
Read back file / Boolean Off When checked, the output of this node comes from reading the written
readBack file instead of the input node
Encoder / Choice Default
encodingPluginChoice Select the internal encoder plug-in used for this file format. By default
this uses the plug-in selected for this file extension in the Preferences.
Default: Use the default plug-in chosen from the Preferences to write
this file format

Continued on next page

2.2. Image nodes 145


Natron Documentation, Release 3.0.0

Table 19 – continued from previous page


Parameter / script Type Default Function
name
File / filename N/A The output image sequence/video stream file(s). The string must
match the following format: path/sequenceName###.ext where the
number of # (hashes) will define the number of digits to append to
each file. For example path/mySequence###.jpg will be translated to
path/mySequence000.jpg, path/mySequence001.jpg, etc. %d printf-
like notation can also be used instead of the hashes, for example
path/sequenceName%03d.ext will achieve the same than the example
aforementioned. there will be at least 2 digits). The file name may
not contain any # (hash) in which case it will be overriden everytimes.
Views can be specified using the “long” view notation %V or the “short”
notation using %v.
Format Type / Choice Project
formatType Format Determines which rectangle of pixels will be written in output.
Input Format (input): Renders the pixels included in the input format
Project Format (project): Renders the pixels included in the project
format
Fixed Format (fixed): Renders the pixels included in the format
indicated by the Format parameter.

Format / Choice HD
NatronParamFormatChoice 1920x1080The output format to render
PC_Video 640x480 (PC_Video)
NTSC 720x486 0.91 (NTSC)
PAL 720x576 1.09 (PAL)
NTSC_16:9 720x486 1.21 (NTSC_16:9)
PAL_16:9 720x576 1.46 (PAL_16:9)
HD_720 1280x720 (HD_720)
HD 1920x1080 (HD)
UHD_4K 3840x2160 (UHD_4K)
1K_Super_35(full-ap) 1024x778 (1K_Super_35(full-ap))
1K_Cinemascope 914x778 2.00 (1K_Cinemascope)
2K_Super_35(full-ap) 2048x1556 (2K_Super_35(full-ap))
2K_Cinemascope 1828x1556 2.00 (2K_Cinemascope)
2K_DCP 2048x1080 (2K_DCP)
4K_Super_35(full-ap) 4096x3112 (4K_Super_35(full-ap))
4K_Cinemascope 3656x3112 2.00 (4K_Cinemascope)
4K_DCP 4096x2160 (4K_DCP)
square_256 256x256 (square_256)
square_512 512x512 (square_512)
square_1K 1024x1024 (square_1K)
square_2K 2048x2048 (square_2K)

OCIO Config File / N/A OpenColorIO configuration file


ocioConfigFile
Input Colorspace / Choice Input data is taken to be in this colorspace.
ocioInputSpaceIndex
File Colorspace / Choice Output data is taken to be in this colorspace.
ocioOutputSpaceIndex
OCIO config help. . . / Button Help about the OpenColorIO configuration.
ocioHelp
Continued on next page

146 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 19 – continued from previous page


Parameter / script Type Default Function
name
Input Premult / Choice PreMultiplied
inputPremult Input is considered to have this premultiplication state.
If it is Premultiplied, red, green and blue channels are divided by the
alpha channel before applying the colorspace conversion.
This is set automatically from the input stream information, but can be
adjusted if this information is wrong.
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Clip Info. . . / Button Display information about the inputs


clipInfo
Frame Range / Choice Project
frameRange frame What frame range should be rendered.
range Union of input ranges (union): The union of all inputs frame ranges
will be rendered.
Project frame range (project): The frame range delimited by the
frame range of the project will be rendered.
Manual (manual): The frame range will be the one defined by the first
frame and last frame parameters.

First Frame / Integer 0


firstFrame
Last Frame / Integer 0
lastFrame

2.2.20 WriteFFmpeg node

This documentation is for version 1.0 of WriteFFmpeg (fr.inria.openfx.WriteFFmpeg).

Description

Write a video sequence using FFmpeg.


This plugin can be used to produce entheir digital intermediates, i.e. videos with very high resolution and quality
which can be read frame by frame for further processing, or highly compressed videos to distribute on the web.
Note that this plug-in does not support audio, but audi can easily be added to the video using the ffmpeg command-
line tool (see note below). In a VFX context, it is often preferable to save processed images as a sequence of
individual frames (using WriteOIIO), if disk space and real-time playing are not an issue.
The preferred pixel coding (Pref. Pixel Coding) and bit depth (Pref. Bit Depth) can be selected. This is especially
useful for codecs that propose multiple pixel formats (e.g. ffv1, ffvhuff, huffyuv, jpeg2000, mjpeg, mpeg2video,
vc2, libopenjpeg, png, qtrle, targa, tiff, libschroedinger, libtheora, libvpx, libvpx-vp9, libx264, libx265).
The pixel format is selected from the available choices for the chosen codec using the following rules:

2.2. Image nodes 147


Natron Documentation, Release 3.0.0

• First, try to find the format with the smallest BPP (bits per pixel) that fits into the preferences.
• Second, If no format fits, get the format that has a BPP equal or a bit higher that the one computed from the
preferences.
• Last, if no such format is found, get the format that has the highest BPP.
The selected pixel coding, bit depth, and BPP are displayed in the Selected Pixel Coding, Bit Depth, and BPP
parameters.
The recommended Codec/Container configurations for encoding digital intermediates are (see also https://trac.
ffmpeg.org/wiki/Encode/VFX):
• ProRes inside QuickTime: all ProRes profiles are 10-bit and are intra-frame (each frame is encoded sepa-
rately). Prores 4444 can also encode the alpha channel.
• Avid DNxHR inside QuickTime: the codec is intra-frame. DNxHR profiles are resolution-independent and
are available with 8-bit or 10-bit depth. The alpha channel cannot be encoded.
• HEVC (hev1/libx265) inside Matroska, MP4, QuickTime or MPEG-TS and Output Quality set to Lossless
or Perceptually Lossless. libx265 supports 8-bit, 10-bit and 12-bit depth (if libx265 was compiled with high
bit depth support). Lossless may not be playable in real-time for high resolutions. Set the Encoding Speed
to Ultra Fast for faster encoding but worse compression, or Very Slow for best compression.
To write videos intended for distribution (as media files or for streaming), the most popular codecs are mp4v
(mpeg4 or libxvid), avc1 (libx264), H264 (libopenh264), hev1 (libx265), VP80 (libvpx) and VP90 (libvpx-vp9).
The quality of mp4v may be set using the Global Quality parameter (between 1 and 31, 1 being the highest
quality), and the quality of avc1, hev1, VP80 and VP90 may be set using the Output Quality parameter. More
information can be found at https://trac.ffmpeg.org/wiki#Encoding
If the output video should be encoded with specific FFmpeg options, such as a given pixel format or encoding
option, it is better to write the output as individual frames in an image format that has a sufficient bit depth, and to
encode the set of individual frames to a video using the command-line ffmpeg tool.
The settings for the “Global Quality” and “Quality” parameters may have different meanings for different codecs.
See http://slhck.info/video/2017/02/24/vbr-settings.html for a summary of recommended values. Using these set-
tings should be preferred over constant bitrate-based encoding, as it usually gives a much better result.
Adding audio
If synchronized audio is available as a separate file, encoded with the right codec, it can be easily added to the
video using a command like: ffmpeg -i input.mp4 -i input.mp3 -c copy -map 0:0 -map 1:0 output.mp4 (in this
example, input.mp4 contains the video, input.mp3 contains the audio, and output.mp4 co,ntains both tracks).
This command does not re-encode the video or audio, but simply copies the data from each source file and places
it in separate streams in the output.

Inputs

Input Description Optional


Source No

Controls

148 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Parameter / script Type Default Function


name
Output Components / Choice RGBA
outputComponents Map the input layer to this type of components before writing it to the
output file.
RGB
RGBA

File / filename N/A The output image sequence/video stream file(s). The string must
match the following format: path/sequenceName###.ext where the
number of # (hashes) will define the number of digits to append to
each file. For example path/mySequence###.jpg will be translated to
path/mySequence000.jpg, path/mySequence001.jpg, etc. %d printf-
like notation can also be used instead of the hashes, for example
path/sequenceName%03d.ext will achieve the same than the example
aforementioned. there will be at least 2 digits). The file name may
not contain any # (hash) in which case it will be overriden everytimes.
Views can be specified using the “long” view notation %V or the “short”
notation using %v.
Overwrite / Boolean On Overwrite existing files when rendering.
overwrite
Format Type / Choice Project
formatType Format Determines which rectangle of pixels will be written in output.
Input Format (input): Renders the pixels included in the input format
Project Format (project): Renders the pixels included in the project
format
Fixed Format (fixed): Renders the pixels included in the format
indicated by the Format parameter.

Format / Choice HD
NatronParamFormatChoice 1920x1080The output format to render
PC_Video 640x480 (PC_Video)
NTSC 720x486 0.91 (NTSC)
PAL 720x576 1.09 (PAL)
NTSC_16:9 720x486 1.21 (NTSC_16:9)
PAL_16:9 720x576 1.46 (PAL_16:9)
HD_720 1280x720 (HD_720)
HD 1920x1080 (HD)
UHD_4K 3840x2160 (UHD_4K)
1K_Super_35(full-ap) 1024x778 (1K_Super_35(full-ap))
1K_Cinemascope 914x778 2.00 (1K_Cinemascope)
2K_Super_35(full-ap) 2048x1556 (2K_Super_35(full-ap))
2K_Cinemascope 1828x1556 2.00 (2K_Cinemascope)
2K_DCP 2048x1080 (2K_DCP)
4K_Super_35(full-ap) 4096x3112 (4K_Super_35(full-ap))
4K_Cinemascope 3656x3112 2.00 (4K_Cinemascope)
4K_DCP 4096x2160 (4K_DCP)
square_256 256x256 (square_256)
square_512 512x512 (square_512)
square_1K 1024x1024 (square_1K)
square_2K 2048x2048 (square_2K)

Continued on next page

2.2. Image nodes 149


Natron Documentation, Release 3.0.0

Table 20 – continued from previous page


Parameter / script Type Default Function
name
OCIO Config File / N/A OpenColorIO configuration file
ocioConfigFile
Input Colorspace / Choice Input data is taken to be in this colorspace.
ocioInputSpaceIndex
File Colorspace / Choice Output data is taken to be in this colorspace.
ocioOutputSpaceIndex
key1 / key1 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value1 / value1 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key2 / key2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value2 / value2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key3 / key3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

Continued on next page

150 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 20 – continued from previous page


Parameter / script Type Default Function
name
value3 / value3 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key4 / key4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value4 / value4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

OCIO config help. . . / Button Help about the OpenColorIO configuration.


ocioHelp
Input Premult / Choice PreMultiplied
inputPremult Input is considered to have this premultiplication state.
If it is Premultiplied, red, green and blue channels are divided by the
alpha channel before applying the colorspace conversion.
This is set automatically from the input stream information, but can be
adjusted if this information is wrong.
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Clip Info. . . / Button Display information about the inputs


clipInfo
Continued on next page

2.2. Image nodes 151


Natron Documentation, Release 3.0.0

Table 20 – continued from previous page


Parameter / script Type Default Function
name
Frame Range / Choice Project
frameRange frame What frame range should be rendered.
range Union of input ranges (union): The union of all inputs frame ranges
will be rendered.
Project frame range (project): The frame range delimited by the
frame range of the project will be rendered.
Manual (manual): The frame range will be the one defined by the first
frame and last frame parameters.

First Frame / Integer 0


firstFrame
Last Frame / Integer 0
lastFrame
Container / format Choice guess
from Output format/container.
file- guess from filename (default)
name AVI (Audio Video Interleaved) [avi] (avi): Compatible with ayuv,
cinepak, ffv1, ffvhuff, flv, h263p, huffyuv, jpeg2000, jpegls, ljpeg,
mjpeg, mpeg2video, mpeg4, msmpeg4v2, msmpeg4, png, svq1, targa,
v308, v408, v410, vc2, libopenjpeg, libtheora, libvpx, libvpx-vp9,
libx264, libx264rgb, libxvid.
FLV (Flash Video) [flv] (flv): Compatible with flv, mpeg4, libx264,
libx264rgb, libxvid.
GIF Animation [gif] (gif): Compatible with gif.
Matroska [matroska] (matroska): Compatible with prores_ksap4h,
prores_ksapch, prores_ksapcn, prores_ksapcs, prores_ksapco, ffv1,
mjpeg, mpeg2video, mpeg4, msmpeg4, vc2, libtheora, libvpx,
libvpx-vp9, libx264, libx264rgb, libx265, libxvid.
QuickTime / MOV [mov] (mov): Compatible with prores_ksap4h,
prores_ksapch, prores_ksapcn, prores_ksapcs, prores_ksapco, avrp,
cinepak, dnxhd, gif, hap, jpeg2000, mjpeg, mpeg2video, mpeg4,
msmpeg4, png, qtrle, svq1, targa, tiff, v308, v408, v410, vc2,
libopenjpeg, libvpx, libvpx-vp9, libx264, libx264rgb, libx265, libxvid.
MP4 (MPEG-4 Part 14) [mp4] (mp4): Compatible with jpeg2000,
mjpeg, mpeg2video, mpeg4, png, vc2, libopenjpeg, libvpx-vp9,
libx264, libx264rgb, libx265, libxvid.
MPEG-1 Systems / MPEG program stream [mpeg] (mpeg):
Compatible with libx264, libx264rgb.
MPEG-TS (MPEG-2 Transport Stream) [mpegts] (mpegts):
Compatible with mpeg2video, mpeg4, vc2, libx264, libx264rgb,
libx265, libxvid.
Ogg Video [ogv] (ogv): Compatible with libtheora.
3GP2 (3GPP2 file format) [3g2] (3g2): Compatible with mpeg4,
libx264, libx264rgb, libxvid.
3GP (3GPP file format) [3gp] (3gp): Compatible with mpeg4,
libx264, libx264rgb, libxvid.

Continued on next page

152 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 20 – continued from previous page


Parameter / script Type Default Function
name
Codec / codec Choice ap4h
Apple Output codec used for encoding. The general recommendation is to
ProRes write either separate frames (using WriteOIIO), or an uncompressed
4444 video format, or a “digital intermediate” format (ProRes, DNxHD),
and to transcode the output and mux with audio with a separate tool
(such as the ffmpeg or mencoder command-line tools).
The FFmpeg encoder codec name is given between brackets at the end
of each codec description.
Please refer to the FFmpeg documentation
http://ffmpeg.org/ffmpeg-codecs.html for codec options.
ap4h Apple ProRes 4444 (prores_ksap4h): Compatible with
matroska, mov.
apch Apple ProRes 422 HQ (prores_ksapch): Compatible with
matroska, mov.
apcn Apple ProRes 422 (prores_ksapcn): Compatible with matroska,
mov.
apcs Apple ProRes 422 LT (prores_ksapcs): Compatible with
matroska, mov.
apco Apple ProRes 422 Proxy (prores_ksapco): Compatible with
matroska, mov.
AVrp Avid 1:1 10-bit RGB Packer [avrp] (avrp): Compatible with
mov.
AYUV Uncompressed packed MS 4:4:4:4 [ayuv] (ayuv):
Compatible with avi.
cvid Cinepak [cinepak] (cinepak): Compatible with avi, mov.
AVdn Avid DNxHD / DNxHR / SMPTE VC-3 [dnxhd] (dnxhd):
Compatible with mov.
FFV1 FFmpeg video codec #1 [ffv1] (ffv1): Compatible with avi,
matroska.
FFVH Huffyuv FFmpeg variant [ffvhuff] (ffvhuff): Compatible
with avi.
FLV1 FLV / Sorenson Spark / Sorenson H.263 (Flash Video) [flv]
(flv): Compatible with avi, flv.
gif GIF (Graphics Interchange Format) [gif] (gif): Compatible with
gif, mov.
H263 H.263+ / H.263-1998 / H.263 version 2 [h263p] (h263p):
Compatible with avi.
Hap1 Vidvox Hap [hap] (hap): Compatible with mov.
HFYU HuffYUV [huffyuv] (huffyuv): Compatible with avi.
mjp2 JPEG 2000 [jpeg2000] (jpeg2000): Compatible with avi, mov,
mp4.
MJLS JPEG-LS [jpegls] (jpegls): Compatible with avi.
LJPG Lossless JPEG [ljpeg] (ljpeg): Compatible with avi.
jpeg Photo JPEG [mjpeg] (mjpeg): Compatible with avi, matroska,
mov, mp4.
m2v1 MPEG-2 Video [mpeg2video] (mpeg2video): Compatible with
avi, matroska, mov, mp4, mpegts.
mp4v MPEG-4 part 2 [mpeg4] (mpeg4): Compatible with avi, flv,
matroska, mov, mp4, mpegts, 3g2, 3gp.
MP42 MPEG-4 part 2 Microsoft variant version 2 [msmpeg4v2]
(msmpeg4v2): Compatible with avi.
3IVD MPEG-4 part 2 Microsoft variant version 3 [msmpeg4]
(msmpeg4): Compatible with avi, matroska, mov.
2.2. Image nodes png PNG (Portable Network Graphics) image [png] (png): 153
Compatible with avi, mov, mp4.
rle QuickTime Animation (RLE) video [qtrle] (qtrle): Compatible
with mov.
Natron Documentation, Release 3.0.0

Table 20 – continued from previous page


Parameter / script Type Default Function
name
Codec Name / String The codec used when the writer was configured. If this parameter is
codecShortName visible, this means that this codec may not be supported by this version
of the plugin.
FPS / fps Double 24 File frame rate
Reset FPS / Button Reset FPS from the input FPS.
resetFps
Pref. Pixel Coding / Choice YUV422
prefPixelCoding Preferred pixel coding.
YUV420 (yuv420): 1 Cr & Cb sample per 2x2 Y samples.
YUV422 (yuv422): 1 Cr & Cb sample per 2x1 Y samples.
YUV444 (yuv444): 1 Cr & Cb sample per Y sample.
RGB (rgb): Separate r, g, b.
XYZ (xyz): CIE XYZ compressed with gamma=2.6, used for Digital
Cinema.

Bit Depth / Choice 8


prefBitDepth Preferred bit depth (number of bits per component).
8
10
12
16

Alpha / Boolean Off If checked, and the input contains alpha, formats with an alpha channel
enableAlpha are preferred.
Show Avail. / Button Show available pixel codings for this codec.
prefShow
Continued on next page

154 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 20 – continued from previous page


Parameter / script Type Default Function
name
DNxHD Codec Choice DNxHR
Profile / 444 Only for the Avid DNxHD codec, select the target bit rate for the
DNxHDCodecProfile encoded movie. The stream may be resized to 1920x1080 if resolution
is not supported. Writing in thin-raster HDV format (1440x1080) is not
supported by this plug-in, although FFmpeg supports it.
DNxHR 444 (dnxhr444): DNxHR 4:4:4 (12 bit, RGB / 4:4:4, 4.5:1
compression)
DNxHR HQX (dnxhrhqx): DNxHR High Quality (12 bit, 4:2:2
chroma sub-sampling, 5.5:1 compression)
DNxHR HQ (dnxhrhq): DNxHR High Quality (8 bit, 4:2:2 chroma
sub-sampling, 4.5:1 compression)
DNxHR SQ (dnxhrsq): DNxHR Standard Quality (8 bit, 4:2:2
chroma sub-sampling, 7:1 compression)
DNxHR LB (dnxhrlb): DNxHR Low Bandwidth (8 bit, 4:2:2 chroma
sub-sampling, 22:1 compression)
DNxHD 422 10-bit 440Mbit (dnxhd422_440x): 880x in 1080p/60 or
1080p/59.94, 730x in 1080p/50, 440x in 1080p/30, 390x in 1080p/25,
350x in 1080p/24
DNxHD 422 10-bit 220Mbit (dnxhd422_220x): 440x in 1080p/60 or
1080p/59.94, 365x in 1080p/50, 220x in 1080i/60 or 1080i/59.94, 185x
in 1080i/50 or 1080p/25, 175x in 1080p/24 or 1080p/23.976, 220x in
1080p/29.97, 220x in 720p/59.94, 175x in 720p/50
DNxHD 422 8-bit 220Mbit (dnxhd422_220): 440 in 1080p/60 or
1080p/59.94, 365 in 1080p/50, 220 in 1080i/60 or 1080i/59.94, 185 in
1080i/50 or 1080p/25, 175 in 1080p/24 or 1080p/23.976, 220 in
1080p/29.97, 220 in 720p/59.94, 175 in 720p/50
DNxHD 422 8-bit 145Mbit (dnxhd422_145): 290 in 1080p/60 or
1080p/59.94, 240 in 1080p/50, 145 in 1080i/60 or 1080i/59.94, 120 in
1080i/50 or 1080p/25, 115 in 1080p/24 or 1080p/23.976, 145 in
1080p/29.97, 145 in 720p/59.94, 115 in 720p/50
DNxHD 422 8-bit 36Mbit (dnxhd422_36): 90 in 1080p/60 or
1080p/59.94, 75 in 1080p/50, 45 in 1080i/60 or 1080i/59.94, 36 in
1080i/50 or 1080p/25, 36 in 1080p/24 or 1080p/23.976, 45 in
1080p/29.97, 100 in 720p/59.94, 85 in 720p/50

Hap Format / Choice Hap 1


HapFormat Only for the Hap codec, select the target format.
Hap 1 (hap): DXT1 textures (FourCC Hap1)
Hap Alpha (hap_alpha): DXT5 textures (FourCC Hap5)
Hap Q (hap_q): DXT5-YCoCg textures (FourCC HapY)

Selected Pixel Coding String Pixel coding of images passed to the encoder. If several pixel cod-
/ ings are available, the coding which causes less data loss is selected.
infoPixelFormat Other pixel formats may be available by transcoding with ffmpeg on
the command-line, as can be seen by executing ‘ffmpeg –help en-
coder=codec_name’ on the command-line.
Bit Depth / Integer 0 Bit depth (number of bits per component) of the pixel format.
infoBitDepth
BPP / infoBpp Integer 0 Bits per pixel of the pixel format.
Continued on next page

2.2. Image nodes 155


Natron Documentation, Release 3.0.0

Table 20 – continued from previous page


Parameter / script Type Default Function
name
DNxHD Output Choice Video
Range / Range When encoding using DNxHD this is used to select between full scale
DNxHDEncodeVideoRange data range and ‘video/legal’ data range.
Full scale data range is 0-255 for 8-bit and 0-1023 for 10-bit.
‘Video/legal’ data range is a reduced range, 16-240 for 8-bit and
64-960 for 10-bit.
Full Range (full)
Video Range (video)

Output Quality / crf Choice Medium


Quality Constant Rate Factor (CRF); tradeoff between video quality and file
size. Used by avc1, hev1, VP80, VP9, and CAVS codecs.
Option -crf in ffmpeg.
None (none): Use constant bit-rate rather than constant output quality
Lossless (crf0): Corresponds to CRF = 0.
Perceptually Lossless (crf17): Corresponds to CRF = 17.
High Quality (crf20): Corresponds to CRF = 20.
Medium Quality (crf23): Corresponds to CRF = 23.
Low Quality (crf26): Corresponds to CRF = 26.
Very Low Quality (crf29): Corresponds to CRF = 29.

Encoding Speed / Choice Medium


x26xSpeed Trade off performance for compression efficiency. Available for avc1
and hev1.
Option -preset in ffmpeg.
Ultra Fast (ultrafast): Fast encoding, but larger file size.
Very Fast (veryfast)
Faster (faster)
Fast (fast)
Medium (medium)
Slow (slow)
Slower (slower)
Very Slow (veryslow): Slow encoding, but smaller file size.

Global Quality / Double -1


qscale For lossy encoding, this controls image quality, from 0 to 100 (the
lower, the better, 0 being near-lossless). For lossless encoding, this
controls the effort and time spent at compressing more. -1 or negative
value means to use the codec default or CBR (constant bit rate). Used
for example by FLV1, mjp2, theo, jpeg, m2v1, mp4v MP42, 3IVD,
codecs.
Option -qscale in ffmpeg.

Continued on next page

156 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 20 – continued from previous page


Parameter / script Type Default Function
name
Quality / quality Integer min: -1
max: -1 The quality range the codec is allowed to vary the image data quantiser
between to attempt to hit the desired bitrate. The lower, the better:
higher values mean increased image degradation is possible, but with
the upside of lower bit rates. Only supported by certain codecs (e.g.
VP80, VP90, avc1, but not hev1 or mp4v).
-1 means to use the codec default.
Options -qmin and -qmax in ffmpeg.

Bitrate / Double 185


bitrateMbps The target bitrate the codec will attempt to reach (in Megabits/s),
within the confines of the bitrate tolerance and quality min/max
settings. Only supported by certain codecs (e.g. hev1, m2v1, MP42,
3IVD, but not mp4v, avc1 or H264).
Option -b in ffmpeg (multiplied by 1000000).

Bitrate Tolerance / Double 0


bitrateToleranceMbps Set video bitrate tolerance (in Megabits/s). In 1-pass mode, bitrate
tolerance specifies how far ratecontrol is willing to deviate from the
target average bitrate value. This is not related to min/max bitrate.
Lowering tolerance too much has an adverse effect on quality. As a
guideline, the minimum slider range of target bitrate/target fps is the
lowest advisable setting. Anything below this value may result in failed
renders.
Only supported by certain codecs (e.g. MP42, 3IVD, but not avc1,
hev1, m2v1, mp4v or H264).
A reasonable value is 5 * bitrateMbps / fps.
Option -bt in ffmpeg (multiplied by 1000000).

Keyframe Interval / Integer -1


gopSize The keyframe intervale, also called GOP size, specifies how many
frames may be grouped together by the codec to form a compression
GOP. Exercise caution with this control as it may impact whether the
resultant file can be opened in other packages. Only supported by
certain codecs.
-1 means to use the codec default if bFrames is not 0, or 1 if bFrames is
0 to ensure only intra (I) frames are produced, producing a video which
is easier to scrub frame-by-frame.
Option -g in ffmpeg.

Max B-Frames / Integer -1


bFrames Set max number of B frames between non-B-frames. Must be an
integer between -1 and 16. 0 means that B-frames are disabled. If a
value of -1 is used, it will choose an automatic value depending on the
encoder. Influences file size and seekability. Only supported by certain
codecs.
-1 means to use the codec default if Keyframe Interval is not 1, or 0 if
Keyframe Interval is 1 to ensure only intra (I) frames are produced,
producing a video which is easier to scrub frame-by-frame.
Option -bf in ffmpeg.

Continued on next page

2.2. Image nodes 157


Natron Documentation, Release 3.0.0

Table 20 – continued from previous page


Parameter / script Type Default Function
name
Write NCLC / Boolean On Write nclc data in the colr atom of the video header. QuickTime only.
writeNCLC
FFmpeg Info. . . / Button Display information about the underlying library.
libraryInfo

2.2.21 WriteOIIO node

This documentation is for version 1.0 of WriteOIIO (fr.inria.openfx.WriteOIIO).

Description

Write images using OpenImageIO.


OpenImageIO supports writing the following file formats:
BMP (*.bmp)
Cineon (*.cin)
DPX (*.dpx)
FITS (*.fits)
HDR/RGBE (*.hdr)
Icon (*.ico)
IFF (*.iff)
JPEG (*.jpg *.jpe *.jpeg *.jif *.jfif *.jfi)
JPEG-2000 (*.jp2 *.j2k)
OpenEXR (*.exr)
Portable Network Graphics (*.png)
PNM / Netpbm (*.pbm *.pgm *.ppm)
PSD (*.psd *.pdd *.psb)
RLA (*.rla)
SGI (*.sgi *.rgb *.rgba *.bw *.int *.inta)
Softimage PIC (*.pic)
Targa (*.tga *.tpic)
TIFF (*.tif *.tiff *.tx *.env *.sm *.vsm)
Zfile (*.zfile)

Inputs

Input Description Optional


Source No

158 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Controls

Parameter / script Type Default Function


name
Output Components / Choice RGBA
outputComponents Map the input layer to this type of components before writing it to the
output file.
Alpha
RGB
RGBA

File / filename N/A The output image sequence/video stream file(s). The string must
match the following format: path/sequenceName###.ext where the
number of # (hashes) will define the number of digits to append to
each file. For example path/mySequence###.jpg will be translated to
path/mySequence000.jpg, path/mySequence001.jpg, etc. %d printf-
like notation can also be used instead of the hashes, for example
path/sequenceName%03d.ext will achieve the same than the example
aforementioned. there will be at least 2 digits). The file name may
not contain any # (hash) in which case it will be overriden everytimes.
Views can be specified using the “long” view notation %V or the “short”
notation using %v.
Overwrite / Boolean On Overwrite existing files when rendering.
overwrite
Format Type / Choice Project
formatType Format Determines which rectangle of pixels will be written in output.
Input Format (input): Renders the pixels included in the input format
Project Format (project): Renders the pixels included in the project
format
Fixed Format (fixed): Renders the pixels included in the format
indicated by the Format parameter.

Continued on next page

2.2. Image nodes 159


Natron Documentation, Release 3.0.0

Table 21 – continued from previous page


Parameter / script Type Default Function
name
Format / Choice HD
NatronParamFormatChoice 1920x1080The output format to render
PC_Video 640x480 (PC_Video)
NTSC 720x486 0.91 (NTSC)
PAL 720x576 1.09 (PAL)
NTSC_16:9 720x486 1.21 (NTSC_16:9)
PAL_16:9 720x576 1.46 (PAL_16:9)
HD_720 1280x720 (HD_720)
HD 1920x1080 (HD)
UHD_4K 3840x2160 (UHD_4K)
1K_Super_35(full-ap) 1024x778 (1K_Super_35(full-ap))
1K_Cinemascope 914x778 2.00 (1K_Cinemascope)
2K_Super_35(full-ap) 2048x1556 (2K_Super_35(full-ap))
2K_Cinemascope 1828x1556 2.00 (2K_Cinemascope)
2K_DCP 2048x1080 (2K_DCP)
4K_Super_35(full-ap) 4096x3112 (4K_Super_35(full-ap))
4K_Cinemascope 3656x3112 2.00 (4K_Cinemascope)
4K_DCP 4096x2160 (4K_DCP)
square_256 256x256 (square_256)
square_512 512x512 (square_512)
square_1K 1024x1024 (square_1K)
square_2K 2048x2048 (square_2K)

Clip To RoD / Boolean On


clipToRoD When checked, the portion of the image written will be the region of
definition of the image in input and not the format selected by the
Output Format parameter.
For the EXR file format, this will distinguish the data window (size of
the image in input) from the display window (the format specified by
Output Format).

OCIO Config File / N/A OpenColorIO configuration file


ocioConfigFile
Input Colorspace / Choice Input data is taken to be in this colorspace.
ocioInputSpaceIndex
File Colorspace / Choice Output data is taken to be in this colorspace.
ocioOutputSpaceIndex
key1 / key1 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

Continued on next page

160 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 21 – continued from previous page


Parameter / script Type Default Function
name
value1 / value1 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key2 / key2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value2 / value2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key3 / key3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value3 / value3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

Continued on next page

2.2. Image nodes 161


Natron Documentation, Release 3.0.0

Table 21 – continued from previous page


Parameter / script Type Default Function
name
key4 / key4 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value4 / value4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

OCIO config help. . . / Button Help about the OpenColorIO configuration.


ocioHelp
Input Premult / Choice PreMultiplied
inputPremult Input is considered to have this premultiplication state.
If it is Premultiplied, red, green and blue channels are divided by the
alpha channel before applying the colorspace conversion.
This is set automatically from the input stream information, but can be
adjusted if this information is wrong.
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Clip Info. . . / Button Display information about the inputs


clipInfo
Frame Range / Choice Project
frameRange frame What frame range should be rendered.
range Union of input ranges (union): The union of all inputs frame ranges
will be rendered.
Project frame range (project): The frame range delimited by the
frame range of the project will be rendered.
Manual (manual): The frame range will be the one defined by the first
frame and last frame parameters.

First Frame / Integer 0


firstFrame
Last Frame / Integer 0
lastFrame
Continued on next page

162 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 21 – continued from previous page


Parameter / script Type Default Function
name
Tile Size / Choice Scan-
tileSize Line Size of a tile in the output file for formats that support tiles. If scan-line
Based based, the whole image will have a single tile.
Scan-Line Based (0)
64
128
256
512

Bit Depth / Choice auto


bitDepth Number of bits per sample in the file
[TIFF,DPX,TGA,DDS,ICO,IFF,PNM,PIC].
auto: Guess from the output format
8i: 8 bits integer
10i: 10 bits integer
12i: 12 bits integer
16i: 16 bits integer
16f: 16 bits floating point
32i: 32 bits integer
32f: 32 bits floating point
64i: 64 bits integer
64f: 64 bits floating point

Quality / quality Integer 100 Indicates the quality of compression to use (0-100), for those plugins
and compression methods that allow a variable amount of compression,
with higher numbers indicating higher image fidelity. [JPEG, TIFF w/
JPEG comp., WEBP]
DWA Compression Double 45 Amount of compression when using Dreamworks DWAA or DWAB
Level / compression options. These lossy formats are variable in quality and
dwaCompressionLevel can minimize the compression artifacts. Higher values will result in
greater compression and likewise smaller file size, but increases the
chance for artifacts. Values from 45 to 150 are usually correct for
production shots, whereas HDR vacation photos could use up to 500.
Values below 45 should give no visible imprrovement on photographs.
[EXR w/ DWAa or DWAb comp.]
Continued on next page

2.2. Image nodes 163


Natron Documentation, Release 3.0.0

Table 21 – continued from previous page


Parameter / script Type Default Function
name
Orientation / Choice normal
orientation The orientation of the image data [DPX,TIFF,JPEG,HDR,FITS].
By default, image pixels are ordered from the top of the display to the
bottom, and within each scanline, from left to right (i.e., the same
ordering as English text and scan progression on a CRT). But the
“Orientation” parameter can suggest that it should be displayed with a
different orientation, according to the TIFF/EXIF conventions.
normal: normal (top to bottom, left to right)
flop: flipped horizontally (top to bottom, right to left)
180: rotate 180deg (bottom to top, right to left)
flip: flipped vertically (bottom to top, left to right)
transposed: transposed (left to right, top to bottom)
90clockwise: rotated 90deg clockwise (right to left, top to bottom)
transverse: transverse (right to left, bottom to top)
90counter-clockwise: rotated 90deg counter-clockwise (left to right,
bottom to top)

Compression / Choice default


compression Compression type [TIFF,EXR,DDS,IFF,SGI,TGA]
Indicates the type of compression the file uses. Supported compression
modes will vary from format to format. As an example, the TIFF
format supports “none”, “lzw”, “ccittrle”, “zip” (the default), “jpeg”,
“packbits”, and the EXR format supports “none”, “rle”, “zip” (the
default), “piz”, “pxr24”, “b44”, “b44a”, “dwaa” or “dwab”.
default: Guess from the output format
none: No compression [EXR, TIFF, IFF]
zip: Zlib/Deflate compression (lossless) [EXR, TIFF, Zfile]
zips: Zlib compression (lossless), one scan line at a time [EXR]
rle: Run Length Encoding (lossless) [DPX, IFF, EXR, TGA, RLA]
piz: Piz-based wavelet compression [EXR]
pxr24: Lossy 24bit float compression [EXR]
b44: Lossy 4-by-4 pixel block compression, fixed compression rate
[EXR]
b44a: Lossy 4-by-4 pixel block compression, flat fields are compressed
more [EXR]
dwaa: lossy DCT based compression, in blocks of 32 scanlines. More
efficient for partial buffer access. [EXR]
dwab: lossy DCT based compression, in blocks of 256 scanlines.
More efficient space wise and faster to decode full frames than DWAA.
[EXR]
lzw: Lempel-Ziv Welsch compression (lossless) [TIFF]
ccittrle: CCITT modified Huffman RLE (lossless) [TIFF]
jpeg: JPEG [TIFF]
packbits: Macintosh RLE (lossless) [TIFF]

Continued on next page

164 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 21 – continued from previous page


Parameter / script Type Default Function
name
Layer(s) / Choice Color.RGBA
outputChannels Select which layer to write to the file. This is either All or a single
layer. This is not yet possible to append a layer to an existing file.
Color.RGBA (uk.co.thefoundry.OfxImagePlaneColour)
DisparityLeft.Disparity
(uk.co.thefoundry.OfxImagePlaneStereoDisparityLeft)
DisparityRight.Disparity
(uk.co.thefoundry.OfxImagePlaneStereoDisparityRight)
Backward.Motion
(uk.co.thefoundry.OfxImagePlaneBackMotionVector)
Forward.Motion
(uk.co.thefoundry.OfxImagePlaneForwardMotionVector)

All Planes / Boolean Off When checked all planes in input will be processed and output to the
processAllPlanes same plane as in input. It is useful for example to apply a Transform
effect on all planes.
Parts / Choice Split
partSplitting Views,Layers
Defines whether to separate views/layers in different EXR parts or not.
Note that multi-part files are only supported by OpenEXR >= 2
Single Part (single): All views and layers will be in the same part,
ensuring compatibility with OpenEXR 1.x
Split Views (views): All views will have its own part, and each part
will contain all layers. This will produce an EXR optimized in size that
can be opened only with applications supporting OpenEXR 2
Split Views,Layers (views_layers): Each layer of each view will have
its own part. This will produce an EXR optimized for decoding speed
that can be opened only with applications supporting OpenEXR 2

Views / Choice All


viewsSelector Select the views to render. When choosing All, make sure the output
filename does not have a %v or %V view pattern in which case each
view would be written to a separate file.
All
Main

OpenImageIO Info. . . Button Display information about the underlying library.


/ libraryInfo

2.2.22 WritePFM node

This documentation is for version 1.0 of WritePFM (fr.inria.openfx.WritePFM).

Description

Write PFM (Portable Float Map) files.

2.2. Image nodes 165


Natron Documentation, Release 3.0.0

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Output Components / Choice RGBA
outputComponents Map the input layer to this type of components before writing it to the
output file.
Alpha
RGB
RGBA

File / filename N/A The output image sequence/video stream file(s). The string must
match the following format: path/sequenceName###.ext where the
number of # (hashes) will define the number of digits to append to
each file. For example path/mySequence###.jpg will be translated to
path/mySequence000.jpg, path/mySequence001.jpg, etc. %d printf-
like notation can also be used instead of the hashes, for example
path/sequenceName%03d.ext will achieve the same than the example
aforementioned. there will be at least 2 digits). The file name may
not contain any # (hash) in which case it will be overriden everytimes.
Views can be specified using the “long” view notation %V or the “short”
notation using %v.
Overwrite / Boolean On Overwrite existing files when rendering.
overwrite
Format Type / Choice Project
formatType Format Determines which rectangle of pixels will be written in output.
Input Format (input): Renders the pixels included in the input format
Project Format (project): Renders the pixels included in the project
format
Fixed Format (fixed): Renders the pixels included in the format
indicated by the Format parameter.

Continued on next page

166 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 22 – continued from previous page


Parameter / script Type Default Function
name
Format / Choice HD
NatronParamFormatChoice 1920x1080The output format to render
PC_Video 640x480 (PC_Video)
NTSC 720x486 0.91 (NTSC)
PAL 720x576 1.09 (PAL)
NTSC_16:9 720x486 1.21 (NTSC_16:9)
PAL_16:9 720x576 1.46 (PAL_16:9)
HD_720 1280x720 (HD_720)
HD 1920x1080 (HD)
UHD_4K 3840x2160 (UHD_4K)
1K_Super_35(full-ap) 1024x778 (1K_Super_35(full-ap))
1K_Cinemascope 914x778 2.00 (1K_Cinemascope)
2K_Super_35(full-ap) 2048x1556 (2K_Super_35(full-ap))
2K_Cinemascope 1828x1556 2.00 (2K_Cinemascope)
2K_DCP 2048x1080 (2K_DCP)
4K_Super_35(full-ap) 4096x3112 (4K_Super_35(full-ap))
4K_Cinemascope 3656x3112 2.00 (4K_Cinemascope)
4K_DCP 4096x2160 (4K_DCP)
square_256 256x256 (square_256)
square_512 512x512 (square_512)
square_1K 1024x1024 (square_1K)
square_2K 2048x2048 (square_2K)

OCIO Config File / N/A OpenColorIO configuration file


ocioConfigFile
Input Colorspace / Choice Input data is taken to be in this colorspace.
ocioInputSpaceIndex
File Colorspace / Choice Output data is taken to be in this colorspace.
ocioOutputSpaceIndex
key1 / key1 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value1 / value1 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

Continued on next page

2.2. Image nodes 167


Natron Documentation, Release 3.0.0

Table 22 – continued from previous page


Parameter / script Type Default Function
name
key2 / key2 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value2 / value2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key3 / key3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value3 / value3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key4 / key4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

Continued on next page

168 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 22 – continued from previous page


Parameter / script Type Default Function
name
value4 / value4 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

OCIO config help. . . / Button Help about the OpenColorIO configuration.


ocioHelp
Input Premult / Choice PreMultiplied
inputPremult Input is considered to have this premultiplication state.
If it is Premultiplied, red, green and blue channels are divided by the
alpha channel before applying the colorspace conversion.
This is set automatically from the input stream information, but can be
adjusted if this information is wrong.
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Clip Info. . . / Button Display information about the inputs


clipInfo
Frame Range / Choice Project
frameRange frame What frame range should be rendered.
range Union of input ranges (union): The union of all inputs frame ranges
will be rendered.
Project frame range (project): The frame range delimited by the
frame range of the project will be rendered.
Manual (manual): The frame range will be the one defined by the first
frame and last frame parameters.

First Frame / Integer 0


firstFrame
Last Frame / Integer 0
lastFrame

2.2.23 WritePNG node

This documentation is for version 1.0 of WritePNG (fr.inria.openfx.WritePNG).

Description

Write PNG files.

2.2. Image nodes 169


Natron Documentation, Release 3.0.0

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Output Components / Choice RGBA
outputComponents Map the input layer to this type of components before writing it to the
output file.
RGB
RGBA

File / filename N/A The output image sequence/video stream file(s). The string must
match the following format: path/sequenceName###.ext where the
number of # (hashes) will define the number of digits to append to
each file. For example path/mySequence###.jpg will be translated to
path/mySequence000.jpg, path/mySequence001.jpg, etc. %d printf-
like notation can also be used instead of the hashes, for example
path/sequenceName%03d.ext will achieve the same than the example
aforementioned. there will be at least 2 digits). The file name may
not contain any # (hash) in which case it will be overriden everytimes.
Views can be specified using the “long” view notation %V or the “short”
notation using %v.
Overwrite / Boolean On Overwrite existing files when rendering.
overwrite
Format Type / Choice Project
formatType Format Determines which rectangle of pixels will be written in output.
Input Format (input): Renders the pixels included in the input format
Project Format (project): Renders the pixels included in the project
format
Fixed Format (fixed): Renders the pixels included in the format
indicated by the Format parameter.

Continued on next page

170 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 23 – continued from previous page


Parameter / script Type Default Function
name
Format / Choice HD
NatronParamFormatChoice 1920x1080The output format to render
PC_Video 640x480 (PC_Video)
NTSC 720x486 0.91 (NTSC)
PAL 720x576 1.09 (PAL)
NTSC_16:9 720x486 1.21 (NTSC_16:9)
PAL_16:9 720x576 1.46 (PAL_16:9)
HD_720 1280x720 (HD_720)
HD 1920x1080 (HD)
UHD_4K 3840x2160 (UHD_4K)
1K_Super_35(full-ap) 1024x778 (1K_Super_35(full-ap))
1K_Cinemascope 914x778 2.00 (1K_Cinemascope)
2K_Super_35(full-ap) 2048x1556 (2K_Super_35(full-ap))
2K_Cinemascope 1828x1556 2.00 (2K_Cinemascope)
2K_DCP 2048x1080 (2K_DCP)
4K_Super_35(full-ap) 4096x3112 (4K_Super_35(full-ap))
4K_Cinemascope 3656x3112 2.00 (4K_Cinemascope)
4K_DCP 4096x2160 (4K_DCP)
square_256 256x256 (square_256)
square_512 512x512 (square_512)
square_1K 1024x1024 (square_1K)
square_2K 2048x2048 (square_2K)

OCIO Config File / N/A OpenColorIO configuration file


ocioConfigFile
Input Colorspace / Choice Input data is taken to be in this colorspace.
ocioInputSpaceIndex
File Colorspace / Choice Output data is taken to be in this colorspace.
ocioOutputSpaceIndex
key1 / key1 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value1 / value1 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

Continued on next page

2.2. Image nodes 171


Natron Documentation, Release 3.0.0

Table 23 – continued from previous page


Parameter / script Type Default Function
name
key2 / key2 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value2 / value2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key3 / key3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value3 / value3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key4 / key4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

Continued on next page

172 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 23 – continued from previous page


Parameter / script Type Default Function
name
value4 / value4 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

OCIO config help. . . / Button Help about the OpenColorIO configuration.


ocioHelp
Input Premult / Choice PreMultiplied
inputPremult Input is considered to have this premultiplication state.
If it is Premultiplied, red, green and blue channels are divided by the
alpha channel before applying the colorspace conversion.
This is set automatically from the input stream information, but can be
adjusted if this information is wrong.
Opaque (opaque): The image is opaque and so has no
premultiplication state, as if the alpha component in all pixels were set
to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha
(also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also
called “unassociated alpha”).

Clip Info. . . / Button Display information about the inputs


clipInfo
Frame Range / Choice Project
frameRange frame What frame range should be rendered.
range Union of input ranges (union): The union of all inputs frame ranges
will be rendered.
Project frame range (project): The frame range delimited by the
frame range of the project will be rendered.
Manual (manual): The frame range will be the one defined by the first
frame and last frame parameters.

First Frame / Integer 0


firstFrame
Last Frame / Integer 0
lastFrame
Continued on next page

2.2. Image nodes 173


Natron Documentation, Release 3.0.0

Table 23 – continued from previous page


Parameter / script Type Default Function
name
Compression / Choice Default
compression Compression used by the internal zlib library when encoding the file.
This parameter is used to tune the compression algorithm.
Filtered data consists mostly of small values with a somewhat random
distribution. In this case, the compression algorithm is tuned to
compress them better. The effect of Filtered is to force more Huffman
coding and less string matching; it is somewhat intermediate between
Default and Huffman Only. RLE is designed to be almost as fast as
Huffman Only, but give better compression for PNG image data. The
strategy parameter only affects the compression ratio but not the
correctness of the compressed output even if it is not set appropriately.
Fixed prevents the use of dynamic Huffman codes, allowing for a
simpler decoder for special applications.
Default (default): Use this for normal data
Filtered (filtered): Use this for data produced by a filter (or predictor)
Huffman Only (huffman): Forces Huffman encoding only (nostring
match)
RLE (rle): Limit match distances to one (run-length encoding)
Fixed (fixed): Prevents the use of dynamic Huffman codes, allowing
for a simpler decoder for special applications

Compression Level / Integer 6


compressionLevel Between 0 and 9:
1 gives best speed, 9 gives best compression, 0 gives no compression at
all (the input data is simply copied a block at a time). Default
compromise between speed and compression is 6.

Depth / bitDepth Choice 8-bit


The depth of the internal PNG. Only 8bit and 16bit are supported by
this writer
8-bit (8u)
16-bit (16u)

Dithering / Boolean On When checked, conversion from float input buffers to 8-bit PNG will
enableDithering use a dithering algorithm to reduce quantization artifacts. This has no
effect when writing to 16bit PNG
libpng Info. . . / Button Display information about the underlying library.
libraryInfo

2.3 Draw nodes

The following sections contain documentation about every node in the Draw group. Node groups are available by
clicking on buttons in the left toolbar, or by right-clicking the mouse in the Node Graph area.

2.3.1 LightWrap node

174 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

This documentation is for version 1.0 of LightWrap (fr.inria.LightWrap).

Description

LightWrap helps composite objects onto a bright background by simulating reflections from the background light
on the foreground, around its edges. Input A is the foreground image and its matte, and input B the the background
to use for the wrapping effect.
The output of LightWrap should then be composited over the background to give the final composite.

Inputs

Input Description Optional


A No
B No

Controls

Parameter / script Type Default Function


name
Convert to Group / Button Converts this node to a Group: the internal node-graph and the user
convertToGroup parameters will become editable
Diffuse / diffuse Double x: 15 y: Size of the reflections from the background to the foreground element
15 (Intensity controls their intensity). Start by setting Diffuse to zero and
adjust intensity to see what colors from the background are being re-
flected. Then adjust Diffuse, come back to Intensity if necessary, and
balance both parameters until the result is satisfactory.
Intensity / Double 0 Brightness of the reflections from the background to the foreground el-
intensity ement (Diffuse controls their size). Start by setting Diffuse to zero and
adjust intensity to see what colors from the background are being re-
flected. Then adjust Diffuse, come back to Intensity if necessary, and
balance both parameters until the result is satisfactory.
Generate Wrap Only / Boolean Off When checked, the LightWrap in generated but is not merged with the
onlyWrap foreground object (disables the Highlight Merge).
Disable Boolean Off When checked, the LightWrap effect is created uniformly around the
luminance-Based edged, rather than being controled by the color of the background.
Wrap /
disableLuma
Enable Glow / Boolean Off When checked, the LightWrap is not masked by the foreground object,
enableGlow so that the objects seems to glow.
FGBlur / fgblur Double x: 1 y: Size of the blur applied to the alpha channel of the foreground (i.e. the
1 foreground matte). More blur causes more background to be added to
the foreground.
Continued on next page

2.3. Draw nodes 175


Natron Documentation, Release 3.0.0

Table 24 – continued from previous page


Parameter / script Type Default Function
name
FGBlur Border Choice Black
Conditions / Border conditions of the blur applied to the alpha channel of the
fgblurBoundary foreground (i.e. the foreground matte). Use “Black” in most cases, and
“Nearest” if the foreground matte should be extended beyond image
borders when it touches them.
Black (black): Dirichlet boundary condition: pixel values out of the
image domain are zero.
Nearest (nearest): Neumann boundary condition: pixel values out of
the image domain are those of the closest pixel location in the image
domain.

BGBlur / bgblur Double x: 0 y: Size of the blur applied to the background before merging it with the
0 foreground element and applying the Diffuse blur.
Saturation / Double 1 Color saturation of the LightWrap effect. Advanced color correction
saturation parameters are available in the ColorCorrect tab.
Luma Tolerance / Double 0 Luminance threshold of the LightWrap effect. Luminance values below
lumaTolerance this do not generate a LightWrap.
Continued on next page

176 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 24 – continued from previous page


Parameter / script Type Default Function
name
Highlight Merge / Choice plus
highlightmerge Merge operation between the foreground object and the background.
The default operation is “plus”, which produces a glow effect.
atop: Ab + B(1 - a) (a.k.a. src-atop)
average: (A + B) / 2
color: SetLum(A, Lum(B))
color-burn: darken B towards A
color-dodge: brighten B towards A
conjoint-over: A + B(1-a)/b, A if a > b
copy: A (a.k.a. src)
difference: abs(A-B) (a.k.a. absminus)
disjoint-over: A+B(1-a)/b, A+B if a+b < 1
divide: A/B, 0 if A < 0 and B < 0
exclusion: A+B-2AB
freeze: 1-sqrt(1-A)/B
from: B-A (a.k.a. subtract)
geometric: 2AB/(A+B)
grain-extract: B - A + 0.5
grain-merge: B + A - 0.5
hard-light: multiply if A < 0.5, screen if A > 0.5
hue: SetLum(SetSat(A, Sat(B)), Lum(B))
hypot: sqrt(A*A+B*B)
in: Ab (a.k.a. src-in)
luminosity: SetLum(B, Lum(A))
mask: Ba (a.k.a dst-in)
matte: Aa + B(1-a) (unpremultiplied over)
max: max(A, B) (a.k.a. lighten only)
min: min(A, B) (a.k.a. darken only)
minus: A-B
multiply: AB, 0 if A < 0 and B < 0
out: A(1-b) (a.k.a. src-out)
over: A+B(1-a) (a.k.a. src-over)
overlay: multiply if B < 0.5, screen if B > 0.5
pinlight: if B >= 0.5 then max(A, 2*B - 1), min(A, B * 2.0 ) else
plus: A+B (a.k.a. add)
reflect: A*A / (1 - B)
saturation: SetLum(SetSat(B, Sat(A)), Lum(B))
screen: A+B-AB if A or B <= 1, otherwise max(A, B)
soft-light: burn-in if A < 0.5, lighten if A > 0.5
stencil: B(1-a) (a.k.a. dst-out)
under: A(1-b)+B (a.k.a. dst-over)
xor: A(1-b)+B(1-a)

Use Constant Boolean Off When checked, use a constant color (specified by the Constant parame-
Highlight / ter) instead of the background for the LightWrap effect.
useConstant
Continued on next page

2.3. Draw nodes 177


Natron Documentation, Release 3.0.0

Table 24 – continued from previous page


Parameter / script Type Default Function
name
Constant / Color
r: 1 g: Color to use in the LightWrap effect when Use constant highlight is
constantcolor 1 b: 1 enabled.
a: 1
Saturation / Color r: 1 g:
1 b: 1
ColorCorrect1MasterSaturation
a: 1
Contrast / Color r: 1 g:
1 b: 1
ColorCorrect1MasterContrast
a: 1
Gamma / Color r: 1 g:
ColorCorrect1MasterGamma1 b: 1
a: 1
Gain / Color r: 1 g:
ColorCorrect1MasterGain 1 b: 1
a: 1
Offset / Color r: 0 g:
ColorCorrect1MasterOffset0 b: 0
a: 0
Enable / Boolean On
ColorCorrect1ShadowsEnable
Saturation / Color r: 1 g:
1 b: 1
ColorCorrect1ShadowsSaturation
a: 1
Contrast / Color r: 1 g:
1 b: 1
ColorCorrect1ShadowsContrast
a: 1
Gamma / Color r: 1 g:
ColorCorrect1ShadowsGamma1 b: 1
a: 1
Gain / Color r: 1 g:
ColorCorrect1ShadowsGain1 b: 1
a: 1
Offset / Color r: 0 g:
0 b: 0
ColorCorrect1ShadowsOffset
a: 0
Enable / Boolean On
ColorCorrect1MidtonesEnable
Saturation / Color r: 1 g:
1 b: 1
ColorCorrect1MidtonesSaturation
a: 1
Contrast / Color r: 1 g:
1 b: 1
ColorCorrect1MidtonesContrast
a: 1
Gamma / Color r: 1 g:
1 b: 1
ColorCorrect1MidtonesGamma
a: 1
Gain / Color r: 1 g:
ColorCorrect1MidtonesGain1 b: 1
a: 1
Offset / Color r: 0 g:
0 b: 0
ColorCorrect1MidtonesOffset
a: 0
Continued on next page

178 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 24 – continued from previous page


Parameter / script Type Default Function
name
Enable / Boolean On
ColorCorrect1HighlightsEnable
Saturation / Color r: 1 g:
1 b: 1
ColorCorrect1HighlightsSaturation
a: 1
Contrast / Color r: 1 g:
1 b: 1
ColorCorrect1HighlightsContrast
a: 1
Gamma / Color r: 1 g:
1 b: 1
ColorCorrect1HighlightsGamma
a: 1
Gain / Color r: 1 g:
ColorCorrect1HighlightsGain1 b: 1
a: 1
Offset / Color r: 0 g:
0 b: 0
ColorCorrect1HighlightsOffset
a: 0

2.3.2 Noise node

This documentation is for version 2.0 of Noise (net.sf.cimg.CImgNoise).

Description

Add random noise to input stream.


Uses the ‘noise’ function from the CImg library, modified so that noise is reproductible at each render.
CImg is a free, open-source library distributed under the CeCILL-C (close to the GNU LGPL) or CeCILL (com-
patible with the GNU GPL) licenses. It can be used in commercial applications (see http://cimg.eu).

Inputs

Input Description Optional


Source Yes
Mask Yes

Controls

Parameter / script Type Default Function


name
Sigma / sigma Double 0.01 Amplitude of the random additive noise.
Continued on next page

2.3. Draw nodes 179


Natron Documentation, Release 3.0.0

Table 25 – continued from previous page


Parameter / script Type Default Function
name
Type / type Choice Gaussian
Type of additive noise.
Gaussian (gaussian): Gaussian noise.
Uniform (uniform): Uniform noise.
Salt & Pepper (saltnpepper): Salt & pepper noise.
Poisson (poisson): Poisson noise. Image is divided by Sigma before
computing noise, then remultiplied by Sigma.
Rice (rice): Rician noise.

Seed / seed Integer 2000 Random seed: change this if you want different instances to have differ-
ent noise.
Static Seed / Boolean Off When enabled, the dither pattern remains the same for every frame pro-
staticSeed ducing a constant noise effect.
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.3.3 Plasma node

This documentation is for version 2.0 of Plasma (net.sf.cimg.CImgPlasma).

Description

Draw a random plasma texture (using the mid-point algorithm).


Uses the ‘draw_plasma’ function from the CImg library, modified so that noise is reproductible at each render..
CImg is a free, open-source library distributed under the CeCILL-C (close to the GNU LGPL) or CeCILL (com-
patible with the GNU GPL) licenses. It can be used in commercial applications (see http://cimg.eu).

Inputs

Input Description Optional


Source Yes
Mask Yes

Controls

Parameter / script Type Default Function


name
Alpha / alpha Double 0.002 Alpha-parameter, in intensity units (>=0).
Beta / beta Double 0 Beta-parameter, in intensity units (>=0).
Scale / scale Integer 8 Noise scale, as a power of two (>=0).
Continued on next page

180 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 26 – continued from previous page


Parameter / script Type Default Function
name
Offset / offset Double 0 Offset to add to the plasma noise.
Seed / seed Integer 2000 Random seed: change this if you want different instances to have differ-
ent noise.
Static Seed / Boolean On When enabled, the dither pattern remains the same for every frame pro-
staticSeed ducing a constant noise effect.
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.3.4 Radial node

This documentation is for version 2.1 of Radial (net.sf.openfx.Radial).

Description

Radial ramp.
The ramp is composited with the source image using the ‘over’ operator.
If no source is connected, this effect behaves like a generator. Its region of definition is:
• The selected format if the Extent parameter is a format.
• The project output format if Color0 is not black and transparent.
• The selected extent plus a one-pixel border if Color0 is black and transparent.
See also: http://opticalenquiry.com/nuke/index.php?title=Radial

Inputs

Input Description Optional


Source Yes
Mask Yes

Controls

2.3. Draw nodes 181


Natron Documentation, Release 3.0.0

Parameter / script Type Default Function


name
Extent / extent Choice Size
Extent (size and offset) of the output.
Format (format): Use a pre-defined image format.
Size (size): Use a specific extent (size and offset).
Project (project): Use the project extent (size and offset).
Default (default): Use the default extent (e.g. the source clip extent, if
connected).

Center / recenter Button Centers the region of definition to the input region of definition. If there
is no input, then the region of definition is centered to the project win-
dow.
Reformat / Boolean Off Set the output format to the given extent, except if the Bottom Left or
reformat Size parameters is animated.
Format / Choice HD
NatronParamFormatChoice 1920x1080The output format
PC_Video 640x480 (PC_Video)
NTSC 720x486 0.91 (NTSC)
PAL 720x576 1.09 (PAL)
NTSC_16:9 720x486 1.21 (NTSC_16:9)
PAL_16:9 720x576 1.46 (PAL_16:9)
HD_720 1280x720 (HD_720)
HD 1920x1080 (HD)
UHD_4K 3840x2160 (UHD_4K)
1K_Super_35(full-ap) 1024x778 (1K_Super_35(full-ap))
1K_Cinemascope 914x778 2.00 (1K_Cinemascope)
2K_Super_35(full-ap) 2048x1556 (2K_Super_35(full-ap))
2K_Cinemascope 1828x1556 2.00 (2K_Cinemascope)
2K_DCP 2048x1080 (2K_DCP)
4K_Super_35(full-ap) 4096x3112 (4K_Super_35(full-ap))
4K_Cinemascope 3656x3112 2.00 (4K_Cinemascope)
4K_DCP 4096x2160 (4K_DCP)
square_256 256x256 (square_256)
square_512 512x512 (square_512)
square_1K 1024x1024 (square_1K)
square_2K 2048x2048 (square_2K)

Bottom Left / Double x: 0 y: Coordinates of the bottom left corner of the size rectangle.
bottomLeft 0
Size / size Double w: 1 h: Width and height of the size rectangle.
1
Interactive Update / Boolean Off If checked, update the parameter values during interaction with the im-
interactive age viewer, else update the values when pen is released.
Frame Range / Integer min: 1 Time domain.
frameRange max: 1
Softness / softness Double 1 Softness of the radial ramp. Draws an anti-aliased disc or ellipse if zero.
Perceptually Linear / Boolean Off Make the radial ramp look more linear to the eye.
plinear
Color 0 / color0 Color r: 0 g:
0 b: 0
a: 0
Continued on next page

182 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 27 – continued from previous page


Parameter / script Type Default Function
name
Color 1 / color1 Color r: 1 g:
1 b: 1
a: 1
Expand RoD / Boolean On Expand the source region of definition by the shape RoD (if Source is
expandRoD connected and color0=(0,0,0,0)).
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.3.5 Ramp node

This documentation is for version 2.0 of Ramp (net.sf.openfx.Ramp).

Description

Draw a ramp between 2 edges.


The ramp is composited with the source image using the ‘over’ operator.
See also: http://opticalenquiry.com/nuke/index.php?title=Ramp

Inputs

Input Description Optional


Source Yes
Mask Yes

Controls

Parameter / script Type Default Function


name
Ramp Type / type Choice Linear
The type of interpolation used to generate the ramp
Linear (linear): Linear ramp.
PLinear (plinear): Perceptually linear ramp in Rec.709.
Ease-in (easein): Catmull-Rom spline, smooth start, linear end (a.k.a.
smooth0).
Ease-out (easeout): Catmull-Rom spline, linear start, smooth end
(a.k.a. smooth1).
Smooth (smooth): Traditional smoothstep ramp.
None (none): No color gradient.

Point 0 / point0 Double x: 100


y: 100
Continued on next page

2.3. Draw nodes 183


Natron Documentation, Release 3.0.0

Table 28 – continued from previous page


Parameter / script Type Default Function
name
Color 0 / color0 Color r: 0 g:
0 b: 0
a: 0
Point 1 / point1 Double x: 100
y: 200
Color 1 / color1 Color r: 1 g:
1 b: 1
a: 1
Interactive Update / Boolean Off If checked, update the parameter values during interaction with the im-
interactive age viewer, else update the values when pen is released.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.3.6 Rand node

This documentation is for version 1.0 of Rand (net.sf.openfx.Noise).

Description

Generate a random field of noise. The field does not resample if you change the resolution or density (you can
animate the density without pixels randomly changing).

Inputs

Input Description Optional


Source Yes

Controls

Parameter / script Type Default Function


name
Extent / extent Choice Default
Extent (size and offset) of the output.
Format (format): Use a pre-defined image format.
Size (size): Use a specific extent (size and offset).
Project (project): Use the project extent (size and offset).
Default (default): Use the default extent (e.g. the source clip extent, if
connected).

Center / recenter Button Centers the region of definition to the input region of definition. If there
is no input, then the region of definition is centered to the project win-
dow.
Continued on next page

184 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 29 – continued from previous page


Parameter / script Type Default Function
name
Reformat / Boolean Off Set the output format to the given extent, except if the Bottom Left or
reformat Size parameters is animated.
Format / Choice HD
NatronParamFormatChoice 1920x1080The output format
PC_Video 640x480 (PC_Video)
NTSC 720x486 0.91 (NTSC)
PAL 720x576 1.09 (PAL)
NTSC_16:9 720x486 1.21 (NTSC_16:9)
PAL_16:9 720x576 1.46 (PAL_16:9)
HD_720 1280x720 (HD_720)
HD 1920x1080 (HD)
UHD_4K 3840x2160 (UHD_4K)
1K_Super_35(full-ap) 1024x778 (1K_Super_35(full-ap))
1K_Cinemascope 914x778 2.00 (1K_Cinemascope)
2K_Super_35(full-ap) 2048x1556 (2K_Super_35(full-ap))
2K_Cinemascope 1828x1556 2.00 (2K_Cinemascope)
2K_DCP 2048x1080 (2K_DCP)
4K_Super_35(full-ap) 4096x3112 (4K_Super_35(full-ap))
4K_Cinemascope 3656x3112 2.00 (4K_Cinemascope)
4K_DCP 4096x2160 (4K_DCP)
square_256 256x256 (square_256)
square_512 512x512 (square_512)
square_1K 1024x1024 (square_1K)
square_2K 2048x2048 (square_2K)

Bottom Left / Double x: 0 y: Coordinates of the bottom left corner of the size rectangle.
bottomLeft 0
Size / size Double w: 1 h: Width and height of the size rectangle.
1
Interactive Update / Boolean Off If checked, update the parameter values during interaction with the im-
interactive age viewer, else update the values when pen is released.
Frame Range / Integer min: 1 Time domain.
frameRange max: 1
Output Components / Choice RGB
outputComponents Components in the output
RGBA
RGB
XY
Alpha

Noise / noise Double 1 How much noise to make.


Density / density Double 1 The density from 0 to 1 of the pixels. A lower density mean fewer
random pixels.
seed / seed Integer 2000 Random seed: change this if you want different instances to have differ-
ent noise.
Static Seed / Boolean Off When enabled, the seed is not combined with the frame number, and
staticSeed thus the effect is the same for all frames for a given seed number.

2.3. Draw nodes 185


Natron Documentation, Release 3.0.0

2.3.7 Rectangle node

This documentation is for version 2.1 of Rectangle (net.sf.openfx.Rectangle).

Description

Draw a rectangle.
The rectangle is composited with the source image using the ‘over’ operator.
If no source is connected, this effect behaves like a generator. Its region of definition is:
• The selected format if the Extent parameter is a format.
• The project output format if Color0 is not black and transparent.
• The selected extent plus a one-pixel border if Color0 is black and transparent.
See also: http://opticalenquiry.com/nuke/index.php?title=Rectangle

Inputs

Input Description Optional


Source Yes
Mask Yes

Controls

Parameter / script Type Default Function


name
Extent / extent Choice Size
Extent (size and offset) of the output.
Format (format): Use a pre-defined image format.
Size (size): Use a specific extent (size and offset).
Project (project): Use the project extent (size and offset).
Default (default): Use the default extent (e.g. the source clip extent, if
connected).

Center / recenter Button Centers the region of definition to the input region of definition. If there
is no input, then the region of definition is centered to the project win-
dow.
Reformat / Boolean Off Set the output format to the given extent, except if the Bottom Left or
reformat Size parameters is animated.
Continued on next page

186 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 30 – continued from previous page


Parameter / script Type Default Function
name
Format / Choice HD
NatronParamFormatChoice 1920x1080The output format
PC_Video 640x480 (PC_Video)
NTSC 720x486 0.91 (NTSC)
PAL 720x576 1.09 (PAL)
NTSC_16:9 720x486 1.21 (NTSC_16:9)
PAL_16:9 720x576 1.46 (PAL_16:9)
HD_720 1280x720 (HD_720)
HD 1920x1080 (HD)
UHD_4K 3840x2160 (UHD_4K)
1K_Super_35(full-ap) 1024x778 (1K_Super_35(full-ap))
1K_Cinemascope 914x778 2.00 (1K_Cinemascope)
2K_Super_35(full-ap) 2048x1556 (2K_Super_35(full-ap))
2K_Cinemascope 1828x1556 2.00 (2K_Cinemascope)
2K_DCP 2048x1080 (2K_DCP)
4K_Super_35(full-ap) 4096x3112 (4K_Super_35(full-ap))
4K_Cinemascope 3656x3112 2.00 (4K_Cinemascope)
4K_DCP 4096x2160 (4K_DCP)
square_256 256x256 (square_256)
square_512 512x512 (square_512)
square_1K 1024x1024 (square_1K)
square_2K 2048x2048 (square_2K)

Bottom Left / Double x: 0 y: Coordinates of the bottom left corner of the size rectangle.
bottomLeft 0
Size / size Double w: 1 h: Width and height of the size rectangle.
1
Interactive Update / Boolean Off If checked, update the parameter values during interaction with the im-
interactive age viewer, else update the values when pen is released.
Frame Range / Integer min: 1 Time domain.
frameRange max: 1
Corner Radius / Double x: 0 y: If non-zero, this is the radius of the round corners.
cornerRadius 0
Softness / softness Double 0 Softness of the rectangle edges. Draws an anti-aliased rectangle if zero
Color 0 / color0 Color r: 0 g:
0 b: 0
a: 0
Color 1 / color1 Color r: 1 g:
1 b: 1
a: 1
Expand RoD / Boolean On Expand the source region of definition by the shape RoD (if Source is
expandRoD connected and color0=(0,0,0,0)).
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.3.8 Roto node

This documentation is for version 1.0 of Roto (fr.inria.built-in.Roto).

2.3. Draw nodes 187


Natron Documentation, Release 3.0.0

Description

Create masks and shapes

Inputs

Input Description Optional


Bg Yes
Bg2 Yes
Bg3 Yes
Bg4 Yes

Controls

Parameter / script Type Default Function


name
Opacity / opacity Double 1 Controls the opacity of the selected shape(s).
Color / color Color r: 1 g: The color of the shape. This parameter is used when the output compo-
1 b: 1 nents are set to RGBA.
Life Time / Choice All
lifeTime Controls the life-time of the shape/stroke
All: All frames
Single: Only for the specified frame
From start: From the start of the sequence up to the specified frame
To end: From the specified frame to the end of the sequence
Custom: Use the Activated parameter animation to control the
life-time of the shape/stroke using keyframes

Activated / Boolean On Controls whether the selected shape(s) should be rendered or not.Note
activated that you can animate this parameter so you can activate/deactivate the
shape throughout the time.
Feather / feather Double 1.5 Controls the distance of feather (in pixels) to add around the selected
shape(s)
Feather fall-off / Double 1 Controls the rate at which the feather is applied on the selected shape(s).
featherFallOff
Source / Choice background
sourceType Source color used for painting the stroke when the Reveal/Clone tools
are used.
foreground: The painted result at this point in the hierarchy.
background: The original image unpainted connected to bg.
background 2: The original image unpainted connected to bg1.
background 3: The original image unpainted connected to bg2.
background 4: The original image unpainted connected to bg3.
background 5: The original image unpainted connected to bg4.
background 6: The original image unpainted connected to bg5.
background 7: The original image unpainted connected to bg6.
background 8: The original image unpainted connected to bg7.
background 9: The original image unpainted connected to bg8.
background 10: The original image unpainted connected to bg9.

Continued on next page

188 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 31 – continued from previous page


Parameter / script Type Default Function
name
Translate / Double x: 0 y:
cloneTranslate 0
Rotate / Double 0
cloneRotate
Scale / cloneScale Double x: 1 y:
1
Uniform / Boolean On
cloneUniform
Skew X / Double 0
cloneSkewx
Skew Y / Double 0
cloneSkewy
Skew Order / Choice XY
cloneSkewOrder
XY
YX

Center / Double x: 0.5


cloneCenter y: 0.5
Reset Center / Button Reset the clone transform center
resetCloneCenter
Reset Transform / Button Reset the clone transform to an identity
resetCloneTransform
Filter / Choice Cubic
cloneFilter Filtering algorithm - some filters may produce values outside of the
initial range (*) or modify the values even if there is no movement (+).
Impulse: (nearest neighbor / box) Use original values.
Bilinear: (tent / triangle) Bilinear interpolation between original
values.
Cubic: (cubic spline) Some smoothing.
Keys: (Catmull-Rom / Hermite spline) Some smoothing, plus minor
sharpening (*).
Simon: Some smoothing, plus medium sharpening (*).
Rifman: Some smoothing, plus significant sharpening (*).
Mitchell: Some smoothing, plus blurring to hide pixelation (*+).
Parzen: (cubic B-spline) Greatest smoothing of all filters (+).
Notch: Flat smoothing (which tends to hide moire’ patterns) (+).

Black Outside / Boolean On Fill the area outside the source image with black
blackOutside
Clone time offset / Integer 0 When the Clone tool is used, this determines depending on the time
timeOffset offset mode the source frame to clone. When in absolute mode, this is
the frame number of the source, when in relative mode, this is an offset
relative to the current frame.
Mode / Choice Relative
timeOffsetMode Time offset mode: when in absolute mode, this is the frame number of
the source, when in relative mode, this is an offset relative to the
current frame.
Relative
Absolute

Continued on next page

2.3. Draw nodes 189


Natron Documentation, Release 3.0.0

Table 31 – continued from previous page


Parameter / script Type Default Function
name
Brush Size / Double 25 This is the diameter of the brush in pixels. Shift + drag on the viewer to
brushSize modify this value
Brush Spacing / Double 0.1 Spacing between stamps of the paint brush
brushSpacing
Brush Hardness / Double 0.2 Fall off of the brush effect from the center to the edge
brushHardness
Brush effect / Double 15 The strength of the effect
brushEffect
Opacity / Boolean On Alters the opacity of the paint brush proportionate to changes in pen
pressureOpacity pressure
Size / Boolean Off Alters the size of the paint brush proportionate to changes in pen pres-
pressureSize sure
Hardness / Boolean Off Alters the hardness of the paint brush proportionate to changes in pen
pressureHardness pressure
Build-up / buildUp Boolean Off When checked, the paint stroke builds up when painted over itself
Visible portion / Double start: 0 Defines the range of the stroke that should be visible: 0 is the start of
strokeVisiblePortion end: 1 the stroke and 1 the end.
Translate / Double x: 0 y:
translate 0
Rotate / rotate Double 0
Scale / scale Double x: 1 y:
1
Uniform / uniform Boolean On
Skew X / skewx Double 0
Skew Y / skewy Double 0
Skew Order / Choice XY
skewOrder
XY
YX

Center / center Double x: 0.5


y: 0.5
Reset Center / Button Reset the transform center
resetTransformCenter
Interactive / Boolean On When check, modifying the transform will directly render the shape in
RotoTransformInteractive the viewer. When unchecked, modifications are applied when releasing
the mouse button.
Extra Matrix / Double x: 1 y: This matrix gets concatenated to the transform resulting from the pa-
extraMatrix 0 z: 0 rameter above.
w: 0 :
1 :0 :
0 :0 :
1
Reset Transform / Button Reset the transform to an identity
resetTransform

2.3.9 RotoPaint node

This documentation is for version 1.0 of RotoPaint (fr.inria.built-in.RotoPaint).

Description

RotoPaint is a vector based free-hand drawing node that helps for tasks such as rotoscoping, matting, etc. . .

190 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Inputs

Input Description Optional


Bg Yes
Bg2 Yes
Bg3 Yes
Bg4 Yes

Controls

Parameter / script Type Default Function


name
Opacity / opacity Double 1 Controls the opacity of the selected shape(s).
Color / color Color r: 1 g: The color of the shape. This parameter is used when the output compo-
1 b: 1 nents are set to RGBA.
Life Time / Choice Single
lifeTime Controls the life-time of the shape/stroke
All: All frames
Single: Only for the specified frame
From start: From the start of the sequence up to the specified frame
To end: From the specified frame to the end of the sequence
Custom: Use the Activated parameter animation to control the
life-time of the shape/stroke using keyframes

Frame / Integer 0 Use this to specify the frame when in mode Single/From start/To end
lifeTimeFrame
Feather / feather Double 1.5 Controls the distance of feather (in pixels) to add around the selected
shape(s)
Feather fall-off / Double 1 Controls the rate at which the feather is applied on the selected shape(s).
featherFallOff
Source / Choice background
sourceType Source color used for painting the stroke when the Reveal/Clone tools
are used.
foreground: The painted result at this point in the hierarchy.
background: The original image unpainted connected to bg.
background 2: The original image unpainted connected to bg1.
background 3: The original image unpainted connected to bg2.
background 4: The original image unpainted connected to bg3.
background 5: The original image unpainted connected to bg4.
background 6: The original image unpainted connected to bg5.
background 7: The original image unpainted connected to bg6.
background 8: The original image unpainted connected to bg7.
background 9: The original image unpainted connected to bg8.
background 10: The original image unpainted connected to bg9.

Translate / Double x: 0 y:
cloneTranslate 0
Rotate / Double 0
cloneRotate
Scale / cloneScale Double x: 1 y:
1
Continued on next page

2.3. Draw nodes 191


Natron Documentation, Release 3.0.0

Table 32 – continued from previous page


Parameter / script Type Default Function
name
Uniform / Boolean On
cloneUniform
Skew X / Double 0
cloneSkewx
Skew Y / Double 0
cloneSkewy
Skew Order / Choice XY
cloneSkewOrder
XY
YX

Center / Double x: 0.5


cloneCenter y: 0.5
Reset Center / Button Reset the clone transform center
resetCloneCenter
Reset Transform / Button Reset the clone transform to an identity
resetCloneTransform
Filter / Choice Cubic
cloneFilter Filtering algorithm - some filters may produce values outside of the
initial range (*) or modify the values even if there is no movement (+).
Impulse: (nearest neighbor / box) Use original values.
Bilinear: (tent / triangle) Bilinear interpolation between original
values.
Cubic: (cubic spline) Some smoothing.
Keys: (Catmull-Rom / Hermite spline) Some smoothing, plus minor
sharpening (*).
Simon: Some smoothing, plus medium sharpening (*).
Rifman: Some smoothing, plus significant sharpening (*).
Mitchell: Some smoothing, plus blurring to hide pixelation (*+).
Parzen: (cubic B-spline) Greatest smoothing of all filters (+).
Notch: Flat smoothing (which tends to hide moire’ patterns) (+).

Black Outside / Boolean On Fill the area outside the source image with black
blackOutside
Clone time offset / Integer 0 When the Clone tool is used, this determines depending on the time
timeOffset offset mode the source frame to clone. When in absolute mode, this is
the frame number of the source, when in relative mode, this is an offset
relative to the current frame.
Mode / Choice Relative
timeOffsetMode Time offset mode: when in absolute mode, this is the frame number of
the source, when in relative mode, this is an offset relative to the
current frame.
Relative
Absolute

Brush Size / Double 25 This is the diameter of the brush in pixels. Shift + drag on the viewer to
brushSize modify this value
Brush Spacing / Double 0.1 Spacing between stamps of the paint brush
brushSpacing
Brush Hardness / Double 0.2 Fall off of the brush effect from the center to the edge
brushHardness
Continued on next page

192 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 32 – continued from previous page


Parameter / script Type Default Function
name
Brush effect / Double 15 The strength of the effect
brushEffect
Opacity / Boolean On Alters the opacity of the paint brush proportionate to changes in pen
pressureOpacity pressure
Size / Boolean Off Alters the size of the paint brush proportionate to changes in pen pres-
pressureSize sure
Hardness / Boolean Off Alters the hardness of the paint brush proportionate to changes in pen
pressureHardness pressure
Build-up / buildUp Boolean Off When checked, the paint stroke builds up when painted over itself
Visible portion / Double start: 0 Defines the range of the stroke that should be visible: 0 is the start of
strokeVisiblePortion end: 1 the stroke and 1 the end.
Translate / Double x: 0 y:
translate 0
Rotate / rotate Double 0
Scale / scale Double x: 1 y:
1
Uniform / uniform Boolean On
Skew X / skewx Double 0
Skew Y / skewy Double 0
Skew Order / Choice XY
skewOrder
XY
YX

Center / center Double x: 0.5


y: 0.5
Reset Center / Button Reset the transform center
resetTransformCenter
Interactive / Boolean On When check, modifying the transform will directly render the shape in
RotoTransformInteractive the viewer. When unchecked, modifications are applied when releasing
the mouse button.
Extra Matrix / Double x: 1 y: This matrix gets concatenated to the transform resulting from the pa-
extraMatrix 0 z: 0 rameter above.
w: 0 :
1 :0 :
0 :0 :
1
Reset Transform / Button Reset the transform to an identity
resetTransform

2.3.10 SeGrain node

This documentation is for version 1.0 of SeGrain (net.sf.openfx.SeGrain).

Description

Adds synthetic grain.


Push “presets” to get predefined types of grain, these are the correct size for 2K scans.
You can also adjust the sliders to match a sample piece of grain. Find a sample with a rather constant background,
blur it to remove the grain, and use as input to this. View with a wipe in the viewer so you can make a match. It
helps to view and match each of the red, green, blue separately.
See also http://opticalenquiry.com/nuke/index.php?title=Integration#Matching_grain

2.3. Draw nodes 193


Natron Documentation, Release 3.0.0

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Seed / grainSeed Double 134 Change this value to make different instances of this operator produce
different noise.
Static Seed / Boolean Off When enabled, the seed is not combined with the frame number, and
staticSeed thus the effect is the same for all frames for a given seed number.
Presets / Choice Kodak
grainPresets 5248 Presets for common types of film.
Kodak 5248
Kodak 5279
Kodak FX214
Kodak GT5274
Kodak 5217
Kodak 5218
Other

All / Double 1 Global factor on grain size. Useful if working with scans which are not
grainSizeAll 2K (the preset sizes are computed for 2K scans).
Red / Double 3.3 Red grain size (in pixels).
grainSizeRed
Green / Double 2.9 Green grain size (in pixels).
grainSizeGreen
Blue / Double 2.5 Blue grain size (in pixels).
grainSizeBlue
Red / Double 0.6 Red grain irregularity.
grainIrregularityRed
Green / Double 0.6 Green grain irregularity.
grainIrregularityGreen
Blue / Double 0.6 Blue grain irregularity.
grainIrregularityBlue
Red / Double 0.42 Amount of red grain to add to a white pixel.
grainIntensityRed
Green / Double 0.46 Amount of green grain to add to a white pixel.
grainIntensityGreen
Blue / Double 0.85 Amount of blue grain to add to a white pixel.
grainIntensityBlue
Correlation / Double 0 This parameter specifies the apparent colorfulness of the grain. The
colorCorr value represents how closely the grain in each channel overlaps. This
means that negative color correlation values decrease the amount of
overlap, which increases the apparent color of the grain, while positive
values decrease its colorfulness.
Black / Color r: 0 g: Amount of grain to add everywhere.
grainBlack 0 b: 0
Minimum / Color r: 0 g: Minimum black level.
grainMinimum 0 b: 0
Continued on next page

194 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 33 – continued from previous page


Parameter / script Type Default Function
name
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.3.11 SeNoise node

This documentation is for version 1.0 of SeNoise (net.sf.openfx.SeNoise).

Description

Generate noise.

Inputs

Input Description Optional


Source Yes
Mask Yes

Controls

Parameter / script Type Default Function


name
Replace / replace Boolean Off Clear the selected channel(s) before drawing into them.
Noise Size / Double x: 350 Size of noise in pixels, corresponding to its lowest frequency.
noiseSize y: 350
Z0 / noiseZ Double 0 Z coordinate on the noise at frame=0. The noise pattern is different for
every integer value of Z, so this can be used as a random seed.
Z Slope / Double 0 Z is computed as Z = Z0 + frame * Z_slope. 0 means a constant noise,
noiseZSlope 1 means a different noise pattern at every frame.
Continued on next page

2.3. Draw nodes 195


Natron Documentation, Release 3.0.0

Table 34 – continued from previous page


Parameter / script Type Default Function
name
Noise Type / Choice FBM
noiseType Kind of noise.
Cell Noise (cell): Cell noise generates a field of constant colored cubes
based on the integer location. This is the same as the prman cellnoise
function. You may want to set xRotate and yRotate to 0 in the
Transform tab to get square cells.
Noise (noise): Noise is a random function that smoothly blends
between samples at integer locations. This is Ken Perlin’s original
noise function.
FBM (fbm): FBM (Fractal Brownian Motion) is a multi-frequency
noise function. The base frequency is the same as the “Noise” function.
The total number of frequencies is controlled by octaves. The
lacunarity is the spacing between the frequencies - a value of 2 means
each octave is twice the previous frequency. The gain controls how
much each frequency is scaled relative to the previous frequency.
Turbulence (turbulence): turbulence is a variant of fbm where the
absolute value of each noise term is taken. This gives a more billowy
appearance.
Voronoi (voronoi): Voronoi is a cellular noise pattern. It is a jittered
variant of cellnoise. The type parameter describes different variants of
the noise function. The jitter param controls how irregular the pattern
is (jitter = 0 is like ordinary cellnoise). The fbm* params can be used
to distort the noise field. When fbmScale is zero (the default), there is
no distortion. The remaining params are the same as for the fbm
function. NOTE: This does not necessarily return [0,1] value, because
it can return arbitrary distance.

Voronoi Type / Choice Cell


voronoiType Different variants of the Voronoi noise function.
Cell (cell)
Type 2 (type2)
Type 3 (type3)
Type 4 (type4)
Type 5 (type5)

Jitter / jitter Double 0.5 The jitter param controls how irregular the pattern is (jitter = 0 is like
ordinary cellnoise).
FBM Scale / Double 0 The fbm* params can be used to distort the noise field. When fbmScale
fbmScale is zero (the default), there is no distortion.
Octaves / Integer 6 The total number of frequencies is controlled by octaves.
fbmOctaves
Lacunarity / Double 2 The lacunarity is the spacing between the frequencies - a value of 2
fbmLacunarity means each octave is twice the previous frequency.
Gain / fbmGain Double 0.5 The gain controls how much each frequency is scaled relative to the
previous frequency.
Translate / Double x: 0 y: Translation along the x and y axes in pixels. Can also be adjusted by
transformTranslate 0 clicking and dragging the center handle in the Viewer.
Rotate / Double 0 Rotation angle in degrees around the Center. Can also be adjusted by
transformRotate clicking and dragging the rotation bar in the Viewer.
Scale / Double x: 1 y: Scale factor along the x and y axes. Can also be adjusted by clicking
transformScale 1 and dragging the outer circle or the diameter handles in the Viewer.
Continued on next page

196 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 34 – continued from previous page


Parameter / script Type Default Function
name
Uniform / Boolean Off Use the X scale for both directions
transformScaleUniform
Skew X / Double 0 Skew along the x axis. Can also be adjusted by clicking and dragging
transformSkewX the skew bar in the Viewer.
Skew Y / Double 0 Skew along the y axis.
transformSkewY
Skew Order / Choice XY
transformSkewOrder The order in which skew transforms are applied: X then Y, or Y then X.
XY
YX

Amount / Double 1 Amount of transform to apply. 0 means the transform is identity, 1


transformAmount means to apply the full transform.
Center / Double x: 0.5 Center of rotation and scale.
transformCenter y: 0.5
Reset Center / Button Reset the position of the center to the center of the input region of defi-
transformResetCenter nition
Interactive Update / Boolean On If checked, update the parameter values during interaction with the im-
transformInteractive age viewer, else update the values when pen is released.
X Rotate / XRotate Double 27 Rotation about the X axis in the 3D noise space (X,Y,Z). Noise artifacts
may appear if it is 0 or a multiple of 90.
Y Rotate / YRotate Double 37 Rotation about the Y axis in the 3D noise space (X,Y,Z). Noise artifacts
may appear if it is 0 or a multiple of 90.
Ramp Type / Choice None
rampType The type of interpolation used to generate the ramp
Linear (linear): Linear ramp.
PLinear (plinear): Perceptually linear ramp in Rec.709.
Ease-in (easein): Catmull-Rom spline, smooth start, linear end (a.k.a.
smooth0).
Ease-out (easeout): Catmull-Rom spline, linear start, smooth end
(a.k.a. smooth1).
Smooth (smooth): Traditional smoothstep ramp.
None (none): No color gradient.

Point 0 / Double x: 100


rampPoint0 y: 100
Color 0 / Color r: 0 g:
rampColor0 0 b: 0
a: 0
Point 1 / Double x: 100
rampPoint1 y: 200
Color 1 / Color r: 1 g:
rampColor1 1 b: 1
a: 1
Interactive Update / Boolean Off If checked, update the parameter values during interaction with the im-
rampInteractive age viewer, else update the values when pen is released.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.3. Draw nodes 197


Natron Documentation, Release 3.0.0

2.3.12 Text node

This documentation is for version 6.9 of Text (net.fxarena.openfx.Text).

Description

Advanced text generator node using Pango and Cairo.

Inputs

Input Description Optional


Source Yes

Controls

Parameter / script Type Default Function


name
Rotate / rotate Double 0 Rotation angle in degrees around the Center. Can also be adjusted by
clicking and dragging the rotation bar in the Viewer.
Scale / scale Double x: 1 y: Scale factor along the x and y axes. Can also be adjusted by clicking
1 and dragging the outer circle or the diameter handles in the Viewer.
Uniform / uniform Boolean Off Use the X scale for both directions
Skew X / skewX Double 0 Skew along the x axis. Can also be adjusted by clicking and dragging
the skew bar in the Viewer.
Skew Y / skewY Double 0 Skew along the y axis.
Skew Order / Choice XY
skewOrder The order in which skew transforms are applied: X then Y, or Y then X.
XY
YX

Amount / Double 1 Amount of transform to apply. 0 means the transform is identity, 1


transformAmount means to apply the full transform.
Center / center Double x: 0.5 Center of rotation and scale.
y: 0.5
Reset Center / Button Reset the position of the center to the center of the input region of defi-
resetCenter nition
Interactive Update / Boolean On If checked, update the parameter values during interaction with the im-
interactive age viewer, else update the values when pen is released.
Transform / Boolean On Use transform overlay for text position.
transform
Auto size / Boolean Off Set canvas sized based on text. This will disable word wrap, custom
autoSize canvas size and circle effect. Transform functions should also not be
used in combination with this feature.
Center Interact / Boolean Off Center the text in the interact.
centerInteract
Canvas size / canvas Integer x: 0 y: Set canvas size, default (0) is project format. Disabled if auto size is
0 active.
Continued on next page

198 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 35 – continued from previous page


Parameter / script Type Default Function
name
Markup / markup Boolean Off Pango Text Attribute Markup Language, https://developer.gnome.org/
pango/stable/PangoMarkupFormat.html . Colors don’t work if Cir-
cle/Arc effect is used.
File / file N/A Use text from filename.
Text / text String Enter The text that will be drawn.
text
Justify / justify Boolean Off Text justify.
Wrap / wrap Choice None
Word wrap. Disabled if auto size and/or custom position is enabled.
None
Word
Char
Word-Char

Horizontal align / Choice Left


align Horizontal text align. Custom position and auto size must be disabled
and word wrap must be enabled (any option except none) to get
anything else than left align.
Left
Right
Center

Vertical align / Choice Top


valign Vertical text align. Disabled if custom position and/or auto size is
enabled.
Top
Center
Bottom

Font family / name Choice The name of the font to be used.


Custom font / N/A Add custom font.
custom
Font size / size Integer 64 The height of the characters to render in pixels. Should not be used for
animation, see the scale param.
Font color / color Color r: 1 g: The fill color of the text to render.
1 b: 1
a: 1
Background Color / Color r: 0 g: The fill color of the background.
backgroundColor 0 b: 0
a: 0
Letter spacing / Integer 0 Spacing between letters. Disabled if markup is used.
letterSpace
Hint style / Choice Default
hintStyle This controls whether to fit font outlines to the pixel grid, and if so,
whether to optimize for fidelity or contrast.
Default
None
Slight
Medium
Full

Continued on next page

2.3. Draw nodes 199


Natron Documentation, Release 3.0.0

Table 35 – continued from previous page


Parameter / script Type Default Function
name
Hint metrics / Choice Default
hintMetrics This controls whether metrics are quantized to integer values in device
units.
Default
Off
On

Antialiasing / Choice Default


antialiasing This specifies the type of antialiasing to do when rendering text.
Default
None
Gray
Subpixel

Subpixel / Choice Default


subpixel The subpixel order specifies the order of color elements within each
pixel on the dets the antialiasing mode for the fontisplay device when
rendering with an antialiasing mode.
Default
RGB
BGR
VRGB
VBGR

Style / style Choice Normal


Font style.
Normal
Bold
Italic

Weight / weight Choice Normal


The weight field specifies how bold or light the font should be.
Thin
Ultra light
Light
Semi light
Book
Normal
Medium
Semi bold
Bold
Ultra bold
Heavy
Ultra heavy

Continued on next page

200 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 35 – continued from previous page


Parameter / script Type Default Function
name
Stretch / stretch Choice Normal
Width of the font relative to other designs within a family.
Ultra condensed
Extra condensed
Condensed
Semi condensed
Normal
Semi expanded
Expanded
Extra expanded
Ultra expanded

Stroke size / Double 0 Stroke size.


strokeSize
Stroke color / Color r: 1 g: The fill color of the stroke to render.
strokeColor 0 b: 0
a: 1
Stroke dash length / Integer 0 The length of the dashes.
strokeDash
Stroke dash pattern / Double x: 1 y: An array specifying alternate lengths of on and off stroke portions.
strokeDashPattern 0 z: 0
Circle radius / Double 0 Circle radius. Effect only works if auto size is disabled.
circleRadius
Circle Words / Integer 10 X times text in circle.
circleWords
Arc Radius / Double 100 Arc path radius (size of the path). The Arc effect is an experimental
arcRadius feature. Effect only works if auto size is disabled.
Arc Angle / Double 0 Arc Angle, set to 360 for a full circle. The Arc effect is an experimental
arcAngle feature. Effect only works if auto size is disabled.
Scroll X / scrollX Double 0 Scroll canvas X. Only works if Transform, AutoSize, Circle and Arc is
disabled/not used.
Scroll Y / scrollY Double 0 Scroll canvas Y. Only works if Transform, AutoSize, Circle and Arc is
disabled/not used.

2.4 Time nodes

The following sections contain documentation about every node in the Time group. Node groups are available by
clicking on buttons in the left toolbar, or by right-clicking the mouse in the Node Graph area.

2.4.1 AppendClip node

This documentation is for version 1.0 of AppendClip (net.sf.openfx.AppendClip).

Description

Append one clip to another.


See also: http://opticalenquiry.com/nuke/index.php?title=AppendClip

2.4. Time nodes 201


Natron Documentation, Release 3.0.0

Inputs

Input Description Optional


1 Yes
2 Yes
3 Yes
4 Yes

Controls

Parameter / script Type Default Function


name
Fade In / fadeIn Integer 0 Number of frames to fade in from black at the beginning of the first clip.
Fade Out / fadeOut Integer 0 Number of frames to fade out to black at the end of the last clip.
Cross Dissolve / Integer 0 Number of frames to cross-dissolve between clips.
crossDissolve
First Frame / Integer 1 Frame to start the first clip at.
firstFrame
Last Frame / Integer 0 Last frame of the assembled clip (read-only).
lastFrame
Update / Button Update lastFrame.
updateLastFrame

2.4.2 Deinterlace node

This documentation is for version 1.0 of Deinterlace (net.sf.openfx.Deinterlace).

Description

Deinterlace input stream.


The following deinterlacing algorithms are supported:
• Weave: This is what 100fps.com calls “do nothing”. Other names: “disabled” or “no deinterlacing”. Should
be used for PsF content.
• Blend: Blender (full resolution). Each line of the picture is created as the average of a line from the odd and
a line from the even half-pictures. This ignores the fact that they are supposed to be displayed at different
times.
• Bob: Doubler. Display each half-picture like a full picture, by simply displaying each line twice. Preserves
temporal resolution of interlaced video.
• Discard: Only display one of the half-pictures, discard the other. Other name: “single field”. Both temporal
and vertical spatial resolutions are halved. Can be used for slower computers or to give interlaced video
movie-like look with characteristic judder.
• Linear: Doubler. Bob with linear interpolation: instead of displaying each line twice, line 2 is created as the
average of line 1 and 3, etc.
• Mean: Blender (half resolution). Display a half-picture that is created as the average of the two original
half-pictures.

202 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

• Yadif: Interpolator (Yet Another DeInterlacing Filter) from MPlayer by Michael Niedermayer (http://www.
mplayerhq.hu). It checks pixels of previous, current and next frames to re-create the missed field by some
local adaptive method (edge-directed interpolation) and uses spatial check to prevent most artifacts.

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Field Order / Choice HD=upper,SD=lower
fieldOrder Interlaced field order
Lower field first (lower): Lower field first.
Upper field first (upper): Upper field first
HD=upper,SD=lower (auto): Automatic.

Parity / parity Choice Lower


Field to interpolate.
Lower (lower): Interpolate lower field.
Upper (upper): Interpolate upper field.

Yadif Processing Choice Temporal


Mode / yadifMode & Mode of checking fields
spatial Temporal & spatial (temporalspatial): Temporal and spatial
interlacing check (default).
Temporal only (temporal): Skips spatial interlacing check.

2.4.3 FrameBlend node

This documentation is for version 2.0 of FrameBlend (net.sf.openfx.FrameBlend).

Description

Blend frames of the input clip.


If a foreground matte is connected, only pixels with a negative or zero foreground value are taken into account, so
that the foreground is not mixed with the background.
The number of values used to compute each pixel can be output to the alpha channel.

2.4. Time nodes 203


Natron Documentation, Release 3.0.0

Inputs

Input Description Optional


Source No
Mask Yes
FgM Yes

Controls

Parameter / script Type Default Function


name
Frame Range / Integer first: -5 Range of frames which are to be blended together. Frame range is ab-
frameRange last: 0 solute if “absolute” is checked, else relative. The last frame is always
included, and then one frame out of frameInterval within this interval.
Absolute / Boolean Off Use an absolute frame range. If the frame range is not animated or is
absolute not an expression, then all output images will be the same.
Input Range / Button Set the frame range to the input range. This can be used, combined with
inputRange a foreground matte, to produce a clean background plate.
Frame Interval / Integer 1 Interval (in frames) between frames to process. 1 means to process every
frameInterval frame in the range. The first frame processed is the lower bound of the
range. Can be used to reduce processing time or memory usage.
Operation / Choice Average
operation The operation used to compute the output image.
Average (average): Output is the average of selected frames.
Min (min): Output is the minimum of selected frames.
Max (max): Output is the maximum of selected frames.
Sum (sum): Output is the sum/addition of selected frames.
Product (product): Output is the product/multiplication of selected
frames.
Over (over): Output is the ‘over’ composition of selected frames.

Decay / decay Double 0 Before applying the blending operation, frame t is multiplied by (1-
decay)^(last-t).
Output Count to Boolean Off Output image count at each pixel to alpha (input must have an alpha
Alpha / channel).
outputCount
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.4.4 FrameHold node

This documentation is for version 1.0 of FrameHold (net.sf.openfx.FrameHold).

Description

Hold a given frame for the input clip indefinitely, or use a subsample of the input frames and hold them for several
frames.

204 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
First Frame / Integer 0 Reference input frame (the frame to hold if increment is 0).
firstFrame
Increment / Integer 0 If increment is 0, only the “firstFrame” will be held. If it is positive,
increment every multiple of “increment” plus “firstFrame” will be held for “incre-
ment” frames afterwards (before if it is negative).

2.4.5 FrameRange node

This documentation is for version 1.0 of FrameRange (net.sf.openfx.FrameRange).

Description

Set the frame range for a clip. Useful in conjunction with AppendClipOFX.

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Frame Range / Integer first: 1 Output frame range.
frameRange last: 1
Reset / reset Button Resets the frame range to its initial value.
Before / before Choice Black
What the plugin should return for frames before the first frame.
Original (original): Return the original frame from the source, even if
it is out of the frame range.
Hold (hold): Return the nearest frame within the frame range.
Black (black): Return an empty frame.

Continued on next page

2.4. Time nodes 205


Natron Documentation, Release 3.0.0

Table 40 – continued from previous page


Parameter / script Type Default Function
name
After / after Choice Black
What the plugin should return for frames after the last frame.
Original (original): Return the original frame from the source, even if
it is out of the frame range.
Hold (hold): Return the nearest frame within the frame range.
Black (black): Return an empty frame.

2.4.6 NoTimeBlur node

This documentation is for version 1.0 of NoTimeBlur (net.sf.openfx.NoTimeBlurPlugin).

Description

Rounds fractional frame numbers to integers. This can be used to avoid computing non-integer frame numbers,
and to discretize motion (useful for animated objects). This plug-in is usually inserted upstream from TimeBlur.

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Rounding / Choice rint
rounding Rounding type/operation to use when blocking fractional frames.
rint: Round to the nearest integer value.
floor: Round dound to the nearest integer value.
ceil: Round up to the nearest integer value.
none: Do not round.

2.4.7 Retime node

This documentation is for version 1.0 of Retime (net.sf.openfx.Retime).

Description

Change the timing of the input clip.


See also: http://opticalenquiry.com/nuke/index.php?title=Retime

206 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Reverse input / Boolean Off Reverse the order of the input frames so that last one is first
reverseInput
Speed / speed Double 1 How much to change the speed of the input clip. To determine which
input frame is taken at a given time, the speed is integrated from the
beginning of the source frame range to the given time, so that speed can
be animated to locally accelerate (speed > 1), decelerate (speed < 1) or
reverse (speed < 0) the source clip. Note that this is is not the same as
the speed parameter of the Nuke Retime node, which just multiplies the
speed value at the current time by the time to obtain the source frame
number.
Warp / warp Parametric Curve that maps input range (after applying speed) to the output range.
A low positive slope slows down the input clip, and a negative slope
plays it backwards.
Filter / filter Choice Linear
How input images are combined to compute the output image.
None (none): Do not interpolate, ask for images with fractional time to
the input effect. Useful if the input effect can interpolate itself.
Nearest (nearest): Pick input image with nearest integer time.
Linear (linear): Blend the two nearest images with linear
interpolation.

2.4.8 SlitScan node

This documentation is for version 1.0 of SlitScan (net.sf.openfx.SlitScan).

Description

Apply per-pixel retiming: the time is computed for each pixel from the retime function, which can be either a
horizontal ramp, a vertical ramp, or a retime map.
The default retime function corresponds to a horizontal slit: it is a vertical ramp, which is a linear function of y,
which is 0 at the center of the bottom image line, and 1 at the center of the top image line. Optionally, a vertical
slit may be used (0 at the center of the leftmost image column, 1 at the center of the rightmost image column), or
the optional single-channel “Retime Map” input may also be used.
This plugin requires to render many frames on input, which may require a lot of memory.
Note that the results may be on higher quality if the video is slowed fown (e.g. using slowmoVideo)
The parameters are:

2.4. Time nodes 207


Natron Documentation, Release 3.0.0

• retime function (default = horizontal slit)


• offset for the retime function (default = 0)
• gain for the retime function (default = -10)
• absolute, a boolean indicating that the time map gives absolute frames rather than relative frames
• frame range, only used if the retime function is given by a retime map, because the actual frame range
cannot be guessed without inspecting the retime map content (default = -10..0). If “absolute” is checked,
this frame range is absolute, else it is relative to the current frame
• filter to handle time offsets that “fall between” frames. They can be mapped to the nearest frame, or inter-
polated between the nearest frames (corresponding to a shutter of 1 frame).
References:
• An Informal Catalogue of Slit-Scan Video Artworks and Research, Golan Levin, http://www.flong.com/
texts/lists/slit_scan/

Inputs

Input Description Optional


Source No
Retime Map Yes

Controls

Parameter / script Type Default Function


name
Retime Function / Choice Horizontal
retimeFunction Slit The function that gives, for each pixel in the image, its time. The
default retime function corresponds to a horizontal slit: it is a vertical
ramp (a linear function of y) which is 0 at the center of the bottom
image line, and 1 at the center of the top image line. Optionally, a
vertical slit may be used (0 at the center of the leftmost image column,
1 at the center of the rightmost image column), or the optional
single-channel “Retime Map” input may also be used.
Horizontal Slit (horizontalslit): A vertical ramp (a linear function of
y) which is 0 at the center of the bottom image line, and 1 at the center
of the top image line.
Vertical Slit (verticalslit): A horizontal ramp (alinear function of x)
which is 0 at the center of the leftmost image line, and 1 at the center of
the rightmost image line.
Retime Map (retimemap): The single-channel image from the
“Retime Map” input (zero if not connected).

Retime Offset / Double 0 Offset to the retime map.


retimeOffset
Retime Gain / Double -10 Gain applied to the retime map (after offset). With the horizontal or
retimeGain vertical slits, to get one line or column per frame you should use respec-
tively (height-1) or (width-1).
Absolute / Boolean Off If checked, the retime map contains absolute time, if not it is relative to
retimeAbsolute the current frame.
Max. Frame Range / Integer min: Maximum input frame range to fetch images from (may be relative or
frameRange -10 absolute, depending on the “absolute” parameter). Only used if the Re-
max: 0 time Map is used and connected.
Continued on next page

208 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 43 – continued from previous page


Parameter / script Type Default Function
name
Filter / filter Choice Nearest
How input images are combined to compute the output image.
Nearest (nearest): Pick input image with nearest integer time.
Linear (linear): Blend the two nearest images with linear
interpolation.

2.4.9 TimeBlur node

This documentation is for version 1.0 of TimeBlur (net.sf.openfx.TimeBlur).

Description

Blend frames of the input clip over the shutter range.

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Divisions / Integer 10 Number of time samples along the shutter time. The first frame is al-
division ways at the start of the shutter range, and the shutter range is divided by
divisions. The frame corresponding to the end of the shutter range is not
included. If divisions=4, Shutter=1, Shutter Offset=Centered, this leads
to blending the frames at t-0.5, t-0.25, t, t+0.25.
Shutter / shutter Double 0.5 Controls how long (in frames) the shutter should remain open.
Shutter Offset / Choice Start
shutterOffset Controls when the shutter should be open/closed. Ignored if there is no
motion blur (i.e. shutter=0 or motionBlur=0).
Centered (centered): Centers the shutter around the frame (from
t-shutter/2 to t+shutter/2)
Start (start): Open the shutter at the frame (from t to t+shutter)
End (end): Close the shutter at the frame (from t-shutter to t)
Custom (custom): Open the shutter at t+shuttercustomoffset (from
t+shuttercustomoffset to t+shuttercustomoffset+shutter)

Custom Offset / Double 0 When custom is selected, the shutter is open at current time plus this
shutterCustomOffset offset (in frames). Ignored if there is no motion blur (i.e. shutter=0 or
motionBlur=0).

2.4. Time nodes 209


Natron Documentation, Release 3.0.0

2.4.10 TimeOffset node

This documentation is for version 1.0 of TimeOffset (net.sf.openfx.timeOffset).

Description

Move the input clip forward or backward in time. This can also reverse the order of the input frames so that last
one is first.
See also http://opticalenquiry.com/nuke/index.php?title=TimeOffset

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Time Offset (Frames) Integer 0 Offset in frames (frame f from the input will be at f+offset)
/ timeOffset
Reverse Input / Boolean Off Reverse the order of the input frames so that last one is first
reverseInput
Clip to Input Range / Boolean Off Never ask for frames outside of the input frame range.
clipToInputRange

2.5 Channel nodes

The following sections contain documentation about every node in the Channel group. Node groups are available
by clicking on buttons in the left toolbar, or by right-clicking the mouse in the Node Graph area.

2.5.1 Shuffle node

This documentation is for version 3.0 of Shuffle (net.sf.openfx.ShufflePlugin).

Description

Rearrange channels from one or two inputs and/or convert to different bit depth or components. No colorspace
conversion is done (mapping is linear, even for 8-bit and 16-bit types).

210 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Inputs

Input Description Optional


B Yes
A Yes

Controls

Parameter / script Type Default Function


name
Output Layer / Choice Color.RGBA
outputLayer The layer where the result of the Shuffle operation is output.
Color.RGBA (uk.co.thefoundry.OfxImagePlaneColour)
DisparityLeft.Disparity
(uk.co.thefoundry.OfxImagePlaneStereoDisparityLeft)
DisparityRight.Disparity
(uk.co.thefoundry.OfxImagePlaneStereoDisparityRight)
Backward.Motion
(uk.co.thefoundry.OfxImagePlaneBackMotionVector)
Forward.Motion
(uk.co.thefoundry.OfxImagePlaneForwardMotionVector)

Output Components / Choice RGBA


outputComponents Select what types of components the plug-in should output, this has an
effect only when the Output Layer is set to the Color layer. This
controls what should be the components for the Color Layer: Alpha,
RGB or RGBA.
RGBA (rgba): Output RGBA components.
RGB (rgb): Output RGB components.
Alpha (alpha): Output Alpha component.

Output Premult / Choice Unpremultiplied


outputPremult Set the premultiplication metadata on the output. This does not modify
the data itself. The premultiplication metadata will flow downstream so
that further down effects know what kind of data to expect. By default
it should be set to Unpremultiplied and you should always provide the
Shuffle node unpremultiplied data. Providing alpha-premultiplied data
in input of the Shuffle may produce wrong results because of the
potential loss of the associated alpha channel.
Opaque
Premultiplied
Unpremultiplied

Continued on next page

2.5. Channel nodes 211


Natron Documentation, Release 3.0.0

Table 46 – continued from previous page


Parameter / script Type Default Function
name
R / outputR Choice B.Color.R
Input channel for the output red channel.
A.Color.R (A.uk.co.thefoundry.OfxImagePlaneColour.R): R
channel from input A
A.Color.G (A.uk.co.thefoundry.OfxImagePlaneColour.G): G
channel from input A
A.Color.B (A.uk.co.thefoundry.OfxImagePlaneColour.B): B
channel from input A
A.Color.A (A.uk.co.thefoundry.OfxImagePlaneColour.A): A
channel from input A
0: 0 constant channel
1: 1 constant channel
B.Color.R (B.uk.co.thefoundry.OfxImagePlaneColour.R): R
channel from input B
B.Color.G (B.uk.co.thefoundry.OfxImagePlaneColour.G): G
channel from input B
B.Color.B (B.uk.co.thefoundry.OfxImagePlaneColour.B): B channel
from input B
B.Color.A (B.uk.co.thefoundry.OfxImagePlaneColour.A): A
channel from input B

G / outputG Choice B.Color.G


Input channel for the output green channel.
A.Color.R (A.uk.co.thefoundry.OfxImagePlaneColour.R): R
channel from input A
A.Color.G (A.uk.co.thefoundry.OfxImagePlaneColour.G): G
channel from input A
A.Color.B (A.uk.co.thefoundry.OfxImagePlaneColour.B): B
channel from input A
A.Color.A (A.uk.co.thefoundry.OfxImagePlaneColour.A): A
channel from input A
0: 0 constant channel
1: 1 constant channel
B.Color.R (B.uk.co.thefoundry.OfxImagePlaneColour.R): R
channel from input B
B.Color.G (B.uk.co.thefoundry.OfxImagePlaneColour.G): G
channel from input B
B.Color.B (B.uk.co.thefoundry.OfxImagePlaneColour.B): B channel
from input B
B.Color.A (B.uk.co.thefoundry.OfxImagePlaneColour.A): A
channel from input B

Continued on next page

212 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 46 – continued from previous page


Parameter / script Type Default Function
name
B / outputB Choice B.Color.B
Input channel for the output blue channel.
A.Color.R (A.uk.co.thefoundry.OfxImagePlaneColour.R): R
channel from input A
A.Color.G (A.uk.co.thefoundry.OfxImagePlaneColour.G): G
channel from input A
A.Color.B (A.uk.co.thefoundry.OfxImagePlaneColour.B): B
channel from input A
A.Color.A (A.uk.co.thefoundry.OfxImagePlaneColour.A): A
channel from input A
0: 0 constant channel
1: 1 constant channel
B.Color.R (B.uk.co.thefoundry.OfxImagePlaneColour.R): R
channel from input B
B.Color.G (B.uk.co.thefoundry.OfxImagePlaneColour.G): G
channel from input B
B.Color.B (B.uk.co.thefoundry.OfxImagePlaneColour.B): B channel
from input B
B.Color.A (B.uk.co.thefoundry.OfxImagePlaneColour.A): A
channel from input B

A / outputA Choice B.Color.A


Input channel for the output alpha channel.
A.Color.R (A.uk.co.thefoundry.OfxImagePlaneColour.R): R
channel from input A
A.Color.G (A.uk.co.thefoundry.OfxImagePlaneColour.G): G
channel from input A
A.Color.B (A.uk.co.thefoundry.OfxImagePlaneColour.B): B
channel from input A
A.Color.A (A.uk.co.thefoundry.OfxImagePlaneColour.A): A
channel from input A
0: 0 constant channel
1: 1 constant channel
B.Color.R (B.uk.co.thefoundry.OfxImagePlaneColour.R): R
channel from input B
B.Color.G (B.uk.co.thefoundry.OfxImagePlaneColour.G): G
channel from input B
B.Color.B (B.uk.co.thefoundry.OfxImagePlaneColour.B): B channel
from input B
B.Color.A (B.uk.co.thefoundry.OfxImagePlaneColour.A): A
channel from input B

Set GBA From R / Boolean On If checked, setting the R output channel from the GUI to the R channel
setGBAFromR of an input also sets the G, B and A output channels from the same
plane.
Clip Info. . . / Button Display information about the inputs.
clipInfo

2.5. Channel nodes 213


Natron Documentation, Release 3.0.0

2.6 Color nodes

The following sections contain documentation about every node in the Color group. Node groups are available by
clicking on buttons in the left toolbar, or by right-clicking the mouse in the Node Graph area.

2.6.1 Add node

This documentation is for version 2.0 of Add (net.sf.openfx.AddPlugin).

Description

Add a constant to the selected channels.


See also: http://opticalenquiry.com/nuke/index.php?title=Add

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Value / value Color r: 0 g: Constant to add to the selected channels.
0 b: 0
a: 0
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.6.2 Clamp node

This documentation is for version 2.0 of Clamp (net.sf.openfx.Clamp).

Description

Clamp the values of the selected channels.

214 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

A special use case for the Clamp plugin is to generate a binary mask image (i.e. each pixel is either 0 or 1) by
thresholding an image. Let us say one wants all input pixels whose value is above or equal to some threshold
value to become 1, and all values below this threshold to become 0. Set the “Minimum” value to the threshold,
set the “Maximum” to any value strictly below the threshold (e.g. 0 if the threshold is positive), and check
“Enable MinClampTo” and “Enable MaxClampTo” while keeping the default values for “MinClampTo” (0.0) and
“MaxClampTop” (1.0). The result is a binary mask image. To create a non-binary mask, with softer edges, either
blur the output of Clamp, or use the Grade plugin instead, setting the “Black Point” and “White Point” to values
close to the threshold, and checking the “Clamp Black” and “Clamp White” options.
See also: http://opticalenquiry.com/nuke/index.php?title=Clamp

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Minimum / minimum Color r: 0 g: If enabled, all values that are lower than this number are set to this value,
0 b: 0 or to the minClampTo value if minClampTo is enabled.
a: 0
Enable Minimum / Boolean On Whether to clamp selected channels to a minimum value.
minimumEnable
Maximum / Color r: 1 g: If enabled, all values that are higher than this number are set to this
maximum 1 b: 1 value, or to the maxClampTo value if maxClampTo is enabled.
a: 1
Enable Maximum / Boolean On Whether to clamp selected channels to a maximum value.
maximumEnable
MinClampTo / Color r: 0 g: The value to which values below minimum are clamped when min-
minClampTo 0 b: 0 ClampTo is enabled. Setting this to a custom color helps visualizing
a: 0 the clamped areas or create graphic effects.
Enable MinClampTo / Boolean Off
minClampToEnable When enabled, all values below minimum are set to the minClampTo
value.
When disabled, all values below minimum are clamped to the
minimum value.

MaxClampTo / Color r: 1 g: The value to which values above maximum are clamped when max-
maxClampTo 1 b: 1 ClampTo is enabled. Setting this to a custom color helps visualizing the
a: 1 clamped areas or create graphic effects.
Enable MaxClampTo / Boolean Off
maxClampToEnable When enabled, all values above maximum are set to the maxClampTo
value.
When disabled, all values above maximum are clamped to the
maximum value.

(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.6. Color nodes 215


Natron Documentation, Release 3.0.0

2.6.3 ClipTest node

This documentation is for version 2.0 of ClipTest (net.sf.openfx.ClipTestPlugin).

Description

Draw zebra stripes on all pixels outside of the specified range.


See also: http://opticalenquiry.com/nuke/index.php?title=Evaluating_Color#The_ClipTest_node

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Lower / lower Color r: 0 g: Highlight pixels lower than this value.
0 b: 0
a: 0
Upper / upper Color r: 1 g: Highlight pixels higher than this value.
1 b: 1
a: 1
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.6.4 ColorCorrect node

This documentation is for version 2.1 of ColorCorrect (net.sf.openfx.ColorCorrectPlugin).

Description

Adjusts the saturation, contrast, gamma, gain and offset of an image.


The ranges of the shadows, midtones and highlights are controlled by the curves in the “Ranges” tab.
The Contrast adjustment works using the formula: Output = (Input/0.18)^Contrast*0.18.
See also:

216 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

• http://opticalenquiry.com/nuke/index.php?title=ColorCorrect
• https://compositormathematic.wordpress.com/2013/07/06/gamma-contrast/

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Saturation / Color r: 1 g:
MasterSaturation 1 b: 1
a: 1
Contrast / Color r: 1 g:
MasterContrast 1 b: 1
a: 1
Gamma / Color r: 1 g:
MasterGamma 1 b: 1
a: 1
Gain / MasterGain Color r: 1 g:
1 b: 1
a: 1
Offset / Color r: 0 g:
MasterOffset 0 b: 0
a: 0
Enable / Boolean On When checked, Shadows correction is enabled.
ShadowsEnable
Saturation / Color r: 1 g:
ShadowsSaturation 1 b: 1
a: 1
Contrast / Color r: 1 g:
ShadowsContrast 1 b: 1
a: 1
Gamma / Color r: 1 g:
ShadowsGamma 1 b: 1
a: 1
Gain / Color r: 1 g:
ShadowsGain 1 b: 1
a: 1
Offset / Color r: 0 g:
ShadowsOffset 0 b: 0
a: 0
Enable / Boolean On When checked, Midtones correction is enabled.
MidtonesEnable
Saturation / Color r: 1 g:
MidtonesSaturation 1 b: 1
a: 1
Contrast / Color r: 1 g:
MidtonesContrast 1 b: 1
a: 1
Continued on next page

2.6. Color nodes 217


Natron Documentation, Release 3.0.0

Table 50 – continued from previous page


Parameter / script Type Default Function
name
Gamma / Color r: 1 g:
MidtonesGamma 1 b: 1
a: 1
Gain / Color r: 1 g:
MidtonesGain 1 b: 1
a: 1
Offset / Color r: 0 g:
MidtonesOffset 0 b: 0
a: 0
Enable / Boolean On When checked, Highlights correction is enabled.
HighlightsEnable
Saturation / Color r: 1 g:
HighlightsSaturation 1 b: 1
a: 1
Contrast / Color r: 1 g:
HighlightsContrast 1 b: 1
a: 1
Gamma / Color r: 1 g:
HighlightsGamma 1 b: 1
a: 1
Gain / Color r: 1 g:
HighlightsGain 1 b: 1
a: 1
Offset / Color r: 0 g:
HighlightsOffset 0 b: 0
a: 0
Range / range Double min: 0 Expected range for input values. Within this range, a lookup table is
max: 1 used for faster computation.
Tone Ranges / ParametricShadow: Tone ranges lookup table
toneRanges High-
light:
Luminance Math / Choice Rec.
luminanceMath 709 Formula used to compute luminance from RGB values (used for
saturation adjustments).
Rec. 709 (rec709): Use Rec. 709 (0.2126r + 0.7152g + 0.0722b).
Rec. 2020 (rec2020): Use Rec. 2020 (0.2627r + 0.6780g + 0.0593b).
ACES AP0 (acesap0): Use ACES AP0 (0.3439664498r +
0.7281660966g + -0.0721325464b).
ACES AP1 (acesap1): Use ACES AP1 (0.2722287168r +
0.6740817658g + 0.0536895174b).
CCIR 601 (ccir601): Use CCIR 601 (0.2989r + 0.5866g + 0.1145b).
Average (average): Use average of r, g, b.
Max (max): Use max or r, g, b.

Clamp Black / Boolean On All colors below 0 on output are set to 0.


clampBlack
Clamp White / Boolean Off All colors above 1 on output are set to 1.
clampWhite
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Continued on next page

218 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 50 – continued from previous page


Parameter / script Type Default Function
name
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.6.5 ColorLookup node

This documentation is for version 1.1 of ColorLookup (net.sf.openfx.ColorLookupPlugin).

Description

Apply a parametric lookup curve to each channel separately.


The master curve is combined with the red, green and blue curves, but not with the alpha curve.
Different algorithms are available when applying the master curve, which are selectable using the “Master Curve
Mode” parameter.
Computation is faster for values that are within the given range, so it is recommended to set the Range parameter
if the input range goes beyond [0,1].
Note that you can easily do color remapping by setting Source and Target colors and clicking “Set RGB” or “Set
RGBA” below.
This will add control points on the curve to match the target from the source. You can add as many point as you
like.
This is very useful for matching color of one shot to another, or adding custom colors to a black and white ramp.
See also: http://opticalenquiry.com/nuke/index.php?title=ColorLookup

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Range / range Double min: 0 Expected range for input values. Within this range, a lookup table is
max: 1 used for faster computation.
Lookup Table / Parametricmaster: Colour lookup table. The master curve is combined with the red, green
lookupTable red: and blue curves, but not with the alpha curve.
green:
blue:
alpha:
Continued on next page

2.6. Color nodes 219


Natron Documentation, Release 3.0.0

Table 51 – continued from previous page


Parameter / script Type Default Function
name
Display / Choice Color
backgroundDisplay Ramp Display a color ramp or a histogram behind the curves.
None (none): No background display.
Color Ramp (colorramp): Display a color ramp.
RGB Histogram (histogram): Display the input histogram. Press
“Refresh Histogram” to recompute the histogram.

Update Histogram / Button Update the histogram from the input at current time.
updateHistogram
Source / source Color r: 0 g: Source color for newly added points (x coordinate on the curve).
0 b: 0
a: 0
Target / target Color r: 0 g: Target color for newly added points (y coordinate on the curve).
0 b: 0
a: 0
Set Master / Button Add a new control point mapping source to target to the master curve
setMaster (the relative luminance is computed using the ‘Luminance Math’ pa-
rameter).
Set RGB / setRGB Button Add a new control point mapping source to target to the red, green, and
blue curves.
Set RGBA / Button Add a new control point mapping source to target to the red, green, blue
setRGBA and alpha curves.
Set A / setA Button Add a new control point mapping source to target to the alpha curve
Continued on next page

220 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 51 – continued from previous page


Parameter / script Type Default Function
name
Master Curve Mode / Choice Standard
masterCurveMode Algorithm that will be used for the master curve. The curve mode will
have a strong effect on the appearance of colors, especially if you use a
contrast-enhancing curve (S-curve). This can be used for creative
effect, but can for some purposes or styles cause undesired color
changes depending which mode you choose. Choose a mode that suits
your specific taste and needs for the photo at hand. More information
can be found at http://rawpedia.rawtherapee.com/Exposure
Standard (standard): The marster curve is applied independently to
R, G and B channels. The drawback of this mode is that e.g.
considering an S-curve shape to get more contrast, an orange color
with a high value of red and green and a low value of blue will tend to
shift toward yellow, because the red and green component will be
raised, while the blue one will be lowered.
Weighted Standard (weightedstandard): You can use this method to
limit the color shift of the standard curve, even if it won’t suppress it
entirely.
Film-Like (filmlike): The film-like curve provides a result highly
similar to the standard type (that is strong saturation increase with
increased contrast), but the RGB-HSV hue is kept constant - that is,
there are less color-shift problems. This curve type was designed by
Adobe as a part of DNG and is thus the one used by Adobe Camera
Raw and Lightroom.
Luminance (luminance): Each component of the pixel is boosted by
the same factor so color and saturation is kept stable, that is the result is
very true to the original color. However contrast-increasing curves can
still lead to a slightly desaturated look. First the relative luminance
value of a pixel is obtained, then the curve is applied to that value, the
multiplication factor between before and after luminance is calculated,
and then this factor is applied to each R, G and B component. The
formula used to compute the luminance can be selected using the
“luminanceMath” parameter.

Luminance Math / Choice Rec.


luminanceMath 709 Formula used to compute luminance from RGB values (only used by
‘Set Master’).
Rec. 709 (rec709): Use Rec. 709 (0.2126r + 0.7152g + 0.0722b).
Rec. 2020 (rec2020): Use Rec. 2020 (0.2627r + 0.6780g + 0.0593b).
ACES AP0 (acesap0): Use ACES AP0 (0.3439664498r +
0.7281660966g + -0.0721325464b).
ACES AP1 (acesap1): Use ACES AP1 (0.2722287168r +
0.6740817658g + 0.0536895174b).
CCIR 601 (ccir601): Use CCIR 601 (0.2989r + 0.5866g + 0.1145b).
Average (average): Use average of r, g, b.
Max (max): Use max or r, g, b.

Clamp Black / Boolean Off All colors below 0 on output are set to 0.
clampBlack
Clamp White / Boolean Off All colors above 1 on output are set to 1.
clampWhite
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Continued on next page

2.6. Color nodes 221


Natron Documentation, Release 3.0.0

Table 51 – continued from previous page


Parameter / script Type Default Function
name
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.6.6 ColorMatrix node

This documentation is for version 2.0 of ColorMatrix (net.sf.openfx.ColorMatrixPlugin).

Description

Multiply the RGBA channels by an arbitrary 4x4 matrix.

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Output Red / Color r: 1 g: values for red output component.
outputRed 0 b: 0
a: 0
Output Green / Color r: 0 g: values for green output component.
outputGreen 1 b: 0
a: 0
Output Blue / Color r: 0 g: values for blue output component.
outputBlue 0 b: 1
a: 0
Output Alpha / Color r: 0 g: values for alpha output component.
outputAlpha 0 b: 0
a: 1
Clamp Black / Boolean On All colors below 0 on output are set to 0.
clampBlack
Clamp White / Boolean Off All colors above 1 on output are set to 1.
clampWhite
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

222 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

2.6.7 ColorSuppress node

This documentation is for version 1.0 of ColorSuppress (net.sf.openfx.ColorSuppress).

Description

Remove a color or tint from an image.


The effect can either modify the color and/or extract the amount of color and store it in the alpha channel. It can
be used to fix the despill or extract a mask from a color.

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Red / redSuppress Double 0 Fraction of red to suppress.
Green / Double 0 Fraction of green to suppress.
greenSuppress
Blue / Double 0 Fraction of blue to suppress.
blueSuppress
Cyan / Double 0 Fraction of cyan to suppress.
cyanSuppress
Magenta / Double 0 Fraction of magenta to suppress.
magentaSuppress
Yellow / Double 0 Fraction of yellow to suppress.
yellowSuppress
Output / Choice Image
outputMode Suppress mode.
Image (image): Suppress color from the image.
Alpha (alpha): Only store the suppress mask in the Alpha channel.
Image and Alpha (both): Suppress the color from the image and store
the suppress mask in the Alpha channel.

Preserve Luminance / Boolean Off Preserve image luminosity.


preserveLuma
Continued on next page

2.6. Color nodes 223


Natron Documentation, Release 3.0.0

Table 53 – continued from previous page


Parameter / script Type Default Function
name
Luminance Math / Choice Rec.
luminanceMath 709 Formula used to compute luminance from RGB values.
Rec. 709 (rec709): Use Rec. 709 (0.2126r + 0.7152g + 0.0722b).
Rec. 2020 (rec2020): Use Rec. 2020 (0.2627r + 0.6780g + 0.0593b).
ACES AP0 (acesap0): Use ACES AP0 (0.3439664498r +
0.7281660966g + -0.0721325464b).
ACES AP1 (acesap1): Use ACES AP1 (0.2722287168r +
0.6740817658g + 0.0536895174b).
CCIR 601 (ccir601): Use CCIR 601 (0.2989r + 0.5866g + 0.1145b).
Average (average): Use average of r, g, b.
Max (max): Use max or r, g, b.

(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.6.8 Equalize node

This documentation is for version 2.0 of Equalize (net.sf.cimg.CImgEqualize).

Description

Equalize histogram of pixel values.


To equalize image brightness only, use the HistEQCImg plugin.
Uses the ‘equalize’ function from the CImg library.
CImg is a free, open-source library distributed under the CeCILL-C (close to the GNU LGPL) or CeCILL (com-
patible with the GNU GPL) licenses. It can be used in commercial applications (see http://cimg.eu).

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
NbLevels / Integer 4096 Number of histogram levels used for the equalization.
nb_levels
Continued on next page

224 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 54 – continued from previous page


Parameter / script Type Default Function
name
Min Value / Double 0 Minimum pixel value considered for the histogram computation. All
min_value pixel values lower than min_value will not be counted.
Max Value / Double 1 Maximum pixel value considered for the histogram computation. All
max_value pixel values higher than max_value will not be counted.
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.6.9 Gamma node

This documentation is for version 2.0 of Gamma (net.sf.openfx.GammaPlugin).

Description

Apply gamma function to the selected channels. The actual function is pow(x,1/max(1e-8,value)).

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Value / value Color r: 1 g: Gamma value to apply to the selected channels.
1 b: 1
a: 1
Invert / invert Boolean Off Invert the gamma transform.
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.6.10 Grade node

2.6. Color nodes 225


Natron Documentation, Release 3.0.0

This documentation is for version 2.0 of Grade (net.sf.openfx.GradePlugin).

Description

Modify the tonal spread of an image from the white and black points.
This node can also be used to match colors of 2 images: The darkest and lightest points of the target image are
converted to black and white using the blackpoint and whitepoint values. These 2 values are then moved to new
values using the black(for dark point) and white(for white point). You can also apply multiply/offset/gamma for
other color fixing you may need.
Here is the formula used:
A = multiply * (white - black) / (whitepoint - blackpoint)
B = offset + black - A * blackpoint
output = pow(A * input + B, 1 / gamma).
A special use for Grade is to generate a mask image with soft edges by thresholding an input image. Set the
“Black Point” and “White Point” to values just below and just above the threshold, and check the “Clamp Black”
and “Clamp White” options. If a binary mask containing only 0 and 1 is preferred, the Clamp plugin can be used
instead.
See also: http://opticalenquiry.com/nuke/index.php?title=Grade and http://opticalenquiry.com/nuke/index.php?
title=Integration#Matching_color

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Black Point / Color r: 0 g: Set the color of the darkest pixels in the image.
blackPoint 0 b: 0
a: 0
White Point / Color r: 1 g: Set the color of the brightest pixels in the image.
whitePoint 1 b: 1
a: 1
Black / black Color r: 0 g: Colors corresponding to the blackpoint are set to this value.
0 b: 0
a: 0
White / white Color r: 1 g: Colors corresponding to the whitepoint are set to this value.
1 b: 1
a: 1
Multiply / multiply Color r: 1 g: Multiplies the result by this value.
1 b: 1
a: 1
Offset / offset Color r: 0 g: Adds this value to the result (this applies to black and white).
0 b: 0
a: 0
Continued on next page

226 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 56 – continued from previous page


Parameter / script Type Default Function
name
Gamma / gamma Color r: 1 g: Final gamma correction. Negative values are not affected by gamma.
1 b: 1
a: 1
Normalize / Button Normalize the image by setting the white point and black point from the
normalize minimum and maximum values of the input.
Reverse / reverse Boolean Off Apply the inverse correction. Useful to apply the inverse of a Grade
downstream: copy-and-paste or clone the upstream node, and invert the
downstream one.
Clamp Black / Boolean On All colors below 0 on output are set to 0.
clampBlack
Clamp White / Boolean Off All colors above 1 on output are set to 1.
clampWhite
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.6.11 HSIToRGB node

This documentation is for version 1.0 of HSIToRGB (net.sf.openfx.HSIToRGB).

Description

Convert from HSI color model (hue, saturation, intensity, as defined by Gonzalez and Woods in 1992) to linear
RGB. H is in degrees, S and I are in the same units as RGB. No gamma correction is applied to RGB after
conversion.
The HSI colour space (hue, saturation and intensity) attempts to produce a more intuitive representation of colour.
The I axis represents the luminance information. The H and S axes are polar coordinates on the plane orthogonal
to I. H is the angle, specified such that red is at zero, green at 120 degrees, and blue at 240 degrees. Hue thus
represents what humans implicitly understand as colour. S is the magnitude of the colour vector projected in the
plane orthogonal to I, and so represents the difference between pastel colours (low saturation) and vibrant colours
(high saturation). The main drawback of this colour space is that hue is undefined if saturation is zero, making
error propagation in transformations from the RGB colour space more complicated.
It should also be noted that, although the HSI colour space may be more intuitive, is not “perceptual”, in the
sense that small displacements of equal size in different parts of the colour space will be perceived by human
observers as changes of different magnitude. Attempts have been made to define such colour spaces: CIE-LAB
and CIE-LUV are two examples.

Inputs

Input Description Optional


Source No

Controls

2.6. Color nodes 227


Natron Documentation, Release 3.0.0

Parameter / script Type Default Function


name
Premult / premult Boolean Off Multiply the image by the alpha channel after processing. Use to get
premultiplied output images.

2.6.12 HSLToRGB node

This documentation is for version 1.0 of HSLToRGB (net.sf.openfx.HSLToRGB).

Description

Convert from HSL color model (hue, saturation, lightness, as defined by Joblove and Greenberg in 1978) to linear
RGB. H is in degrees, S and L are in the same units as RGB. No gamma correction is applied to RGB after
conversion.

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Premult / premult Boolean Off Multiply the image by the alpha channel after processing. Use to get
premultiplied output images.

2.6.13 HSVToRGB node

This documentation is for version 1.0 of HSVToRGB (net.sf.openfx.HSVToRGB).

Description

Convert from HSV color model (hue, saturation, value, as defined by A. R. Smith in 1978) to linear RGB. H is in
degrees, S and V are in the same units as RGB. No gamma correction is applied to RGB after conversion.

Inputs

Input Description Optional


Source No

Controls

228 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Parameter / script Type Default Function


name
Premult / premult Boolean Off Multiply the image by the alpha channel after processing. Use to get
premultiplied output images.

2.6.14 HSVTool node

This documentation is for version 1.0 of HSVTool (net.sf.openfx.HSVToolPlugin).

Description

Adjust hue, saturation and brightness, or perform color replacement.


Color replacement:
Set the srcColor and dstColor parameters. The range of the replacement is determined by the three groups of
parameters: Hue, Saturation and Brightness.
Color adjust:
Use the Rotation of the Hue parameter and the Adjustment of the Saturation and Lightness. The ranges and falloff
parameters allow for more complex adjustments.
Hue keyer:
Set the outputAlpha parameter (the last one) to All (the default is Hue), and use a viewer to display the Alpha
channel. First, set the Range parameter of the Hue parameter set and then work down the other Ranges parameters,
tuning with the range Falloff and Adjustment parameters.

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Src Analysis Boolean Off Enable the rectangle interact for analysis of Src and Dst colors and
Rectangle / ranges.
enableRectangle
Bottom Left / Double x: 0.25 Coordinates of the bottom left corner of the rectangle
bottomLeft y: 0.25
Size / size Double w: 0.5 Width and height of the rectangle
h: 0.5
Set Src from Button Set the Src color and ranges and the adjustments from the colors of the
Rectangle / source image within the selection rectangle and the Dst Color.
setSrcFromRectangle
Continued on next page

2.6. Color nodes 229


Natron Documentation, Release 3.0.0

Table 60 – continued from previous page


Parameter / script Type Default Function
name
Src Color / Color r: 0 g: Source color for replacement. Changing this parameter sets the hue,
srcColor 0 b: 0 saturation and brightness ranges for this color, and sets the fallofs to
default values.
Dst Color / Color r: 0 g: Destination color for replacement. Changing this parameter sets the hue
dstColor 0 b: 0 rotation, and saturation and brightness adjustments. Should be set after
Src Color.
Hue Range / Double :0 : Range of color hues that are modified (in degrees). Red is 0, green is
hueRange 360 120, blue is 240. The affected hue range is the smallest interval. For
example, if the range is (12, 348), then the selected range is red plus or
minus 12 degrees. Exception: if the range width is exactly 360, then all
hues are modified.
Hue Rotation / Double 0 Rotation of color hues (in degrees) within the range.
hueRotation
Hue Rotation Gain / Double 1 Factor to be applied to the rotation of color hues (in degrees) within the
hueRotationGain range. A value of 0 will set all values within range to a constant (com-
puted at the center of the range), and a value of 1 will add hueRotation
to all values within range.
Hue Range Rolloff / Double 0 Interval (in degrees) around Hue Range, where hue rotation decreases
hueRangeRolloff progressively to zero.
Saturation Range / Double : 0 : 1 Range of color saturations that are modified.
saturationRange
Saturation Adjustment Double 0 Adjustment of color saturations within the range. Saturation is clamped
/ to zero to avoid color inversions.
saturationAdjustment
Saturation Adjustment Double 1 Factor to be applied to the saturation adjustment within the range. A
Gain / value of 0 will set all values within range to a constant (computed at the
saturationAdjustmentGain center of the range), and a value of 1 will add saturationAdjustment to
all values within range.
Saturation Range Double 0 Interval (in degrees) around Saturation Range, where saturation rotation
Rolloff / decreases progressively to zero.
saturationRangeRolloff
Brightness Range / Double : 0 : 1 Range of color brightness that are modified.
brightnessRange
Brightness Double 0 Adjustment of color brightness within the range.
Adjustment /
brightnessAdjustment
Brightness Double 1 Factor to be applied to the brightness adjustment within the range. A
Adjustment Gain / value of 0 will set all values within range to a constant (computed at the
brightnessAdjustmentGain center of the range), and a value of 1 will add brightnessAdjustment to
all values within range.
Brightness Range Double 0 Interval (in degrees) around Brightness Range, where brightness rota-
Rolloff / tion decreases progressively to zero.
brightnessRangeRolloff
Clamp Black / Boolean On All colors below 0 on output are set to 0.
clampBlack
Clamp White / Boolean Off All colors above 1 on output are set to 1.
clampWhite
Continued on next page

230 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 60 – continued from previous page


Parameter / script Type Default Function
name
Output Alpha / Choice Hue
outputAlpha Output alpha channel. This can either be the source alpha, one of the
coefficients for hue, saturation, brightness, or a combination of those.
If it is not source alpha, the image on output are unpremultiplied, even
if input is premultiplied.
Source (source): Alpha channel is kept unmodified.
Hue (hue): Set Alpha to the Hue modification mask.
Saturation (saturation): Set Alpha to the Saturation modification
mask.
Brightness (brightness): Alpha is set to the Brightness mask.
min(Hue,Saturation) (minhuesaturation): Alpha is set to min(Hue
mask,Saturation mask)
min(Hue,Brightness) (minhuebrightness): Alpha is set to min(Hue
mask,Brightness mask)
min(Saturation,Brightness) (minsaturationbrightness): Alpha is set
to min(Saturation mask,Brightness mask)
min(all) (min): Alpha is set to min(Hue mask,Saturation
mask,Brightness mask)

(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.6.15 HistEQ node

This documentation is for version 2.0 of HistEQ (net.sf.cimg.CImgHistEQ).

Description

Equalize histogram of brightness values.


Uses the ‘equalize’ function from the CImg library on the ‘V’ channel of the HSV decomposition of the image.
CImg is a free, open-source library distributed under the CeCILL-C (close to the GNU LGPL) or CeCILL (com-
patible with the GNU GPL) licenses. It can be used in commercial applications (see http://cimg.eu).

Inputs

Input Description Optional


Source No
Mask Yes

Controls

2.6. Color nodes 231


Natron Documentation, Release 3.0.0

Parameter / script Type Default Function


name
NbLevels / Integer 4096 Number of histogram levels used for the equalization.
nb_levels
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.6.16 HueCorrect node

This documentation is for version 1.0 of HueCorrect (net.sf.openfx.HueCorrect).

Description

Apply hue-dependent color adjustments using lookup curves.


Hue and saturation are computed from the the source RGB values. Depending on the hue value, the various
adjustment values are computed, and then applied:
sat: saturation gain. This modification is applied last.
lum: luminance gain
red: red gain
green: green gain
blue: blue gain
r_sup: red suppression. If r > min(g,b), r = min(g,b) + r_sup * (r-min(g,b))
g_sup: green suppression
b_sup: blue suppression
sat_thrsh: if source saturation is below this value, do not apply the lum, red, green, blue gains. Above this value,
apply gain progressively.
The ‘Luminance Mix’ parameter may be used to restore partially or fully the original luminance (luminance is
computed using the ‘Luminance Math’ parameter).
See also: http://opticalenquiry.com/nuke/index.php?title=HueCorrect

Inputs

Input Description Optional


Source No
Mask Yes

Controls

232 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Parameter / script Type Default Function


name
Hue Curves / hue Parametricsat:
lum: Hue-dependent adjustment lookup curves:
red: sat: saturation gain. This modification is applied last.
green: lum: luminance gain
blue:
red: red gain
r_sup:
g_sup: green: green gain
b_sup: blue: blue gain
sat_thrsh: r_sup: red suppression. If r > min(g,b), r = min(g,b) + r_sup *
(r-min(g,b))
g_sup: green suppression
b_sup: blue suppression
sat_thrsh: if source saturation is below this value, do not apply the lum,
red, green, blue gains. Above this value, apply gain progressively.

Luminance Math / Choice Rec.


luminanceMath 709 Formula used to compute luminance from RGB values (only used by
‘Set Master’).
Rec. 709 (rec709): Use Rec. 709 (0.2126r + 0.7152g + 0.0722b).
Rec. 2020 (rec2020): Use Rec. 2020 (0.2627r + 0.6780g + 0.0593b).
ACES AP0 (acesap0): Use ACES AP0 (0.3439664498r +
0.7281660966g + -0.0721325464b).
ACES AP1 (acesap1): Use ACES AP1 (0.2722287168r +
0.6740817658g + 0.0536895174b).
CCIR 601 (ccir601): Use CCIR 601 (0.2989r + 0.5866g + 0.1145b).
Average (average): Use average of r, g, b.
Max (max): Use max or r, g, b.

Clamp Black / Boolean Off All colors below 0 on output are set to 0.
clampBlack
Clamp White / Boolean Off All colors above 1 on output are set to 1.
clampWhite
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Mix Luminance / Boolean On Mix luminance
mixLuminanceEnable
/ mixLuminance Double 0 Mix luminance
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.6.17 Invert node

This documentation is for version 2.0 of Invert (net.sf.openfx.Invert).

Description

Inverse the selected channels

2.6. Color nodes 233


Natron Documentation, Release 3.0.0

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.6.18 LabToRGB709 node

This documentation is for version 1.0 of LabToRGB709 (net.sf.openfx.LabToRGB709).

Description

Convert from L*a*b color model to RGB (Rec.709 with D65 illuminant). L*a*b coordinates are divided by 100
for better visualization.

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Premult / premult Boolean Off Multiply the image by the alpha channel after processing. Use to get
premultiplied output images.

2.6.19 LabToXYZ node

This documentation is for version 1.0 of LabToXYZ (net.sf.openfx.LabToXYZ).

Description

Convert from CIE L*a*b color space to CIE XYZ color space. L*a*b coordinates are divided by 100 for better
visualization.

234 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name

2.6.20 Log2Lin node

This documentation is for version 1.0 of Log2Lin (net.sf.openfx.Log2Lin).

Description

Convert between the logarithmic encoding used in Cineon files and linear encoding.
This plugin may be used to customize the conversion between the linear and the logarithmic space, using different
parameters than the Kodak-recommended settings.

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Operation / Choice Log to
operation Lin The operation to perform.
Log to Lin (log2lin): Convert the input from logarithmic to linear
colorspace (usually after a Read node).
Lin to Log (lin2log): Convert the input from linear to logarithmic
colorspace (usually before a Write node).

Black / black Color r: 95 g: Value in the Cineon file that corresponds to black.
95 b:
95
White / white Color r: 685 Value in the Cineon file that corresponds to white.
g: 685
b: 685
Gamma / gamma Color r: 0.6 The film response gamma value.
g: 0.6
b: 0.6
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Continued on next page

2.6. Color nodes 235


Natron Documentation, Release 3.0.0

Table 66 – continued from previous page


Parameter / script Type Default Function
name
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.6.21 Multiply node

This documentation is for version 2.0 of Multiply (net.sf.openfx.MultiplyPlugin).

Description

Multiply the selected channels by a constant.


See also: http://opticalenquiry.com/nuke/index.php?title=Multiply

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Value / value Color r: 1 g: Constant to multiply with the selected channels.
1 b: 1
a: 1
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.6.22 OCIOCDLTransform node

This documentation is for version 1.0 of OCIOCDLTransform (fr.inria.openfx.OCIOCDLTransform).

Description

Use OpenColorIO to apply an ASC Color Decision List (CDL) grade.

236 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

The formula applied for each channel is:


out = (in * slope + offset)^power.
The saturation is then applied to all channel using the standard rec709 saturation coefficients:
luma = 0.2126 * inR + 0.7152 * inG + 0.0722 * inB
outR = Clamp( luma + sat * (inR - luma) )
outG = Clamp( luma + sat * (inG - luma) )
outB = Clamp( luma + sat * (inB - luma) ).
The grade can be loaded from an ASC .ccc (Color Correction Collection) or .cc (Color Correction) file.

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Slope / slope Color r: 1 g: ASC CDL slope
1 b: 1
Offset / offset Color r: 0 g: ASC CDL offset
0 b: 0
Power / power Color r: 1 g: ASC CDL power
1 b: 1
Saturation / Double 1 ASC CDL saturation
saturation
Direction / Choice Forward
direction Transform direction.
Forward (forward)
Inverse (inverse)

Read from file / Boolean Off Load color correction information from the .cc or .ccc file.
readFromFile
File / file N/A Specify the src ASC CDL file, on disk, to use for this transform. This
can be either a .cc or .ccc file. If .ccc is specified, the cccid is required.
Reload / reload Button Reloads specified files
CCC Id / cccId String If the source file is an ASC CDL CCC (color correction collection), this
specifies the id to lookup. OpenColorIO::Contexts (envvars) are obeyed.
Export / export N/A Export this grade as a ColorCorrection XML file (.cc), which can be
loaded with the OCIOFileTransform, or using a FileTransform in an
OCIO config. The file must not already exist.
Continued on next page

2.6. Color nodes 237


Natron Documentation, Release 3.0.0

Table 68 – continued from previous page


Parameter / script Type Default Function
name
Enable GPU Render / Boolean Off
enableGPU Enable GPU-based OpenGL render.
Note that GPU render is not as accurate as CPU render, so this should
be enabled with care.
If the checkbox is checked but is not enabled (i.e. it cannot be
unchecked), GPU render can not be enabled or disabled from the
plugin and is probably part of the host options.
If the checkbox is not checked and is not enabled (i.e. it cannot be
checked), GPU render is not available on this host.

(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.6.23 OCIOColorSpace node

This documentation is for version 1.0 of OCIOColorSpace (fr.inria.openfx.OCIOColorSpace).

Description

ColorSpace transformation using OpenColorIO configuration file.

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
OCIO Config File / N/A OpenColorIO configuration file
ocioConfigFile
Input Colorspace / Choice Input data is taken to be in this colorspace.
ocioInputSpaceIndex
Output Colorspace / Choice Output data is taken to be in this colorspace.
ocioOutputSpaceIndex
Continued on next page

238 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 69 – continued from previous page


Parameter / script Type Default Function
name
key1 / key1 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value1 / value1 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key2 / key2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value2 / value2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key3 / key3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

Continued on next page

2.6. Color nodes 239


Natron Documentation, Release 3.0.0

Table 69 – continued from previous page


Parameter / script Type Default Function
name
value3 / value3 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key4 / key4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value4 / value4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

OCIO config help. . . / Button Help about the OpenColorIO configuration.


ocioHelp
Enable GPU Render / Boolean Off
enableGPU Enable GPU-based OpenGL render.
Note that GPU render is not as accurate as CPU render, so this should
be enabled with care.
If the checkbox is checked but is not enabled (i.e. it cannot be
unchecked), GPU render can not be enabled or disabled from the
plugin and is probably part of the host options.
If the checkbox is not checked and is not enabled (i.e. it cannot be
checked), GPU render is not available on this host.

(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.6.24 OCIODisplay node

This documentation is for version 1.0 of OCIODisplay (fr.inria.openfx.OCIODisplay).

240 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Description

Uses the OpenColorIO library to apply a colorspace conversion to an image sequence, so that it can be accurately
represented on a specific display device.

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
OCIO Config File / N/A OpenColorIO configuration file
ocioConfigFile
Input Colorspace / Choice Input data is taken to be in this colorspace.
ocioInputSpaceIndex
Display Device / Choice Specifies the display device that will be used to view the sequence.
displayIndex
View Transform / Choice Specifies the display transform to apply to the scene or image.
viewIndex
Gain / gain Double 1 Exposure adjustment, in scene-linear, prior to the display transform.
Gamma / gamma Double 1 Gamma correction applied after the display transform.
Channel View / Choice RGB
channelSelector Specify which channels to view (prior to the display transform).
RGB (rgb): Color.
R (r): Red.
G (g): Green.
B (b): Blue.
A (a): Alpha.
Luminance (l): Luma

Enable GPU Render / Boolean Off


enableGPU Enable GPU-based OpenGL render.
Note that GPU render is not as accurate as CPU render, so this should
be enabled with care.
If the checkbox is checked but is not enabled (i.e. it cannot be
unchecked), GPU render can not be enabled or disabled from the
plugin and is probably part of the host options.
If the checkbox is not checked and is not enabled (i.e. it cannot be
checked), GPU render is not available on this host.

key1 / key1 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

Continued on next page

2.6. Color nodes 241


Natron Documentation, Release 3.0.0

Table 70 – continued from previous page


Parameter / script Type Default Function
name
value1 / value1 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key2 / key2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value2 / value2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key3 / key3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value3 / value3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

Continued on next page

242 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 70 – continued from previous page


Parameter / script Type Default Function
name
key4 / key4 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value4 / value4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

OCIO config help. . . / Button Help about the OpenColorIO configuration.


ocioHelpDisplays
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.

2.6.25 OCIOFileTransform node

This documentation is for version 1.0 of OCIOFileTransform (fr.inria.openfx.OCIOFileTransform).

Description

Use OpenColorIO to apply a transform loaded from the given file.


This is usually a 1D or 3D LUT file, but can be other file-based transform, for example an ASC ColorCorrection
XML file.
Note that the file’s transform is applied with no special input/output colorspace handling - so if the file expects
log-encoded pixels, but you apply the node to a linear image, you will get incorrect results.
Supported formats:
.3dl (flame)
.3dl (lustre)
.ccc (ColorCorrectionCollection)
.cdl (ColorDecisionList)
.cc (ColorCorrection)
.csp (cinespace)
.lut (houdini)
.itx (iridas_itx)

2.6. Color nodes 243


Natron Documentation, Release 3.0.0

.cube (iridas_cube)
.look (iridas_look)
.mga (pandora_mga)
.m3d (pandora_m3d)
.spi1d (spi1d)
.spi3d (spi3d)
.spimtx (spimtx)
.cub (truelight)
.vf (nukevf)

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
File / file N/A
File containing the transform.

Supported formats:

.3dl (flame)
.3dl (lustre)
.ccc (ColorCorrectionCollection)
.cdl (ColorDecisionList)
.cc (ColorCorrection)
.csp (cinespace)
.lut (houdini)
.itx (iridas_itx)
.cube (iridas_cube)
.look (iridas_look)
.mga (pandora_mga)
.m3d (pandora_m3d)
.spi1d (spi1d)
.spi3d (spi3d)
.spimtx (spimtx)
.cub (truelight)
.vf (nukevf)

Reload / reload Button Reloads specified files


Continued on next page

244 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 71 – continued from previous page


Parameter / script Type Default Function
name
Direction / Choice Forward
direction Transform direction.
Forward (forward)
Inverse (inverse)

Interpolation / Choice Linear


interpolation Interpolation method. For files that are not LUTs (mtx, etc) this is
ignored.
Nearest (nearest)
Linear (linear)
Tetrahedral (tetrahedral)
Best (best)

Enable GPU Render / Boolean Off


enableGPU Enable GPU-based OpenGL render.
Note that GPU render is not as accurate as CPU render, so this should
be enabled with care.
If the checkbox is checked but is not enabled (i.e. it cannot be
unchecked), GPU render can not be enabled or disabled from the
plugin and is probably part of the host options.
If the checkbox is not checked and is not enabled (i.e. it cannot be
checked), GPU render is not available on this host.

(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.6.26 OCIOLogConvert node

This documentation is for version 1.0 of OCIOLogConvert (fr.inria.openfx.OCIOLogConvert).

Description

Use OpenColorIO to convert from SCENE_LINEAR to COMPOSITING_LOG (or back).

Inputs

Input Description Optional


Source No
Mask Yes

Controls

2.6. Color nodes 245


Natron Documentation, Release 3.0.0

Parameter / script Type Default Function


name
OCIO Config File / N/A OpenColorIO configuration file
ocioConfigFile
OCIO config help. . . / Button Help about the OpenColorIO configuration.
ocioHelp
Operation / Choice Log to
operation Lin Operation to perform. Lin is the SCENE_LINEAR profile and Log is
the COMPOSITING_LOG profile of the OCIO configuration.
Log to Lin (log2lin)
Lin to Log (lin2log)

Enable GPU Render / Boolean Off


enableGPU Enable GPU-based OpenGL render.
Note that GPU render is not as accurate as CPU render, so this should
be enabled with care.
If the checkbox is checked but is not enabled (i.e. it cannot be
unchecked), GPU render can not be enabled or disabled from the
plugin and is probably part of the host options.
If the checkbox is not checked and is not enabled (i.e. it cannot be
checked), GPU render is not available on this host.

(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.6.27 OCIOLookTransform node

This documentation is for version 1.0 of OCIOLookTransform (fr.inria.openfx.OCIOLookTransform).

Description

OpenColorIO LookTransform
A ‘look’ is a named color transform, intended to modify the look of an image in a ‘creative’ manner (as opposed
to a colorspace definion which tends to be technically/mathematically defined).
Examples of looks may be a neutral grade, to be applied to film scans prior to VFX work, or a per-shot DI grade
decided on by the director, to be applied just before the viewing transform.
OCIOLooks must be predefined in the OpenColorIO configuration before usage, and often reference per-
shot/sequence LUTs/CCs.
See the ‘Look Combination’ parameter for further syntax details.
See opencolorio.org for look configuration customization examples.

246 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
OCIO Config File / N/A OpenColorIO configuration file
ocioConfigFile
Input Colorspace / Choice Input data is taken to be in this colorspace.
ocioInputSpaceIndex
Single Look / Boolean On When checked, only the selected Look is applied. When not checked,
singleLook the Look Combination is applied.
Continued on next page

2.6. Color nodes 247


Natron Documentation, Release 3.0.0

Table 73 – continued from previous page


Parameter / script Type Default Function
name
Look / lookChoice Choice Filmic
- Very Look to apply (if “Single Look” is checked) or append to the Look
High Combination (when the “Append” button is pressed).
Con- Filmic - Very High Contrast
trast Filmic - High Contrast
Filmic - Medium High Contrast
Filmic - Base Contrast
Filmic - Medium Low Contrast
Filmic - Low Contrast
Filmic - Very Low Contrast
Agfa Agfacolor Futura 100
Agfa Agfacolor Futura 200
Agfa Agfacolor Futura 400
Agfa Agfacolor Futura II 100
Agfa Agfacolor Futura II 200
Agfa Agfacolor Futura II 400
Agfa Agfacolor HDC 100 plus
Agfa Agfacolor HDC 400 plus
Agfa Agfacolor HDC 200 plus
Agfa Agfacolor Optima II 100
Agfa Agfacolor Optima II 200
Agfa Agfacolor Ultra 050
Agfa Agfacolor Vista 100
Agfa Agfacolor Vista 200
Agfa Agfacolor Vista 400
Agfa Agfacolor Vista 800
Agfa Agfachrome CT Precisa 100
Agfa Agfachrome CT Precisa 200
Agfa Agfachrome RSX2 050
Agfa Agfachrome RSX2 100
Agfa Agfachrome RSX2 200
Agfa Advantix 100
Agfa Advantix 200
Agfa Advantix 400
Kodak Gold 100
Kodak Gold 200
Kodak Max Zoom 800
Kodak Portra 100T
Kodak Portra 160NC
Kodak Portra 160VC
Kodak Portra 800
Kodak Portra 400VC
Kodak Portra 400NC
Kodak Ektachrome 100 plus
Kodak Ektachrome 320T
Kodak Ektachrome 400X
Kodak Ektachrome 64
Kodak Ektachrome 64T
Kodak Ektachrome E100S
Kodak Ektachrome 100
248 Kodak Kodachrome 200 Chapter 2. Reference Guide
Kodak Kodachrome 25
Kodak Kodachrome 64
Natron Documentation, Release 3.0.0

Table 73 – continued from previous page


Parameter / script Type Default Function
name
Append Look to Button Append the selected Look to the Look Combination
Combination /
append
Look Combination / String
lookCombination Specify the look(s) to apply.
This may be empty, the name of a single look, or a combination of
looks using the ‘look syntax’.
If it is empty, no look is applied.
Look Syntax:
Multiple looks are combined with commas: ‘firstlook, secondlook’
Direction is specified with +/- prefixes: ‘+firstlook, -secondlook’
Missing look ‘fallbacks’ specified with |: ‘firstlook, -secondlook |
-secondlook’

Direction / Choice Forward


direction Transform direction.
Forward (forward)
Inverse (inverse)

Output Colorspace / Choice Output data is taken to be in this colorspace.


ocioOutputSpaceIndex
key1 / key1 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value1 / value1 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key2 / key2 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

Continued on next page

2.6. Color nodes 249


Natron Documentation, Release 3.0.0

Table 73 – continued from previous page


Parameter / script Type Default Function
name
value2 / value2 String
OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key3 / key3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value3 / value3 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

key4 / key4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

value4 / value4 String


OCIO Contexts allow you to apply specific LUTs or grades to different
shots.
Here you can specify the context name (key) and its corresponding
value.
Full details of how to set up contexts and add them to your config can
be found in the OpenColorIO documentation:
http://opencolorio.org/userguide/contexts.html

OCIO config help. . . / Button Help about the OpenColorIO configuration.


ocioHelpLooks
Continued on next page

250 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 73 – continued from previous page


Parameter / script Type Default Function
name
Enable GPU Render / Boolean Off
enableGPU Enable GPU-based OpenGL render.
Note that GPU render is not as accurate as CPU render, so this should
be enabled with care.
If the checkbox is checked but is not enabled (i.e. it cannot be
unchecked), GPU render can not be enabled or disabled from the
plugin and is probably part of the host options.
If the checkbox is not checked and is not enabled (i.e. it cannot be
checked), GPU render is not available on this host.

(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.6.28 PLogLin node

This documentation is for version 1.0 of PLogLin (net.sf.openfx.PLogLin).

Description

Convert between logarithmic and linear encoding.


This method uses the so-called “Josh Pines log conversion” or “printing density transform” (as described in http:
//lists.gnu.org/archive/html/openexr-devel/2005-03/msg00006.html), which is based on a single gray point, rather
than the white and black points in the Cineon formula (as implemented in the Log2Lin plugin).
Log to Lin conversion: xLin = linRef * pow( 10.0, (xLog * 1023. - logRef)*density/nGamma )
Lin to Log conversion: xLog = (logRef + log10(max( xLin, 1e-10 ) / linRef)*nGamma/density) / 1023.

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Operation / Choice Log to
operation Lin The operation to perform.
Log to Lin (log2lin): Convert the input from logarithmic to linear
colorspace (usually after a Read node).
Lin to Log (lin2log): Convert the input from linear to logarithmic
colorspace (usually before a Write node).

Continued on next page

2.6. Color nodes 251


Natron Documentation, Release 3.0.0

Table 74 – continued from previous page


Parameter / script Type Default Function
name
Linear Reference / Color r: 0.18 Linear value of the reference gray point. Set this to the linear value that
linRef g: 0.18 corresponds with the log reference value.
b: 0.18
Log Reference / Color r: 445 Log value of the reference gray point. Set this to the log value that
logRef g: 445 corresponds with the lin reference value.
b: 445
Negative Gamma / Color r: 0.6 The film response gamma value.
nGamma g: 0.6
b: 0.6
Density / density Color r: 0.002 Density per code value. The change in the negative gamma for each log
g: space code value. This is usually left to the default value of 0.002.
0.002
b:
0.002
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.6.29 Quantize node

This documentation is for version 1.0 of Quantize (net.sf.openfx.Quantize).

Description

Reduce the number of color levels per channel.


See also: http://opticalenquiry.com/nuke/index.php?title=Color_Operation

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Colors / colors Double 16 Number of color levels to use per channel.
Continued on next page

252 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 75 – continued from previous page


Parameter / script Type Default Function
name
Dither / dither Choice None
Dithering method to apply in order to avoid the banding effect.
None (none): No dithering (posterize), creating abrupt changes.
Ordered (Bayer 2x2) (bayer2x2): Ordered dithering using a 2x2
Bayer matrix.
Ordered (Bayer 4x4) (bayer4x4): Ordered dithering using a 4x4
Bayer matrix.
Ordered (Bayer 8x8) (bayer8x8): Ordered dithering using a 8x8
Bayer matrix.
Ordered (void-and-cluster 14x14) (vac14x14): Ordered dithering
using a void-and-cluster 14x14 matrix.
Ordered (void-and-cluster 25x25) (vac25x25): Ordered dithering
using a void-and-cluster 25x25 matrix.
Random (random): Random dithering.

Seed / seed Integer 2000 Random seed: change this if you want different instances to have differ-
ent dithering (only for random dithering).
Static Seed / Boolean Off When enabled, the dither pattern remains the same for every frame pro-
staticSeed ducing a constant dither effect.
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.6.30 RGB709ToLab node

This documentation is for version 1.0 of RGB709ToLab (net.sf.openfx.RGB709ToLab).

Description

Convert from RGB (Rec.709 with D65 illuminant) to L*a*b color model. L*a*b coordinates are divided by 100
for better visualization.

Inputs

Input Description Optional


Source No

Controls

2.6. Color nodes 253


Natron Documentation, Release 3.0.0

Parameter / script Type Default Function


name
Unpremult / Boolean Off Divide the image by the alpha channel before processing. Use if the
premult input images are premultiplied.

2.6.31 RGB709ToXYZ node

This documentation is for version 1.0 of RGB709ToXYZ (net.sf.openfx.RGB709ToXYZ).

Description

Convert from RGB (Rec.709 with D65 illuminant) to XYZ color model. X, Y and Z are in the same units as RGB.

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Unpremult / Boolean Off Divide the image by the alpha channel before processing. Use if the
premult input images are premultiplied.

2.6.32 RGBToHSI node

This documentation is for version 1.0 of RGBToHSI (net.sf.openfx.RGBToHSI).

Description

Convert from linear RGB to HSI color model (hue, saturation, intensity, as defined by Gonzalez and Woods in
1992). H is in degrees, S and I are in the same units as RGB. No gamma correction is applied to RGB before
conversion.
The HSI colour space (hue, saturation and intensity) attempts to produce a more intuitive representation of colour.
The I axis represents the luminance information. The H and S axes are polar coordinates on the plane orthogonal
to I. H is the angle, specified such that red is at zero, green at 120 degrees, and blue at 240 degrees. Hue thus
represents what humans implicitly understand as colour. S is the magnitude of the colour vector projected in the
plane orthogonal to I, and so represents the difference between pastel colours (low saturation) and vibrant colours
(high saturation). The main drawback of this colour space is that hue is undefined if saturation is zero, making
error propagation in transformations from the RGB colour space more complicated.
It should also be noted that, although the HSI colour space may be more intuitive, is not “perceptual”, in the
sense that small displacements of equal size in different parts of the colour space will be perceived by human
observers as changes of different magnitude. Attempts have been made to define such colour spaces: CIE-LAB
and CIE-LUV are two examples.

254 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Unpremult / Boolean Off Divide the image by the alpha channel before processing. Use if the
premult input images are premultiplied.

2.6.33 RGBToHSL node

This documentation is for version 1.0 of RGBToHSL (net.sf.openfx.RGBToHSL).

Description

Convert from RGB to HSL color model (hue, saturation, lightness, as defined by Joblove and Greenberg in 1978).
H is in degrees, S and L are in the same units as RGB. No gamma correction is applied to RGB before conversion.

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Unpremult / Boolean Off Divide the image by the alpha channel before processing. Use if the
premult input images are premultiplied.

2.6.34 RGBToHSV node

This documentation is for version 1.0 of RGBToHSV (net.sf.openfx.RGBToHSV).

Description

Convert from linear RGB to HSV color model (hue, saturation, value, as defined by A. R. Smith in 1978). H is in
degrees, S and V are in the same units as RGB. No gamma correction is applied to RGB before conversion.

2.6. Color nodes 255


Natron Documentation, Release 3.0.0

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Unpremult / Boolean Off Divide the image by the alpha channel before processing. Use if the
premult input images are premultiplied.

2.6.35 RGBToYCbCr601 node

This documentation is for version 1.0 of RGBToYCbCr601 (net.sf.openfx.RGBToYCbCr601).

Description

Convert from linear RGB to YCbCr color model (ITU.BT-601). RGB is gamma-compressed using the sRGB
Opto-Electronic Transfer Function (OETF) before conversion.

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Unpremult / Boolean Off Divide the image by the alpha channel before processing. Use if the
premult input images are premultiplied.

2.6.36 RGBToYCbCr709 node

This documentation is for version 1.0 of RGBToYCbCr709 (net.sf.openfx.RGBToYCbCr709).

Description

Convert from linear RGB to YCbCr color model (ITU.BT-709). RGB is gamma-compressed using the Rec.709
Opto-Electronic Transfer Function (OETF) before conversion.

Inputs

Input Description Optional


Source No

256 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Controls

Parameter / script Type Default Function


name
Unpremult / Boolean Off Divide the image by the alpha channel before processing. Use if the
premult input images are premultiplied.

2.6.37 RGBToYPbPr601 node

This documentation is for version 1.0 of RGBToYPbPr601 (net.sf.openfx.RGBToYPbPr601).

Description

Convert from RGB to YPbPr color model (ITU.BT-601). RGB is gamma-compressed using the sRGB Opto-
Electronic Transfer Function (OETF) before conversion.

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Unpremult / Boolean Off Divide the image by the alpha channel before processing. Use if the
premult input images are premultiplied.

2.6.38 RGBToYPbPr709 node

This documentation is for version 1.0 of RGBToYPbPr709 (net.sf.openfx.RGBToYPbPr709).

Description

Convert from RGB to YPbPr color model (ITU.BT-709). RGB is gamma-compressed using the Rec.709 Opto-
Electronic Transfer Function (OETF) before conversion.

Inputs

Input Description Optional


Source No

Controls

2.6. Color nodes 257


Natron Documentation, Release 3.0.0

Parameter / script Type Default Function


name
Unpremult / Boolean Off Divide the image by the alpha channel before processing. Use if the
premult input images are premultiplied.

2.6.39 RGBToYUV601 node

This documentation is for version 1.0 of RGBToYUV601 (net.sf.openfx.RGBToYUV601).

Description

Convert from RGB to YUV color model (ITU.BT-601). RGB is gamma-compressed using the sRGB Opto-
Electronic Transfer Function (OETF) before conversion.

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Unpremult / Boolean Off Divide the image by the alpha channel before processing. Use if the
premult input images are premultiplied.

2.6.40 RGBToYUV709 node

This documentation is for version 1.0 of RGBToYUV709 (net.sf.openfx.RGBToYUV709).

Description

Convert from RGB to YUV color model (ITU.BT-709). RGB is gamma-compressed using the Rec.709 Opto-
Electronic Transfer Function (OETF) before conversion.

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Unpremult / Boolean Off Divide the image by the alpha channel before processing. Use if the
premult input images are premultiplied.

258 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

2.6.41 Saturation node

This documentation is for version 2.0 of Saturation (net.sf.openfx.SaturationPlugin).

Description

Modify the color saturation of an image.


See also: http://opticalenquiry.com/nuke/index.php?title=Saturation

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Saturation / Double 1 Color saturation factor to apply. 0 produces grayscale.
saturation
Luminance Math / Choice Rec.
luminanceMath 709 Formula used to compute luminance from RGB values.
Rec. 709 (rec709): Use Rec. 709 (0.2126r + 0.7152g + 0.0722b).
Rec. 2020 (rec2020): Use Rec. 2020 (0.2627r + 0.6780g + 0.0593b).
ACES AP0 (acesap0): Use ACES AP0 (0.3439664498r +
0.7281660966g + -0.0721325464b).
ACES AP1 (acesap1): Use ACES AP1 (0.2722287168r +
0.6740817658g + 0.0536895174b).
CCIR 601 (ccir601): Use CCIR 601 (0.2989r + 0.5866g + 0.1145b).
Average (average): Use average of r, g, b.
Max (max): Use max or r, g, b.

Clamp Black / Boolean On All colors below 0 on output are set to 0.


clampBlack
Clamp White / Boolean Off All colors above 1 on output are set to 1.
clampWhite
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.6. Color nodes 259


Natron Documentation, Release 3.0.0

2.6.42 VectorToColor node

This documentation is for version 1.0 of VectorToColor (net.sf.openfx.VectorToColorPlugin).

Description

Convert x and y vector components to a color representation.


H (hue) gives the direction, S (saturation) is set to the amplitude/norm, and V is 1.The role of S and V can be
switched.Output can be RGB or HSV, with H in degrees.

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
X channel / Choice r
xChannel Selects the X component of vectors
r: R channel from input.
g: G channel from input.
b: B channel from input.
a: A channel from input.

Y channel / Choice g
yChannel Selects the Y component of vectors
r: R channel from input.
g: G channel from input.
b: B channel from input.
a: A channel from input.

Opposite / Boolean Off If checked, opposite of X and Y are used.


opposite
Inverse Y / Boolean On If checked, opposite of Y is used (on by default, because most optical
inverseY flow results are shown using a downward Y axis).
Modulate V / Boolean Off If checked, modulate V using the vector amplitude, instead of S.
modulateV
HSV Output / Boolean Off If checked, output is in the HSV color model.
hsvOutput

2.6.43 XYZToLab node

This documentation is for version 1.0 of XYZToLab (net.sf.openfx.XYZToLab).

260 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Description

Convert from CIE XYZ color space to CIE L*a*b color space. L*a*b coordinates are divided by 100 for better
visualization.

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name

2.6.44 XYZToRGB709 node

This documentation is for version 1.0 of XYZToRGB709 (net.sf.openfx.XYZToRGB709).

Description

Convert from XYZ color model to RGB (Rec.709 with D65 illuminant). X, Y and Z are in the same units as RGB.

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Premult / premult Boolean Off Multiply the image by the alpha channel after processing. Use to get
premultiplied output images.

2.6.45 XYZToxyY node

This documentation is for version 1.0 of XYZToxyY (net.sf.openfx.XYZToxyY).

Description

Convert from CIE XYZ color space to CIE xyY color space.

2.6. Color nodes 261


Natron Documentation, Release 3.0.0

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name

2.6.46 YCbCrToRGB601 node

This documentation is for version 1.0 of YCbCrToRGB601 (net.sf.openfx.YCbCrToRGB601).

Description

Convert from YCbCr color model (ITU.BT-601) to linear RGB. RGB is gamma-decompressed using the sRGB
Electro-Optical Transfer Function (EOTF) after conversion.

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Premult / premult Boolean Off Multiply the image by the alpha channel after processing. Use to get
premultiplied output images.

2.6.47 YCbCrToRGB709 node

This documentation is for version 1.0 of YCbCrToRGB709 (net.sf.openfx.YCbCrToRGB709).

Description

Convert from YCbCr color model (ITU.BT-709) to linear RGB. RGB is gamma-decompressed using the Rec.709
Electro-Optical Transfer Function (EOTF) after conversion.

Inputs

Input Description Optional


Source No

262 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Controls

Parameter / script Type Default Function


name
Premult / premult Boolean Off Multiply the image by the alpha channel after processing. Use to get
premultiplied output images.

2.6.48 YPbPrToRGB601 node

This documentation is for version 1.0 of YPbPrToRGB601 (net.sf.openfx.YPbPrToRGB601).

Description

Convert from YPbPr color model (ITU.BT-601) to RGB. RGB is gamma-decompressed using the sRGB Electro-
Optical Transfer Function (EOTF) after conversion.

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Premult / premult Boolean Off Multiply the image by the alpha channel after processing. Use to get
premultiplied output images.

2.6.49 YPbPrToRGB709 node

This documentation is for version 1.0 of YPbPrToRGB709 (net.sf.openfx.YPbPrToRGB709).

Description

Convert from YPbPr color model (ITU.BT-709) to RGB. RGB is gamma-decompressed using the Rec.709 Electro-
Optical Transfer Function (EOTF) after conversion.

Inputs

Input Description Optional


Source No

Controls

2.6. Color nodes 263


Natron Documentation, Release 3.0.0

Parameter / script Type Default Function


name
Premult / premult Boolean Off Multiply the image by the alpha channel after processing. Use to get
premultiplied output images.

2.6.50 YUVToRGB601 node

This documentation is for version 1.0 of YUVToRGB601 (net.sf.openfx.YUVToRGB601).

Description

Convert from YUV color model (ITU.BT-601) to RGB. RGB is gamma-decompressed using the sRGB Electro-
Optical Transfer Function (EOTF) after conversion.

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Premult / premult Boolean Off Multiply the image by the alpha channel after processing. Use to get
premultiplied output images.

2.6.51 YUVToRGB709 node

This documentation is for version 1.0 of YUVToRGB709 (net.sf.openfx.YUVToRGB709).

Description

Convert from YUV color model (ITU.BT-709) to RGB. RGB is gamma-decompressed using the Rec.709 Electro-
Optical Transfer Function (EOTF) after conversion.

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Premult / premult Boolean Off Multiply the image by the alpha channel after processing. Use to get
premultiplied output images.

264 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

2.6.52 xyYToXYZ node

This documentation is for version 1.0 of xyYToXYZ (net.sf.openfx.xyYToXYZ).

Description

Convert from CIE xyY color space to CIE XYZ color space.

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name

2.7 Filter nodes

The following sections contain documentation about every node in the Filter group. Node groups are available by
clicking on buttons in the left toolbar, or by right-clicking the mouse in the Node Graph area.

2.7.1 AngleBlur node

This documentation is for version 1.0 of AngleBlur (fr.inria.AngleBlur).

Description

The Angle Blur effect gives the illusion of motion in a given direction.

Inputs

Input Description Optional


Source No

Controls

Parameter / script Type Default Function


name
Convert to Group / Button Converts this node to a Group: the internal node-graph and the user
convertToGroup parameters will become editable
Angle / Double 0 Determines the direction into which the image is blurred. This is an
angleBlur_angle angle in degrees.
Distance / Double 0 Determines how much the image will be blurred
angleBlur_distance

2.7. Filter nodes 265


Natron Documentation, Release 3.0.0

2.7.2 Bloom node

This documentation is for version 4.0 of Bloom (net.sf.cimg.CImgBloom).

Description

Apply a Bloom filter (Kawase 2004) that sums multiple blur filters of different radii,
resulting in a larger but sharper glare than a simple blur.
It is similar to applying ‘Count’ separate Blur filters to the same input image with sizes ‘Size’, ‘Size’*‘Ratio’,
‘Size’*‘Ratio’^2, etc., and averaging the results.
The blur radii follow a geometric progression (of common ratio 2 in the original implementation, bloomRatio
in this implementation), and a total of bloomCount blur kernels are summed up (bloomCount=5 in the original
implementation, and the kernels are Gaussian).
The blur filter can be a quasi-Gaussian, a Gaussian, a box, a triangle or a quadratic filter.
Ref.: Masaki Kawase, “Practical Implementation of High Dynamic Range Rendering”, GDC 2004.
Uses the ‘vanvliet’ and ‘deriche’ functions from the CImg library.
CImg is a free, open-source library distributed under the CeCILL-C (close to the GNU LGPL) or CeCILL (com-
patible with the GNU GPL) licenses. It can be used in commercial applications (see http://cimg.eu).

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Size / size Double x: 0 y: Size (diameter) of the filter kernel, in pixel units (>=0). The standard
0 deviation of the corresponding Gaussian is size/2.4. No filter is applied
if size < 1.2.
Uniform / uniform Boolean Off Apply the same amount of blur on X and Y.
Ratio / bloomRatio Double 2 Ratio between successive kernel sizes of the bloom filter. A ratio of 1
gives no Bloom effect, just the original blur. A higher ratio gives a blur
kernel with a heavier tail. The original implementation uses a value of
2.
Count / Integer 5 Number of blur kernels of the bloom filter. The original implementation
bloomCount uses a value of 5. Higher values give a wider of heavier tail (the size of
the largest blur kernel is 2**bloomCount * size). A count of 1 is just
the original blur.
Continued on next page

266 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 100 – continued from previous page


Parameter / script Type Default Function
name
Border Conditions / Choice Nearest
boundary Specifies how pixel values are computed out of the image domain. This
mostly affects values at the boundary of the image. If the image
represents intensities, Nearest (Neumann) conditions should be used. If
the image represents gradients or derivatives, Black (Dirichlet)
boundary conditions should be used.
Black (black): Dirichlet boundary condition: pixel values out of the
image domain are zero.
Nearest (nearest): Neumann boundary condition: pixel values out of
the image domain are those of the closest pixel location in the image
domain.

Filter / filter Choice Quasi-


Gaussian Bluring filter. The quasi-Gaussian filter should be appropriate in most
cases. The Gaussian filter is more isotropic (its impulse response has
rotational symmetry), but slower.
Quasi-Gaussian (quasigaussian): Quasi-Gaussian filter (0-order
recursive Deriche filter, faster) - IIR (infinite support / impulsional
response).
Gaussian (gaussian): Gaussian filter (Van Vliet recursive Gaussian
filter, more isotropic, slower) - IIR (infinite support / impulsional
response).
Box (box): Box filter - FIR (finite support / impulsional response).
Triangle (triangle): Triangle/tent filter - FIR (finite support /
impulsional response).
Quadratic (quadratic): Quadratic filter - FIR (finite support /
impulsional response).

Expand RoD / Boolean Off Expand the source region of definition by 1.5*size (3.6*sigma).
expandRoD
Crop To Format / Boolean On If the source is inside the format and the effect extends it outside of the
cropToFormat format, crop it to avoid unnecessary calculations. To avoid unwanted
crops, only the borders that were inside of the format in the source clip
will be cropped.
Alpha Threshold / Double 0 If this value is non-zero, any alpha value below this is set to zero. This
alphaThreshold is only useful for IIR filters (Gaussian and Quasi-Gaussian), which may
produce alpha values very close to zero due to arithmetic precision. Re-
mind that, in theory, a black image with a single white pixel should pro-
duce non-zero values everywhere, but a few VFX tricks rely on the fact
that alpha should be zero far from the alpha edges (e.g. the premult-blur-
unpremult trick to fill holes)). A threshold value of 0.003 is reasonable,
and values between 0.001 and 0.01 are usually enough to remove these
artifacts.
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.7. Filter nodes 267


Natron Documentation, Release 3.0.0

2.7.3 Blur node

This documentation is for version 4.0 of Blur (net.sf.cimg.CImgBlur).

Description

Blur input stream or compute derivatives.


The blur filter can be a quasi-Gaussian, a Gaussian, a box, a triangle or a quadratic filter.
Note that the Gaussian filter [1] is implemented as an IIR (infinite impulse response) filter [2][3], whereas most
compositing software implement the Gaussian as a FIR (finite impulse response) filter by cropping the Gaussian
impulse response. Consequently, when blurring a white dot on black background, it produces very small values
very far away from the dot. The quasi-Gaussian filter is also IIR.
A very common process in compositing to expand colors on the edge of a matte is to use the premult-blur-
unpremult combination [4][5]. The very small values produced by the IIR Gaussian filter produce undesirable
artifacts after unpremult. For this process, the FIR quadratic filter (or the faster triangle or box filters) should be
preferred over the IIR Gaussian filter.
References:
[1] https://en.wikipedia.org/wiki/Gaussian_filter
[2] I.T. Young, L.J. van Vliet, M. van Ginkel, Recursive Gabor filtering. IEEE Trans. Sig. Proc., vol. 50, pp.
2799-2805, 2002. (this is an improvement over Young-Van Vliet, Sig. Proc. 44, 1995)
[3] B. Triggs and M. Sdika. Boundary conditions for Young-van Vliet recursive filtering. IEEE Trans. Signal
Processing, vol. 54, pp. 2365-2367, 2006.
[4] Nuke Expand Edges or how to get rid of outlines. http://franzbrandstaetter.com/?p=452
[5] Colour Smear for Nuke. http://richardfrazer.com/tools-tutorials/colour-smear-for-nuke/
Uses the ‘vanvliet’ and ‘deriche’ functions from the CImg library.
CImg is a free, open-source library distributed under the CeCILL-C (close to the GNU LGPL) or CeCILL (com-
patible with the GNU GPL) licenses. It can be used in commercial applications (see http://cimg.eu).
This plugin was compiled without debug, without assertions, with optimizations, with OpenMP 201107, using
Clang version 8.0.0 (tags/RELEASE_800/final).

Inputs

Input Description Optional


Source No
Mask Yes

Controls

268 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Parameter / script Type Default Function


name
Size / size Double x: 0 y: Size (diameter) of the filter kernel, in pixel units (>=0). The standard
0 deviation of the corresponding Gaussian is size/2.4. No filter is applied
if size < 1.2.
Uniform / uniform Boolean Off Apply the same amount of blur on X and Y.
X derivation order / Integer 0 Derivation order in the X direction. (orderX=0,orderY=0) does smooth-
orderX ing, (orderX=1,orderY=0) computes the X component of the image gra-
dient.
Y derivation order / Integer 0 Derivation order in the Y direction. (orderX=0,orderY=0) does smooth-
orderY ing, (orderX=0,orderY=1) computes the X component of the image gra-
dient.
Border Conditions / Choice Black
boundary Specifies how pixel values are computed out of the image domain. This
mostly affects values at the boundary of the image. If the image
represents intensities, Nearest (Neumann) conditions should be used. If
the image represents gradients or derivatives, Black (Dirichlet)
boundary conditions should be used.
Black (black): Dirichlet boundary condition: pixel values out of the
image domain are zero.
Nearest (nearest): Neumann boundary condition: pixel values out of
the image domain are those of the closest pixel location in the image
domain.

Filter / filter Choice Gaussian


Bluring filter. The quasi-Gaussian filter should be appropriate in most
cases. The Gaussian filter is more isotropic (its impulse response has
rotational symmetry), but slower.
Quasi-Gaussian (quasigaussian): Quasi-Gaussian filter (0-order
recursive Deriche filter, faster) - IIR (infinite support / impulsional
response).
Gaussian (gaussian): Gaussian filter (Van Vliet recursive Gaussian
filter, more isotropic, slower) - IIR (infinite support / impulsional
response).
Box (box): Box filter - FIR (finite support / impulsional response).
Triangle (triangle): Triangle/tent filter - FIR (finite support /
impulsional response).
Quadratic (quadratic): Quadratic filter - FIR (finite support /
impulsional response).

Expand RoD / Boolean On Expand the source region of definition by 1.5*size (3.6*sigma).
expandRoD
Crop To Format / Boolean On If the source is inside the format and the effect extends it outside of the
cropToFormat format, crop it to avoid unnecessary calculations. To avoid unwanted
crops, only the borders that were inside of the format in the source clip
will be cropped.
Alpha Threshold / Double 0 If this value is non-zero, any alpha value below this is set to zero. This
alphaThreshold is only useful for IIR filters (Gaussian and Quasi-Gaussian), which may
produce alpha values very close to zero due to arithmetic precision. Re-
mind that, in theory, a black image with a single white pixel should pro-
duce non-zero values everywhere, but a few VFX tricks rely on the fact
that alpha should be zero far from the alpha edges (e.g. the premult-blur-
unpremult trick to fill holes)). A threshold value of 0.003 is reasonable,
and values between 0.001 and 0.01 are usually enough to remove these
artifacts.
Continued on next page

2.7. Filter nodes 269


Natron Documentation, Release 3.0.0

Table 101 – continued from previous page


Parameter / script Type Default Function
name
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.7.4 ChromaBlur node

This documentation is for version 4.0 of ChromaBlur (net.sf.cimg.CImgChromaBlur).

Description

Blur the chrominance of an input stream. Smoothing is done on the x and y components in the CIE xyY color
space. Used to prep strongly compressed and chroma subsampled footage for keying.
The blur filter can be a quasi-Gaussian, a Gaussian, a box, a triangle or a quadratic filter.
Uses the ‘vanvliet’ and ‘deriche’ functions from the CImg library.
CImg is a free, open-source library distributed under the CeCILL-C (close to the GNU LGPL) or CeCILL (com-
patible with the GNU GPL) licenses. It can be used in commercial applications (see http://cimg.eu).

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Size / size Double x: 0 y: Size (diameter) of the filter kernel, in pixel units (>=0). The standard
0 deviation of the corresponding Gaussian is size/2.4. No filter is applied
if size < 1.2.
Uniform / uniform Boolean Off Apply the same amount of blur on X and Y.
Colorspace / Choice Rec.
colorspace 709 Formula used to compute chrominance from RGB values.
Rec. 709 (rec709): Use Rec. 709 with D65 illuminant.
Rec. 2020 (rec2020): Use Rec. 2020 with D65 illuminant.
ACES AP0 (acesap0): Use ACES AP0 with ACES (approx. D60)
illuminant.
ACES AP1 (acesap1): Use ACES AP1 with ACES (approx. D60)
illuminant.

Continued on next page

270 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 102 – continued from previous page


Parameter / script Type Default Function
name
Filter / filter Choice Gaussian
Bluring filter. The quasi-Gaussian filter should be appropriate in most
cases. The Gaussian filter is more isotropic (its impulse response has
rotational symmetry), but slower.
Quasi-Gaussian (quasigaussian): Quasi-Gaussian filter (0-order
recursive Deriche filter, faster) - IIR (infinite support / impulsional
response).
Gaussian (gaussian): Gaussian filter (Van Vliet recursive Gaussian
filter, more isotropic, slower) - IIR (infinite support / impulsional
response).
Box (box): Box filter - FIR (finite support / impulsional response).
Triangle (triangle): Triangle/tent filter - FIR (finite support /
impulsional response).
Quadratic (quadratic): Quadratic filter - FIR (finite support /
impulsional response).

(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.7.5 DenoiseSharpen node

This documentation is for version 1.0 of DenoiseSharpen (net.sf.openfx.DenoiseSharpen).

Description

Denoise and/or sharpen images using wavelet-based algorithms.

Description

This plugin allows the separate denoising of image channels in multiple color spaces using wavelets, using the
BayesShrink algorithm, and can also sharpen the image details.
Noise levels for each channel may be either set manually, or analyzed from the image data in each wavelet subband
using the MAD (median absolute deviation) estimator. Noise analysis is based on the assumption that the noise
is Gaussian and additive (it is not intensity-dependent). If there is speckle or salt-and-pepper noise in the images,
the Median or SmoothPatchBased filters may be more appropriate. The color model specifies the channels and the
transforms used. Noise levels have to be re-adjusted or re-analyzed when changing the color model.

Basic Usage

The input image should be in linear RGB.


For most footage, the effect works best by keeping the default Y’CbCr color model. The color models are made
to work with Rec.709 data, but DenoiseSharpen will still work if the input is in another colorspace, as long as the
input is linear RGB:
• The Y’CbCr color model uses the Rec.709 opto-electronic transfer function to convert from RGB to R’G’B’
and the the Rec.709 primaries to convert from R’G’B’ to Y’CbCr.
• The L * a * b color model uses the Rec.709 RGB primaries to convert from RGB to L * a * b.

2.7. Filter nodes 271


Natron Documentation, Release 3.0.0

• The R’G’B’ color model uses the Rec.709 opto-electronic transfer function to convert from RGB to R’G’B’.
• The RGB color model (linear) makes no assumption about the RGB color space, and works directly on the
RGB components, assuming additive noise. This is the only option if the noisy source contains negative
values. If, say, the noise is known to be multiplicative, one can convert the images to Log before denoising,
use this option, and convert back to linear after denoising.
• The Alpha channel, if processed, is always considered to be linear.
The simplest way to use this plugin is to leave the noise analysis area to the whole image, and click “Analyze
Noise Levels”. Once the analysis is done, “Lock Noise Analysis” is checked in order to avoid modifying the
essential parameters by mistake.
If the image has many textured areas, it may be preferable to select an analysis area with flat colors, free from any
details, shadows or highlights, to avoid considering texture as noise. The AnalysisMask input can be used to mask
the analysis, if the rectangular area is not appropriate. Any non-zero pixels in the mask are taken into account.
A good option for the AnalysisMask would be to take the inverse of the output of an edge detector and clamp it
correctly so that all pixels near the edges have a value of zero..
If the sequence to be denoised does not have enough flat areas, you can also connect a reference footage with the
same kind of noise to the AnalysisSource input: that source will be used for the analysis only. If no source with
flat areas is available, and noise analysis can only be performed on areas which also contain details, it is often
preferable to disable very low, low, and sometimes medium frequencies in the “Frequency Tuning” parameters
group, or at least to lower their gain, since they may be misestimated by the noise analysis process. If the noise
is IID (independent and identically distributed), such as digital sensor noise, only “Denoise High Frequencies”
should be checked. If the noise has some grain (i.e. it commes from lossy compression of noisy images by a
camera, or it is scanned film), then you may want to enable medium frequencies as well. If low and very low
frequencies are enabled, but the analysis area is not a flat zone, the signal itself (i.e. the noise-free image) could
be considered as noise, and the result may exhibit low contrast and blur.
To check what details have been kept after denoising, you can raise the Sharpen Amount to something like 10,
and then adjust the Noise Level Gain to get the desired denoising amount, until no noise is left and only image
details remain in the sharpened image. You can then reset the Sharpen Amount to zero, unless you actually want
to enhance the contrast of your denoised footage.
You can also check what was actually removed from the original image by selecting the “Noise” Output mode
(instead of “Result”). If too many image details are visible in the noise, noise parameters may need to be tuned.
This plugin was compiled with OpenMP support.

Inputs

Input Description Op-


tional
Source The footage to be denoised. If nothing is connected to the AnalysisSource input, this is also No
used for noise analysis.
Mask An optional image to use as a mask. By default, the effect is limited to the non-black areas of Yes
the mask.
Anal- An optional noise source. If connected, this is used instead of the Source input for the noise Yes
ysis- analysis. This is used to analyse noise from some footage by apply it on another footage, in
Source case the footage to be denoised does not have enough flat areas.
Anal- An optional mask for the analysis area. This mask is intersected with the Analysis Rectangle. Yes
ysis- Non-zero pixels are taken into account in the noise analysis phase.
Mask

Controls

272 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Parameter / script Type Default Function


name
Output / Choice Result
outputMode Select which image is output when analysis is locked. When analysis is
not locked, the effect does nothing (the output is the source image).
Result (result): The result of denoising and sharpening the Source
image.
Noise (noise): An image containing what would be added to the image
to denoise it. If ‘Denoise Amount’ is zero, this image should be black.
Only noise should be visible in this image. If you can see a lot of
picture detail in the noise output, it means the current settings are
denoising too hard and remove too much of the image, which leads to a
smoothed result. Try to lower the noise levels or the noise level gain.
Sharpen (sharpen): An image containing what would be added to the
image to sharpen it. If ‘Sharpen Amount’ is zero, this image should be
black. Only image details should be visible in this image. If you can
see a lot of noise in the sharpen output, it means the current settings are
denoising not enough, which leads to a noisy result. Try to raise the
noise levels or the noise level gain.

Color Model / Choice Y’CbCr(A)


colorModel The colorspace where denoising is performed. These colorspaces
assume that input and output use the Rec.709/sRGB chromaticities and
the D65 illuminant, but should tolerate other input colorspaces (the
output colorspace will always be the same as the input colorspace).
Noise levels are reset when the color model is changed.
Y’CbCr(A) (ycbcr): The YCbCr color model has one luminance
channel (Y) which contains most of the detail information of an image
(such as brightness and contrast) and two chroma channels (Cb =
blueness, Cr = reddness) that hold the color information. Note that this
choice drastically affects the result. Uses the Rec.709 opto-electronic
transfer function to convert from RGB to R’G’B’ and the the Rec.709
primaries to convert from R’G’B’ to Y’CbCr.
CIE L*a*b(A) (cielab): CIE L*a*b* is a color model in which
chrominance is separated from lightness and color distances are
perceptually uniform. Note that this choice drastically affects the
result. Uses the Rec.709 primaries to convert from RGB to L*a*b.
R’G’B’(A) (gammargb): The R’G’B’ color model (gamma-corrected
RGB) separates an image into channels of red, green, and blue. Note
that this choice drastically affects the result. Uses the Rec.709
opto-electronic transfer function to convert from RGB to R’G’B’.
RGB(A) (linearrgb): The Linear RGB color model processes the raw
linear components. Usually a bad choice, except when denoising
non-color data (e.g. depth or motion vectors). No assumption is made
about the RGB color space.

Lock Analysis and Boolean Off Lock all noise analysis parameters and apply denoising. When the anal-
Apply / ysis is not locked, the source image is output.
analysisLock
Bottom Left / Double x: 0.1 Coordinates of the bottom left corner of the analysis rectangle. This
bottomLeft y: 0.1 rectangle is intersected with the AnalysisMask input, if connected.
Size / size Double w: 0.8 Width and height of the analysis rectangle. This rectangle is intersected
h: 0.8 with the AnalysisMask input, if connected.
Continued on next page

2.7. Filter nodes 273


Natron Documentation, Release 3.0.0

Table 103 – continued from previous page


Parameter / script Type Default Function
name
B3 Spline Boolean On For wavelet decomposition, use a 5x5 filter based on B3 spline inter-
Interpolation / polation rather than a 3x3 Lagrange linear filter. Noise levels are reset
useB3Spline when this setting is changed. The influence of this parameter is minimal,
and it should not be changed.
Analysis Frame / Integer -1 The frame number where the noise levels were analyzed.
analysisFrame
Analyze Noise Levels Button Computes the noise levels from the current frame and current color
/ model. To use the same settings for the whole sequence, analyze a frame
analyzeNoiseLevels that is representative of the sequence. If a mask is set, it is used to com-
pute the noise levels from areas where the mask is non-zero. If there
are keyframes on the noise level parameters, this sets a keyframe at the
current frame. The noise levels can then be fine-tuned.
Y Level (High) / Double 0 Adjusts the noise variance of the selected channel for the given noise
ylrNoiseLevelHigh frequency. May be estimated from image data by pressing the “Analyze
Noise” button.
Cb Level (High) / Double 0 Adjusts the noise variance of the selected channel for the given noise
cbagNoiseLevelHigh frequency. May be estimated from image data by pressing the “Analyze
Noise” button.
Cr Level (High) / Double 0 Adjusts the noise variance of the selected channel for the given noise
crbbNoiseLevelHigh frequency. May be estimated from image data by pressing the “Analyze
Noise” button.
Alpha Level (High) / Double 0 Adjusts the noise variance of the selected channel for the given noise
alphaNoiseLevelHigh frequency. May be estimated from image data by pressing the “Analyze
Noise” button.
Y Level (Medium) / Double 0 Adjusts the noise variance of the selected channel for the given noise
ylrNoiseLevelMedium frequency. May be estimated from image data by pressing the “Analyze
Noise” button.
Cb Level (Medium) / Double 0 Adjusts the noise variance of the selected channel for the given noise
cbagNoiseLevelMedium frequency. May be estimated from image data by pressing the “Analyze
Noise” button.
Cr Level (Medium) / Double 0 Adjusts the noise variance of the selected channel for the given noise
crbbNoiseLevelMedium frequency. May be estimated from image data by pressing the “Analyze
Noise” button.
Alpha Level Double 0 Adjusts the noise variance of the selected channel for the given noise
(Medium) / frequency. May be estimated from image data by pressing the “Analyze
alphaNoiseLevelMedium Noise” button.
Y Level (Low) / Double 0 Adjusts the noise variance of the selected channel for the given noise
ylrNoiseLevelLow frequency. May be estimated from image data by pressing the “Analyze
Noise” button.
Cb Level (Low) / Double 0 Adjusts the noise variance of the selected channel for the given noise
cbagNoiseLevelLow frequency. May be estimated from image data by pressing the “Analyze
Noise” button.
Cr Level (Low) / Double 0 Adjusts the noise variance of the selected channel for the given noise
crbbNoiseLevelLow frequency. May be estimated from image data by pressing the “Analyze
Noise” button.
Alpha Level (Low) / Double 0 Adjusts the noise variance of the selected channel for the given noise
alphaNoiseLevelLow frequency. May be estimated from image data by pressing the “Analyze
Noise” button.
Y Level (Very Low) / Double 0 Adjusts the noise variance of the selected channel for the given noise
ylrNoiseLevelVeryLow frequency. May be estimated from image data by pressing the “Analyze
Noise” button.
Cb Level (Very Low) / Double 0 Adjusts the noise variance of the selected channel for the given noise
cbagNoiseLevelVeryLow frequency. May be estimated from image data by pressing the “Analyze
Noise” button.
Continued on next page

274 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 103 – continued from previous page


Parameter / script Type Default Function
name
Cr Level (Very Low) / Double 0 Adjusts the noise variance of the selected channel for the given noise
crbbNoiseLevelVeryLow frequency. May be estimated from image data by pressing the “Analyze
Noise” button.
Alpha Level (Very Double 0 Adjusts the noise variance of the selected channel for the given noise
Low) / frequency. May be estimated from image data by pressing the “Analyze
alphaNoiseLevelVeryLow Noise” button.
Noise Level Gain / Double 1 Global gain to apply to the noise level thresholds. 0 means no denoising,
noiseLevelGain 1 means use the estimated thresholds multiplied by the per-frequency
gain and the channel gain. The default value (1.0) is rather conservative
(it does not destroy any kind of signal). Values around 1.1 or 1.2 usually
give more pleasing results.
Denoise Amount / Double 1 The amount of denoising to apply. 0 means no denoising (which may
denoiseAmount be useful to sharpen without denoising), between 0 and 1 does a soft
thresholding of below the thresholds, thus keeping some noise, and 1
applies the threshold strictly and removes everything below the thresh-
olds. This should be used only if you want to keep some noise, for
example for noise matching. This value is multiplied by the per-channel
amount se in the ‘Channel Tuning’ group. Remember that the thresh-
olds are multiplied by the per-frequency gain, the channel gain, and the
Noise Level Gain first.
Denoise High Boolean On Check to enable the high frequency noise level thresholds. It is recom-
Frequencies / mended to always leave this checked.
enableFreqHigh
High Gain / Double 1 Gain to apply to the high frequency noise level thresholds. 0 means
gainFreqHigh no denoising, 1 means use the estimated thresholds multiplied by the
channel Gain and the Noise Level Gain.
Denoise Medium Boolean On Check to enable the medium frequency noise level thresholds. Can be
Frequencies / disabled if the analysis area contains high frequency texture, or if the
enableFreqMedium the noise is known to be IID (independent and identically distributed),
for example if this is only sensor noise and lossless compression is used,
and not grain or compression noise.
Medium Gain / Double 1 Gain to apply to the medium frequency noise level thresholds. 0 means
gainFreqMedium no denoising, 1 means use the estimated thresholds multiplied by the
channel Gain and the Noise Level Gain.
Denoise Low Boolean On Check to enable the low frequency noise level thresholds. Must be dis-
Frequencies / abled if the analysis area contains texture, or if the noise is known to
enableFreqLow be IID (independent and identically distributed), for example if this is
only sensor noise and lossless compression is used, and not grain or
compression noise.
Low Gain / Double 1 Gain to apply to the low frequency noise level thresholds. 0 means
gainFreqLow no denoising, 1 means use the estimated thresholds multiplied by the
channel Gain and the Noise Level Gain.
Denoise Very Low Boolean On Check to enable the very low frequency noise level thresholds. Can be
Frequencies / disabled in most cases. Must be disabled if the analysis area contains
enableFreqVeryLow texture, or if the noise is known to be IID (independent and identically
distributed), for example if this is only sensor noise and lossless com-
pression is used, and not grain or compression noise.
Very Low Gain / Double 1 Gain to apply to the very low frequency noise level thresholds. 0 means
gainFreqVeryLow no denoising, 1 means use the estimated thresholds multiplied by the
channel Gain and the global Noise Level Gain.
Adaptive Radius / Integer 4 Radius of the window where the signal level is analyzed at each scale.
adaptiveRadius If zero, the signal level is computed from the whole image, which may
excessively blur the edges if the image has many flat color areas. A
reasonable value should to be in the range 2-4.
Continued on next page

2.7. Filter nodes 275


Natron Documentation, Release 3.0.0

Table 103 – continued from previous page


Parameter / script Type Default Function
name
Y Gain / ylrGain Double 1 Gain to apply to the thresholds for this channel. 0 means no denoising,
1 means use the estimated thresholds multiplied by the per-frequency
gain and the global Noise Level Gain.
Y Amount / Double 1 The amount of denoising to apply to the specified channel. 0 means
ylrAmount no denoising, between 0 and 1 does a soft thresholding of below the
thresholds, thus keeping some noise, and 1 applies the threshold strictly
and removes everything below the thresholds. This should be used only
if you want to keep some noise, for example for noise matching. This
value is multiplied by the global Denoise Amount. Remember that the
thresholds are multiplied by the per-frequency gain, the channel gain,
and the Noise Level Gain first.
Cb Gain / cbagGain Double 1 Gain to apply to the thresholds for this channel. 0 means no denoising,
1 means use the estimated thresholds multiplied by the per-frequency
gain and the global Noise Level Gain.
Cb Amount / Double 1 The amount of denoising to apply to the specified channel. 0 means
cbagAmount no denoising, between 0 and 1 does a soft thresholding of below the
thresholds, thus keeping some noise, and 1 applies the threshold strictly
and removes everything below the thresholds. This should be used only
if you want to keep some noise, for example for noise matching. This
value is multiplied by the global Denoise Amount. Remember that the
thresholds are multiplied by the per-frequency gain, the channel gain,
and the Noise Level Gain first.
Cr Gain / crbbGain Double 1 Gain to apply to the thresholds for this channel. 0 means no denoising,
1 means use the estimated thresholds multiplied by the per-frequency
gain and the global Noise Level Gain.
Cr Amount / Double 1 The amount of denoising to apply to the specified channel. 0 means
crbbAmount no denoising, between 0 and 1 does a soft thresholding of below the
thresholds, thus keeping some noise, and 1 applies the threshold strictly
and removes everything below the thresholds. This should be used only
if you want to keep some noise, for example for noise matching. This
value is multiplied by the global Denoise Amount. Remember that the
thresholds are multiplied by the per-frequency gain, the channel gain,
and the Noise Level Gain first.
Alpha Gain / Double 1 Gain to apply to the thresholds for this channel. 0 means no denoising,
alphaGain 1 means use the estimated thresholds multiplied by the per-frequency
gain and the global Noise Level Gain.
Alpha Amount / Double 1 The amount of denoising to apply to the specified channel. 0 means
alphaAmount no denoising, between 0 and 1 does a soft thresholding of below the
thresholds, thus keeping some noise, and 1 applies the threshold strictly
and removes everything below the thresholds. This should be used only
if you want to keep some noise, for example for noise matching. This
value is multiplied by the global Denoise Amount. Remember that the
thresholds are multiplied by the per-frequency gain, the channel gain,
and the Noise Level Gain first.
Sharpen Amount / Double 0 Adjusts the amount of sharpening applied. Be careful that only com-
sharpenAmount ponents that are above the noise levels are enhanced, so the noise level
gain parameters are very important for proper sharpening. For example,
if ‘Noise Level Gain’ is set to zero (0), then noise is sharpened as well
as signal. If the ‘Noise Level Gain’ is set to one (1), only signal is sharp-
ened. In order to sharpen without denoising, set the ‘Denoise Amount’
parameter to zero (0).
Sharpen Size / Double 10 Adjusts the size of the sharpening. For very unsharp images it is recom-
sharpenSize mended to use higher values. Default is 10.
Continued on next page

276 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 103 – continued from previous page


Parameter / script Type Default Function
name
Sharpen Y Only / Boolean On Sharpens luminance only (if colormodel is R’G’B’, sharpen only RGB).
sharpenLuminance This avoids color artifacts to appear. Colour sharpness in natural images
is not critical for the human eye.
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.7.6 Dilate node

This documentation is for version 2.1 of Dilate (net.sf.cimg.CImgDilate).

Description

Dilate (or erode) input stream by a rectangular structuring element of specified size and Neumann boundary
conditions (pixels out of the image get the value of the nearest pixel).
A negative size will perform an erosion instead of a dilation.
Different sizes can be given for the x and y axis.
Uses the ‘dilate’ and ‘erode’ functions from the CImg library.
CImg is a free, open-source library distributed under the CeCILL-C (close to the GNU LGPL) or CeCILL (com-
patible with the GNU GPL) licenses. It can be used in commercial applications (see http://cimg.eu).

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Size / size Integer x: 1 y: Width/height of the rectangular structuring element is 2*size+1, in pixel
1 units (>=0).
Expand RoD / Boolean On Expand the source region of definition by 2*size pixels if size is positive
expandRoD
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.7. Filter nodes 277


Natron Documentation, Release 3.0.0

2.7.7 DirBlur node

This documentation is for version 1.0 of DirBlur (net.sf.openfx.DirBlur).

Description

Apply directional blur to an image.


This plugin concatenates transforms upstream.

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Translate / Double x: 0 y: Translation along the x and y axes in pixels. Can also be adjusted by
translate 0 clicking and dragging the center handle in the Viewer.
Rotate / rotate Double 0 Rotation angle in degrees around the Center. Can also be adjusted by
clicking and dragging the rotation bar in the Viewer.
Scale / scale Double x: 1 y: Scale factor along the x and y axes. Can also be adjusted by clicking
1 and dragging the outer circle or the diameter handles in the Viewer.
Uniform / uniform Boolean Off Use the X scale for both directions
Skew X / skewX Double 0 Skew along the x axis. Can also be adjusted by clicking and dragging
the skew bar in the Viewer.
Skew Y / skewY Double 0 Skew along the y axis.
Skew Order / Choice XY
skewOrder The order in which skew transforms are applied: X then Y, or Y then X.
XY
YX

Amount / Double 1 Amount of transform to apply. 0 means the transform is identity, 1


transformAmount means to apply the full transform.
Center / center Double x: 0.5 Center of rotation and scale.
y: 0.5
Reset Center / Button Reset the position of the center to the center of the input region of defi-
resetCenter nition
Interactive Update / Boolean On If checked, update the parameter values during interaction with the im-
interactive age viewer, else update the values when pen is released.
Invert / invert Boolean Off Invert the transform.
Continued on next page

278 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 105 – continued from previous page


Parameter / script Type Default Function
name
Filter / filter Choice Cubic
Filtering algorithm - some filters may produce values outside of the
initial range (*) or modify the values even if there is no movement (+).
Impulse (impulse): (nearest neighbor / box) Use original values.
Box (box): Integrate the source image over the bounding box of the
back-transformed pixel.
Bilinear (bilinear): (tent / triangle) Bilinear interpolation between
original values.
Cubic (cubic): (cubic spline) Some smoothing.
Keys (keys): (Catmull-Rom / Hermite spline) Some smoothing, plus
minor sharpening (*).
Simon (simon): Some smoothing, plus medium sharpening (*).
Rifman (rifman): Some smoothing, plus significant sharpening (*).
Mitchell (mitchell): Some smoothing, plus blurring to hide pixelation
(*)(+).
Parzen (parzen): (cubic B-spline) Greatest smoothing of all filters (+).
Notch (notch): Flat smoothing (which tends to hide moire’ patterns)
(+).

Clamp / clamp Boolean Off Clamp filter output within the original range - useful to avoid negative
values in mattes
Black outside / Boolean Off Fill the area outside the source image with black
black_outside
Motion Blur / Double 1 Quality of motion blur rendering. 0 disables motion blur, 1 is a good
motionBlur value. Increasing this slows down rendering.
Amount / amount Double 1 Amount of blur transform to apply. A value of 1 means to apply the full
transform range. A value of 0 means to apply no blur at all. Default is
1.
Centered / Boolean Off When checked, apply directional blur symmetrically around the neutral
centered position.
Fading / fading Double 0 Controls the fading function. A value of 1 corresponds to linear fading.
A value of 0 disables fading. Default is 0.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.7.8 Distance node

This documentation is for version 1.0 of Distance (eu.cimg.Distance).

Description

Compute at each pixel the distance to pixels that have a value of zero.
The distance is normalized with respect to the largest image dimension, so that it is between 0 and 1.
Optionally, a signed distance to the frontier between zero and nonzero values can be computed.
The distance transform can then be thresholded using the Threshold effect, or transformed using the ColorLookup
effect, in order to generate a mask for another effect.
See alse https://en.wikipedia.org/wiki/Distance_transform
Uses the ‘distance’ function from the CImg library.

2.7. Filter nodes 279


Natron Documentation, Release 3.0.0

CImg is a free, open-source library distributed under the CeCILL-C (close to the GNU LGPL) or CeCILL (com-
patible with the GNU GPL) licenses. It can be used in commercial applications (see http://cimg.eu).

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Metric / metric Choice Euclidean
Type of metric.
Chebyshev (chebyshev): max(abs(x-xborder),abs(y-yborder))
Manhattan (manhattan): abs(x-xborder) + abs(y-yborder)
Euclidean (euclidean): sqrt(sqr(x-xborder) + sqr(y-yborder))

Signed Distance / Boolean Off Instead of computing the distance to pixels with a value of zero, com-
signed pute the signed distance to the contour between zero and non-zero pix-
els. On output, non-zero-valued pixels have a positive signed distance,
zero-valued pixels have a negative signed distance.
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.7.9 DropShadow node

This documentation is for version 1.0 of DropShadow (fr.inria.DropShadow).

Description

Creates a drop shadow on the source image using its alpha channel.

Inputs

Input Description Optional


Source No

Controls

280 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Parameter / script Type Default Function


name
Convert to Group / Button Converts this node to a Group: the internal node-graph and the user
convertToGroup parameters will become editable
Angle / Double -45
shadowAngle
Distance / Double 20
shadowDist
Bluriness / Double x: 0 y:
shadowBlur 0
Opacity / Color r: 0.5
shadowOpacity g: 0.5
b: 0.5
a: 0.5
Color / Color r: 0 g:
shadowColor 0 b: 0
Color from source / Boolean Off
shadowCFS
Shadow only / Boolean Off
shadowOnly

2.7.10 EdgeBlur node

This documentation is for version 1.0 of EdgeBlur (fr.inria.EdgeBlur).

Description

Blur the image where there are edges in the alpha/matte channel.

Inputs

Input Description Optional


Source No
Mask Yes
Matte Yes

Controls

Parameter / script Type Default Function


name
Convert to Group / Button Converts this node to a Group: the internal node-graph and the user
convertToGroup parameters will become editable
R/ Boolean On
Blur1NatronOfxParamProcessR
G/ Boolean On
Blur1NatronOfxParamProcessG
B/ Boolean On
Blur1NatronOfxParamProcessB
A/ Boolean On
Blur1NatronOfxParamProcessA
External Matte / Boolean Off Use the edges from the Matte input instead of the alpha channel of the
externalMatte source image.
Continued on next page

2.7. Filter nodes 281


Natron Documentation, Release 3.0.0

Table 108 – continued from previous page


Parameter / script Type Default Function
name
Size / size Double 3
Filter / filter Choice Gaussian

Simple (simple): Gradient is estimated by centered finite differences.


Sobel (sobel): Compute gradient using the Sobel 3x3 filter.
Rotation Invariant (rotinvariant): Compute gradient using a 3x3
rotation-invariant filter.
Quasi-Gaussian (quasigaussian): Quasi-Gaussian filter (0-order
recursive Deriche filter, faster) - IIR (infinite support / impulsional
response).
Gaussian (gaussian): Gaussian filter (Van Vliet recursive Gaussian
filter, more isotropic, slower) - IIR (infinite support / impulsional
response).
Box (box): Box filter - FIR (finite support / impulsional response).
Triangle (triangle): Triangle/tent filter - FIR (finite support /
impulsional response).
Quadratic (quadratic): Quadratic filter - FIR (finite support /
impulsional response).

Crop To Format / Boolean On


cropToFormat
Edge Mult / Double 2 Sharpness of the borders of the blur area.
edgeMult
Invert Mask / Boolean Off
Merge1maskInvert
Mix / Blur1mix Double 1

2.7.11 EdgeDetect node

This documentation is for version 4.0 of EdgeDetect (eu.cimg.EdgeDetect).

Description

Perform edge detection by computing the image gradient magnitude. Optionally, edge detection can be preceded
by blurring, and followed by erosion and thresholding. In most cases, EdgeDetect is followed a Grade node to
extract the proper edges and generate a mask from these.
For color or multi-channel images, several edge detection algorithms are proposed to combine the gradients com-
puted in each channel:
• Separate: the gradient magnitude is computed in each channel separately, and the output is a color edge
image.
• RMS: the RMS of per-channel gradients magnitudes is computed.
• Max: the maximum per-channel gradient magnitude is computed.
• Tensor: the tensor gradient norm [1].
References:

282 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

• [1] Silvano Di Zenzo, A note on the gradient of a multi-image, CVGIP 33, 116-125 (1986). http://people.
csail.mit.edu/tieu/notebook/imageproc/dizenzo86.pdf
CImg is a free, open-source library distributed under the CeCILL-C (close to the GNU LGPL) or CeCILL (com-
patible with the GNU GPL) licenses. It can be used in commercial applications (see http://cimg.eu).

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Filter / filter Choice Gaussian
Edge detection filter. If the blur size is not zero, it is used as the kernel
size for quasi-Gaussian, Gaussian, box, triangle and quadratic filters.
For the simple, rotation-invariant and Sobel filters, the image is
pre-blurred with a Gaussian filter.
Simple (simple): Gradient is estimated by centered finite differences.
Sobel (sobel): Compute gradient using the Sobel 3x3 filter.
Rotation Invariant (rotinvariant): Compute gradient using a 3x3
rotation-invariant filter.
Quasi-Gaussian (quasigaussian): Quasi-Gaussian filter (0-order
recursive Deriche filter, faster) - IIR (infinite support / impulsional
response).
Gaussian (gaussian): Gaussian filter (Van Vliet recursive Gaussian
filter, more isotropic, slower) - IIR (infinite support / impulsional
response).
Box (box): Box filter - FIR (finite support / impulsional response).
Triangle (triangle): Triangle/tent filter - FIR (finite support /
impulsional response).
Quadratic (quadratic): Quadratic filter - FIR (finite support /
impulsional response).

Multi-Channel / Choice Tensor


multiChannel Operation used to combine multi-channel (e.g. color) gradients into an
edge detector. This parameter has no effect if a single channel (e.g.
alpha) is processed.
Separate (separate): The gradient magnitude is computed in each
channel separately, and the output is a color edge image.
RMS (rms): The RMS of per-channel gradients magnitudes is
computed.
Max (max): The maximum per-channel gradient magnitude is
computed.
Tensor (tensor): The tensor gradient norm is computed. See Silvano
Di Zenzo, A note on the gradient of a multi-image, CVGIP 33,
116-125 (1986).

Continued on next page

2.7. Filter nodes 283


Natron Documentation, Release 3.0.0

Table 109 – continued from previous page


Parameter / script Type Default Function
name
Blur Size / Double 0 Size of the blur kernel applied before edge detection.
blurSize
Erode Size / Double 0 Size of the erosion performed after edge detection.
erodeSize
Non-Maxima Boolean Off Perform non-maxima suppression (after edge detection and erosion):
Suppression / nms only values that are maximal in the direction orthogonal to the contour
are kept. For multi-channel images, the contour direction estimation
depends on the multi-channel operation.
Expand RoD / Boolean On Expand the source region of definition by 1.5*size (3.6*sigma).
expandRoD
Crop To Format / Boolean On If the source is inside the format and the effect extends it outside of the
cropToFormat format, crop it to avoid unnecessary calculations. To avoid unwanted
crops, only the borders that were inside of the format in the source clip
will be cropped.
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.7.12 EdgeExtend node

This documentation is for version 4.0 of EdgeExtend (eu.cimg.EdgeExtend).

Description

Fill a matte (i.e. a non-opaque color image with an alpha channel) by extending the edges of the matte. This effect
does nothing an an opaque image.
If the input matte comes from a keyer, the alpha channel of the matte should be first eroded by a small amount
to remove pixels containing mixed foreground/background colors. If not, these mixed colors may be extended
instead of the pure foreground colors.
The filling process works by iteratively blurring the image, and merging the non-blurred image over the image
to get to the next iteration. There are exactly ‘Slices’ such operations. The blur size at each iteration is linearly
increasing.
‘Size’ is thus the total size of the edge extension, and ‘Slices’ is an indicator of the precision: the more slices there
are, the sharper is the final image near the original edges.
Optionally, the image can be multiplied by the alpha channel on input (premultiplied), and divided by the alpha
channel on output (unpremultiplied), so that if RGB contain an image and Alpha contains a mask, the output is an
image where the RGB is smeared from the non-zero areas of the mask to the zero areas of the same mask.
The ‘Size’ parameter gives the size of the largest blur kernel, ‘Count’ gives the number of blur kernels, and
‘Ratio’ gives the ratio between consecutive blur kernel sizes. The size of the smallest blur kernel is thus
‘Size’/‘Ratio’^(‘Count’-1)
To get the classical single unpremult-blur-premult, use ‘Count’=1 and set the size to the size of the blur kernel.
However, near the mask borders, a frontier can be seen between the non-blurred area (this inside of the mask) and
the blurred area. Using more blur sizes will give a much smoother transition.

284 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

The idea for the builtup blurs to expand RGB comes from the EdgeExtend effect for Nuke by Frank Rueter (except
the blurs were merged from the smallest to the largest, and here it is done the other way round), with suggestions
by Lucas Pfaff.
CImg is a free, open-source library distributed under the CeCILL-C (close to the GNU LGPL) or CeCILL (com-
patible with the GNU GPL) licenses. It can be used in commercial applications (see http://cimg.eu).

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Premult Source / Boolean Off Premultiply the source image by its alpha channel before processing.
edgeExtendPremult Do not check if the source matte is already premultiplied
Size / Double 20 Maximum blur kernel size applied in the ExtendSlices filter. Raise to
edgeExtendSize extend the edges further.
Slices / Integer 5 Number of blur kernels applied in the ExtendSlices filter. A count of 1
edgeExtendSlices just merges the source image over the source image blurred by a kernel
of size Size.
Unpremult Result / Boolean Off Unpremultiply the result image by its alpha channel after processing.
edgeExtendUnpremult
Filter / filter Choice Quasi-
Gaussian Bluring filter. The quasi-Gaussian filter should be appropriate in most
cases. The Gaussian filter is more isotropic (its impulse response has
rotational symmetry), but slower.
Quasi-Gaussian (quasigaussian): Quasi-Gaussian filter (0-order
recursive Deriche filter, faster) - IIR (infinite support / impulsional
response).
Gaussian (gaussian): Gaussian filter (Van Vliet recursive Gaussian
filter, more isotropic, slower) - IIR (infinite support / impulsional
response).
Box (box): Box filter - FIR (finite support / impulsional response).
Triangle (triangle): Triangle/tent filter - FIR (finite support /
impulsional response).
Quadratic (quadratic): Quadratic filter - FIR (finite support /
impulsional response).

Expand RoD / Boolean On Expand the source region of definition by 1.5*size (3.6*sigma).
expandRoD
Crop To Format / Boolean On If the source is inside the format and the effect extends it outside of the
cropToFormat format, crop it to avoid unnecessary calculations. To avoid unwanted
crops, only the borders that were inside of the format in the source clip
will be cropped.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.7. Filter nodes 285


Natron Documentation, Release 3.0.0

2.7.13 Erode node

This documentation is for version 2.1 of Erode (net.sf.cimg.CImgErode).

Description

Erode (or dilate) input stream by a rectangular structuring element of specified size and Neumann boundary
conditions (pixels out of the image get the value of the nearest pixel).
A negative size will perform a dilation instead of an erosion.
Different sizes can be given for the x and y axis.
Uses the ‘erode’ and ‘dilate’ functions from the CImg library.
CImg is a free, open-source library distributed under the CeCILL-C (close to the GNU LGPL) or CeCILL (com-
patible with the GNU GPL) licenses. It can be used in commercial applications (see http://cimg.eu).

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Size / size Integer x: 1 y: Width/height of the rectangular structuring element is 2*size+1, in pixel
1 units (>=0).
Expand RoD / Boolean On Expand the source region of definition by 2*size pixels if size is negative
expandRoD
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.7.14 ErodeBlur node

This documentation is for version 4.0 of ErodeBlur (eu.cimg.ErodeBlur).

Description

Performs an operation that looks like an erosion or a dilation by smoothing the image and then remapping the
values of the result.
The image is first smoothed by a triangle filter of width 2*abs(size).
Now suppose the image is a 0-1 step edge (I=0 for x less than 0, I=1 for x greater than 0). The intensities are
linearly remapped so that the value at x=size-0.5 is mapped to 0 and the value at x=size+0.5 is mapped to 1.

286 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

This process usually works well for mask images (i.e. images which are either 0 or 1), but may give strange results
on images with real intensities, where another Erode filter has to be used.
CImg is a free, open-source library distributed under the CeCILL-C (close to the GNU LGPL) or CeCILL (com-
patible with the GNU GPL) licenses. It can be used in commercial applications (see http://cimg.eu).

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Size / size Double -1 How much to shrink the black and white mask, in pixels (can be negative
to dilate).
Blur / blur Double 0 Soften the borders of the generated mask.
Expand RoD / Boolean On Expand the source region of definition by 1.5*size (3.6*sigma).
expandRoD
Crop To Format / Boolean On If the source is inside the format and the effect extends it outside of the
cropToFormat format, crop it to avoid unnecessary calculations. To avoid unwanted
crops, only the borders that were inside of the format in the source clip
will be cropped.
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

2.7.15 ErodeSmooth node

This documentation is for version 2.0 of ErodeSmooth (net.sf.cimg.CImgErodeSmooth).

Description

Erode or dilate input stream using a normalized power-weighted filter.


This gives a smoother result than the Erode or Dilate node.
See “Robust local max-min filters by normalized power-weighted filtering” by L.J. van Vliet, http://dx.doi.org/10.
1109/ICPR.2004.1334273
Uses the ‘vanvliet’ and ‘deriche’ functions from the CImg library.
CImg is a free, open-source library distributed under the CeCILL-C (close to the GNU LGPL) or CeCILL (com-
patible with the GNU GPL) licenses. It can be used in commercial applications (see http://cimg.eu).

2.7. Filter nodes 287


Natron Documentation, Release 3.0.0

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Range / range Double min: 0 Expected range for input values.
max: 1
Size / size Double x: 0 y: Size (diameter) of the filter kernel, in pixel units (>=0). The standard
0 deviation of the corresponding Gaussian is size/2.4. No filter is applied
if size < 1.2. Negative values correspond to dilation, positive values to
erosion. Both values should have the same sign.
Uniform / uniform Boolean Off Apply the same amount of blur on X and Y.
Exponent / Integer 5 Exponent of the normalized power-weighted filter. Lower values give a
exponent smoother result. Default is 5.
Border Conditions / Choice Nearest
boundary Specifies how pixel values are computed out of the image domain. This
mostly affects values at the boundary of the image. If the image
represents intensities, Nearest (Neumann) conditions should be used. If
the image represents gradients or derivatives, Black (Dirichlet)
boundary conditions should be used.
Black (black): Dirichlet boundary condition: pixel values out of the
image domain are zero.
Nearest (nearest): Neumann boundary condition: pixel values out of
the image domain are those of the closest pixel location in the image
domain.

Filter / filter Choice Quadratic


Bluring filter. The quasi-Gaussian filter should be appropriate in most
cases. The Gaussian filter is more isotropic (its impulse response has
rotational symmetry), but slower.
Quasi-Gaussian (quasigaussian): Quasi-Gaussian filter (0-order
recursive Deriche filter, faster).
Gaussian (gaussian): Gaussian filter (Van Vliet recursive Gaussian
filter, more isotropic, slower).
Box (box): Box filter - FIR (finite support / impulsional response).
Triangle (triangle): Triangle/tent filter - FIR (finite support /
impulsional response).
Quadratic (quadratic): Quadratic filter - FIR (finite support /
impulsional response).

Expand RoD / Boolean On Expand the source region of definition by 1.5*size (3.6*sigma).
expandRoD
(Un)premult / Boolean Off Divide the image by the alpha channel before processing, and re-
premult multiply it afterwards. Use if the input images are premultiplied.
Invert Mask / Boolean Off When checked, the effect is fully applied where the mask is 0.
maskInvert
Mix / mix Double 1 Mix factor between the original and the transformed image.

288 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

2.7.16 Fill node

This documentation is for version 1.0 of Fill (fr.inria.Fill).

Description

Add a constant color on the source image where the alpha channel not 0. You can control the blending between
the original image and the constant color with the operator and the mix factor.

Inputs

Input Description Optional


Source No
Mask Yes

Controls

Parameter / script Type Default Function


name
Convert to Group / Button Converts this node to a Group: the internal node-graph and the user
convertToGroup parameters will become editable
Color / Color r: 0 g:
Solid1color 0 b: 0
Continued on next page

2.7. Filter nodes 289


Natron Documentation, Release 3.0.0

Table 114 – continued from previous page


Parameter / script Type Default Function
name
Operation / Choice over
Merge1operation
atop: Ab + B(1 - a) (a.k.a. src-atop)
average: (A + B) / 2
color: SetLum(A, Lum(B))
color-burn: darken B towards A
color-dodge: brighten B towards A
conjoint-over: A + B(1-a)/b, A if a > b
copy: A (a.k.a. src)
difference: abs(A-B) (a.k.a. absminus)
disjoint-over: A+B(1-a)/b, A+B if a+b < 1
divide: A/B, 0 if A < 0 and B < 0
exclusion: A+B-2AB
freeze: 1-sqrt(1-A)/B
from: B-A (a.k.a. subtract)
geometric: 2AB/(A+B)
grain-extract: B - A + 0.5
grain-merge: B + A - 0.5
hard-light: multiply if A < 0.5, screen if A > 0.5
hue: SetLum(SetSat(A, Sat(B)), Lum(B))
hypot: sqrt(A*A+B*B)
in: Ab (a.k.a. src-in)
luminosity: SetLum(B, Lum(A))
mask: Ba (a.k.a dst-in)
matte: Aa + B(1-a) (unpremultiplied over)
max: max(A, B) (a.k.a. lighten only)
min: min(A, B) (a.k.a. darken only)
minus: A-B
multiply: AB, 0 if A < 0 and B < 0
out: A(1-b) (a.k.a. src-out)
over: A+B(1-a) (a.k.a. src-over)
overlay: multiply if B < 0.5, screen if B > 0.5
pinlight: if B >= 0.5 then max(A, 2*B - 1), min(A, B * 2.0 ) else
plus: A+B (a.k.a. add)
reflect: A*A / (1 - B)
saturation: SetLum(SetSat(B, Sat(A)), Lum(B))
screen: A+B-AB if A or B <= 1, otherwise max(A, B)
soft-light: burn-in if A < 0.5, lighten if A > 0.5
stencil: B(1-a) (a.k.a. dst-out)
under: A(1-b)+B (a.k.a. dst-over)
xor: A(1-b)+B(1-a)

Mask / Boolean Off


Merge1enableMask_Mask
/ Choice
Merge1maskChannel_Mask
None

Continued on next page

290 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

Table 114 – continued from previous page


Parameter / script Type Default Function
name
Invert Mask / Boolean Off
Merge1maskInvert
Mix / Merge1mix Double 1

2.7.17 GMICExpr node

This documentation is for version 2.1 of GMICExpr (net.sf.cimg.CImgExpression).

Description

Quickly generate or process image from mathematical formula evaluated for each pixel. Full documentation for
G’MIC/CImg expressions is reproduced below and available online from the G’MIC help. The only additions of
this plugin are the predefined variables T (current time) and K (render scale).
Uses the ‘fill’ function from the CImg library. CImg is a free, open-source library distributed under the CeCILL-C
(close to the GNU LGPL) or CeCILL (compatible with the GNU GPL) licenses. It can be used in commercial
applications (see http://cimg.eu).

Sample expressions

• ‘j(sin(y/100/K+T/10)*20*K,sin(x/100/K+T/10)*20*K)’ distorts the image with time-


varying waves.
• ‘0.5*(j(1)-j(-1))’ estimates the X-derivative of an image with a classical finite difference scheme.
• ‘if(x%10==0,1,i)’ draws blank vertical lines on every 10th column of an image.
• ‘sqrt(zr=-1.2+2.4*x/w;zi=-1.2+2.4*y/h;for(i=0,zr*zr+zi*zi<=4&&i<256,
t=zr*zr-zi*zi+0.4;zi=2*zr*zi+0.2;zr=t; i=i+1))/255’ draws the Mandelbrot fractal
(give it a 1024x1024 image as input).

Expression language

• The expression is evaluated for each pixel of the selected images.


• The mathematical parser understands the following set of functions, operators and variables:
– Usual operators: || (logical or), && (logical and), | (bitwise or), & (bitwise and), !=, ==, <=, >=,
<, >, << (left bitwise shift), >> (right bitwise shift), -, +, *, /, % (modulo), ^ (power), ! (logical not),
~ (bitwise not), ++, --, +=, -=, *=, /=, %=, &=, |=, ^=, >>=, <<= (in-place operators).
– Usual math functions: abs(), acos(), arg(), argkth(), argmax(), argmin(),
asin(), atan(), atan2(), avg(), bool(), cbrt(), ceil(), cos(), cosh(), cut(),
exp(), fact(), fibo(), floor(), gauss(), int(), isval(), isnan(), isinf(),
isint(), isbool(), isfile(), isdir(), isin(), kth(), log(), log2(), log10(),
max(), mean(), med(),min(),narg(),prod(),rol()(left bit rotation),ror()(right
bit rotation),round(),sign(),sin(),sinc(),sinh(),sqrt(),std(),srand(_seed),sum(),tan(),
tanh(),variance(),xor(). * 'atan2(y,x)' is the version of 'atan()' with two
arguments __'y'__ and __'x'__ (as in C/C\+\+). * 'permut(k,n,with_order)'
computes the number of permutations of __k__ objects from a set

2.7. Filter nodes 291


Natron Documentation, Release 3.0.0

of __n__ objects. * 'gauss(x,_sigma)' returns __'exp(-x\^2/(2\*s\^2))/


sqrt(2\*pi\*sigma\^2)'__. * 'cut(value,min,max)' returns value if it
is in range __\[min,max\]__, or __min__ or __max__ otherwise. *
'narg(a_1,. . . ,a_N)' returns the number of specified arguments (here,
__N__). * 'arg(i,a_1,..,a_N)' returns the __ith__ argument __a_i__. *
'isval()', 'isnan()', 'isinf()', 'isint()', 'isbool()' test the type of the given
number or expression, and return __0 (false)__ or __1 (true)__. *
'isfile()' (resp. 'isdir()') returns __0 (false)__ or __1 (true)__ whether
its argument is a path to an existing file (resp. to a directory)
or not. * 'isin(v,a_1,. . . ,a_n)' returns __0 (false)__ or __1 (true)__
whether the first value __'v'__ appears in the set of other values
'a_i'. * 'argmin()', 'argmax()', 'kth()', 'max()', 'mean()', 'med()', 'min()',
'std()', 'sum()' and 'variance()' can be called with an arbitrary number
of scalar/vector arguments. * 'round(value,rounding_value,direction)‘’ returns a
rounded value. ‘direction’ can be { -1=to-lowest | 0=to-nearest | 1=to-highest }.
– Variable names below are pre-defined. They can be overridden.

* ‘l’: length of the associated list of images.


* ‘w’: width of the associated image, if any (0 otherwise).
* ‘h’: height of the associated image, if any (0 otherwise).
* ‘d’: depth of the associated image, if any (0 otherwise).
* ‘s’: spectrum of the associated image, if any (0 otherwise).
* ‘r’: shared state of the associated image, if any (0 otherwise).
* ‘wh’: shortcut for width x height.
* ‘whd’: shortcut for width x height x depth.
* ‘whds’: shortcut for width x height x depth x spectrum (i.e. number of image values).
* ‘im’,‘iM’,‘ia’,‘iv’,‘is’,‘ip’,‘ic’: Respectively the minimum, maximum, average, variance,
sum, product and median value of the associated image, if any (0 otherwise).

* ‘xm’,‘ym’,‘zm’,‘cm’: The pixel coordinates of the minimum value in the associated image, if any
(0 otherwise).

* ‘xM’,‘yM’,‘zM’,‘cM’: The pixel coordinates of the maximum value in the associated image, if any
(0 otherwise).

* All these variables are considered as constant values by the math parser (for optimization pur-
poses) which is indeed the case most of the time. Anyway, this might not be the case, if function
‘resize(#ind,..)’ is used in the math expression. If so, it is safer to invoke functions ‘l()’,
‘w(_#ind)’, ‘h(_#ind)’, . . . ‘s(_#ind)’ and ‘ic(_#ind)’ instead of the corresponding
named variables.

* ‘i’: current processed pixel value (i.e. value located at (x,y,z,c)) in the associated image, if any
(0 otherwise).

* ‘iN’: Nth channel value of current processed pixel (i.e. value located at (x,y,z,N)) in the associated
image, if any (0 otherwise). ‘N’ must be an integer in range [0,9].

* ‘R’,‘G’,‘B’ and ‘A’ are equivalent to ‘i0’, ‘i1’, ‘i2’ and ‘i3’ respectively.
* ‘I’: current vector-valued processed pixel in the associated image, if any (0 otherwise). The
number of vector components is equal to the number of image channels (e.g. I = [ R,G,B ] for a
RGB image).

* You may add ‘#ind’ to any of the variable name above to retrieve the information for any num-
bered image [ind] of the list (when this makes sense). For instance ‘ia#0’ denotes the average
value of the first image of the list).

* ‘x’: current processed column of the associated image, if any (0 otherwise).

292 Chapter 2. Reference Guide


Natron Documentation, Release 3.0.0

* ‘y’: current processed row of the associated image, if any (0 otherwise).


* ‘z’: current processed slice of the associated image, if any (0 otherwise).
* ‘c’: current processed channel of the associated image, if any (0 otherwise).
* ‘t’: thread id when an expression is evaluated with multiple threads (0 means ‘master thread’).
* ‘T’: current time [OpenFX-only].
* ‘K’: render scale (1 means full scale, 0.5 means half scale) [OpenFX-only].
* ‘e’: value of e, i.e. 2.71828. . .
* ‘pi’: value of pi, i.e. 3.1415926. . .
* ‘u’: a random value between [0,1], following a uniform distribution.
* ‘g’: a random value, following a gaussian distribution of variance 1 (roughly in [-6,6]).
* ‘interpolation’: value of the default interpolation mode used when reading pixel values
with the pixel access operators (i.e. when the interpolation argument is not explicitly specified,
see below for more details on pixel access operators). Its initial default value is 0.

* ‘boundary’: value of the default boundary conditions used when reading pixel values with the
pixel access operators (i.e. when the boundary condition argument is not explicitly specified, see
below for more details on pixel access operators). Its initial default value is 0.
– Vector calculus: Most operators are also able to work with vector-valued elements.

* ‘[ a0,a1,...,aN ]’ defines a (N+1)-dimensional vector with scalar coefficients ak.


* ‘vectorN(a0,a1,,...,)’ does the same, with the ak being repeated periodically if only a
few are specified.

* In both previous expressions, the ak can be vectors themselves, to be concatenated into a single
vector.

* The scalar element ak of a vector X is retrieved by ‘X[k]’.


* The sub-vector [ X[p]. . . X[p+q-1] ] (of size q) of a vector X is retrieved by ‘X[p,q]’.
* Equality/inequality comparisons between two vectors is done with operators ‘==’ and ‘!=’.
* Some vector-specific functions can be used on vector values: ‘cross(X,Y)’ (cross product),
‘dot(X,Y)’ (dot product), ‘size(X)’ (vector dimension), ‘sort(X,_is_increasing,
_chunk_size)’ (sorting values), ‘reverse(A)’ (reverse order of components),
‘shift(A,_length,_boundary_conditions)’ and ‘same(A,B,_nb_vals,
_is_case_sensitive)’ (vector equality test).

* Function ‘normP(u1,...,un)’ computes the LP-norm of the specified vector (P being an


unsigned integer constant or ’inf’). If P is omitted, the L2 norm is used.

* Function ‘resize(A,size,_interpolation,_boundary_conditions)’ returns a


resized version of a vector ‘A’ with specified interpolation mode. ‘interpolation’ can be { -
1=none (memory content) | 0=none | 1=nearest | 2=average | 3=linear | 4=grid | 5=bicubic
| 6=lanczos }, and ‘boundary_conditions’ can be { 0=dirichlet | 1=neumann | 2=periodic |
3=mirror }.

* Function ‘find(A,B,_is_forward,_starting_indice)’ returns the index where sub-


vector B appears in vector A, (or -1 if B is not found in A). Argument A can be also replaced by
an image indice #ind.

* A 2-dimensional vector may be seen as a complex number and used in those particular
functions/operators: ‘**’ (complex multiplication), ‘//’ (complex division), ‘^^’ (complex
exponentiation), ‘**=’ (complex self-multiplication), ‘//=’ (complex self-division), ‘^^=’
(complex self-exponentiation), ‘cabs()’ (complex modulus), ‘carg()’ (complex argument),
‘cconj()’ (complex conjugate), ‘cexp()’ (complex exponential) and ‘clog()’ (complex
logarithm).

2.7. Filter nodes 293


Natron Documentation, Release 3.0.0

* A MN-dimensional vector may be seen as a M x N matrix and used in those particular func-
tions/operators: ‘*’ (matrix-vector multiplication), ‘det(A)’ (determinant), ‘diag(V)’ (di-
agonal matrix from a vector), ‘eig(A)’ (eigenvalues/eigenvectors), ‘eye(n)’ (n x n iden-
tity matrix), ‘inv(A)’ (matrix inverse), ‘mul(A,B,_nb_colsB)’ (matrix-matrix multi-
plication), ‘pseudoinv(A,_nb_colsA)’, ‘rot(u,v,w,angle)’ (3d rotation matrix),
‘rot(angle)’ (2d rotation matrix), ‘solve(A,B,_nb_colsB)’ (least-square solver of lin-
ear system A.X = B), ‘svd(A,_nb_colsA)’ (singular value decomposition), ‘trace(A)’
(matrix trace) and ‘transp(A,nb_colsA)’ (matrix transpose). Argument ‘nb_colsB’ may
be omitted if it is equal to 1.

* Specifying a vector-valued math expression as an argument of a command that operates on image


values (e.g. ‘fill’) modifies the whole spectrum range of the processed image(s), for each
spatial coordinates (x,y,z). The command does not loop over the C-axis in this case.
– String manipulation: Character strings are defined and managed as vectors objects. Dedicated func-
tions and initializers to manage strings are

* [ 'string' ] and 'string' define a vector whose values are the ascii codes of the specified
character string (e.g. 'foo' is equal to [ 102,111,111 ]).

* _'character' returns the (scalar) ascii code of the specified character (e.g. _'A' is equal to
65).

* A special case happens for empty strings: Values of both expressions [ '' ] and '' are 0.
* Functions ‘lowercase()’ and ‘uppercase()’ return string with all string characters lower-
cased or uppercased.

* Function ‘stov(str,_starting_indice,_is_strict)’ parses specified string ‘str’


and returns the value contained in it.

* Function ‘vtos(expr,_nb_digits,_siz)’ returns a vector of size ‘siz’ which contains


the ascii representation of values described by expression ‘expr’. ‘nb_digits’ can be { -
1=auto-reduced | 0=all | >0=max number of digits }.

* Function ‘echo(str1,str2,...,strN)’ prints the concatenation of given string arguments


on the console.

* Function ‘cats(str1,str2,...,strN,siz)’ returns the concatenation of given string ar-


guments as a new vector of size ‘siz’.
– Special operators can be used:

* ‘;’: expression separator. The returned value is always the last encountered expression. For
instance expression ‘1;2;pi’ is evaluated as ‘pi’.

* ‘=’: variable assignment. Variables in mathematical parser can only refer to numerical values
(vectors or scalars). Variable names are case-sensitive. Use this operator in conjunction with ‘;’
to define more complex evaluable expressions, such as ‘t=cos(x);3*t^2+2*t+1’. These
variables remain local to the mathematical parser and cannot be accessed outside the evaluated
expression.

* Variables defined in math parser may have a constant property, by specifying keyword const
before the variable name (e.g. const foo = pi/4;). The value set to such a variable must
be indeed a constant scalar. Constant variables allows certain types of optimizations in
the math JIT compiler.
– The following specific functions are also defined:

* ‘u(max)’ or ‘u(min,max)’: return a random value between [0,max] or [min,max], following


a uniform distribution.

* ‘i(_a,_b,_c,_d,_interpolation_type,_boundary_conditions)’: return the


value of the pixel located at position (a,b,c,d) in the associated image, if any (0 otherwise). ‘in-
terpolation_type’ can be { 0=nearest neighbor | other=linear }. ‘boundary_conditions’ can
be { 0=dirichlet | 1=neumann | 2=periodic | 3=mirror }. Omitted coordinates are replaced by
their default values which are respectively x, y, z, c, interpolation and boundary.

294 Chapter 2. Reference Guide