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

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

Hand-build a reactive curve instead of extracting one

By ryanontheinsideΒ·Created 2 years agoΒ·Updated 5 months agoΒ· 852
Float Feature Node βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
    • FEATURE
    β—„extraction_methodβ–Ύβ–Ί
    β—„frame_rate30.0β–Ί
    β—„frame_count30β–Ί
    β—„width512β–Ί
    β—„height512β–Ί
    β—„floats0.50β–Ί

    RyanOnTheInside's whole pack runs on a three-tier idea: a Source node extracts a FEATURE - a per-frame numeric curve - from something (audio, brightness, depth, motion), that FEATURE gets fed into a Target node (the Flex mask/latent/video effects), and the target's parameters move with the curve instead of sitting at one fixed value. Most Sources pull their curve automatically from real footage or audio. Float Feature Node is the exception: it's the manual one. You give it float values directly, and it packages them as a FEATURE like any of the automatic extractors would.

    How it works

    extraction_method decides how the values get processed on their way out: raw passes them through as-is for precise, direct control; smooth applies smoothing for gentler transitions frame to frame; cumulative runs a running sum instead of using each value on its own - useful for an effect that should keep building rather than oscillate, like a progressive zoom or an accumulating distortion that never resets. frame_rate, frame_count, width, and height define the shape of the feature this node produces, matching it to whatever sequence and canvas size the Target node downstream expects.

    The floats field itself is a single widget, defaulted to 0.5. Left as a plain widget, you get a flat, unchanging curve at that one value - genuinely useful for testing a Flex effect at a fixed setting before wiring up real reactivity. For an actual animated curve, right-click and convert floats to an input, then feed it from something that produces a list of per-frame values (a value list, a small script node, or hand-typed keyframe data) - that's the standard way ComfyUI widgets accept a sequence instead of one static number.

    Inputs and outputs that matter

    • extraction_method - raw, smooth, or cumulative.
    • frame_rate (default 30, 1–120) and frame_count (default 30, min 1) - the sequence this feature is built for.
    • width / height (default 512, 64–4096) - the canvas dimensions the feature is computed at.
    • floats (default 0.5, 0–1) - the value(s) to turn into a feature; convert to an input for a real animated curve.
    • Output - a single FEATURE, ready to feed into any Flex target node.

    Installing it

    Via ComfyUI Manager: search "RyanOnTheInside," install, restart. Manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside.git
    cd ComfyUI_RyanOnTheInside
    pip install -r requirements.txt
    

    then restart. Pure numeric packaging - no models, no analysis, so this is one of the lightest nodes in the whole pack to run.

    Common issues & troubleshooting

    The feature never changes. If floats is still a plain widget, that's expected - it's giving you one static value repeated across every frame. Convert it to an input and drive it from a list-producing node upstream for an actual moving curve.

    cumulative output climbs way outside the range you expected. That's the nature of a running sum - feed it consistently positive values and the output will keep growing frame over frame rather than settling into a bounded 0–1 range like raw does. Downstream Flex nodes may need their thresholds tuned differently to account for that unbounded growth.

    Not sure your curve is actually doing what you think. Route the FEATURE output through the pack's EffectVisualizer node before wiring it into your real effect - it burns the numeric value onto your frames as text, which is the fastest way to sanity-check a hand-built curve.

    CategoryRyanOnTheInside/FlexFeatures/Sources

    Inputs (6)

    NameTypeDefaultDescription
    extraction_methodCOMBOChoose how to process the float values: - raw: Direct normalized values - good for precise control - smooth: Apply smoothing to the values - creates gentler transitions - cumulative: Running sum of values - good for progressive effects
    frame_rateFLOAT30.01–120Frame rate of the video (1.0 to 120.0 fps)
    frame_countINT301–999999Total number of frames (minimum: 1)
    widthINT51264–4096Width of the output feature (64 to 4096)
    heightINT51264–4096Height of the output feature (64 to 4096)
    floatsFLOAT0.500–1β€”

    Outputs (1)

    NameTypeDescription
    FEATUREFEATUREβ€”