ComfyUI Node

FlashSR Processing Settings

One settings node to drive both FlashSR filters (and not fight itself)

By jplenio·Created about 16 hours ago·Updated about 15 hours ago· 0
FlashSR Processing Settings
    • pre_preset
    • pre_cutoff_hz
    • pre_order
    • pre_phase
    • pre_bypass
    • pre_settings_json
    • post_preset
    • post_cutoff_hz
    • post_order
    • post_phase
    • post_bypass
    • post_settings_json
    • flashsr_lowpass_input
    pre_presetPRE 12 kHz - recommended
    pre_custom_cutoff_hz12000
    pre_custom_order2
    pre_custom_phasezero_phase
    pre_bypassfalse
    post_presetPOST 19 kHz - slightly stronger
    post_custom_cutoff_hz19000
    post_custom_order2
    post_custom_phasecausal
    post_bypassfalse
    flashsr_lowpass_inputfalse

    When a workflow has the same filter settings living in two or three separate node widgets, they will drift apart - you'll tune the PRE low-pass in one node, forget the other, and wonder why your render sounds different from yesterday. FlashSR Processing Settings exists to make that impossible. It's a pure configuration node: you set the PRE and POST low-pass values once, here, and its outputs wire directly into the override inputs of the FlashSR Lowpass Lab nodes (and the FlashSR node itself) so every stage reads the same effective settings. It also emits JSON receipts so the exact configuration lands in your metadata sidecar.

    Don't expect any audio to pass through this node - there's no AUDIO input or output. It's the pack's "control panel," and it's the node you actually tune while the filter nodes become dumb slaves of their override inputs.

    What the inputs do

    The widget set mirrors what you'd set on a FlashSR Lowpass Lab, but twice: a pre_* block and a post_* block, each with _preset, _custom_cutoff_hz, _custom_order, _custom_phase, and _bypass.

    The defaults are worth respecting. PRE defaults to PRE 12 kHz - recommended, the stated starting point for a 32 kHz MiniMax source, with zero_phase (avoid phase rotation before enhancement). POST defaults to POST 19 kHz - slightly stronger with causal phase - a gentle one-way roll-off to hide artificial air. The phase defaults differ intentionally: pre-filtering prefers zero-phase so FlashSR sees an unrotated spectrum; post-filtering defaults to causal for a natural roll-off.

    There's one flag that trips people up: flashsr_lowpass_input. This passes a lowpass_input switch to the FlashSR node itself. Keep it OFF when you're already doing an explicit PRE low-pass in the chain - the tooltip is blunt about it: "enabling both can apply unintended extra filtering." Double-filtering is the classic silent mistake this node was built to prevent.

    Outputs and wiring

    It emits 13 outputs: pre_preset, pre_cutoff_hz, pre_order, pre_phase, pre_bypass, pre_settings_json, and the same six for POST, plus flashsr_lowpass_input. In the example workflow, the *_preset/*_bypass outputs drive the matching override inputs on your FlashSR Lowpass Lab instances, and the two settings_json outputs feed MiniMax Song Metadata. You don't have to wire every output - connecting just the ones your graph needs is fine.

    Installing it

    Standard pack install via ComfyUI Manager (search "MiniMax Music Production Toolkit") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/jplenio/ComfyUI-MiniMax-Music-Production-Toolkit.git
    cd ComfyUI-MiniMax-Music-Production-Toolkit
    python -m pip install -r requirements.txt
    

    Uses your ComfyUI Python. Dependencies: scipy, soundfile, imageio-ffmpeg, mutagen, Pillow. No model weights. Restart and hard-refresh.

    Gotchas

    The big one is the flashsr_lowpass_input double-filter trap described above - leave it off unless you've deliberately skipped the explicit PRE low-pass. Second, remember this node only configures: if you wire it to nothing, it does nothing but sit there looking authoritative. And if your FlashSR node is missing entirely, that's the separate Egregora audio super-resolution pack this toolkit expects you to install - this node can't conjure FlashSR on its own.

    CategoryMiniMax Music Production Toolkit/config

    Inputs (11)

    NameTypeDefaultDescription
    pre_presetCOMBOPRE 12 kHz - recommendedPreset for the low-pass stage before FlashSR. Lower cutoffs remove more original high-frequency content and force FlashSR to reconstruct more; use stronger presets only when the source top end is already problematic.
    pre_custom_cutoff_hzFLOAT1200020–96000Custom PRE low-pass cutoff used when pre_preset=CUSTOM. Lower values discard more source treble before FlashSR; do not lower it unnecessarily on cymbal-rich material.
    pre_custom_orderINT21–12Butterworth order for the custom PRE filter. Higher orders make the cutoff steeper; zero-phase processing effectively doubles magnitude attenuation.
    pre_custom_phaseCOMBOzero_phasePhase mode for the custom PRE filter. zero_phase is normally preferred before FlashSR because it avoids phase rotation; causal applies a one-way filter.
    pre_bypassBOOLEANfalseDisable the explicit PRE low-pass while leaving the rest of the FlashSR chain connected. Useful for testing whether original source highs are already cleaner without filtering.
    post_presetCOMBOPOST 19 kHz - slightly strongerPreset for the low-pass stage after FlashSR. It gently removes extreme reconstructed high-frequency energy; lower cutoffs sound darker but can better hide artificial 'air' or shimmer.
    post_custom_cutoff_hzFLOAT1900020–96000Custom POST low-pass cutoff used when post_preset=CUSTOM. Lower values hide more reconstructed extreme treble but can make the release darker.
    post_custom_orderINT21–12Butterworth order for the custom POST filter. Higher values produce a steeper roll-off near the selected cutoff.
    post_custom_phaseCOMBOcausalPhase mode for the custom POST filter. causal is intentionally available for a natural one-way roll-off; zero_phase avoids phase rotation but changes the effective magnitude slope because filtering is applied twice.
    post_bypassBOOLEANfalseDisable the explicit POST low-pass for A/B comparison while preserving the rest of the chain.
    flashsr_lowpass_inputBOOLEANfalsePasses the lowpass_input switch to the FlashSR node. Keep OFF when you already perform the explicit PRE low-pass in this workflow; enabling both can apply unintended extra filtering.

    Outputs (13)

    NameTypeDescription
    pre_presetSTRING
    pre_cutoff_hzFLOAT
    pre_orderINT
    pre_phaseSTRING
    pre_bypassBOOLEAN
    pre_settings_jsonSTRING
    post_presetSTRING
    post_cutoff_hzFLOAT
    post_orderINT
    post_phaseSTRING
    post_bypassBOOLEAN
    post_settings_jsonSTRING
    flashsr_lowpass_inputBOOLEAN