Feature To Flex Float Param β‘π ‘π π £π
The bridge from a reactive curve to a plain float input
- feature
- PARAMETER
Not everything you want to animate is a purpose-built Flex node with a native FEATURE input. Plenty of ordinary ComfyUI nodes just take a plain FLOAT - a strength slider, a CFG value, a blend weight - and those can't accept a Feature directly. Feature To Flex Float Param is the bridge: it converts a Feature curve into a per-frame float value, remapped onto whatever numeric range that parameter actually needs.
If you're new to the RyanOnTheInside pack (Ryan / u/ryanontheinside, also behind ComfyStream and Daydream's real-time reactive video work): the pack's whole pitch is "everything reactivity" - audio, MIDI, motion, and more, driving a workflow instead of you keyframing it. This node is filed under "Scheduling" rather than "FeatureModulators," which fits - it's less about reshaping the curve and more about turning it into a schedule for a specific parameter, frame by frame, instead of you hand-keyframing that value yourself.
How it works
The node takes the feature's own value range and maps it onto your lower_threshold/upper_threshold - per the node's own tooltip: "The feature's minimum value will be mapped to this threshold" for the lower bound, and the same for the maximum onto the upper bound. So if your feature swings from roughly 0.2 to 0.9 and you set lower_threshold = 0 / upper_threshold = 2, the output float will swing across that 0β2 range following the same relative motion as the input feature, not a flat 0β1.
Inputs and outputs that matter
feature(required) - the curve to convert into a schedulable float parameter.lower_threshold(-10,000 to 10,000, default 0) - the output value the feature's minimum maps to.upper_threshold(-10,000 to 10,000, default 1) - the output value the feature's maximum maps to.invert_output- when enabled, inverts the output so high becomes low and vice versa, per the tooltip.
Output is a single PARAMETER of type FLOAT - wire it into any node's float input that you want to animate with the underlying feature, the same way you'd type a static number in but now it's varying frame by frame.
Installing it
Via ComfyUI Manager: search RyanOnTheInside. Manual install:
cd ComfyUI/custom_nodes
git clone https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside
cd ComfyUI_RyanOnTheInside
pip install -r requirements.txt
Pure math on already-extracted feature data - no models, no GPU work of its own, though it ships with the pack's full dependency set.
Where people get tripped up
If a v1-to-v2 update leaves the pack broken, the README's fix is a full uninstall and reinstall rather than a git pull.
The gotcha here is the same as with Feature Renormalize: because the mapping is based on the feature's observed min and max, not a fixed 0β1 assumption, a feature that's drifted after passing through a few modulators (never quite reaching its theoretical extremes) will still stretch to fill your full lower_thresholdβupper_threshold range. That's often exactly what you want, but if the animated parameter feels more extreme or more subdued than expected, check the feature's actual range with a Feature Info Node before assuming your thresholds here are wrong. Also worth remembering: this node outputs one float per frame, so whatever it's plugged into needs to actually be something that runs per-frame in your pipeline - plugging it into a node that only evaluates once per workflow run won't give you the animation you're expecting.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| feature | FEATURE | Input feature to convert into a schedulable parameter | |
| invert_output | BOOLEAN | false | When enabled, inverts the output values (high becomes low and vice versa) |
| lower_threshold | FLOAT | 0.00-10000β10000 | Minimum float value for the output parameter. The feature's minimum value will be mapped to this threshold. |
| upper_threshold | FLOAT | 1.00-10000β10000 | Maximum float value for the output parameter. The feature's maximum value will be mapped to this threshold. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| PARAMETER | FLOAT | β |