Flex Image Hue Shift β‘π ‘π π £π
Rotating colors, reactively, optionally masked
- images
- opt_feature
- opt_mask
- IMAGE
The simplest possible way to describe this node: it spins every color in the image around the color wheel by a set number of degrees. Red becomes orange, becomes yellow, becomes green, and so on as you push the value up - and because it's one of RyanOnTheInside's Flex nodes, that rotation amount can be driven by a reactive Feature instead of staying fixed, which is where this stops being a one-off filter and becomes something like a slow psychedelic color cycle synced to audio or motion.
How it works
There's really one setting: hue_shift (0β360, default 0), the rotation in degrees. At 0 nothing changes; at 360 you're back where you started, having cycled through every hue. It operates on the whole image's color wheel uniformly - it doesn't distinguish between the reds in someone's shirt and the reds in a sunset, it just rotates all of them together.
feature_param here only has two real options: hue_shift itself, or None to disable modulation entirely - this node genuinely has nothing else to modulate. feature_mode picks relative (the feature nudges the shift up/down around your base value) or absolute (the feature's own value becomes the shift directly, useful if you want the hue to map cleanly to something like a full audio-driven color cycle). feature_threshold and strength behave as elsewhere in the Flex family.
The one extra worth knowing about: opt_mask, an optional MASK input that restricts the hue shift to only the masked region - everything outside the mask stays untouched. That turns this from "shift every color in the frame" into "shift just this person's jacket" or "shift just the sky," which is a much more common real use than a full-frame hue rotation.
Inputs and outputs that matter
images- required.hue_shift- the only meaningful dial; everything else is about how it changes over time or where it applies.opt_mask(optional) - scope the effect to part of the frame.opt_feature(optional) - drivehue_shiftreactively.
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 model download, no heavy dependency - this is one of the lightest nodes in the whole pack.
Common issues & troubleshooting
Skin tones look wrong even at a small shift value. Hue rotation is applied uniformly across the color wheel, and skin tones sit in a narrow, sensitive band of it - even a modest shift can push faces toward green or purple faster than it visibly affects the rest of the image. If you're keeping people recognizable, use opt_mask to exclude faces/skin, or keep hue_shift small.
opt_mask doesn't seem to be limiting the effect. Double check the mask is actually connected and covers the region you expect - an empty or all-white mask behaves the same as no mask at all (full-frame effect), while an all-black mask will suppress the shift everywhere.
Reactive shift feels jarring rather than smooth. If you're using feature_mode: absolute, the hue jumps directly to wherever the feature's value maps on the 0β360 range each frame, which can look like snapping rather than drifting if the feature itself is noisy. Try relative mode, or smooth the upstream feature before feeding it in, if you want a gentler cycling look.
Inputs (8)
| 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: - hue_shift: Dynamically adjust color rotation - 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) | |
| hue_shift | INT | 00β360 | Amount of hue shift to apply (0.0 to 360.0) |
| 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. | |
| opt_maskopt | MASK | Optional mask to apply the effect selectively |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | β |