Compare Audio
Is it the same take? Compare Audio aligns, scores, and shows you
- audio_1
- audio_2
- Audio 1 only
- Audio 2 only
- 1−2 difference
- similarity
- audio_2_delay_seconds
- 1+2 overlay
Every audio workflow eventually hits the question: "did this render keep the original audio, or did the pipeline mangle it?" Or the slightly different one: "which of these two TTS takes is closer to the reference?" Compare Audio answers both with numbers and with pictures - it aligns two clips, measures how similar they are, tells you the time offset, and hands you the aligned audio plus the sample-by-sample difference.
It's one of the 11 nodes in ComfyUI ALICE Lab Audio Tools, a very new alpha pack (Apache 2.0, no pip deps, Japanese-authored - the README is bilingual). There's basically zero community write-up on it yet, so this is ground truth from the source. What makes Compare Audio more than a novelty: the auto-alignment. Feed it two takes of the same thing recorded or rendered with different offsets, and it finds the delay for you instead of you eyeballing waveforms.
How it works
Both inputs are converted to stereo at the higher of the two sample rates (first batch only, at most two channels - the README says so plainly). With auto_align on (the default), it slides Audio 2 across Audio 1 and scores each position using the normalized correlation of the amplitude envelopes, within a search window you set with max_shift_seconds (default 2, up to 30). The best lag becomes the applied delay. A positive audio_2_delay_seconds means Audio 2 was pushed right (delayed); negative means it was advanced.
The similarity output is 0.0–1.0. When alignment is on it's 0.65 × alignment score + 0.35 × absolute waveform correlation; with alignment off it's just the waveform correlation. And the README is explicit about what this is not: a signal comparison metric, not speech recognition, speaker identification, or perceptual quality. Two recordings of the same person saying different words can score high. Don't use it to "prove" identity - use it to say "these two files are the same signal, give or take."
Inputs and outputs
Inputs are simple: audio_1, audio_2, auto_align, max_shift_seconds. The six outputs, straight from the author's own tooltips:
Audio 1 only/Audio 2 only- each after optional time alignment.1−2 difference- sample-by-sample Audio 1 minus Audio 2. Silence here means they're identical.similarity- the 0.0–1.0 scalar.audio_2_delay_seconds- the signed delay applied.1+2 overlay- both mixed at equal gain, useful for the phasey "they're almost identical" check.
In the node you get both waveforms stacked or overlaid, playback for each output, delay readouts, and a "Fixed display" mode that shows Audio 1, Audio 2, and the difference on one shared time axis.
Using it and the traps
The obvious wiring: two AUDIO sources in, then pipe similarity and audio_2_delay_seconds into an Output Float node so you get a readable number, and 1−2 difference into Output Waveform to hear the residual.
Where people get burned: auto-alignment uses amplitude-envelope correlation, so it can pick a nonsense offset on silence, unrelated sources, repetitive content (drum loops!), or delays outside the search window. If the delay readout looks wrong, raise max_shift_seconds or flip auto_align off and look at the raw correlation. Also, the interactive comparison data lives in a bounded in-memory session (a few recent comparisons, ~512 MB cap) - if the UI says the analysis expired, just run the node again. Interactive playback is capped at 600 seconds per request, so don't try to audition a full-hour file through the node.
Install
# ComfyUI Manager → search "ComfyUI ALICE Lab Audio Tools" → Install → restart
# or:
cd ComfyUI/custom_nodes
git clone https://github.com/alice-lab-dev/ComfyUI-ALICE-Lab-Audio-Tools
# restart, then Add Node → ALICE_Lab → Audio
Requires ffmpeg + ffprobe on the ComfyUI process PATH (macOS Homebrew paths auto-checked) and a recent ComfyUI with the AUDIO type. No model downloads, no Python deps.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| audio_1 | AUDIO | — | |
| audio_2 | AUDIO | — | |
| auto_align | BOOLEAN | true | — |
| max_shift_seconds | FLOAT | 2.000–30 | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| Audio 1 only | AUDIO | Audio 1 after optional time alignment. |
| Audio 2 only | AUDIO | Audio 2 after optional time alignment. |
| 1−2 difference | AUDIO | Sample-by-sample Audio 1 minus Audio 2. |
| similarity | FLOAT | Overall similarity as a scalar from 0.0 to 1.0. |
| audio_2_delay_seconds | FLOAT | Signed number of seconds applied to align Audio 2; negative advances Audio 2. |
| 1+2 overlay | AUDIO | Aligned Audio 1 and Audio 2 mixed together at equal gain. |