Home AI BenchMeasured on real home PCs

Training a character LoRA for FLUX.2 klein on a Mac: three crashes, one bad cast, and a head that was too big

Failed, then fixed2026-10-28 · FLUX.2 klein base 4B (LoRA) · Apple M1 Max 64GB (training), Apple silicon (inference)

The same three prompts rendered by an early LoRA (pink cast, different face) and by the second LoRA at 1000 and 1500 steps
Same seed and prompts. Row 1: first LoRA (v0, step 1900, strength 0.7). Row 2: second LoRA (v1, step 1000). Row 3: v1, step 1500. Row 4: v1, step 1500 at strength 0.7.

We trained a LoRA for one original virtual character (an adult, 20 years old) on FLUX.2 klein base 4B, using mflux-train on a Mac with an M1 Max and 64 GB of memory. This note records what worked, what crashed and what is still wrong. It is not a recipe: it is one project, one dataset, one seed per test.

What we trained

  • v0: an early run (checkpoint at step 1900 was the one we compared). With only the trigger word, it produced a different woman, and every picture had a pink cast.
  • v1: 30 images with captions, trigger word sakubudo, rank 16, learning rate 1e-4, 1,500 steps, training images resized to 512 px, a checkpoint every 250 steps. It finished in 4 h 28 min, 10.7 s per step on average.
  • With the trigger word alone, v1 reliably produced the same silver-gray updo and amber earrings, which v0 never did. Step 1500 at strength 1.0 was the best we had. We did not find a gain from lowering the strength to 0.7.

What went wrong, in order

1. First full run stalled at step 1. The log ended with a Metal "GPU timeout" error. We did not notice for about two hours because we had mistaken the preview images for training progress. 2. The 768 px run died at step 64. Command buffer execution failed: Impacting Interactivity (a Metal error). Only the step-0 checkpoint had been saved. The cause of that particular crash is not known. We reduced the training size from 768 to 512 and restarted; the 512 px run finished. 3. We did not notice that crash for about 3.5 hours. This was the same mistake as the first, because our fix had only covered the first minutes of a run. We now check that the step counter moves twice and keep a watcher that reports the moment the process exits.

The picture problem: proportions

With the trigger alone, v1 made faces and hair well but the body looked heavy and the head large, while the character sheet says slim, 168 cm and about 7.6 heads tall.

  • Not the cause (as far as we can tell): the dataset was not full of close-ups. 14 of the 30 images were full-body (47%), more than the 10–20% that one guide recommends. We found no source that describes this exact problem for FLUX.2 klein; the official training guide only says to mix close-ups and full-body shots.
  • What helped immediately, without retraining: adding a persona sentence and proportion words to the prompt (see the second and third pictures below): "a 20-year-old adult woman, 168 cm tall, slender feminine figure with narrow waist, soft rounded shoulders and long legs ... eight-heads-tall fashion proportions, small head, long neck, long slim legs, full body visible from head to shoes". In a nine-picture check the head looked clearly smaller and the legs longer. Lowering the LoRA strength to 0.7 made no visible difference; a taller canvas (832×1280) made the figure slimmer but the face smaller. We judged by eye and did not measure head-to-body ratio.
  • Caveat: most of our full-body training pictures show people sitting, crouching or wearing loose clothes, which may hide the slimness. That is a guess, not a result.
Persona sentence added: left column is the trigger word only
Three prompt variants with proportion words

What we are doing next

Retraining as v1.1 with more standing, fitted full-body pictures, changing only the dataset (same settings), so that any difference can be attributed to the data. We will publish the comparison, including if it does not help.

How much to trust this

  • One character, one dataset, one training run per version, mostly one seed per test, judged by eye.
  • Training was done on an M1 Max, which is slow (about 10 s per step); numbers will differ on other hardware.
  • We did not publish the training images or the LoRA file.