Nodes/ComfyUI-VST-Adapter/VST Effect Processing Host
ComfyUI Node

VST Effect Processing Host

Run real VST3 effects on your generated audio — inside ComfyUI

By yanivkarta·Created 3 months ago·Updated 3 months ago· 0
VST Effect Processing Host
  • audio
  • AUDIO
vst_pathC:/Program Files/Common Files/VST3/Effect.vst3
bypassFalse
vst_parameters_json{ "mix": 0.5 }

Generated audio in ComfyUI has a dirty secret: the models hand you a dry waveform and the ecosystem basically stops there. MMAudio gives you foley that fits the pixels, ACE-Step gives you a track, and then... that's it. No reverb, no EQ, no glue. ComfyUIVSTEffectAdapter is the missing mastering stage - it takes any AUDIO tensor in your graph and pushes it through a real VST3 effect plugin (reverb, compressor, chorus, amp sim, whatever you've got installed) using Spotify's pedalboard library. If you've ever bounced a render through a plugin in a DAW to make it sit in a mix, this is that, as a node.

Honest disclaimer up front: this is an experimental pack from a single-commit repo, and the community signal is basically zero - this node has no real footprint on reddit yet. You're the early adopter, which means you'll be doing some of the debugging yourself. If that's your vibe, read on.

How it works

The node takes the AUDIO dict (waveform tensor, batch × channels × samples, plus sample_rate) and loads the .vst3 file at vst_path via pedalboard's VST3Plugin. Each key in vst_parameters_json gets pushed onto the plugin - as a named attribute if one exists, otherwise into raw_parameter_values - then the plugin runs over every batch element and the results get stacked back into a same-shape AUDIO dict. Batch and sample rate survive intact, so the rest of your graph can't tell the difference except that the sound is... better.

The inputs that matter

  • audio - any AUDIO output: MMAudio, ACE-Step, Stable Audio, or a loaded file. This is the signal being processed.
  • vst_path - full path to a .vst3 file. The default is a Windows path, so on Linux or macOS you'll type your real path.
  • vst_parameters_json - a JSON object of parameter name → value, e.g. {"mix": 0.5}. Names must actually exist on the plugin.
  • bypass - set to "True" to pass audio through untouched. Great for A/B-ing your plugin chain.

Output is a single AUDIO - wire it to a save/preview node or onward into more processing.

Install

ComfyUI Manager, search "ComfyUI-VST-Adapter" - or the manual route:

cd ComfyUI/custom_nodes
git clone https://github.com/yanivkarta/ComfyUI-VST-Adapter

Then restart ComfyUI. Here's the trap: the repo ships no requirements.txt, so Manager's auto-dependency step finds nothing to install. You have to add the two deps yourself, into ComfyUI's Python:

pip install pedalboard mido

On Windows with the embedded runtime that's ComfyUI\python_embeded\python.exe -m pip install pedalboard mido.

Common issues

  • Only VST3 works. Pedalboard can't load VST2 (.vst) plugins. If your favorite effect is VST2-only, this node will never see it - grab the VST3 build.
  • It fails soft. If the file at vst_path doesn't exist, or the plugin refuses to initialize, the node quietly returns your audio unchanged and prints a [VST Effect] line to the terminal. No error dialog - silence-for-success unless you're watching the console. When your "processed" audio sounds identical, check the log.
  • Sample rate mismatches. The effect runs at whatever rate your upstream audio has. Some plugins choke on unusual rates; if you get dropouts or nothing, resample the audio before it hits this node.
  • Not every VST3 cooperates. Plugins that demand realtime audio callbacks or a full DAW host can refuse to load under pedalboard. That's a plugin problem, not your wiring - swap the plugin.

The name might oversell it (no automatic effect discovery, no preset browser - you hand it a path and a JSON blob), but for one specific job - taming raw generated audio into something that sits in a mix - it's genuinely useful. And it's free, which beats the alternative of bouncing every render through a DAW by hand.

CategoryAudio Processing/VST

Inputs (4)

NameTypeDefaultDescription
audioAUDIO
vst_pathSTRINGC:/Program Files/Common Files/VST3/Effect.vst3
bypassCOMBOFalse2 options: False, True
vst_parameters_jsonoptSTRING{ "mix": 0.5 }

Outputs (1)

NameTypeDescription
AUDIOAUDIO