Feature Interpolate Multi β‘π ‘π π £π
Reconcile three reactive signals so switching between them doesn't jump
- feature1
- feature2
- feature3
- FEATURE1
- FEATURE2
- FEATURE3
Most of the Feature Modulator nodes in this pack take one or two features in and give you one back. Feature Interpolate Multi is unusual: it takes three in and gives you three back out - FEATURE1, FEATURE2, FEATURE3 - reshaped against each other rather than merged into a single curve. If you've got three reactive signals feeding parallel effects and you want handoffs between them to feel smooth rather than abrupt, this is the node for that.
Quick orientation if you're new to the RyanOnTheInside pack (Ryan / u/ryanontheinside, also behind ComfyStream and Daydream's real-time reactive video work): a FEATURE is a per-frame value curve, produced by a Feature Extraction node and reshaped by Feature Modulator nodes like this one before it drives a Flex node's parameter or an external target.
How it works
Worth being upfront about: neither the pack's tooltips nor its README document the exact aggregation math for this node beyond the parameter names, so treat this as the functional read rather than a guaranteed internal description. transition_frames controls how many frames a handoff between the three inputs takes - set it higher for a slower, more gradual transition, lower for a snappier one. min_aggregate_value (0β10, higher than the usual 0β1 range you'll see on most feature params) sets a floor on the combined signal across the three, so the overall output doesn't collapse toward zero at the moments where all three inputs happen to be quiet simultaneously.
The practical use case: three parallel reactive signals - say, driving three different regions of a particle system, or three stages of an effect - that need to hand off to each other over the course of a clip without a visible seam. This node exists specifically in the "FeatureModulators" family, not "Utilities" or "Scheduling," which tells you it's meant to shape the curves themselves, not just report on them or bridge them elsewhere.
Inputs and outputs that matter
feature1/feature2/feature3(required) - the three curves being reconciled against each other.min_aggregate_value(0β10, default 1) - a floor for the combined signal.transition_frames(1β100, default 5) - how many frames a handoff between inputs takes.invert_output- flips the results.
Three outputs - FEATURE1, FEATURE2, FEATURE3 - each corresponding to its input, reshaped. Wire each into whatever Flex node parameter it's meant to drive.
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
This is math on already-extracted features - no models or GPU work required on its own, though it ships with the pack's full dependency set for the extraction nodes elsewhere.
Where people get tripped up
If a v1-to-v2 update leaves the pack broken, the README's documented fix is a clean uninstall and reinstall rather than a git pull.
Given the light documentation on this one specifically, the practical advice is to drop three Feature Info Node instances on the outputs and actually look at min_value/max_value before assuming the node did what you expected - that's the fastest way to confirm whether min_aggregate_value did what its name implies for your particular three inputs. If the transitions still feel abrupt, raise transition_frames well past the default of 5 before concluding the node isn't working; five frames at typical video frame rates is well under a quarter of a second and can read as instant.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| feature1 | FEATURE | β | |
| feature2 | FEATURE | β | |
| feature3 | FEATURE | β | |
| min_aggregate_value | FLOAT | 1.000β10 | β |
| transition_frames | INT | 51β100 | β |
| invert_output | BOOLEAN | false | β |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| FEATURE1 | FEATURE | β |
| FEATURE2 | FEATURE | β |
| FEATURE3 | FEATURE | β |