ComfyUI Node

MiniMax Song Metadata

The sidecar writer that makes your whole pipeline reproducible

By jplenio·Created about 16 hours ago·Updated about 15 hours ago· 0
MiniMax Song Metadata
    • metadata_json
    • summary
    title
    caption
    lyrics
    image_prompt
    source_name
    source_path
    prompt_origin
    prompt_provenance_json
    run_index
    variant_count
    generation_seed
    max_duration
    text_seed
    text_cfg_scale
    text_top_k
    ksampler_seed
    ksampler_steps
    ksampler_cfg
    sampler_name
    scheduler
    denoise
    pre_preset
    pre_settings_json
    post_preset
    post_settings_json
    flashsr_lowpass_inputfalse
    workflow_nameMiniMax Music 3 – Reproducible Batch + External ComfyUI-LLM + FlashSR + Flux2
    llm_system_prompt
    release_prep_json
    hybrid_crossover_json
    hf_repair_json
    declip_json

    This is the node the whole pack orbits. MiniMax Song Metadata collects every setting that went into a song - prompts, seeds, MiniMax generation parameters, FlashSR filters, repair and release-prep reports, even the LLM system prompt - and assembles them into one complete JSON sidecar that gets saved next to your audio. It's the "what exactly did I do here" record, written while you can still answer the question instead of six months later when you can't.

    The sidecar philosophy is worth understanding because it's unusual and it's the pack's superpower. Audio file tags (title, artist) are fragile and lossy - players rewrite them, and there's no standard place for a text_cfg_scale. So this pack splits the job: MiniMax Standard Audio Tags handles the boring interoperable tags players actually read, and this node handles the everything-else JSON that makes a render reproducible. Connect the *_json outputs from the repair/release/prep stages and you get a complete audit trail.

    The inputs that matter

    Most inputs are straightforward pass-throughs you'll already have wired: title, caption, lyrics, image_prompt, source_name, source_path, prompt_origin, prompt_provenance_json, then the whole MiniMax settings block (generation_seed, max_duration, text_seed, text_cfg_scale, text_top_k, ksampler_seed, ksampler_steps, ksampler_cfg, sampler_name, scheduler, denoise), then the filter block (pre_preset, pre_settings_json, post_preset, post_settings_json, flashsr_lowpass_input), and run_index/variant_count/workflow_name.

    The interesting optional inputs are the four report JSONs - declip_json, hybrid_crossover_json, hf_repair_json, release_prep_json - plus llm_system_prompt. Connecting them is what turns a good sidecar into a complete one. The llm_system_prompt one is notable: storing the full system prompt makes later prompt regeneration and auditing possible, at the cost of a big string in the JSON.

    Outputs

    metadata_json (the full sidecar as a STRING, for the saver) and summary (a human-readable one-liner). Wire metadata_json into Save Audio Smart Prefix, which writes it next to the file.

    Installing it

    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
    

    Dependencies: scipy, soundfile, imageio-ffmpeg, mutagen, Pillow. Restart ComfyUI and hard-refresh once.

    Gotchas

    Don't confuse it with the loader's job - this node writes the recipe, MiniMax Metadata Loader reads it back. And remember the sidecar is only as complete as its inputs: skip wiring the *_json reports and you've shipped a sidecar that claims the release prep happened without recording what it did. The pack's README calls the whole thing "reproducible generation metadata" - but the metadata is only reproducible if you connect the receipts.

    CategoryMiniMax Music Production Toolkit/metadata

    Inputs (32)

    NameTypeDefaultDescription
    titleSTRINGSong title used for metadata, filenames or the reproducibility JSON, depending on the node. This does not alter the audio signal itself.
    captionSTRINGFinal structured MiniMax Music Caption generated or supplied for this song. Stored in the reproducibility JSON and fed to MiniMax Music.
    lyricsSTRINGFinal MiniMax Music Lyrics/structure field. For pure instrumentals this should contain only supported structural tags; for vocal tracks it contains tags plus singable lyrics.
    image_promptSTRINGPositive Flux artwork prompt associated with the song. It is stored for reproducibility and should describe visual content while avoiding requested text/logos if the workflow requires text-free covers.
    source_nameSTRINGStable source identifier used to derive output paths and provenance. It normally comes from the prompt filename or manual/LLM source name.
    source_pathSTRINGOriginal prompt-file path when the song came from a file. Empty/manual values are valid for prompts entered directly in the workflow.
    prompt_originSTRINGHuman-readable provenance label describing where the prompt came from, such as manual input, folder file or external LLM.
    prompt_provenance_jsonSTRINGStructured provenance JSON from the prompt/parser stage. Preserve this input if you want to recreate how the final MiniMax prompt was produced.
    run_indexINT1-based variant index for the current song run. It is used for reproducible metadata and optional filename suffixes.
    variant_countINTTotal number of variants produced from the current source. Used for metadata and to decide whether a variant index should be appended.
    generation_seedINTPrimary song seed. In this workflow it is the reproducibility anchor used to derive MiniMax text/sampler seeds and can also be reused for artwork generation.
    max_durationFLOATMaximum MiniMax Music generation duration in seconds. This is an upper bound; the model can still end earlier if the musical/Lyrics structure encourages a shorter track.
    text_seedINTSeed used by the MiniMax text/autoregressive generation stage. Normally derived from generation_seed for reproducibility.
    text_cfg_scaleFLOATClassifier-free guidance strength for the MiniMax text/autoregressive stage. Higher values generally enforce the prompt more strongly but can reduce naturalness or introduce artifacts when pushed too far.
    text_top_kINTTop-k sampling limit for the MiniMax text/autoregressive stage. Lower values make sampling more conservative/repetitive; higher values allow more alternatives and variability.
    ksampler_seedINTSeed used by the MiniMax diffusion/audio sampling stage. Normally derived from generation_seed plus the configured offset.
    ksampler_stepsINTNumber of diffusion/sampling steps used by the MiniMax audio sampler. More steps cost more time and are not guaranteed to improve quality beyond the model's useful range.
    ksampler_cfgFLOATGuidance strength for the MiniMax diffusion/audio sampler. Higher values follow conditioning more aggressively but excessive values can sound strained or artificial.
    sampler_nameSTRINGSampling algorithm used by ComfyUI. Changing it alters the numerical denoising trajectory and can change detail, texture and reproducibility even with the same seed.
    schedulerSTRINGNoise/sigma schedule paired with the sampler. It controls how sampling effort is distributed across the denoising trajectory and can affect character and convergence.
    denoiseFLOATSampling denoise strength. 1.0 performs the full denoising process; lower values retain more of an existing latent/input state where applicable.
    pre_presetSTRINGPreset 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_settings_jsonSTRINGJSON produced by the pre-FlashSR filter settings node. Connect it to metadata so the exact effective filter settings are preserved for reproducibility.
    post_presetSTRINGPreset 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_settings_jsonSTRINGJSON produced by the post-FlashSR filter settings node. Connect it to metadata so the exact effective filter settings are preserved for reproducibility.
    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.
    workflow_nameSTRINGMiniMax Music 3 – Reproducible Batch + External ComfyUI-LLM + FlashSR + Flux2Descriptive workflow/version string written into the sidecar JSON. It has no audio effect but helps identify exactly which production workflow created a file.
    llm_system_promptoptSTRINGComplete external-LLM system prompt stored in the sidecar JSON. Keeping it makes later prompt regeneration/auditing possible; it does not itself execute an LLM in this metadata node.
    release_prep_jsonoptSTRINGJSON report from Audio Release Prep containing effective sample-rate, loudness, true-peak and static-gain measurements. Connect it to preserve final mastering/release settings.
    hybrid_crossover_jsonoptSTRINGJSON report from the FlashSR Hybrid Crossover. It records sample rates, crossover parameters, HF mix and processing mode for reproducibility.
    hf_repair_jsonoptSTRINGJSON report from HF Cymbal / Shimmer Repair. It stores the effective preset/custom parameters and measured processing statistics.
    declip_jsonoptSTRINGJSON report from Audio Declip / Overload Repair. It records clipping detection, repaired/skipped regions, effective reconstruction parameters, safety gain and the algorithm limitations.

    Outputs (2)

    NameTypeDescription
    metadata_jsonSTRING
    summarySTRING