Sorcerio / MBM-Music-Visualizer

An image generation based music and audio visualizer integrated into ComfyUI as custom nodes.
MIT License
17 stars 5 forks source link
comfyui comfyui-nodes stable-diffusion

MBM's Music Visualizer

Header Image

Nothing fuzzy about it.


What is it?

An image generation based music visualizer integrated into comfyanonymous/ComfyUI as custom nodes.

Includes

Nodes

Types

Install

  1. Enter ComfyUI's Python Environment by running .\.venv\Scripts\activate from ComfyUI's root directory.
  2. Clone this repo into ComfyUI's custom_nodes directory by entering the directory and running: git clone git@github.com:Sorcerio/MBM-Music-Visualizer.git MBM_MusicVisualizer.
  3. Enter the MBM_MusicVisualizer directory.
  4. Run pip install -r .\requirements.txt to install this project's dependencies.
  5. Start ComfyUI as normal.

Nodes will be found in the MBMnodes/ submenu inside ComfyUI.

Usage

Example Music Visualizer Flow

📝 Note: Drag the example workflow file into ComfyUI to automatically load this flow!

Place any audio files you would like to load in the audio/ directory. You can always refresh the webpage ComfyUI is loaded into to refresh the list in the Audio Loader node.

The Music Visualizer node takes an AUDIO object in and produces a set of Latent Images on output. A tqdm progress bar will be shown in the console to display the current status of the visualization and how long it is expected to take.

Upon completion of a visualization, the Music Visualizer will output the input FPS, a set of Latent Images that can be decoded using the ComfyUI-native Latent Decoder, and a set of Images showing relevant data from the run. The FPS can be fed into any further video or GIF generating nodes. The Latent Images, which are the output content of the visualization, should be converted and either saved individually or compiled into a video through another node. The charts are pixel images that can be saved or modified as desired.

When testing your generations, consider bypassing the Prompt Sequence Renderer and its outputs. (Alternatively, set the image_limit to 1 or higher to generate only a specific number of images.) Doing so will still produce complete charts for most data sources allowing you to preview the general flow of the visualization before you commit to image generation for all frames.

Documentation

Additional documentation can be found in the Documentation directory included in this repository.

Roadmap

As this is a hobby project, no promise is offered for implementation of Roadmap features. However, if you have the time and ability, feel free to submit a Push Request.