Nodes/ComfyUI-FL-MiniMaxMusic3/FL MiniMax Music 3 LoRA Trainer
ComfyUI Node

FL MiniMax Music 3 LoRA Trainer

FL MiniMax Music 3 LoRA Trainer — the 20 GB backend behind your music LoRA

By filliptm·Created about a month ago·Updated 22 days ago· 5
FL MiniMax Music 3 LoRA Trainer
  • dataset
  • train_config
  • validation_config
  • resume_run
  • training_run
  • lora_path
output_namemusic3_lora
backend_policy

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.
CategoryFL/MiniMax Music 3/Training

Inputs (6)

NameTypeDefaultDescription
datasetFL_MINIMAX_MUSIC3_DATASET
train_configFL_MINIMAX_MUSIC3_TRAIN_CONFIG
output_nameSTRINGmusic3_lora
backend_policyCOMBO2 options: require_installed, install_pinned_if_missing
validation_configoptFL_MINIMAX_MUSIC3_VALIDATION_CONFIG
resume_runoptFL_MINIMAX_MUSIC3_TRAINING_RUN

Outputs (2)

NameTypeDescription
training_runFL_MINIMAX_MUSIC3_TRAINING_RUN
lora_pathSTRING