Nodes/comfyui-axces2000/๐ŸŽต Audio Metadata
ComfyUI Node

๐ŸŽต Audio Metadata

Your AI audio leaves ComfyUI as a naked WAV โ€” this node dresses it up

By axces2000ยทCreated 6 months agoยทUpdated about 20 hours agoยท 12
๐ŸŽต Audio Metadata
  • audio
  • cover_image
    โ—„cover_size1000โ–บ
    โ—„titleโ–บ
    โ—„artistโ–บ
    โ—„albumโ–บ
    โ—„yearโ–บ
    โ—„genreโ–บ
    โ—„track_number0โ–บ
    โ—„commentโ–บ

    Audio was bolted onto ComfyUI after the fact, and it shows. Models like ACE-Step, MMAudio, and the TTS packs hand you a bare AUDIO tensor, and the stock way to get it onto disk is SaveAudio, which writesโ€ฆ a WAV. No title, no artist, no album art, no MP3. Fine if you're dropping a scratch file into a video edit; wrong if you actually made something you want to play, share, or tag into a library. That's the hole ๐ŸŽต Audio Metadata fills: it's the finishing node at the end of the audio chain, the one that stamps your output with real metadata and hands you a properly tagged file.

    Think of it as the audio cousin of a Save Image node - with better taste. It's a terminal output node with no output sockets; you wire it after anything that emits AUDIO, set your tag fields, and run.

    How it actually works

    The clever bit is that running the node writes nothing permanent. Execution only "stages" a temp WAV plus a few sidecar files in ComfyUI's temp directory: a 120-bar peak cache for the in-node waveform preview, a resized JPEG of your cover, and a JSON blob of your tag fields. The widget then shows you a playable waveform with a ๐Ÿ’พ Save Asโ€ฆ menu. Only when you click a format does the server-side export route kick in: it re-encodes the staged WAV on demand and streams the result straight to your browser as a download.

    So your ComfyUI output/ folder stays clean - the file only exists once you choose it. WAV is just a copy, but MP3, FLAC, and OGG go through ffmpeg, and then every format gets tagged with mutagen: ID3v2.3 frames for WAV/MP3, Vorbis comments for FLAC/OGG. The MP3 menu offers a few bitrates up to 320 kbps; OGG uses a fixed Vorbis quality setting. Cover art makes it in either way, which is rarer than it should be.

    The inputs that matter

    Only two need real thought; the rest are self-explanatory tags.

    • audio - the only required input. Wire it from any node that outputs the native AUDIO type (your TTS/music/foley node, or an audio loader if you're re-tagging existing files).
    • cover_image - an IMAGE. The first frame of the batch is used, alpha dropped, center-cropped to a square and scaled to cover_size. Default is 1000ร—1000, which the author chose because it's the de facto floor for Apple-Music-grade artwork; 500 is what older car head units expect. Anything above 1000 just bloats every exported copy.
    • title, artist, album, year, genre - plain strings.
    • track_number - an INT (0โ€“9999); 0 is treated as "no track" and omitted.
    • comment - a multiline string.

    Installing it

    Same story as the rest of the pack. Via ComfyUI Manager, search axces2000 and install. Or manually:

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

    Then restart ComfyUI. requirements.txt pulls torchaudio, soundfile, and mutagen - the first two serve the pack's audio loader, but mutagen is the one this node lives or dies on. You also need ffmpeg on your server's PATH for anything but WAV export.

    Where people get burned

    • "Nothing saved!" - correct: the node never auto-saves. Click Save As and the file comes down as a browser download, not into your output folder.
    • Export says ffmpeg not found - that's a server-side PATH issue; ComfyUI's bundled install doesn't always expose ffmpeg. Install it system-wide (or add it to the PATH of the shell that launches ComfyUI), then restart the server.
    • Exports come out untagged - mutagen is imported lazily at export time, and the code degrades gracefully: if it's missing you get a clean file with no tags and a "mutagen is not installed" hint in the console. pip install mutagen --break-system-packages if that happens. Also note the README's node list trails the code - this node isn't in it at all, so don't judge the pack by the README.
    • Stale preview after a restart - temp files get cleared, so if you close ComfyUI and come back to an old export menu you'll get "Audio not found - re-run the node." Just rerun it.

    One honest caveat: this pack is brand new and single-authored, so treat it as fresh code with thin community mileage. But the mechanism is sound - stage now, tag and encode on demand - and if you've ever shipped AI-generated music that shows up as "Unknown Artist - Unknown Album" in a player, you'll feel the point immediately.

    Categoryaxces2000/audio

    Inputs (10)

    NameTypeDefaultDescription
    audioAUDIOโ€”
    cover_imageoptIMAGEโ€”
    cover_sizeoptCOMBO10005 options: 500, 1000, 1500, 2000, Original
    titleoptSTRINGโ€”
    artistoptSTRINGโ€”
    albumoptSTRINGโ€”
    yearoptSTRINGโ€”
    genreoptSTRINGโ€”
    track_numberoptINT00โ€“9999โ€”
    commentoptSTRINGโ€”

    Outputs (0)

    No outputs