ComfyUI Extension: Save MP3
A node for saving audio in MP3-format with selected bitrate mode and quality to an output subfolder or absolute path on any drive.
Custom Nodes (0)
README
Save MP3 node for ComfyUI
<img width="366" height="245" alt="image" src="https://github.com/user-attachments/assets/6fdae56c-6f65-4581-8af8-1b9e15d5b892" />Simple, flexible MP3 saver with bitrate options and handy path/filename templates.
Features
- Audio input: accepts common formats used by audio nodes
- File path: ComfyUI output subfolder or absolute path (any drive)
- Filename prefix
- Bitrate mode: variable, constant, average
- Quality: low, medium, high (mapped per mode)
- Outputs:
AUDIO
andSTRING
(bitrate info summary), output node compatible (can terminate a graph)
Installation
- Go to the
custom_nodes/
directory in ComfyUI. - Clone or copy the
comfyui-save-mp3
folder:git clone https://github.com/Dehypnotic/comfyui-save-mp3.git
- Restart ComfyUI.
Optional backends (no system install required)
- Auto-download ffmpeg:
pip install imageio-ffmpeg
(first run caches a static ffmpeg) - Drop-in ffmpeg: place
ffmpeg
/ffmpeg.exe
in abin/
folder next to the node - Or install
lameenc
:pip install lameenc
Backend preference: uses ffmpeg when available; otherwise falls back to lameenc
.
Bitrate/quality mapping
- Variable (VBR): high →
-q:a 0
(~245 kbps), medium →-q:a 4
(~165 kbps), low →-q:a 7
(~100 kbps) - Constant (CBR): high →
320k
, medium →192k
, low →128k
- Average (ABR): high →
256k
, medium →192k
, low →160k
(uses-abr 1
)
Path and filename templates
Placeholders supported in file_path
and filename_prefix
:
[time(%Y-%m-%d)]
→ formatted time (strftime)[date]
→YYYY-MM-DD
[datetime]
→YYYY-MM-DD_HH-MM-SS
[unix]
→ epoch seconds[guid]
/[uuid]
→ random UUID4 hex[model]
→ triesextra_pnginfo
keys:model
,checkpoint
,ckpt_name
,model_name
; elseunknown
[env(NAME)]
→ environment variableNAME
Examples
audio/[time(%Y-%m-%d)]
runs/[model]/[datetime]
D:/Exports/[env(USERNAME)]/[guid]
Security and external save paths (ComfyUI Manager compliant)
- By default, saving is allowed under ComfyUI’s
output/
directory. - To allow external locations (e.g., other drives), create a local JSON file next to this node named
save_mp3_allowed_paths.json
with:{ "allowed_roots": ["D:/AudioExports", "E:/TeamShare/Audio"] }
Alternatively (advanced): you can set the environment variable SAVE_MP3_ALLOWED_PATHS
to point to the JSON file. This is optional — for most users it’s enough to place the JSON file next to the node or in one of the global ComfyUI locations listed below.
- You can also place the file globally under your ComfyUI root:
<ComfyUI>/save_mp3_allowed_paths.json
<ComfyUI>/config/save_mp3_allowed_paths.json
<ComfyUI>/user/save_mp3_allowed_paths.json
<ComfyUI>/user/config/save_mp3_allowed_paths.json
- The node refuses writes outside
output/
unless the path is under one of the whitelisted roots. Edit this file offline and restart ComfyUI.
Notes
- On Windows, prefer
%H-%M-%S
instead of%H:%M:%S
in strftime patterns. - If neither ffmpeg nor lameenc is available, the node raises a clear error with install hints.
Addendum: whitelist behavior and safety
- Recommended location for
save_mp3_allowed_paths.json
is under the ComfyUI root (e.g.,ComfyUI/config/
) so it survives node updates. - Loader lookup order: env var → global ComfyUI locations → node folder.
- A node‑local file is used only if it defines at least one allowed root; empty example files are ignored.
- Lines starting with
#
are treated as comments in the JSON file. - An allowed root permits saving in that folder and all subfolders; whitelist a deeper path to restrict more tightly.