FPE Kodak 2383 (CST Log) PRO
Hollywood's favorite print stock, without leaving ComfyUI
- image
- IMAGE
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:
- sRGB → Linear. An exact piecewise transfer (the 0.04045 breakpoint, not a cheap gamma approximation).
- Linear → Cineon Log. The classic Kodak log encoding used for film scanning.
- 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.
- 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_shiftknob 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.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| print_strength | FLOAT | 0.800–1 | — |
| log_density | FLOAT | 2.51–4 | — |
| chroma_shift | FLOAT | 1.000–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |