ComfyUI Extension: ComfyUI_Matchering

Authored by marduk191

Created

Updated

0 stars

Run ComfyUI workflows without the setup

No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.

A Matchering audio mastering/matching node for ComfyUI.

Looking for a different extension?

Custom Nodes (3)

README

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.

Run ComfyUI workflows without the setup

No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.

Learn more