← All Guides
kreakrea-2traininglorageneratecharacter

Krea 2 with modl: Generate and Train

Krea 2 Turbo makes photographs in 8 steps. Krea 2 Raw trains character LoRAs in 47 minutes on a 4090. Real runs, real settings, and the two failures that cost me three hours.

Jul 19, 2026 12 min read

TL;DR

Krea 2 comes in two checkpoints and you want both for different reasons. Turbo is distilled: 8 steps, no CFG, photographic out of the box. Raw is the base midtrain: real CFG, ~20 steps, and it’s the one you train on — it has the best LoRA fidelity of the family.

Everything below ran on a single RTX 4090. Every image was generated with modl and has a sidecar recording its prompt, seed, and settings.

$ modl pull krea-2-turbo # 8-step generation
$ modl pull krea-2-raw # real CFG, trainable
 
$ modl generate "a lighthouse on a rocky coast at dusk"
✓ ~/.modl/outputs/2026-07-17/20260717-142001.png

Requires modl v0.2.16 or newer.

Two checkpoints, one family

Krea 2 is a 12.9B MMDiT with a Qwen3-VL 4B text encoder — about 17.3B total. Both checkpoints share the same weights class and the same VRAM profile.

Krea 2 TurboKrea 2 Raw
TypeTDM-distilledBase (midtrain)
Steps8~20
Guidance0 (no CFG)3.0 (real CFG)
Negative promptsNo — CFG is offYes
LoRA trainingNot recommendedYes — best fidelity
Best forFast photographic generationTraining, and prompts needing real guidance

The practical split: reach for Turbo when you want a picture, and Raw when you want control or a LoRA.

Generating with Turbo

Turbo is distilled, so guidance is off entirely and 8 steps is the whole budget. There is no quality dial to turn — more steps will not help.

$ modl generate "portrait of an elderly woman with silver hair laughing, black and white"
▸ krea-2-turbo · 8 steps · guidance 0.0 · 1024x1024
✓ 1 artifact
Six images generated with Krea 2 Turbo: an alpine lake rowboat, a Marrakech street market, a red bicycle against a whitewashed wall, a lighthouse at dusk, a black and white portrait, and a hummingbird in flight

Krea 2 Turbo, 8 steps, guidance 0, straight out of the box. No LoRA, no refiner, no upscaling.

What Krea 2 is unusually good at is photographic prompts — available light, film-like grain, and plausible depth of field without being told. The hummingbird and the lighthouse above are single 8-step generations with no post-processing.

Tip:

Krea 2 responds to photographic vocabulary — focal length, time of day, film stock, lighting direction. “35mm, warm afternoon sun” does more work here than a pile of quality tags.

Training a character LoRA on Raw

This is the part worth the guide. Krea 2 Raw trains character LoRAs quickly and holds identity well across styles.

The run behind everything below: 24 phone photos of one Pomeranian, rank 32, 512×512, 1,080 steps, 47 minutes on a 4090. At 2,000 steps the same config takes 1 hr 27 min — and, as it turns out, produces nothing better.

# 1. Build the dataset (auto-captions with Qwen3-VL)
$ modl dataset create maxi --from ~/photos/maxi/
✓ 24 images → ~/.modl/datasets/maxi/
$ modl dataset caption maxi
 
# 2. Train
$ modl train \
--dataset maxi \
--base krea-2-raw \
--name maxi-krea2-pom \
--trigger m4xi \
--class-word pomeranian \
--lora-type character
▸ rank 32 · lr 1e-4 · adamw8bit · 512x512
✓ 1,080 steps in 47m · ~/.modl/loras/maxi-krea2-pom.safetensors
 
# 3. Generate with it
$ modl generate "m4xi pomeranian surfing a giant wave at sunset" \
--lora maxi-krea2-pom
SettingValueWhy
--basekrea-2-rawReal CFG. Raw has the better LoRA fidelity of the two.
rank32Sweet spot for character. 218 MB LoRA.
lr1e-4adamw8bit. Loss sat between 4e-2 and 2e-1 throughout.
resolution512x512Quantizes to ~21 GB, fits a 24 GB card comfortably.
--class-wordthe specific breed"pomeranian", not "dog" — this is the setting that matters most.
steps~1,000Past this you are memorizing the training background, not the subject.
A grid of 28 generated scenes of the same Pomeranian: space, a throne of dog treats, surfing, a renaissance oil painting, a coffee shop, sunflowers, a detective, cherry blossoms, snow, a library, a road trip, rain, watercolour, pencil sketch, cartoon, and a studio portrait

28 scenes from one LoRA trained on 24 phone photos. Krea 2 Raw, 20 steps, guidance 3.0, LoRA strength 1.0, one run, no cherry-picking beyond two regenerated seeds.

Identity holds across photoreal, oil painting, watercolour, pencil, and flat cartoon — which is the part distilled models usually lose.

The two failures that cost me three hours

I ran this three times before it worked. Both failures are the kind you cannot see coming from a loss curve, because the loss looked fine in all three.

Failure 1: the trigger word collided with English. The first run used maxi as the trigger and no class word. Past step 1000 it started generating women in maxi dresses. The token already meant something, and the LoRA fought the meaning rather than replacing it.

Failure 2: the class word was too generic. The second run used m4xi plus the class word dog. Colouring came out right, but the model produced a generic medium-sized dog every time — never the Pomeranian build. dog gave it a head start toward the wrong animal.

The third run used m4xi + pomeranian and locked the build. With one catch worth knowing:

The prompt has to say it too:

The size only holds when the inference prompt also contains “pomeranian”. Prompting m4xi dog reverts to the generic medium dog, even with the correct LoRA loaded. The class word is not baked in — it is a handle you have to keep using.

There is a longer write-up of all three runs, with the images that prove each failure, in Why Your Character LoRA Doesn’t Look Like Your Subject.

Check for bleed before you trust it

A character LoRA can quietly damage the base model’s general concepts. The cheap test is to generate something unrelated and confirm it looks normal.

Two control images: a golden retriever sitting in a garden, and a studio portrait of a woman smiling — neither shows Pomeranian features

Bleed controls from the same LoRA at strength 1.0. Left: 'a golden retriever sitting in a garden'. Right: 'a portrait of a woman smiling'. Both clean — no Pomeranian features, and no maxi dress.

Two prompts, thirty seconds of reading. If the retriever comes out fluffy and compact, or the portrait comes out wearing a maxi dress, the LoRA has bled and the outputs are not trustworthy no matter how good the showcase looks.

Stop training earlier than you think

Checkpoints at 1,000, 1,250 and 1,500 steps were near-identical in likeness. What did change was the background: later checkpoints increasingly reproduced the wall from the training photos, in scenes that had nothing to do with it.

That is memorization, not learning. On Krea 2 Raw with 24 images, ~1,000 steps is the target, and the extra 40 minutes to reach 2,000 buys nothing.

Tip:

Sampling every 250 steps ate roughly 40% of wall-clock time. If you are iterating on settings rather than watching progress, raise the sample interval and the run gets meaningfully shorter.

Evaluate honestly

The easiest way to fool yourself is an over-specified prompt. “A golden-brown pomeranian with a white chest, sitting” produces a convincing image with the LoRA turned off — the base model can draw that from the words alone.

Strip the descriptors and A/B it: same seed, same prompt, LoRA off then on. If the two are hard to tell apart, the LoRA is not doing the work you think it is.

Troubleshooting

Prompts come back sanitized. Krea 2 ships with a baked-in content filter that also affects benign adherence — expressions, injuries, body types. modl pull krea2-filter-bypass and apply it as a LoRA at 0.4–1.0.

Out of memory at 1024. Training quantizes to ~21 GB at 512, which fits a 24 GB card. Larger resolutions or smaller cards need 512–768.

ai-toolkit downloads 25 GB. modl stores Krea 2 as fp8, but ai-toolkit strict-loads the original bf16 keys, so the trainer fetches its own copy of the weights plus the Qwen3-VL text encoder. Expect the disk hit on your first training run.

Trigger tokens appearing as text in the image. Pronounceable triggers like m4xi sometimes render as lettering rather than acting as an identity cue, especially in prompts implying a medium that contains text (“children’s book style”). Two of three seeds did this in testing. Opaque triggers such as zqk7 are less prone to it.

What this guide does not cover

Krea 2 editing (reference-image identity edits) is wired into the worker but is not yet exposed through the CLI, so there is nothing to document. Quality-mode benchmarks for --fast 12–15 on Raw are not included because the comparison grid has not been run — the numbers are not in yet, and inventing them would defeat the point.

Reference

$ modl pull krea-2-turbo # 8 steps, no CFG
$ modl pull krea-2-raw # ~20 steps, guidance 3.0, trainable
$ modl pull krea2-filter-bypass # adherence patch, apply at 0.4-1.0
 
$ modl train --dataset D --base krea-2-raw --name N \
--trigger m4xi --class-word pomeranian --lora-type character
 
$ modl generate "m4xi pomeranian in a library" --lora N

Next: Train a Character LoRA benchmarks Krea 2 against five other base models, and Why Your Character LoRA Doesn’t Look Like Your Subject walks through every failure above with the images.