FL MiniMax Music 3 LoRA Trainer
FL MiniMax Music 3 LoRA Trainer — the 20 GB backend behind your music LoRA
- dataset
- train_config
- validation_config
- resume_run
- training_run
- lora_path
This is the node everything else in this pack is a supporting cast for. It runs the actual LoRA training: it takes your validated dataset and your train config, spins up a pinned SimpleTuner backend in an isolated environment, trains, checkpoints, monitors, and at the end drops a finished .safetensors into your ComfyUI LoRA folder. It's also the node that asks the most of your machine, so let's be honest about what you're signing up for before the hype kicks in.
What it really is
Under the hood it's a managed wrapper around SimpleTuner (bghira's trainer, pinned to a specific commit in the pack's backend_manifest.json). "Managed" is doing real work here: the backend installs into its own Python environment under ComfyUI/user/fl_minimax_music3/backends/ - not into ComfyUI's environment - which is the right way to ship a training dependency, because trainers are the single worst source of torch/transformers conflicts in this ecosystem. The trade is that first-run setup is heavy: roughly 20 GiB of backend plus model storage, and it requires Python 3.12 or 3.13 and an NVIDIA GPU with BF16 support. It targets one GPU; multi-GPU, LyCORIS, full-rank, AnyFlow, and the rest of SimpleTuner's exotic menu are deliberately not exposed.
Once it's running, you get what the README calls a live training dashboard: step, loss, learning rate, progress, a loss chart, and - if you wired in a Validation Config - actual generated audio so you can hear the LoRA improving instead of squinting at numbers.
Inputs and outputs
Required: dataset (the validated FL_MINIMAX_MUSIC3_DATASET), train_config (from the Train Config node), output_name (default music3_lora), and backend_policy (require_installed or install_pinned_if_missing - use the latter on first run). Optional: validation_config and resume_run (the Training Run handle for continuing an interrupted run).
Outputs: training_run (a handle you can persist for later resume) and lora_path - the adapter's final location, which is:
ComfyUI/models/loras/MiniMaxMusic3/<output-name>/<output-name>.safetensors
Load it with ComfyUI's standard Load LoRA (Model Only) node between the Music 3 loader and the sampler, same as any image LoRA.
How it behaves under interruption
Training is designed to survive being stopped. Interrupting ComfyUI requests a graceful worker exit that preserves the latest usable checkpoint and logs where you stopped. You resume via the Training Run node, and the trainer validates that your inputs still match the original run - dataset identity, LoRA shape, precision, and output name must be unchanged. Annoying when you want to tweak rank mid-run, but it's the guardrail that makes resume actually work.
Install and first run
Part of FL MiniMax Music 3 - 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, then run the pack's example workflow - it ships with deliberately short training and validation settings meant as an install check. Increase them once you've confirmed the pipeline runs.
The honest gotchas
- The first queue is a marathon. Backend install (~20 GiB), model download, then training. Nothing downloads until the node actually executes, so budget the disk and the patience.
- Under-trained is the default failure, not over-trained. The community's recurring pain with music LoRA training - including with this author's earlier ACE-Step pack - is LoRAs that come out barely audible even at strength 2.0. The cause is almost always a thin dataset or too few steps, not the trainer. Train long, caption well, and use validation audio to check.
- Logs are your friend. Failed runs write to the run's
trainer.log; the node's error message points at it directly. - License footnote: the pack itself is Apache-2.0, but the SimpleTuner backend it installs and runs is AGPL-3.0-or-later, invoked as a separate program. Fine for personal use; read the NOTICE before building a product on it.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| dataset | FL_MINIMAX_MUSIC3_DATASET | — | |
| train_config | FL_MINIMAX_MUSIC3_TRAIN_CONFIG | — | |
| output_name | STRING | music3_lora | — |
| backend_policy | COMBO | 2 options: require_installed, install_pinned_if_missing | |
| validation_configopt | FL_MINIMAX_MUSIC3_VALIDATION_CONFIG | — | |
| resume_runopt | FL_MINIMAX_MUSIC3_TRAINING_RUN | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| training_run | FL_MINIMAX_MUSIC3_TRAINING_RUN | — |
| lora_path | STRING | — |