NewMiniMax H3 open weights now run locally, as four nodes with video and audio in one pass

LoRA training

Train a FLUX.2 LoRA locally

FLUX.2 is the cheapest of the three to train, and the only one where both resolutions fit a 16GB card. About 8.6GB at 512px and 9.9GB at 1024px. It is also the one architecture where the 4-bit base is a trap: it gains nothing and costs about 10 percent a step, for a reason worth understanding before you reach for it.

trainer
The Trainer canvas in Inline Studio: a Load Dataset node wired into Train LoRA, a live loss Graph, a Resources monitor, and the training settings in the side panel.

The Trainer canvas. The run pictured is a Z-Image LoRA, and the graph is the same shape for every architecture.

Which base to train on

Pick the architecture in the Trainer's Adjust panel, then a base within it. Training directly on a step-distilled checkpoint breaks the distillation down, so every architecture offers a way around that.

klein Base 4B

The only base the trainer accepts, and it refuses a distilled checkpoint outright rather than letting a run produce a bad adapter hours later. Train on Base, then generate with the distilled klein 4B checkpoint. The LoRA carries over unchanged, and there is no adapter to download.

What the trainer needs on disk: flux-2-klein-base-4b.safetensors, in models/diffusion_models/. Nothing is downloaded behind your back, and a run that is missing a file stops and names it.

FLUX.2 LoRA training VRAM, measured

Peak allocation at 12 steps, rank 16, batch 1, with gradient checkpointing on. The number is torch.cuda.max_memory_allocated, so leave headroom for the CUDA context and allocator slack.

ConfigurationL40S (46GB)T4 (15GB)
512px, bf16 base8.6GBnot measured
512px, 4-bit base8.6GBnot measured
1024px, bf16 base9.9GBnot measured
1024px, 4-bit base9.9GBnot measured

Both precisions peak at the same number, because the peak is not the transformer. klein's base is 7.4GB while its Qwen3-4B text encoder is 7.5GB, so the caption and latent caching pass at the start of the run costs more than training itself does. Dropping the frozen base to 4-bit shrinks a part of the run that was never the high-water mark, and the step gets slower for nothing. Leave base precision on Auto, which is what it already picks. These peaks were measured on an L40S and leave room on a smaller card, but no 16GB run has been done.

See the full matrix in the README, or compare all three architectures.

How long a run takes

FLUX.2 LoRA training FAQ

Can I train a FLUX.2 LoRA on a 16GB card?

Yes, at both resolutions. It peaks around 8.6GB at 512px and 9.9GB at 1024px, which makes it the cheapest of the three architectures to train and the only one where 1024px is comfortable on a small card. Those peaks were measured on an L40S and leave room on a 16GB card, though no 16GB run has been done.

Why does the trainer refuse my FLUX.2 checkpoint?

Because it is distilled. klein Base 4B is the only base the trainer accepts for FLUX.2. Training on a step-distilled checkpoint breaks the distillation down, so the trainer stops at the start rather than letting a run produce a bad adapter hours later. Put flux-2-klein-base-4b.safetensors in models/diffusion_models/, train on it, then generate with the distilled klein 4B.

Should I use the 4-bit base for FLUX.2?

No. It saves nothing and costs about 10 percent a step. klein Base is smaller than its own text encoder, so the peak sits in the caption and latent caching pass rather than in the transformer, and quantizing the frozen base shrinks a part of the run that was never the high-water mark. Leave base precision on Auto, which stays at bf16 for this architecture.

Train your first FLUX.2 LoRA

Free and open source. Runs on macOS, Windows, and Linux.