Nodes Browser
ComfyDeploy: How ComfyUI_Yvann-Nodes works in ComfyUI?
What is ComfyUI_Yvann-Nodes?
Audio reactivity nodes for AI animations 🔊 Analyze audio, extract drums and vocals. Generate reactive masks and weights. Create audio-driven visuals. Produce weight graphs and audio masks. Compatible with IPAdapter, ControlNets and more. Features audio scheduling and waveform analysis. Tutorials to use this pack: [a/Yvann Youtube](https://www.youtube.com/@yvann.mp4)
How to install it in ComfyDeploy?
Head over to the machine page
- Click on the "Create a new machine" button
- Select the
Edit
build steps - Add a new step -> Custom Node
- Search for
ComfyUI_Yvann-Nodes
and select it - Close the build step dialig and then click on the "Save" button to rebuild the machine
👁️ ComfyUI_Yvann-Nodes
Made with the help of Lilien <a href="https://x.com/Lilien_RIG"><img src="https://github.com/user-attachments/assets/26a483b9-cfe6-4666-af0d-52d40ee65dcf" alt="unnamed" width="35"></a>
With this pack of nodes, you can analyze audio, extract drums, bass, vocal tracks, and use the scheduled masks and weights to create AI-generated audio-reactive animations in ComfyUI
Works with IPAdapter, AnimateDiff, ControlNets, Prompts Schedules
Workflows
Audio Reactive Images To Video :
Workflow File (click on the link, then on "download raw file" button at the right and drop the file into ComfyUI) 📜
AudioReactive_ImagesToVideo_Yvann.json
Youtube Tutorial (Click on the image)
Workflow Demo Render (ENABLE VIDEO SOUND) 🔊
https://github.com/user-attachments/assets/1e6590fc-e0d7-42d7-a205-433adf6c405c
<details> <summary><i>AudioReactive VideoToVideo</i></summary>Workflow File (click on the link, then on "download raw file" button at the right and drop the file into ComfyUI) 📜
AudioReactive_VideoToVideo_Yvann.json
Workflow Demo Render (ENABLE VIDEO SOUND) 🔊
https://github.com/user-attachments/assets/6b0aa544-aa20-4257-b6be-28673082c7ef
Youtube Tutorial (Click on the image)
Workflow Preview
</details>
Nodes
Audio Analysis 🔍
Analyzes audio to generate reactive weights and graph. Can extract specific elements like drums, vocals, bass. Parameters allow manual control over audio weights
<details> <summary><i>Node Parameters</i></summary>
- audio_sep_model: Loaded model from "Load Audio Separation Model"
- audio: Input audio file
- batch_size: Number of frames to associate with audio weights
- fps: Frames per second for processing audio weights
Parameters:
- analysis_mode: Select audio component to analyze
- threshold: Minimum weight value to pass through
- multiply: Amplification factor for weights before normalization
Outputs:
</details>
- graph_audio: Graph image of audio weights over frames
- processed_audio: Separated or processed audio (e.g., drums vocals)
- original_audio: Original unmodified audio input
- audio_weights: List of audio-reactive weights based on processed audio
Load Audio Separation Model 🎧
Load an audio separation model, If unavailable downloads to `ComfyUI/models/audio_separation_model/
<details> <summary><i>Node Parameters</i></summary>
- model: Audio separation model to load
- HybridDemucs: Most accurate fastest and lightweight
- OpenUnmix: Alternative model
Outputs:
- audio_sep_model: Loaded audio separation model<br> Connect it to "Audio Analysis" or "Audio Remixer"
</details>
Audio Peaks Detection 📈
Detects peaks in audio weights based on a threshold and minimum distance. Identifies significant audio events to trigger visual changes or actions.
<details> <summary><i>Node Parameters</i></summary>
- peaks_threshold: Threshold for peak detection
- min_peaks_distance: Minimum frames between consecutive peaks help remove close unwanted peaks around big peaks
Outputs:
</details>
- peaks_weights: Binary list indicating peak presence (1 for peak 0 otherwise)
- peaks_alternate_weights: Alternating binary list based on detected peaks
- peaks_index: String of peak indices
- peaks_count: Total number of detected peaks
- graph_peaks: Visualization image of detected peaks over audio weights
Audio IP Adapter Transitions 🔄
Uses "peaks_weights" from "Audio Peaks Detection" to control image transitions based on audio peaks. Outputs images and weights for two IPAdapter batches, logic from "IPAdapter Weights", IPAdapter_Plus
<details> <summary><i>Node Parameters</i></summary> - **images**: Batch of images for transitions, Loops images to match peak count - **peaks_weights**: List of audio peaks from "Audio Peaks Detection"Parameters:
- blend_mode: transition method applied to weights
- transitions_length: Frames used to blend between images
- min_IPA_weight: Minimum weight applied by IPAdapter per frame
- max_IPA_weight: Maximum weight applied by IPAdapter per frame
Outputs:
</details>
- image_1: Starting image for transition Connect to first IPAdapter batch "image"
- weights: Blending weights for transitions Connect to first IPAdapter batch "weight"
- image_2: Ending image for transition Connect to second IPAdapter batch "image"
- weights_invert: Inversed weights Connect to second IPAdapter batch "weight"
- graph_transitions: Visualization of weight transitions over frames
Audio Prompt Schedule 📝
Associates "prompts" with "peaks_index" into a scheduled format. Connect output to "batch prompt schedule" of Fizz Nodes add an empty line between each individual prompts
<details> <summary><i>Node Parameters</i></summary> - **peaks_index**: frames where peaks occurs from "Audio Peaks Detections" - **prompts**: Multiline string of prompts for each indexOutputs:
</details>
- prompt_schedule: String mapping each audio index to a prompt
Audio Remixer 🎛️
Modify input audio by adjusting the intensity of drums bass vocals or others elements
<details> <summary><i>Node Parameters</i></summary> - **audio_sep_model**: Loaded model from "Load Audio Separation Model" - **audio**: Input audio fileParameters:
- bass_volume: Adjusts bass volume
- drums_volume: Adjusts drums volume
- others_volume: Adjusts others elements' volume
- vocals_volume: Adjusts vocals volume
Outputs:
</details>
- merged_audio: Composition of separated tracks with applied modifications
Repeat Image To Count 🔁
Repeats images N times, Cycles inputs if N > images
<details> <summary><i>Node Parameters</i></summary> - **mask**: Mask input to convertOutputs:
</details>
- float: Float value
Invert Floats 🔄
Inverts each value in a list of floats
<details> <summary><i>Node Parameters</i></summary>
- floats: List of float values to invert.
Outputs:
</details>
- inverted_floats: Inverted list of float values.
Floats Visualizer 📈
Generates a graph from floats for visual data comparison<br> Useful to compare audio weights
<details> <summary><i>Node Parameters</i></summary>
- floats: Primary list of floats to visualize
- floats_optional1: (Optional) Second list of floats
- floats_optional2: (Optional) Third list of floats
Parameters:
- title: Graph title
- x_label: Label for the x-axis
- y_label: Label for the y-axis
Outputs:
</details>
- visual_graph: Visual graph of provided floats
Mask To Float 🎭
Converts mask into float works with batch of mask
<details> <summary><i>Node Parameters</i></summary>
- mask: Mask input to convert.
Outputs:
</details>
- float: Float value representing the average value of the mask.
Floats To Weights Strategy 🏋️
Converts a list of floats into an IPAdapter weights strategy format. Use with "IPAdapter Weights From Strategy" or "Prompt Schedule From Weights Strategy" to integrate output into IPAdapter pipeline
<details> <summary><i>Node Parameters</i></summary>Inputs:
- floats: List of float values to convert
Outputs:
- WEIGHTS_STRATEGY: Dictionary of the weights strategy
Installation
- Install ComfyUI & ComfyUI-Manager
- Launch ComfyUI
- Click on "🧩 Manager" -> "Custom Nodes Manager"
- Search for
ComfyUI_Yvann-Nodes
in the manager and install it