Nodes/FLOAT Optimized/FLOAT Audio Feature Extract (VA)
ComfyUI Node

FLOAT Audio Feature Extract (VA)

The VA graph's audio front-end

By set-soft·Created about a year ago·Updated about a year ago· 33
FLOAT Audio Feature Extract (VA)
  • audio
  • wav2vec_pipe
  • wav2vec_features
  • audio_num_frames
  • processed_audio_features
  • wav2vec_pipe_out
  • audio
  • fps
target_fps25.0
only_last_featuresfalse

The Very Advanced graph splits the audio path into two explicit stages, and this is the first one. FLOAT Audio Feature Extract (VA) takes raw audio, runs it through the Wav2Vec model loaded by Load Wav2Vec Model, and interpolates the resulting features up to your target FPS so they line up with video frames. The output is what the projection layer - the next node in the audio branch - will compress down into the wa_latent that drives the lips.

Note the difference from the Advanced path: here you're expected to hand over audio that's already mono and at the sample rate the Wav2Vec pipe expects. The Advanced node quietly resamples for you; this one doesn't. Feed it stereo or wrong-rate audio and you'll get silence or garbage features, not an error message.

Inputs and outputs

  • audio - the raw ComfyUI AUDIO input. Must be mono, correct sample rate.
  • wav2vec_pipe - from Load Wav2Vec Model; carries the model, feature extractor, and effective options.
  • target_fps (default 25) - the frame rate the features get interpolated to. This is how the output video length and frame count get fixed.
  • only_last_features (default false) - a real quality/speed lever. false concatenates features from all transformer layers, which is a much larger feature dimension (better fidelity, heavier); true uses only the last layer's features (smaller, faster). If you're experimenting with VRAM, this is a good first thing to flip.

Outputs: wav2vec_features (the interpolated features, ready for Float Apply Audio Projection), audio_num_frames (total video frames - the sampler needs this to know how long the motion sequence is), processed_audio_features (features before the main Wav2Vec model - these feed the emotion branch), plus passthroughs of wav2vec_pipe, audio, and fps so the VA graph can keep its bus flowing.

That processed_audio_features output is the quiet workhorse: the emotion path (Float Extract Emotion with Custom Model) consumes it, keeping the emotion prediction derived from the same audio the motion was conditioned on.

The practical stuff

Install is the pack standard: Manager search "ComfyUI-FLOAT_Optimized", or cd ComfyUI/custom_nodes && git clone https://github.com/set-soft/ComfyUI-FLOAT_Optimized && pip install -r requirements.txt, restart. First run, the loader pulls or extracts the Wav2Vec 2.0 weights - the base model is a separate download from the unified FLOAT checkpoint, so expect it to fetch wav2vec2-base-960h into models/audio/. Audio quality is still king: clean mono speech beats music-laden tracks, and the emotion half of this pipeline was trained on English. FLOAT itself is CC BY-NC-SA 4.0 - non-commercial.

CategoryFLOAT/Very Advanced

Inputs (4)

NameTypeDefaultDescription
audioAUDIOThe raw ComfyUI audio input. Must be mono and have the correct sample rate required by the Wav2Vec pipe.
wav2vec_pipeWAV2VEC_PIPEThe loaded Wav2Vec pipe, containing the model, feature extractor, and options.
target_fpsFLOAT25.0The target video frames-per-second. Used to calculate the final number of feature frames.
only_last_featuresBOOLEANfalseIf True, use only the features from the last transformer layer. If False, concatenate features from all transformer layers, resulting in a much larger feature dimension.

Outputs (6)

NameTypeDescription
wav2vec_featuresTORCH_TENSOR
audio_num_framesINT
processed_audio_featuresTORCH_TENSOR
wav2vec_pipe_outWAV2VEC_PIPE
audioAUDIO
fpsFLOAT