ControlFoley Save Audio
Turn the waveform into a file
- audio
- audioUI
- audio
- audio_file
- audio_path
ControlFoley Save Audio is the last node in most ControlFoley workflows: it takes the AUDIO tensor that a Generate node hands you, writes it to disk as WAV or FLAC under ComfyUI/output/controlfoley/, and shows an inline audio player so you can check the result without leaving the UI. It's the difference between having generated audio floating in RAM and actually being able to listen, share, and reuse it.
Inputs and outputs
Inputs:
audio- the AUDIO tensor, almost always from ControlFoley Generate or Advanced Generate.filename_prefix- defaultcontrolfoley/output. The node resolves this against ComfyUI's output directory and auto-increments a numeric suffix per run, so you getoutput_00001_.wav, then_00002_, and so on - no overwrites. Change the prefix to organize runs into separate files.format-wav(default) orflac. That's it; MP3 is deliberately absent to keep the dependency list predictable, per the pack's own notes. WAV is the right choice for most people; FLAC if you want lossless at a smaller size.audioUI(optional) - the AUDIO_UI widget input. This is a small but real piece of ComfyUI plumbing: the stock frontend only auto-creates an audio player for a hard-coded list of core node classes, so custom nodes have to declare this widget themselves for theui.audioresult to render a player. Leave it alone; it's there so you get the playback UI.
Outputs: audio (the same AUDIO tensor, passed through - and now carrying a stem so downstream muxing can pair the WAV and MP4 by name), audio_file (CONTROLFOLEY_AUDIO_FILE, the file handle with path/sample-rate/stem), and audio_path (STRING, the absolute path to what was written - handy for logging or for other nodes that need the file location).
How it fits
This node is why the pack's video workflows keep both output nodes enabled: Save Audio writes the standalone .wav, and the Video-Audio Muxer consumes this node's audio (using the shared stem) to write the paired .mp4 with the same numeric suffix. It uses soundfile under the hood, so the waveform gets written out as straightforward PCM - nothing exotic, which is exactly what you want from a save node. If you're benchmarking, note that the WAV duration should match your generated audio exactly; if the muxed MP4 ever looks longer, that's the muxer's container-timing quirk, not this node.
Install the pack via ComfyUI Manager ("ControlFoley Official") or git clone into custom_nodes + pip install -r requirements.txt (install only genuinely-missing packages one at a time). And a heads-up if you're planning to publish anything you generate: the ControlFoley weights are CC BY-NC 4.0, so your output rides on non-commercial terms too - worth a glance at the model card before you monetize.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | — | |
| filename_prefix | STRING | controlfoley/output | — |
| format | COMBO | wav | 2 options: wav, flac |
| audioUIopt | AUDIO_UI | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| audio_file | CONTROLFOLEY_AUDIO_FILE | — |
| audio_path | STRING | — |