MSST Load Audio
Paste a path, get audio plus the folder and file strings the rest of the pack wants
- audio
- folder_path
- filename
This is the node you'll give zero thought to, and the whole pack quietly depends on it. MSST Load Audio is the front door of Wang-Huachen's ComfyUI-MSST-WebUI pack: it reads an audio file off your disk and hands you the AUDIO object the separator nodes want - plus, and this is the actual point, the folder path and filename as plain strings, because the rest of the pack is wired around those strings.
Audio has always been a bolt-on layer in ComfyUI, and source separation is the newest sliver of it, so this pack is small and single-purpose. You don't come here for a general-purpose media loader. You come here to run a song through a stem splitter, and MSST Load Audio exists to make that pipeline one step shorter.
How it works
Nothing exotic. The node reads your file with soundfile at float32 and builds the AUDIO dict ComfyUI's audio nodes all use - a waveform tensor plus a sample_rate. It strips stray quote characters from whatever path you paste (so a Windows path copied out of Explorer with quotes just works), then errors out if the file doesn't exist. That's the whole mechanism, and it's cheap: nothing loads into VRAM here.
The inputs and outputs that matter
There's exactly one input, file_path - a plain STRING widget. The pack adds no file browser, so you type or paste an absolute path. That's the one genuine quirk: it's a text field, not a picker. On the plus side it means the node reads whatever soundfile supports, from WAV and FLAC to MP3 and OGG, wherever on disk it lives - not just ComfyUI's input/ folder.
Three outputs, and you should use all three:
audio(AUDIO) - wire this into theaudioinput of MSST Audio Separate or UVR Audio Separate.folder_path(STRING) - the directory the file lives in. Feed it to MSST Save Audio'sfolder_pathand you'll never hardcode a save location.filename(STRING) - the file's base name with no extension. This becomes the separator'sbase_filename, and the pack appends stem names to it:songbecomessong_vocals.wav.
Installing it
The whole pack installs at once; you can't get this node without the other three. The heavy prerequisite isn't Python packages - it's the MSST WebUI portable package, which ships its own bundled Python environment (workenv). The pack then just needs to know where that lives:
cd ComfyUI/custom_nodes/
git clone https://github.com/Wang-Huachen/ComfyUI-MSST-WebUI
Then edit custom_nodes/ComfyUI-MSST-WebUI/config.json (a template is created on first run) and set msst_root to your MSST WebUI install directory, for example D:\MSST_WebUI_1.7.0_v2_cu128. Leave python_env empty and it'll find {msst_root}/workenv automatically. Restart ComfyUI. ComfyUI Manager works too - search "MSST" or the repo name. The node's own Python footprint is deliberately tiny (just soundfile), because the actual inference runs in that isolated MSST environment.
Common issues
- File not found errors. The path is a raw string; typo a character and it fails loudly. No trailing-slash or quote drama, but the file has to be exactly where you say it is.
- "Nothing shows up downstream" - if the separator's model dropdown is empty, that's a config problem, not this node's. Check
config.jsonand confirmmsst_rootpoints at a real MSST install; the pack lists models by actually asking the MSST environment, so a bad path shows an empty list. - Wrong directory got saved to - if you don't wire
folder_path, the save node writes to whatever the working directory was, which is rarely where you wanted it. Wire the string.
For a tiny utility node it punches above its weight, because the whole pack treats those two string outputs as the plumbing. Wire all three outputs and the rest of the workflow basically writes itself.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| file_path | STRING | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | 加载的音频 |
| folder_path | STRING | 文件所在文件夹路径 |
| filename | STRING | 文件名(不含扩展名) |