ComfyUI_Matchering
A Matchering node pack for ComfyUI by marduk191.
Matchering is an audio mastering algorithm that analyses a reference track and applies its loudness, frequency balance, and dynamics to your target track — giving you a professionally matched master without manual EQ or compression.
Nodes
All nodes are found under the audio/matchering category.
Matchering
The simple one-click mastering node.
| Pin | Type | Description |
|---|---|---|
target |
AUDIO | The track you want to master |
reference |
AUDIO | The track whose sound you want to match |
Result |
AUDIO | Mastered output (with brickwall limiter) |
Result (no limiter) |
AUDIO | Mastered output without the limiter |
Result (no limiter, normalized) |
AUDIO | Mastered output without the limiter, peak-normalized |
Matchering (Advanced)
Same as above but exposes every internal parameter for fine-tuned control.
| Parameter | Default | Description |
|---|---|---|
internal_sample_rate |
44100 | Processing sample rate in Hz. Both inputs are resampled to this rate internally |
max_length |
900 s | Maximum allowed audio duration in seconds |
max_piece_size |
15 s | Max size of each analysis piece in seconds |
threshold |
≈0.9981 | Brickwall limiter ceiling (as a linear amplitude value) |
min_value |
1e-6 | Floor value used to avoid division by zero |
fft_size |
4096 | FFT window size — must be a power of 2 |
lin_log_oversampling |
4 | Oversampling factor for the lin-log frequency grid |
rms_correction_steps |
4 | Number of iterative RMS correction passes |
clipping_samples_threshold |
8 | Samples above 0 dBFS before a clipping warning is raised |
limited_samples_threshold |
128 | Samples near 0 dBFS before a limiting warning is raised |
allow_equality |
False | If True, target and reference can be identical audio |
lowess_frac |
0.0375 | LOWESS smoothing fraction for the frequency curve |
lowess_it |
0 | LOWESS robustness iterations |
lowess_delta |
0.001 | LOWESS delta parameter |
limiter_config (optional) |
— | Connect a Matchering Limiter Config node to override limiter defaults |
Matchering Limiter Config
Configures the brickwall limiter used in the default output. Connect its output to the limiter_config pin of Matchering (Advanced).
| Parameter | Default | Description |
|---|---|---|
attack |
1 ms | Limiter attack time |
hold |
1 ms | Limiter hold time |
release |
3000 ms | Limiter release time |
attack_filter_coefficient |
-2 | Filter coefficient for the attack stage |
hold_filter_order |
1 | Filter order for the hold stage |
hold_filter_coefficient |
7 | Filter coefficient for the hold stage |
release_filter_order |
1 | Filter order for the release stage |
release_filter_coefficient |
800 | Filter coefficient for the release stage |
Installation
Via ComfyUI Manager (recommended)
Search for ComfyUI_Matchering in the ComfyUI Manager node registry and click Install.
Manual
cd ComfyUI/custom_nodes
git clone https://github.com/marduk191/ComfyUI_Matchering
cd ComfyUI_Matchering
pip install -r requirements.txt
Requirements
The following packages are installed automatically and are not bundled with ComfyUI:
| Package | Purpose |
|---|---|
soundfile>=0.11.0 |
Audio file I/O (used by the internal resampler) |
resampy>=0.4.2 |
High-quality audio resampling |
statsmodels>=0.13.2 |
LOWESS smoothing for frequency curve fitting |
numpy, scipy, and torch are already provided by ComfyUI and are not listed as dependencies.
Tips
- Both target and reference must be stereo audio. Mono inputs are automatically upmixed.
- Audio longer than
max_length(default 15 minutes) will raise an error — shorten with a Trim Audio Duration node first. - Processing is CPU/RAM intensive. VRAM is freed automatically before each run.
- The three outputs let you audition the result with different dynamics treatment before committing to a save.
Credits
Matchering core algorithm by Sergree — licensed under GPLv3. ComfyUI node pack by marduk191.