Flex Image Color Grade β‘π ‘π π £π
LUT-based grading that can react over time
- images
- opt_feature
- IMAGE
This is a straightforward LUT-based color grade - point it at a .cube (or similar) LUT file, blend it in, done - with the RyanOnTheInside twist that the grade's intensity or blend can be driven by a reactive Feature instead of staying static for the whole clip. Useful if you want a look that intensifies with the music, or eases in and out rather than snapping on at full strength from frame one.
How it works
lut_file is a plain string path to the LUT file you want applied. This node doesn't ship any LUTs itself - you point it at one you already have, which means the actual "look" is entirely up to whatever LUT you supply; the node's own job is just applying it and controlling how much. intensity (0β1, default 1) sets how strongly the grade is applied, and mix (0β1, default 1) is a separate blend between the graded and original image - the two overlap in effect but give you two independent dials: intensity for how hard the LUT itself pushes, mix for how much of that result shows through versus the untouched source.
Both intensity and mix can be feature-modulated: feature_param chooses which one a connected feature drives (or None to disable modulation), feature_mode picks relative (nudges around your base value) or absolute (feature value replaces it outright), feature_threshold gates when modulation starts, and strength scales how much pull the feature has once active.
Inputs and outputs that matter
images- required.lut_file- the path to your LUT; get this right first, since nothing else matters if the file can't be found or loaded.intensity/mix- your two grading dials, worth understanding as separate before reaching for feature modulation.opt_feature(optional) - connect a Feature node to animate the grade over time.
Output is a single IMAGE.
How to install it
Via ComfyUI Manager, search "RyanOnTheInside." Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside
cd ComfyUI_RyanOnTheInside
pip install -r requirements.txt
then restart. No LUTs are bundled - you'll need to supply your own .cube file (there are plenty of free ones floating around from the color-grading/film community) and know its path on disk.
Common issues & troubleshooting
Node errors or does nothing with lut_file set. lut_file is a plain string, not a file picker, so a typo'd path, a relative path that doesn't resolve from wherever ComfyUI actually runs, or an unsupported LUT format will all silently fail to produce the effect you expect. Use an absolute path while you're testing, and confirm the LUT format is one your build of this node actually parses.
Grade looks identical no matter what LUT you use. Check intensity and mix aren't both effectively zeroed out by a feature modulation you forgot was connected - if opt_feature is wired in and feature_param targets intensity or mix, the visible grade strength depends entirely on that feature's value at each frame, not just the sliders you set.
Applied grade looks different than it does in your usual grading software. LUTs are notoriously sensitive to the color space and gamma assumptions of whatever's applying them - a LUT built for a video editor's linear/log pipeline can look noticeably different run against ComfyUI's raw image tensors. If the look is off, it's worth testing the same LUT at intensity/mix = 1 with no other effects in the chain to isolate whether the mismatch is this node or something upstream.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| strength | FLOAT | 1.000β1 | Overall strength of the effect (0.0 to 1.0) Higher values create more dramatic changes, while lower values are more subtle. |
| feature_threshold | FLOAT | 0.000β1 | Minimum feature value to trigger the effect (0.0 to 1.0) Only applies the effect when the feature value exceeds this threshold. Lower values make the effect more sensitive, higher values make it more selective. |
| feature_param | COMBO | Choose which parameter to modulate: - intensity: Dynamically adjust grading strength - mix: Dynamically adjust blend amount - None: No parameter modulation | |
| feature_mode | COMBO | relative | How to apply the feature modulation: - relative: Changes are centered around the original value - absolute: Changes scale directly from zero to the maximum |
| images | IMAGE | Input image sequence to be processed (IMAGE type) | |
| intensity | FLOAT | 1.000β1 | Strength of the color grading effect (0.0 to 1.0) |
| mix | FLOAT | 1.000β1 | Blend factor between original and graded image (0.0 to 1.0) |
| lut_file | STRING | Path to the LUT file | |
| opt_featureopt | FEATURE | Optional feature input for modulation Connect any feature node here to control the effect. Features can come from audio, motion, color, or other sources. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | β |