Nodes/RyanOnTheInside/Flex Audio Time Stretch βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
ComfyUI Node

Flex Audio Time Stretch βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜

Stretch or compress audio without pitch-shifting, reactively

By ryanontheinsideΒ·Created 2 years agoΒ·Updated 5 months agoΒ· 852
Flex Audio Time Stretch βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
  • audio
  • opt_feature
  • AUDIO
β—„strength1.00β–Ί
β—„feature_threshold0.00β–Ί
β—„feature_paramβ–Ύβ–Ί
β—„feature_moderelativeβ–Ί
β—„target_fps3β–Ί
β—„rate1.00β–Ί

Time-stretching changes how long a clip lasts without changing its pitch - slow a voice down and it still sounds like a voice, not a demon growl, which is the whole point versus just resampling. This node does that, and being one of the pack's "Flex" nodes, the stretch rate itself can be modulated by an audio, motion, or other reactive signal instead of staying fixed for the whole clip.

How it works

Feed it audio, set a rate, and it stretches (rate > 1) or compresses (rate < 1) the timing. Because the pack's Flex nodes are typically built to sync with a per-frame video pipeline rather than operate on audio in isolation, this node also takes a target_fps - it chunks the audio processing to align with a given frame rate, which matters if you're driving the stretch rate from a FEATURE curve that itself has one value per video frame.

The inputs and outputs that matter

  • audio (AUDIO, required) - your input clip.
  • rate (default 1, range 0.5–2) - the time-stretch factor. Below 1 speeds it up (shorter output), above 1 slows it down (longer output). At 1, output should match input length.
  • target_fps (default 3, range 1–60) - how the audio processing is chunked to align with a video frame rate. If you're syncing this to a video sequence elsewhere in your workflow, set it to match that sequence's actual fps.
  • feature_param - only one real choice here per the schema: rate. This is the field that lets an incoming FEATURE signal drive the stretch amount dynamically instead of staying fixed.
  • feature_mode (relative / absolute, default relative) - relative modulation is centered around your set rate; absolute scales from zero to the max regardless of what rate is set to.
  • strength, feature_threshold, opt_feature - the standard Flex trio for overall modulation intensity, a minimum-feature gate, and the reactive signal input itself.
  • Output - a single AUDIO.

How to install it

Via ComfyUI Manager: search "RyanOnTheInside," install, restart. By hand:

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

then restart ComfyUI. No model downloads for this node - it's DSP on audio you already have.

Common issues & troubleshooting

Output audio length doesn't match what you expected. Remember rate above 1 makes the clip longer (slower playback), not shorter - it's easy to have the direction backwards in your head if you're coming from a "speed" mental model rather than a "stretch factor" one.

Reactive modulation feels out of sync with your video. Check target_fps actually matches the frame rate of whatever video sequence you're syncing this audio to. A mismatch here means the audio processing is chunked at the wrong granularity relative to your feature curve, which shows up as timing drift over a longer clip even if the first second or two looks fine.

Rate modulation does nothing even with a feature wired in. feature_param needs to be set - since rate is effectively the only real option in this node's dropdown, if modulation isn't happening the most likely culprit is the field defaulting to unset/None rather than the feature signal itself being wrong.

Audio sounds warped or artifacty at extreme rates. Time-stretching algorithms generally degrade toward the edges of their supported range - this node caps rate at 0.5–2 for a reason, and pushing close to those limits is where you're most likely to hear artifacts, especially on complex mixes rather than simple tones or speech.

CategoryRyanOnTheInside/FlexFeatures/Targets/Audio

Inputs (8)

NameTypeDefaultDescription
strengthFLOAT1.000–1Overall strength of the effect (0.0 to 1.0)
feature_thresholdFLOAT0.000–1Minimum feature value to apply the effect (0.0 to 1.0)
feature_paramCOMBOParameter to be modulated by the feature
feature_modeCOMBOrelativeHow the feature modulates the parameter ('relative' or 'absolute')
audioAUDIOInput audio to be processed
target_fpsFLOAT31–60Target frames per second for processing (1.0 to 60.0 fps)
rateFLOAT1.000.5–2Time stretching factor (0.5 to 2.0)
opt_featureoptFEATUREOptional feature input for parameter modulation

Outputs (1)

NameTypeDescription
AUDIOAUDIOβ€”