Nodes/RyanOnTheInside/Feature Info Node βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
ComfyUI Node

Feature Info Node βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜

The debug node you plug in before anything goes wrong

By ryanontheinsideΒ·Created 2 years agoΒ·Updated 5 months agoΒ· 852
Feature Info Node βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
  • feature
  • name
  • type
  • frame_rate
  • frame_rate_float
  • frame_count
  • width
  • height
  • min_value
  • max_value

Before you wire a feature into anything downstream, plug it into this node once and actually look at what's inside it. Feature Info Node doesn't transform your data at all - it just reads a FEATURE and tells you exactly what it thinks it is: how many frames it covers, at what rate, what dimensions, and - this is the important one - what its real minimum and maximum values actually are, as opposed to what you assumed they'd be.

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 from a source like audio or motion and then reshaped by chains of Feature Modulator nodes before it drives a Flex node's parameter. Once you've passed a feature through three or four modulators, it's genuinely easy to lose track of whether it's still the 0–1 curve you expect - this node is how you check.

How it works

It's a pure introspection node - no thresholds, no operations, nothing to configure. Connect a feature, run the graph, and read the outputs.

Inputs and outputs that matter

  • feature (required) - the curve you want to inspect. That's the only input.

The outputs are where the value is: name and type (strings identifying what kind of feature this is and where it came from), frame_rate and frame_rate_float (the fps the feature believes it's running at, as both an int and a float), frame_count (how many frames it actually covers), width and height (its spatial dimensions, if relevant to that feature type), and - the pair worth checking most often - min_value and max_value, the actual observed range of the data.

Installing 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

This node has zero dependency needs of its own beyond the pack itself being importable - it reads metadata off an object that's already in memory.

Where people get tripped up - and where this node earns its keep

This is genuinely the most useful debugging tool in the whole reactive chain, and it's worth using more than people expect. Two failure modes it catches immediately:

Frame count mismatches. The single most common source of "index out of range" or subtly-out-of-sync errors in an audio/video-reactive pipeline is a feature whose frame_count doesn't match the image or mask sequence it's supposed to be driving - usually because the frame rate used to extract the feature didn't match the frame rate used to build the canvas (see Empty Image From Audio / Empty Mask From Audio, whose whole job is keeping that number consistent). Drop a Feature Info Node on the feature and compare its frame_count against what your image sequence actually has before you spend time debugging the effect itself.

Range drift. After chaining a few modulators - a Feature Mixer here, a Feature Math there - it's easy to end up with a feature whose values have crept outside the 0–1 range you assumed, especially if any node upstream used base_gain, ceiling, or a math operation that pushes values up. If an effect suddenly looks blown-out or barely reacts at all, check min_value/max_value here before assuming the bug is somewhere else - if the range isn't what you think it is, run the feature through Feature Renormalize or Feature Rebase to bring it back in line before it reaches whatever it's supposed to be driving.

If a v1-to-v2 update breaks the pack entirely, the README's fix is a full uninstall and reinstall rather than a partial update.

CategoryRyanOnTheInside/FlexFeatures/Utilities

Inputs (1)

NameTypeDefaultDescription
featureFEATUREβ€”

Outputs (9)

NameTypeDescription
nameSTRINGβ€”
typeSTRINGβ€”
frame_rateINTβ€”
frame_rate_floatFLOATβ€”
frame_countINTβ€”
widthINTβ€”
heightINTβ€”
min_valueFLOATβ€”
max_valueFLOATβ€”