Sign In

[Guide][Local training] Creating anime character LoRA (Illu or NoobAI)

58

[Guide][Local training] Creating anime character LoRA (Illu or NoobAI)

Estimated reading time: 15 - 20 minutes.
Since quite a few people have been asking me for a guide, I figured it’s finally time to put one together!


❗️Before we dive in, a few things you should know

If any of these apply to you, this guide isn’t for you:

  • You don’t have the patience to stick with the process.

  • You’re fine with a quick, low-quality LoRA like 99% of what’s on CivitAI.

  • You want instant results without investing extra time for stability.

  • You only train on hosted sites, not locally.

  • You’re expecting deep technical explanations (this is about process, not theory).

  • You don’t have an NVIDIA GPU with at least 8GB VRAM. (I haven’t tested with less VRAM, AMD, or Mac, so I can’t help there.)

If you’re still with me, good—because the payoff is worth it. Follow this process and you’ll end up with more stable LoRAs.

Got it? Let's begin...

Tip: read the whole guide first before diving in. I sometimes jump around between steps, and it’ll make a lot more sense if you’ve seen the big picture first.


⚒ Here're all the tools you'll need:

I'm not going to explain how to install those, you'll have to figure it out yourself from README of each application. Otherwise this would be too long guide.


📡 Step #1: Gathering Images for a dataset

Let's start with how many images you need for a good LoRA...

This is one of the most debated questions—and the truth is, quality matters far more than quantity. A LoRA trained on fewer, high-quality images will almost always outperform one built on a huge dataset of low-quality material.

As the saying goes: your generations are only as good as the dataset you train on.

That said, my approach is to collect as many images as possible first, regardless of quality. Both good and slightly bad will end up in the pool—because later, during the sorting step, we’ll filter out what’s actually useful.

Low-quality images include things like:

  • Blurry or out-of-focus shots

  • Flat or washed-out colors

  • Images that are too dark

  • Very low resolution

Let's get to image gathering. You have a few options:

a) 🎞 Manual Snipping (while watching anime) <--- This is the way.

Since I can’t show you examples directly (DMCA reasons), here’s the workflow:

  1. Open your anime in VLC, Netflix, or whatever player you like.

  2. Use the Snipping Tool (or any screenshot tool).

  3. Watch the anime, pause when your character appears, and snip.

  4. Learn the shortcuts—it makes things much faster.

For reference, snipping a full 12-episode season usually takes me about 1–2 hours. I skip a lot because I only snip from shows I’ve already watched—so I know exactly which parts to ignore when the character doesn’t appear.

👉 And no, please don’t think I rewatch the same episode over and over just to snip a single character 😅. You can grab all characters in one pass, then filter later during the cleanup step.

Why this method is great:

  • You get to rewatch the anime 😄

  • You skip very bad images right away, so Step #2 (sorting) is easier

  • You capture characters from multiple angles: back, side, and especially those camera pan shots (camera slowly moving up from characters feet all the way to her head). These are gold—they’re usually the highest quality frames you’ll find. More about this in #Merging Images

Screenshot 2025-09-13 172407.png

b) 📹 Auto-Screencap with a Program

Another option is to use a program that automatically takes screenshots while the video plays.

Advantages:

  • Super hands-off: just run it, wait, and you’ll get a folder full of frames.

  • No need to rewatch the anime if you don’t want to.

Disadvantages:

  • It often misses the best frames—especially those key angles and smooth pan shots I mentioned in Option A.

  • You’ll usually need to crop the images afterward, which adds an extra step.

c) 📦 Using BangumiBase Repository

I won’t say “don’t use it,” but I highly recommend against this option.

It works pretty much like Option B (auto-screencap), but with even more drawbacks:

  • The image quality and consistency aren’t reliable.

  • You’ll end up with tons of duplicate images, meaning extra cleanup work.

d) 🌐 Pulling Images from Official Sources

For extra high-quality, full-body shots, you can also grab images from official anime websites or wikis. Good places to check include Zerochan or various booru sites.

What to look for:

  • Images with the “official style” tag → usually clean art with a white or transparent background.

  • Images with the “megami magazine” tag → often group shots, but sometimes you’ll find exactly the single character you need.

Important note:
Official character visuals often come with transparent backgrounds. For training, you’ll want to add a solid background (ideally white), since transparent backgrounds don’t work well.

image.png


(Example: Left = Megami Magazine illustration, Right = official character visual. The original had a transparent background and no cropping; this version is already cleaned up.)

⚠️ Note on Older Anime
Keep in mind that older shows usually won’t have official visuals in high enough quality. This method is best suited for newer series where official art is more readily available.

Example:
Here’s a dataset I built from anime screencaps, plus a handful of extra images pulled from websites.

image.png


(Not all images are shown here—the full set would be too large. In total, there are about ~125 images.)


🪄 Step #2: Processing Images

Before you start training, you’ll need to filter your images.

Whether you upscale first or sort first doesn’t really matter—I switch it up depending on the situation. Sometimes I sort the images before upscaling, sometimes I do it the other way around. The key is to make sure only high-quality, usable images make it into the final dataset.


♻️ Filtering / Editing

Do an extra cropping of badly cropped images in case you accidently made some in Step #1.

What to look for:

  • Center the character in the frame—avoid having them on the edges.

  • Crop solid borders around the image to remove unnecessary space.

  • Fix partial outfit cuts:

    • If a belt is only partially visible, crop a bit above so it’s completely out of frame.

    • If part of a skirt is barely visible, crop it out entirely.

    • Yellow arrow — tag this later as 1other

Screenshot 2025-09-17 133112.png
  • Crop the head if needed:

    • For full-body images where the head quality is poor (blurry, eyes just dots), remove it from the frame.

    • Later, make sure to tag the image as “head out of frame” to avoid confusing the model.

Screenshot 2025-09-13 175810.png

  • Ideally to get the best quality, sometimes I like to remove artifacts or other people from images too. Here's an example:

image.png

This later helps reduce any artifacts during image generation.

⚠️ Working with Sparse Datasets
Sometimes, if your dataset is very limited, you might have to use images that aren’t perfectly centered.

  • The character may not be exactly in the middle, but you work with what you have.

  • Ideally, try to center them as much as possible—otherwise, your generated images could end up with characters off to the side.

  • Personally, I prefer my characters centered, so I aim for that whenever I can. 🙂

Screenshot 2025-09-11 142549.png

Make sure to filter out overly dark images from your dataset.

Key points:

  • Don’t confuse dark scenes with night-time shots.

  • Too-dark images are those where shadows are completely black or important details on the character are barely visible.

  • (Optional) You can also remove “evening” or “sunset” images with an orange tint if you already have plenty of daytime images.

Tip: Only do this if your LoRA, after training, produces a weird color tint in normal daytime generations.

  • If you keep these images, tag them properly with labels like evening, sunset, or orange theme so the model knows how to handle them.

  • Additionally, you can try color correcting those in Photoshop too.


✂️ Merging Images

If you’ve downloaded Image Composite Editor (ICE), go ahead and start it up.

  • Load your images into the program as shown below:

Screenshot 2025-09-13 172438.png

You can skip the stitching step and go straight to cropping.

⚠️ Important: Not all images will merge correctly.

Here’s an example of a successful merge:

Screenshot 2025-09-13 172518.png

Here’s an example of a bad merge:

Screenshot 2025-09-13 172628.pngScreenshot 2025-09-13 172646.png

Hopefully, it’s obvious why this is a bad merge. But just in case—it’s stretched very unnaturally, which would ruin the training.

⚠️ Good news: If your dataset is small, not all is lost. You can still use these images separately, without merging.

  • I recommend cropping the sides around the character, like this:

BEFORE:

vlcsnap-2025-09-13-09h16m39s752.png


AFTER:

vlcsnap-2025-09-13-09h16m39s752 - Copy.png

This way, the images remain usable and won’t negatively impact your LoRA.

Why Crop?

  • Less tagging later – the image focuses only on the relevant part.

  • Better focus on details – if something like the mouth isn’t fully visible, crop it out

⚠️ Reminder:

  • Full character perspective – it’s better to train on the entire character rather than just isolated pieces like lower body.

  • If the head is cropped out, tag the image as head out of frame during the tagging step.


🔼 Upscaling / Color Correction (optional)

⚠️ This step is optional, as it can sometimes introduce issues. I’ll cover potential problems shortly.

Open the chaiNNer program.

image.png

Load the file I shared in the attachments:

  • It’s inside the zip called Necessary_files_for_training.

  • Navigate to File → Open… and select Upscaling_Nodes.chn.

Once loaded, you should see this screen:

image.png

  1. Load your folder of images into chaiNNer.

  2. Load the upscaler model (.pth or .safetensors file). Examples:

    • RealESRGAN_x4plus_anime_6B.pth

    • 2x-AnimeSharpV4_RCAN.safetensors

    • Special note for AnimeSharp users:

      • Set Saturation to -5 in Hue and Saturation node.

      • Connect Stretch Contrast directly to Upscale Image.

      • (Reason: Anime 6B modifies image saturation, but AnimeSharp does not.)

  3. Pick your save directory.

    • I usually save in the same folder as the source images—no reason to use a separate location.

  4. Check VRAM usage.

    • Make sure no other programs are consuming GPU memory.

    • Recommended: at least 8GB VRAM for Anime 6B. AnimeSharp may work with slightly less.

  5. Run the upscaler

    • Click the green play button at the top and wait for it to finish.

⚠️ Warning: Some images may become overly saturated when using Anime 6B.

  • I’m not exactly sure why this happens.

  • Options for dealing with these images:

    • Skip them entirely.

    • Don’t include them in the training dataset.

    • Or manually fix them in Photoshop (or another image editor) before using them.


📂 Sorting & Setting Repeats

After filtering and upscaling, sort your images into separate folders based on type or focus. Then, set the correct repeats for each folder.

Recommended Repeats:

  • 1 repeat: ~23–30 images

  • 2 repeats: ~16–22 images

  • 3 repeats: ~4–15 images

  • 4 repeats: Only if necessary—this can burn or bleed in the final LoRA. Use 4 repeats only if an outfit refuses to train properly with 3 repeats.

📝 Note: You generally don’t need more than 30 images per folder—quality > quantity.
SD1.5 days are long gone; you want your generations to look good and consistent.

Example: Single-Outfit Dataset

image.png
  • CloseUps – Focused on face or head

  • Main – Upper body shots, ideally from the belt up

  • Fullbody – Entire body shots (feet may be out of frame), including dynamic “cowboy shots” or images that show most of the character

Example: Single-Outfit Dataset & Outfit-Based Sorting

image.png


CloseUps can include images from all outfits.

Why this works:

  • Gives you more control over what gets trained and how much influence each set of images has on the LoRA.

Optional: You can further separate by single outfit, similar to the method above.

  • Example: For a school uniform:

    • 1_MainSchool → Upper body shots (repeats set according to previous guidelines)

    • 3_FullbodySchool → Fullbody shots (repeats set accordingly)

This approach helps you balance training across different poses and outfits without letting any one type dominate.

Example: Limited/Small Dataset (~10–15 Images)

  1. Place all images into a single folder.

  2. Set it to 3 repeats.

Maintain some balance in composition:

  • At least 3 fullbody images

  • Around 5 upper body images

  • Around 5 close-ups

  • Ideally, include some from-behind shots (upper body or “cowboy” shots).

    • Portraits and close-ups from behind aren’t as useful, so focus on shots that show more of the character.

This ensures even a small dataset captures enough variety to train effectively.


🔬 Step #3: Tagging Images

🪠 Auto-tagging

Open Jello’s Dataset Editor.

image.png

Before loading any dataset, go to the Settings tab and adjust the following:

  • Toggle on: Tag count

  • Toggle on: Load subdirectories

  • Un-toggle: Tag groups (personal preference—you can leave it on if you like)

These settings will make it easier to manage and review your dataset efficiently.

image.png


Go to the top-left corner, click File → Load Dataset, and select the root folder of your character.

  1. Once the dataset is loaded, go to Tools → Autotag Images and press Start.

    • This will only run the autotagger service, it won’t tag the images yet.

image.png


Autotagger Settings:

  • I recommend using a combination of:

    • eva02large-v3

    • vit-large-v3

  • General threshold: 0.2

    • Adjust later if it tags too many or too few images.

  • Character threshold: 1

    • Prevents automatic character tags we don’t want.

    • 1 means a 100% match, which rarely happens, so no unwanted character tags will be applied.

    • More on this in the next step.

Running Autotagging

  1. Click Tag Images to start the autotagging process.

  2. If this is your first time, the program will download the required tagging models—this may take a while.

  3. Once tagging is complete, you can close the dialog window.


🪚 Fixing Tags — The Most Important Step!

You might ask, why is this step so crucial?

  • The fewer bad tags your dataset has, the more stable your generations will be.

  • This step takes time and patience, but it pays off in the final LoRA quality.

Trigger / Activation Tags

  • Only create these if your character has multiple outfits that share a common feature.

  • Otherwise, avoid it—training a new concept with a trigger tag can introduce unpredictable results.

  • Everyone has their own approach (100 people = 100 opinions). Use it if you think it helps; I generally skip it, as my tests show it’s not necessary.

  • ⚠️ Activation tag has to be something unique. It can not match anything from booru tags! The reason is explained right below.

Avoid booru Character Tags in Your Dataset!

Including them can cause serious problems:

  • You don’t know what data the checkpoint was trained on, so it could introduce random or low-quality content.

  • Your LoRA will mix in unwanted data instead of focusing on your dataset.

  • This does not improve consistency—it usually just creates artifacts or bleeding.

  • For best results, you want your LoRA to learn only from your curated dataset, not inherited tags from external sources.

Keep your dataset clean and only tag images with what’s actually present.

Fixing Tags: Common Practices

I’m not going to dive into how to use Jello’s Editor—there’s a README for that, and it’s pretty straightforward once you look at it.

Danbooru is your best friend here—the most commonly used tags usually have a wiki entry that explains exactly when and how to use them.

Here are issues I encounter frequently and how to address them:

  1. General tags:

    • Delete redundant ones. Example: jewelry → keep only specific items like necklace or earrings. If there isn’t a more specific descriptive tag available, you can just stick with jewelry.

    • Delete tags like: virtual youtuber, official alternate costume, 

  2. Clothing details:

    • Example: change jacketred jacket, and only keep the specific tag in the dataset.

    • swimsuit → keep only aqua bikini, frilled bikini and such.

    • same goes for underwear as for swimsuit 

    • frills → frilled shirt or frilled *piece of clothing* (if a tag for that piece of clothing doesn't exists, you can keep the general tag)

    • off shoulder → off-shoulder shirt or off-shoulder *piece of clothing* (if a tag for that piece of clothing doesn't exists, you can keep the general tag)

    • school uniform & serafuku → these are a little bit tricky, you can keep them or remove them (I personally don't use them if the dataset is simple.)

    • pants or shorts → even if it's not visible properly stick to one which is correct (note: don't forget to add color)

  3. Pose / gaze corrections:

    • Remove looking at viewer if the character isn’t actually looking that way.

    • Ideally find a tag that describes gaze the best.

    • Don't mix up looking to the side and facing to the side , that are 2 different things.

  4. Expression / Head / Body tags

    • To get better control over face expressions I recommend you to add any missing tags like expressionlessshyhappy etc.

    • Add closed mouth or open mouth in case it is missing

    • Fix smilefrownlight smile

    • Add colored eyelashes , only where it's visible

    • Differentiate properly fang , fangs , fang out

    • Stick to one eye color, eg. aqua eyes or blue eyes, keep just one which is correct

    • Same goes for hair color

    • Fix short hair , medium hair , long hair , very long hair etc... - ⚠️ Careful close-up / portrait image can not be combine with very long hair - danbooru wiki will tell you more

    • Unify breast size, get rid generic of breasts tag

    • And yet another tricky part is when it comes to breasts tags

      • 98% of the time, I remove any breast tags where they are not visible

      • So basically if there's no visible cleavage or sideboob and such, I remove any breasts tag

      • Some people do keep it and tag it everywhere, so this is up to you

  5. Missed tags: Autotaggers often skip:

    • from side, from behind, from above, from belowtag these manually.

    • Change upper bodyclose-up or portrait as appropriate.

  6. Lighting / scene:

    • If you kept evening or sunset images, make sure they’re tagged, as autotaggers often miss them.

    • Add night to night shots

  7. Accessories consistency:

    • Neck ribbon, bow, or bowtie? Pick one tag per outfit and stick with it.

    • Is it hair ribbon, hair bow, hairclip ? Prune generic tags like hair ornament if it’s already specific. You can keep it if there's no specific tag for it.

  8. Style tags (for screenshots):

    • Remove any style specific tags such as official style or anime coloring on screencap images

    • Tag each image with anime screencap.

      • Yes, I know the tag on booru is anime screenshot . However, this tag was changed in 2025 from anime screencap after illustrious was trained.

    • This should help make the LoRA more flexible with styles.

  9. Background tags

    • Add blurry background not just blurry - auto taggers miss these quite often

    • Remove mistagged transparent background - white backgrounds usually get mistagged as such

    • Fix skyblue sky etc.

  10. Multiple characters on an image

    • You have two options for this one:

      • 1. Tag everything of both characters

      • 2. Remove any tags related to non-focused character and let 1boy/1other absorb it.

        • This is the option I use almost all the time, as I do not care about other characters on an image.

        • Here on this example image I've already removed tags related to the boy: grey hoodie, open clothes, all that's remaining is beanie. So let's remove that too.

image.png

FAQ: How do you know which tag to use?
I usually look up a similar image on a booru site and compare the tags. Even after 2 years of making LoRAs, I still double-check boorus to make sure I’m tagging consistently. (Not for every image obviously)

"The more you tag, the better you become at recognizing which tags are accurate, and over time the process gets faster—especially when you take advantage of Group Edits."


⌛️ Step #4: Training LoRA

⚠️ Note: These settings are designed for PCs with at least 12GB VRAM.

  • If you have less, check the Arc En Ciel Discord for guidance.

  • I’m training on an NVIDIA 4070 Ti (12GB VRAM).

  1. Open Derrain’s LoRA Training App.

  2. Load the .toml file I shared in the attachments.

  3. Once loaded, you should see a screen like this:

image.png

  1. Base Model:

    External VAE:

    • Can be left empty, as illuXL 0.1 already includes a VAE.

    Additional Notes:

  2. Batch Size:

    • If you have 8GB VRAM, set it to 2.

  3. Max Training Time:

    • This value will be adjusted occasionally; I’ll explain how later.

  4. Comment:

    • You can tick this and write something like: "Made by XYZ" for reference.

Network arguments:

⚠️ Don’t touch this unless you know what you’re doing!

image.png

Network Dimension: 8
Network Alpha: 4

  • Why 8 and 4?

    • You don’t need higher values for a single character. This setting provides plenty of capacity without losing details.

    • With these settings, your LoRA will end up around ~50MB in size.

  • Optional adjustment:

    • For characters with 8+ outfits, you can increase to 16 / 8, also doubling the size to ~100MB.

    • I always test with 8 / 4 first before increasing dimensions, no need to bloat the size if it's not used anyways.

Many website trainers set these values to 32 / 32 by default, which produces a 200MB LoRA.
Some people will argue: “Higher is better—it saves more details.” Sure, but for a character with only a few outfits, you don’t need your LoRA taking up that much space and your details will still be the same. Remember: checkpoints already contain hundreds of characters and still sit around ~6GB in size.

Saving arguments:

image.png
  1. Output Folder:

    • Set this to any location you prefer.

  2. Output Name:

    • Name your resulting LoRA file however you like.

  3. Save Tag File:

    • Creates a .txt file with all tags in your LoRA.

    • Useful for later reference in WebUI.

  4. Save TOML File:

    • Creates a configuration file for Derrian’s trainer.

    • If training fails, you can reload this file and continue without re-entering all settings.

  5. Save Frequency:

    • Set Save Freq to every 2 epochs and Save Only Last to 3 epochs.

    • Example: If General Args.Max Trainingis 14 epochs, this will save epochs 10, 12, and 14.

Formula:

Screenshot 2025-09-13 201506.png
  • This value will appear once training starts.

  • For a single-outfit character, aim for approximately 200-300 real steps.

  • For a multi-outfit character stick with General Args.Max Training = 10-14 epochs .

Example: Small Dataset

  • 15 images × 3 repeats × 10 epochs ÷ 3 batch size = 150 real steps

  • This is a bit too low, so increase epochs to around 16–20.

Tip: Some characters train faster, while others need more time. I can't really give you a straight answer on this one. Every dataset, every character is different. You'll have to find the balance yourself.

Subset arguments:

  • Click to switch to the next tab.

  • This is where you will load your dataset / images for training.

image.png


Click Add all subfolders from folder.

  • Select your root folder containing the images.

  • The program will load all subfolders automatically (e.g., 1_CloseUp, 3_Fullbody, etc.).

image.png
  • The repeats you set on folders are loaded automatically—no need to adjust them again.

  • You must tick Shuffle Captions under each folder manually.

  • (Optional) If you have an activation / trigger tag, set Keep Tokens to 1.

image.png

All that’s left now is to hit Add to Queue or Start Training—and you’re on your way.

"I know not everyone will agree with these settings—but hey, if it works, it works!"

Tip for Beginners

  • Start small: Don’t begin with multi-outfit characters. Try training a single-outfit LoRA with 10–15 images first.

  • Trial & error: LoRA creation is an iterative process.

    • If it doesn’t work the first time, don’t panic.

    • Repeat your steps carefully, and you’ll gradually get it right.


🩺 Step #5: Testing LoRA (Is it stable?)

Once your LoRA is trained, it’s time to test whether it’s:

  • Undertrained

  • Overcooked / burnt to a crisp

  • Just right

Everyone has slightly different parameters for what they call “stable,” but personally I aim for about 5 out of 6 generations looking good.

🔎 How do you know if a LoRA is undertrained?

  • The character looks generic or not recognizable.

  • Outfits or hairstyles are inconsistent across generations.

  • Key features (like accessories, ribbons, or colors) are often missing or wrong.

  • Feels like the LoRA didn’t “lock in” the character yet.

🔥 How do you know if a LoRA is overcooked / burnt?

  • The model forces details everywhere (extra accessories, weird shading).

  • You start seeing artifacts or distortions (e.g., eyes melt, clothes blur, odd textures).

  • Weird hands appear more often than usual.

  • It loses flexibility—no matter what prompt you use, it spits out the same rigid pose/outfit/style.

  • Colors may look oversaturated or unnatural.

How do you know if a LoRA is just right?

  • The character is consistently recognizable across multiple generations.

  • Outfits and hairstyles show up reliably but with some natural variation.

  • No weird artifacts, distortions, or “burnt” textures.

  • It plays nicely with prompts—you can still guide style, lighting, or composition without the LoRA overriding everything.

  • Bonus check: When you remove anime screencap from the prompt, the character should still be somewhat flexible with different styles—whether from the checkpoint or an additional style LoRA.


🧬 Mission accomplished

58

Comments