Nodes/Post Processing PRO/FPE Kodak 2383 (CST Log) PRO
ComfyUI Node

FPE Kodak 2383 (CST Log) PRO

Hollywood's favorite print stock, without leaving ComfyUI

By Guillaume-127·Created 5 months ago·Updated 5 months ago· 2
FPE Kodak 2383 (CST Log) PRO
  • image
  • IMAGE
print_strength0.80
log_density2.5
chroma_shift1.00

Kodak 2383 is the print stock that ran through Hollywood projectors for decades, and its look is burned into what we collectively call "cinematic": dense teal-cyan shadows, warm golden highlights, a soft roll-off in the brightest whites. It's the look people chase with a thousand different "cinematic LUTs" - most of which are just a 3D color table slapped on top of the image. FPE Kodak 2383 (CST Log) PRO from the Post Processing PRO pack does it properly: it unbuilds your image out of sRGB, pushes it into a log working space, applies a photometric film response curve, and only then grades the 2383 split-tone into it. Same destination, but the math is doing the driving instead of a lookup table.

It's part of a real, well-worn family - film print emulation is the whole business model of tools like Dehancer and FilmConvert, and ComfyUI has been hungry for a local version of that pipeline. This node is the pack's flagship grading effect and the one that earns the "PRO" in the name.

How it works

The pipeline is a proper color-managed CST (Color Space Transform), which is what the "CST Log" in the name refers to:

  1. sRGB → Linear. An exact piecewise transfer (the 0.04045 breakpoint, not a cheap gamma approximation).
  2. Linear → Cineon Log. The classic Kodak log encoding used for film scanning.
  3. The print curve. A sigmoidal transfer function pivoted at Cineon middle gray (~0.444), which is what produces that smooth highlight shoulder and crushed-shadow toe - the part LUTs fake and this node actually computes.
  4. 2383 split-toning. Shadow and highlight masks derived from luminance, then cyan shadows (subtract red, add blue) against golden highlights (add red, subtract blue). The chroma_shift knob scales exactly how far that teal/orange split goes.

Then it blends the film print back over the original with print_strength, which is how real colorists work - you don't fully commit to the print, you dial in how much of it you want to retain.

The inputs that matter

  • image - your IMAGE tensor.
  • print_strength (default 0.8, 0–1) - how much of the film print to mix in. This is the first knob you touch; 0.8 is a strong grade, and a lot of people land lower.
  • log_density (default 2.5, 1–4) - the exponent of the S-curve. Higher = more contrast and density; it's your "how deep are the blacks and how hard does the shoulder bite" control.
  • chroma_shift (default 1.0, 0–1) - the strength of the cyan-shadow / warm-highlight split. Set to 0 for a pure print-density grade with no split tone.

Output is a single IMAGE of the same dimensions, ready to feed your Save node.

Installing it

One of 14 nodes in a single pack. ComfyUI Manager → search "Post Processing PRO", or:

cd ComfyUI/custom_nodes
git clone https://github.com/Guillaume-127/ConfyUI_Post_Processing_PRO

Restart after. No requirements file, no model downloads - it's numpy math, so it runs on anything including CPU-only setups. (The README's own clone snippet has a placeholder URL bug; use Manager or copy the link from the repo page.)

Gotchas and takes

The 2383 look is genuinely in demand in the ComfyUI community - other post-packs ship their own 2383 chain - so you're not chasing a niche. Where people get burned here: on an already-graded image, print_strength 1.0 can push things muddy, because the node assumes sRGB input and layers a film response on top of whatever the model gave you. Keep print_strength around 0.6–0.8 unless you're starting from a flat render. And the defaults are the point - if it looks subtle, that's a print stock working correctly, not a broken node. Stack it after Cinematic Color Match PRO to grade toward a reference frame first, then let 2383 do the density.

CategoryPost_Processing_PRO/Grading

Inputs (4)

NameTypeDefaultDescription
imageIMAGE
print_strengthFLOAT0.800–1
log_densityFLOAT2.51–4
chroma_shiftFLOAT1.000–1

Outputs (1)

NameTypeDescription
IMAGEIMAGE