Feature Fade β‘π ‘π π £π
Crossfade between two reactive signals, statically or dynamically
- feature1
- feature2
- control_feature
- FEATURE
Sometimes you don't want one reactive signal driving your effect the whole way through - you want to start with one and hand off to another partway through the clip, or blend continuously between two of them. Feature Fade crossfades two FEATURE curves using a fader value, and the interesting bit is that the fader itself doesn't have to be a fixed number - you can drive it with a third feature.
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 from a source like audio or motion, then reshaped by Feature Modulator nodes like this one before it drives a Flex node's parameter or an external target.
How it works
At its simplest, fader is a static 0β1 value: 0 means the output is entirely feature1, 1 means entirely feature2, and anything in between is a linear blend of the two. Where it gets more interesting is the optional control_feature input - plug a feature in there and it overrides the static fader, letting the blend itself change frame by frame based on that third signal. That's how you get things like "fade toward the motion-driven feature whenever the audio gets quiet" instead of a fixed 50/50 split for the whole clip.
Inputs and outputs that matter
feature1/feature2(required) - the two curves to fade between.feature1dominates atfader = 0,feature2atfader = 1.fader(0.0β1.0, default 0.5) - the static blend value, used whenevercontrol_featureisn't connected.control_feature(optional) - a feature that drives the fader dynamically instead of using the fixed value above.invert_output- flips the resulting curve.
Output is a single FEATURE, ready to wire into a Flex node's optional feature input or into a further modulator.
Installing it
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 node is pure math on features that have already been extracted - it doesn't need the audio/MIDI/optical-flow libraries directly, but they install together with the rest of the pack from the single requirements file.
Where people get tripped up
If a v2 update leaves things broken, the README's documented fix is a full uninstall and reinstall rather than patching over the old install with a git pull.
For this node, the trap is forgetting that control_feature silently takes priority the moment it's connected - if you've carefully dialed in a static fader value and the blend still isn't behaving the way you expect, check whether something's plugged into control_feature overriding it. The other thing worth knowing: because the fade is a straight linear blend, feeding in two features with very different value ranges (one that swings 0β1, another that barely moves off 0.2) will make the fade feel lopsided - the "quiet" one won't visibly contribute much no matter where the fader sits. Run each feature through Feature Renormalize first if you want the two halves of the fade to feel evenly weighted.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| feature1 | FEATURE | First input feature to fade from | |
| feature2 | FEATURE | Second input feature to fade to | |
| fader | FLOAT | 0.500β1 | Static fader value to control the blend (0.0 to 1.0) |
| invert_output | BOOLEAN | false | β |
| control_featureopt | FEATURE | Optional feature to dynamically control the fader value |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| FEATURE | FEATURE | β |