Song Filename (legacy)
The old name for a node that's still doing the work
- filename_prefix
- safe_title
MiniMaxSongFilename is the deprecated alias for SongFilename - the same class, kept under the pack's old name so workflows saved back when this was ComfyUI-MiniMaxLRC don't explode into red boxes. If you've got a song graph from 2025 open on your screen, this is the node that's building your filename prefix, and it's working fine.
What it produces
It turns a title into a path stem, so the audio file and the lyric file end up with the same name. Two required widgets:
title- the song title. Blank means "derive one from the lyrics".folder- the subfolder inside ComfyUI's output directory. Defaultaudio/songs.
Plus an optional lyrics input, used only when title is blank.
Two string outputs: filename_prefix (audio/songs/Hold The Line Tonight) and safe_title (Hold The Line Tonight). Wire the prefix into Save Audio (Advanced) and into one of the two LRC savers; the five-digit counter is appended downstream, never here.
The title gets sanitised on the way through - illegal filename characters (<>:"/\|?*, control codes) become spaces, whitespace collapses, leading/trailing dots and dashes are trimmed, and it's capped at 80 characters with Generated Song as the empty fallback.
The one behavioural difference from the new node
The default folder changed when the pack was renamed. MiniMaxSongFilename in a freshly created node defaults to audio/songs too, because it inherits the modern class - but a workflow saved under the old pack has its own value stored in the JSON, and that value is usually audio/YuE2. Nothing rewrites it on load.
So the failure looks like this: you update the pack, run an old graph, and the song lands in output/audio/YuE2/ while everything else in your library is in output/audio/songs/. Fix is one click - set folder to audio/songs on the node and re-save the workflow. The README flags this exact change, and it's the only old default anyone trips over.
Swap it or keep it
Keeping it costs you nothing today. Swapping it takes a right-click: Fix node (recreate) on the node, and it comes back as SongFilename with identical outputs (filename_prefix, safe_title) and identical widget values, so the wires downstream reconnect and the folder setting survives. That's worth doing if you'll keep the workflow around - the live class is the one that gets new options.
Note that you can't add a legacy node intentionally. Deprecated class names are hidden from the node search menu, which is deliberate: the pack wants newcomers to find "Song Filename", not its ancestor.
Install
Manager → search ComfyUI-SongLRC, or:
cd ComfyUI/custom_nodes
git clone https://github.com/TheAwaken1/ComfyUI-SongLRC
pip install -r ComfyUI-SongLRC/requirements.txt
Then remove the old ComfyUI-MiniMaxLRC directory. Both packs claim these class names, and leaving them side by side is how you get duplicate registration warnings and, occasionally, the wrong implementation winning. Delete the old folder after the new pack is installed and the workflow saved, so the aliases cover the gap while you convert.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| title | STRING | Leave blank to derive a title from the lyrics. | |
| folder | STRING | audio/songs | Subfolder inside ComfyUI's output directory. |
| lyricsopt | STRING | Used to derive a title when the title field is blank. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| filename_prefix | STRING | — |
| safe_title | STRING | — |