Load Emotion Recognition Model (VA)
The FLOAT pack's built-in mood reader
- emotion_model_pipe
- dim_e
FLOAT's emotion conditioning doesn't come out of nowhere - it's read from the voice by a dedicated Speech Emotion Recognition (SER) model, and in the Very Advanced graph Load Emotion Recognition Model (VA) is where that model gets loaded. It's a Wav2Vec 2.0 fine-tune for emotion classification, the same family as the one FLOAT was trained with, and it outputs the model pipe plus dim_e, the number of emotion classes. Downstream, the emotion-extraction nodes use it to turn audio (or your explicit choice) into the we_latent that colors the motion.
This is one of the pack's two audio-model loaders, and they're easy to mix up, so the distinction is worth stating plainly:
- Load Wav2Vec Model → the general speech-encoding model (wav2vec2-base-960h) that produces the motion-driving
wa_latent. - Load Emotion Recognition Model → the emotion classifier (wav2vec-english-speech-emotion-recognition) that produces the feeling,
we_latent.
Different models, different folders in models/audio/, different jobs.
Inputs and outputs
- model_folder - dropdown of folders in
ComfyUI/models/audio/. Shipped default:wav2vec-english-speech-emotion-recognition. - target_device - CPU or CUDA.
Outputs:
- emotion_model_pipe - the loaded model, feature extractor, and config bundled together. This is what Float Extract Emotion with Custom Model and Float Extract Emotion (Dynamic) consume.
- dim_e - the number of emotion classes the model predicts (8 in the shipped one: angry, disgust, fear, happy, neutral, sad, surprise, plus "none"). The FMT sampler needs a
wedimension that matches this, so it's worth keeping an eye on if you swap in a different SER model.
Loading & install
The loader pulls the weights from the model folder, auto-extracting from the unified FLOAT.safetensors (under the emotion_encoder.wav2vec2_for_emotion prefix) when the split model isn't present, or downloading the original pytorch_model.bin from the r-f/wav2vec-english-speech-emotion-recognition repo as a fallback. It's Apache 2.0-licensed itself, but the FLOAT wrapper around it is the pack's CC BY-NC-SA 4.0, so the whole thing stays non-commercial.
Install is the pack routine: 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. One honest limitation to plan around: the emotion model is English-trained, so its reading of non-English speech is a guess at best - if you're working with another language, forcing the emotion dropdown is usually more reliable than trusting the classifier.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| model_folder | COMBO | Name of the speech emotion recognition model folder in ComfyUI/models/audio/ | |
| target_device | COMBO | cpu | The device (CPU or CUDA) to which the emotion model will be assigned for computation. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| emotion_model_pipe | EMOTION_MODEL_PIPE | — |
| dim_e | INT | — |