Presets allow to define export parameters for specific LUT formats and can be used in LUT to LUT and Curve to LUT.
Ex: 3D LUT for Lustre, or 1D LUT for Clipster.

They come in the form of json files.

Unless stipulated otherwise, presets are loaded from utils/presets directory that already contains some well known use cases :

  • clipster_1d.json,
  • clipster_3d.json,
  • lustre_1d.json,
  • lustre_3d.json,
  • resolve_3d.json,
  • rv_3d.json,
  • scratch_1d.json,
  • scratch_3d.json,
  • smoke_flame_3d.json

Customize preset path

You can specify where to load presets or add a path using LUT_PRESETS environment variable.

Write a preset

Required attributes :

  • title: “a title”
  • comment: “a comment”
  • type: “1D”, “2D”, “3D”
  • extension: “.csp”, “.cube”, “.spi1d”, “.spi3d”, “.cc”, “.json”, “.3dl” , “.lut”
  • input_range: [0.0, 0.1], [-2.0, 5.0], [0, 1023], …
  • output_range: [0.0, 0.1], [-2.0, 5.0], [0, 1023], …
  • version: “1”, “version 1”…

Required attributes for 1D/2D LUT :

  • output_bitdepth: 8, 10, 12, 16..

Required attributes for 3D LUT :

  • cube_size: 17, 33, …

Required attributes for 3dl format :

3dl format can have two types of non-exclusive headers : a shaper LUT or a mesh. These headers are used to precise LUT sampling.

A shaper LUT defines an input range and a cube size.
Example with a [0, 1023] range and a 17 cube size :
0 63 127 191 255 319 383 447 511 575 639 703 767 831 895 959 1023

A mesh defines a cube size and an output range.
Example with a 17 cube size (17=(2^4)+1) and a 12 bits output range (=[0, 4095]) :
mesh 4 12

shaper: true ou false. If true, write shaper lut. Default = true.
mesh: true ou false. If true, write mesh. Default = false.

Optional attributes for ascii LUT (.lut)

  • layout: “triplet” or “block” ( default = “block”).
    Define how rgb values are written.
    If “triplet” :
    r g b
    r g b
    (…)
    If “block” :
    r
    r
    (…)
    g
    g
    (…)
    b
    b
  • header_type: “lustre_header”, “scratch_header”, custom header (default : no header)
  • is_float: true, false (default = false)

if layout = “triplet”:

  • write_index: true, false (default = false). If true, write index value :
    0 r g b
    1 r g b
    (…)

  • write_alpha: true, false (default = false). If true, write a default alpha :
    r g b 0.0
    r g b 0.0
    (…)

  • separator: “ “, “\t”, “ “… (default = “ “). string between RGB values.

Examples

Preset 1D pour Lustre

{ "title": "Autodesk Lustre 1D LUT", "comment": "Generated with ColorPipe-tools", "type": "2D", "extension": ".lut", "output_range": [0, 65535], "input_range": [0, 65535], "output_bitdepth": 16, "version": "1", "layout": "triplet", "write_index": true, "separator": "\t", "header_type": "lustre_header" }

Preset 3D pour Lustre

{ "title": "Autodesk Lustre 3D LUT", "comment": "Generated with ColorPipe-tools", "type": "3D", "extension": ".3dl", "input_range": [0, 1023], "output_range": [0, 4095], "cube_size": 17, "version": "1", "shaper": true, "mesh": true }

Preset 1D pour Scratch

{ "title": "Assimilate Scratch 1D LUT", "comment": "Generated with ColorPipe-tools", "type": "1D", "extension": ".lut", "output_range": [0, 1023], "input_range": [0, 1023], "output_bitdepth": 10, "version": "1", "layout": "block", "header_type": "scratch_header" }

Preset 3D pour RV

{ "title": "Tweak Software RV 3D LUT", "comment": "Generated with ColorPipe-tools", "type": "3D", "extension": ".cube", "output_range": [0.0, 1.0], "cube_size": 17, "input_range": [0.0, 1.0], "version": "1" }