Nodes/ComfyUI-VST/VST Parameters
ComfyUI Node

VST Parameters

Auto-generated VST sliders — with a two-run catch

By MuziekMagie·Created 6 months ago·Updated 6 months ago· 2
VST Parameters
  • parameter_schema
  • vst_settings
dynamic_values_json{}

This is the flashy one. Where VSTManualParameters makes you type parameter names by hand, VSTParameters conjures actual UI widgets out of thin air - toggles for booleans, dropdowns for choices, sliders for everything else - generated from the plugin's own parameter schema. Load a reverb, and a room-size slider with the right min/max just... appears.

The catch is right there in the README: experimental, and it needs your workflow to run twice before the widgets show up. That's not a bug in your setup; it's how the node is designed.

How it works

The node needs two things wired in: the parameter_schema output from VSTLoader (or VSTInspector) and the dynamic_values_json string it uses to talk to the frontend. The actual widget generation happens in the pack's JavaScript extension, which ships in the node's js/ folder and loads automatically when you restart ComfyUI.

Here's the two-run flow:

  1. First run: you've connected the schema but there are no widgets yet, because the node hasn't "seen" the plugin's parameters. It runs the audio through with the plugin's default values while the JS reads the schema and builds the widgets.
  2. Second run: the sliders and toggles are now sitting on the node. Set them, hit run again, and the values get serialized into dynamic_values_json and applied for real.

The reason it's two runs: the node has to see the plugin output once to know what parameters exist before the frontend can create widgets for them. It's a little clumsy, but it works - and once the widgets exist they persist with the workflow, so you pay the two-run tax once per plugin.

The dynamic_values_json input itself is a hidden utility - the JS writes your slider values into it and hides it from view. You generally shouldn't hand-edit it; that's just the plumbing.

When to reach for it (and when not to)

Reach for it when you want a real control surface for a plugin you'll tweak repeatedly, and you don't care about wrapping the workflow. The autogenerated sliders reflect each parameter's true range and step, which is nicer than hand-typing a value into a text field.

Do not use it inside a Subgraph. The README is blunt: it currently doesn't work inside Subgraphs, full stop. If you're encapsulating a workflow, use VSTManualParameters - that node works everywhere and the author explicitly recommends it for subgraph workflows.

Installing it

Part of the same ComfyUI-VST pack, so one install gets you all five nodes. Manager → search "ComfyUI-VST", or:

cd ComfyUI/custom_nodes
git clone https://github.com/MuziekMagie/ComfyUI-VST.git
cd ComfyUI-VST
pip install -r requirements.txt

Restart ComfyUI - and the restart matters double here, because the JS extension needs to be loaded by the frontend before any widget magic happens. Dependency is just pedalboard>=0.9.0, and as with the whole pack you need a ComfyUI build with V3 API support.

Common issues

  • No widgets appear after the first run: you've only done one run. Run the workflow again; that's the design, not a failure.
  • Widgets vanish or misbehave inside a Subgraph: known limitation, use VSTManualParameters instead.
  • The node output looks like {}: the JS didn't serialize anything - check that the frontend extension loaded (restart ComfyUI) and that the schema actually reached the node.

It's the least mature node in the pack, and the author says so in the README. For a quick tweak it's great. For anything you're going to package into a reusable subgraph, the manual node is the one you want.

Categoryaudio/vst

Inputs (2)

NameTypeDefaultDescription
parameter_schemaVST_PARAMETER_SCHEMA
dynamic_values_jsonSTRING{}

Outputs (1)

NameTypeDescription
vst_settingsVST_SETTINGS