A common story: you designed a fictional character in a chat app or a hosted generator, made a few dozen pictures, then hit a wall. Either the service refused the scenes you wanted, or the face drifted a little more with every picture until she was someone else. The fix for both is the same: move the character into a model you run yourself, and give her a LoRA so the face is a file you own instead of a prompt you hope for. This lesson is the map; the later lessons in this course go deep on each step.
Before you start: is she yours to use?
Only bring characters you created, yourself, or a real adult who gave you written consent. Check the terms of the app you made her in: most let you use your outputs, some restrict commercial use. She must be an adult and look like one; anything that reads as under 18 is refused by our trainer and by every workflow's content rules.
Step 1: pick one clean source
From everything you have, choose the single best picture: face front-on, evenly lit, no hand near the face, no sunglasses, plain background if possible. This is the identity everything else is built from. A messy source (heavy filter, strong pose, busy room) leaks into every picture after it.
Step 2: grow a dataset from that one face
You need 20 to 30 pictures of the same person in different places, clothes, light and angles. Two ways:
- Bulk Reference Swap (Krea 2 Identity Edit): take a folder of varied scene photos and put her face into each one. No training needed; this is how we build every roster dataset.
- Qwen Edit dataset generator (in the RunPod template): turns one picture into 30 angle and expression variations. Needs a 48 GB card.
Then curate hard. Delete anything where she looks like a different person, every black-and-white frame (one is enough to make the LoRA render some scenes monochrome), and duplicates. Vary the outfit: a LoRA learns everything that repeats, so ten pictures in the same jacket give you a character who always wears that jacket.
Should the dataset include nude pictures? Train the identity, not the clothing state. A mix of outfits (including swimwear or underwear if you want the body shape learned) teaches face and build; what she wears, or doesn't, is decided at render time by the prompt and the add-on LoRAs. A dataset that is all one clothing state welds that state to her.
Step 3: train the LoRA
Use our hosted trainer (upload the photos, get the LoRA back with a trigger word and a sample sheet), or train on your own pod with the ai-toolkit trainer in the RunPod template. Krea 2 is our default base: in our comparisons it held a likeness better than Z-Image or FLUX. Test the result on prompts the dataset never showed. If she only looks right in scenes like the training pictures, the dataset was too uniform.
Step 4: one character, many pictures
Load the LoRA in the Krea 2 workflow (or save it to the character library and pick her by name). For adult scenes, the RunPod template has optional adult add-on packs; the Dynamic LoRA bulk workflow picks body, clothing and content LoRAs per picture from a caption. All of it runs on your own GPU, with no prompt filter beyond the law and our content rules.
Step 5: two characters in one scene
This is where most people stall. Two LoRAs in one text-to-image pass tend to blend into one face. What works:
- Train each character separately, then compose: FLUX.2 Multiple Characters takes up to four reference pictures and places each person; Character Ensemble (MiniMax H3) handles two to nine.
- Name each person and give them a position in the prompt ("Mara on the left, Jade on the right"), say what all four hands are doing, and say what each person looks at.
- For a sequence ("in the next picture Jade struggles in the hold"), keep the camera and room text identical between prompts and change only the action and expressions. Lesson 7 has the full set of rules.
Step 6: make it move
A finished still becomes a clip with H3 Flow (image to video), and the character LoRA's pictures become the reference for longer, continuous shots.
Takeaway: one clean source, a varied dataset, a LoRA per character, compose characters instead of stacking LoRAs, and write every prompt as if the model has never seen the previous picture.