FLOAT Extract Emotion from Features (VA)
Pick a feeling or let the audio decide
- processed_audio_features
- emotion_model_pipe
- we_latent
- emotion_model_pipe_out
The emotion branch of the Very Advanced graph ends here. FLOAT Extract Emotion from Features (VA) produces we_latent - the emotion conditioning the sampler uses - and it does it two ways depending on the emotion dropdown. Pick a specific emotion and it builds a one-hot encoded tensor, a clean flag that says "lean the expression this way." Leave it at none and it runs the preprocessed audio features through the loaded emotion-recognition model and predicts the emotion from the voice.
What makes this node VA rather than its Advanced sibling is the explicit model input. The emotion model travels in from Load Emotion Recognition Model as a pipe you can see, swap, or even replace with a custom SER model - hence the name. If you've trained your own emotion classifier, this is the seam where you'd plug it in, and the dim_e from the loader tells you whether its output dimension matches what the FMT expects.
Inputs and outputs
- processed_audio_features - from FLOAT Audio Feature Extract. It wants the pre-model features (the ones before the main Wav2Vec pass), not the interpolated
wav2vec_features. Wire the wrong output and the emotion model gets fed something it wasn't built for. - emotion_model_pipe - from Load Emotion Recognition Model.
- emotion -
none,angry,disgust,fear,happy,neutral,sad,surprise.none= let the model predict.
Outputs: we_latent (into Float Sample Motion Sequence RD VA) and the emotion_model_pipe passthrough.
The one real limitation
This node gives you one emotion for the whole clip. The model reads the audio and returns a single prediction (or you force a single flag), and the whole video wears that one expression. That's correct for most clips, but if your audio swings from quiet to furious and you want the face to follow, this is the wrong node - the pack's experimental Float Extract Emotion (Dynamic) splits the audio into chunks and gives you a time-varying emotion sequence instead. Static vs dynamic is the fork, and the README calls dynamic "experimental."
Install is the pack standard: Manager search "ComfyUI-FLOAT_Optimized", or clone into custom_nodes + pip install -r requirements.txt, restart. The emotion weights extract from the unified model or download on their own. FLOAT is CC BY-NC-SA 4.0 - non-commercial - and the English-only training of the shipped emotion model means non-English audio is better served by forcing the dropdown.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| processed_audio_features | TORCH_TENSOR | The batch of preprocessed audio features, output by a feature extractor like the one in FloatAudioPreprocessAndFeatureExtract. | |
| emotion_model_pipe | EMOTION_MODEL_PIPE | The loaded emotion recognition model pipe. | |
| emotion | COMBO | none | Select a specific emotion or 'none' to have the model predict the emotion from the audio features. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| we_latent | TORCH_TENSOR | — |
| emotion_model_pipe_out | EMOTION_MODEL_PIPE | — |