ComfyUI Node

URN Load Audio

The audio loader that reads your lyrics back out of the file

By Clivey1234·Created 2 days ago·Updated a day ago· 4
URN Load Audio
    • audio
    • Embedded_Lyrics
    • Artist
    • Title
    • Album
    • Source_Filename
    • Metadata_JSON
    ◄audio▾►

    ComfyUI's built-in Load Audio gives you a waveform and a sample rate. That's all you need for a generation pass, and nothing at all for the case where you've already got a song file on disk with the artist, title and full lyrics embedded in it and you want those inside the graph as text.

    URN Load Audio is the loader that treats metadata as a first-class output. Point it at an MP3 or FLAC, and you get the audio plus everything the file knows about itself.

    How it works

    The audio input is a combo box - a file picker (with an upload button) listing audio files from ComfyUI's input folder. It scans for a long list of extensions: .mp3, .flac, .wav, .ogg, .opus, .m4a, .aac, .wma, .aiff, .alac and friends, sorted case-insensitively so the list isn't shuffled by capitalisation.

    Decoding goes through ComfyUI's own audio loader, which means the formats ComfyUI can decode are the formats this node can decode - nothing exotic is being bolted on.

    The metadata half uses mutagen, and it's specific about two paths first, because those are the ones the pack's own save node writes:

    • MP3 - lyrics from the ID3 USLT (Unsynchronised Lyrics/Text) frame.
    • FLAC - lyrics from the Vorbis Comment LYRICS field.

    After that it falls back to generic tag reading for artist, title and album, and dumps everything it found into Metadata_JSON. Blank spaces in the file mean empty strings coming out, not errors.

    Inputs and outputs

    One input, audio - the file picker for something already in ComfyUI/input/. If your file isn't in the list, drop it in that folder or use the widget's upload.

    Seven outputs, and they're the point of the node:

    • audio - the decoded AUDIO, for whatever generation or processing is next.
    • Embedded_Lyrics - the embedded lyrics text. Wire this to embedded_lyrics on URN Audio Lyrics and the node offers them to you before it goes online.
    • Artist, Title, Album - wire these to artist_in, title_in and album_in on URN Audio Lyrics. This is the fix for a real annoyance: without them, online lyric lookup has to guess the song from the filename.
    • Source_Filename - the file name, useful as a prefix on a save node.
    • Metadata_JSON - the raw tag dump, if you want to inspect or parse it.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/Clivey1234/Comfyui_URN_AudioTools
    

    Restart ComfyUI. Metadata reading needs mutagen from the pack's requirements.txt - so if you cloned by hand instead of running install.bat, install the requirements with ComfyUI's Python:

    python -m pip install -r "ComfyUI/custom_nodes/Comfyui_URN_AudioTools/requirements.txt"
    

    ComfyUI Manager: search Comfyui_URN_AudioTools.

    Common issues

    My file isn't in the picker. It has to live in ComfyUI/input/. Also check the extension - a .m4p or .caf isn't in the list, and a file that's mislabelled will decode or fail on ComfyUI's side, not the node's.

    Lyrics came back empty. The file has no USLT/LYRICS tag. Plain WAVs essentially never carry lyrics, and a lot of music files have artist/title but no lyric frame. Re-saving the file with URN Save Audio with Lyrics is the easy way to get a tagged file that round-trips.

    Artist and Title are empty but the song has them. They're empty in the file's tags. Different tools write different frames; a player that shows you a title may be reading it from the filename rather than metadata.

    Everything downstream ran but skipped the metadata path. Remember this node outputs strings, not an identity - the online lookup in URN Audio Lyrics still needs you to accept a match. Feeding it good Artist/Title just means it doesn't have to guess.

    CategoryURN Audio Tools

    Inputs (1)

    NameTypeDefaultDescription
    audioCOMBO0 options:

    Outputs (7)

    NameTypeDescription
    audioAUDIO—
    Embedded_LyricsSTRING—
    ArtistSTRING—
    TitleSTRING—
    AlbumSTRING—
    Source_FilenameSTRING—
    Metadata_JSONSTRING—