Nodes/ComfyUI-SongLRC/Save Matching LRC (legacy)
ComfyUI Node

Save Matching LRC (legacy)

The old key for the saver that pairs files up

By TheAwaken1·Created 22 days ago·Updated 17 days ago· 6
Save Matching LRC (legacy)
  • audio
  • audio
◄lrc—►
◄filename_prefix—►

MiniMaxSaveMatchingLRC is the deprecated name for Save Matching LRC. Same node, same inputs, same passthrough - kept alive under the old class key because workflows saved while the pack was called ComfyUI-MiniMaxLRC reference it by that name, and dropping it would turn every old song graph into a red missing-node box.

You'll see it labelled "Save Matching LRC (legacy)" in a loaded graph. It doesn't show up in the node search menu; deprecated classes are hidden deliberately, so if you delete one you can't add it back - add "Save Matching LRC" instead.

What it does

It writes the .lrc beside the audio file that was just saved and gives it the audio's exact name and counter:

output/audio/songs/Hold The Line Tonight_00007.flac
output/audio/songs/Hold The Line Tonight_00007.lrc

That's it. It doesn't invent a counter of its own. Given filename_prefix, it scans the output folder for <name>_NNNNN.flac, .mp3 or .opus, takes the highest counter, and writes the LRC with that stem. If nothing matches, it raises FileNotFoundError rather than quietly writing a mismatched file.

Three inputs, all expected as wired connections: audio (from your audio saver), lrc (from Lyrics to LRC) and filename_prefix (from Song Filename). One output, audio, passed straight through so the node can sit mid-chain - Save Audio (Advanced) → this → Music Player (SongLRC) works in a single run.

Two things land after a run: the timed lyrics shown on the node body, and the written path in the console.

Why the old name still resolves

ComfyUI stores class keys, not labels. Class keys, folder defaults - they're all inside the workflow JSON someone downloaded three months ago. The pack's entire rename is therefore invisible to old graphs: the four old keys are registered as hidden subclasses of the new classes, so they load and inherit the current implementation rather than a frozen copy. It's a small piece of engineering that saves an enormous amount of "my downloaded workflow is full of red boxes" pain, which is the ecosystem's most durable complaint.

Two settings that changed with the rename

  • The default folder went from audio/YuE2 to audio/songs. A freshly added node defaults to the new path; an old workflow keeps the value stored in its JSON, so it'll keep writing to audio/YuE2 until you change the folder widget on Song Filename. One click, and only worth doing if you want one tidy library.
  • The [ar:] tag is now blank by default and omitted when empty. The old pack stamped every song as MiniMax Music 3, which was wrong the moment you generated with anything else.

Install and migrate

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 bin your old ComfyUI-MiniMaxLRC folder - both packs register the same class names and will fight over them. Convert the node when you get a minute: right-click → Fix node (recreate), and it returns as Save Matching LRC with the same three inputs and the same audio output, so the wires stay connected and the widget values survive.

And one behavioural reminder that catches people out regardless of which name you're using: this node and Save LRC (auto) are alternatives, not a pair. Run both and every render writes the lyrics twice under two different names.

Categoryaudio/SongLRC

Inputs (3)

NameTypeDefaultDescription
audioAUDIO—
lrcSTRING—
filename_prefixSTRING—

Outputs (1)

NameTypeDescription
audioAUDIO—