Nodes/ComfyUI-FL-MiniMaxMusic3/FL MiniMax Music 3 Dataset
ComfyUI Node

FL MiniMax Music 3 Dataset

FL MiniMax Music 3 Dataset — the bouncer that keeps bad training data out

By filliptm·Created about a month ago·Updated 22 days ago· 5
FL MiniMax Music 3 Dataset
    • dataset
    • report
    dataset_folder
    recursivetrue
    caption_extension.txt
    lyrics_extension.lyrics
    missing_lyrics
    min_duration1.0
    max_duration60
    duration_interval3.0
    audio_analysis
    include_invalidfalse

    Every trainer in this ecosystem has the same dirty secret: garbage in, garbage out, and the garbage is usually a dataset problem, not a training problem. This node is the pack's answer to that. It doesn't caption, segment, or train anything - it checks a local caption-and-lyrics Music 3 dataset against the rules the trainer actually cares about, and hands you a validated dataset object plus a report. Think of it as a bouncer: bad track doesn't get in, and you find out why it got bounced instead of burning a training run to discover it.

    How it works

    It scans a dataset folder on disk and, crucially, never decodes the audio into workflow tensors. It's cheap on purpose. For each audio file it runs ffprobe to read duration, sample rate, and channel count, then checks the two sidecars Music 3 training expects - a .txt caption and a .lyrics file - and verifies the duration lands inside your min/max window. That's the metadata path. If you set audio_analysis to full, it goes deeper: an ffmpeg volume pass that flags silent audio and near-full-scale clipping, plus a content hash that catches exact duplicate tracks.

    The dataset object that comes out is a FL_MINIMAX_MUSIC3_DATASET - the exact type the LoRA Trainer expects on its dataset input. That's the whole pipeline: preprocess (or assemble by hand) → validate here → train.

    The inputs that matter

    • dataset_folder - a dropdown that's auto-populated by scanning the pack's dataset root (under ComfyUI/input/fl_minimax_music3/datasets/). If your folder isn't in the list, it isn't in the right place.
    • missing_lyrics - instrumental treats a track without a .lyrics sidecar as instrumental and lets it through; reject throws it out. Music 3 is caption-plus-lyrics conditioned, so this policy quietly shapes what your LoRA learns.
    • min_duration / max_duration - the window a track must fit (defaults 1 s to 60 s). Tracks outside it are rejected.
    • duration_interval - the step for duration bucketing. Trainers sample by duration bucket, so this is your resolution for getting varied-length segments, not a per-track filter.
    • audio_analysis - metadata (fast, ffprobe only) or full (adds volume analysis and duplicate detection).

    Both outputs are worth reading: dataset wires into the trainer, and report is a STRING of JSON with valid/invalid counts, total seconds, and every error and warning per file. When training fails mysteriously, this report is where you start.

    Install

    This is one node of the FL MiniMax Music 3 pack. Install via ComfyUI Manager (search FL MiniMax Music 3) or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/filliptm/ComfyUI-FL-MiniMaxMusic3.git
    cd ComfyUI-FL-MiniMaxMusic3
    pip install -r requirements.txt
    

    Restart ComfyUI. One hard dependency to check first: ffprobe must be on your PATH (comes with FFmpeg). If it's missing, the node fails with a message telling you exactly that.

    Common issues

    • "No valid tracks" error - the whole dataset got rejected. Open the report output and read the per-file errors: empty captions, missing lyrics under reject, durations outside the window, or a file ffprobe couldn't decode are the usual suspects.
    • The folder isn't in the dropdown - it must live under the dataset root the pack scans, not anywhere you feel like putting it.
    • Silent or clipped tracks - only caught in full analysis mode. If your LoRA sounds weird and you skipped full analysis, this is a plausible reason.
    • The node re-validates when files change (its change-detection is deliberate), so if you edit captions mid-project, re-queueing picks them up automatically.
    CategoryFL/MiniMax Music 3/Training

    Inputs (10)

    NameTypeDefaultDescription
    dataset_folderCOMBO1 options: <no datasets found>
    recursiveBOOLEANtrue
    caption_extensionSTRING.txt
    lyrics_extensionSTRING.lyrics
    missing_lyricsCOMBO2 options: instrumental, reject
    min_durationFLOAT1.00–600
    max_durationFLOAT601–1800
    duration_intervalFLOAT3.00.5–30
    audio_analysisCOMBO2 options: metadata, full
    include_invalidBOOLEANfalse

    Outputs (2)

    NameTypeDescription
    datasetFL_MINIMAX_MUSIC3_DATASET
    reportSTRING