Sign In

LoRA Creation by Bolivante

10

Dec 31, 2025

(Updated: a day ago)

training guide
LoRA Creation by Bolivante

For quite some time, I’ve had multiple people asking about my method for creating a LoRA. At first, I tried to help everyone individually through messages, answering questions and explaining parts of my workflow as they came up. However, as the questions kept repeating, I realized it would be more practical to organize everything into a single article that clearly explains my overall process and reasoning.

That said, this is not meant to be presented as the “best” or definitive method. I create LoRAs purely as a hobby, not as a professional LoRA developer or researcher. Everything I share here is based on personal experience, trial and error, and what has worked for me over time. My approach has evolved through practice, mistakes, and continuous adjustments, and it will likely keep changing as I learn more.

1. Character selection and image sources

The first step is choosing the character. It’s important to pick a character that is consistent in its defining traits. With limited training data, differences in art style are generally less important than consistency in the character’s defining features. What really matters is that the character’s key features remain recognizable across different images. Ideally, the character should have more than five available images, although having a larger dataset will always lead to better results, particularly when a consistent style is desired.

Image collection via internet (fanart and official art)

I usually start by searching online for images through a combination of fanart and official artwork, aiming to gather at least 20 usable images of the character. Fanart can be very useful as long as the character’s defining traits remain consistent and recognizable across different artists and styles. In addition, I also collect images by screencapping directly from the anime, show, or series the character appears in, making sure to look for the highest available quality of the show or anime to obtain cleaner frames with better detail. These screencaps help preserve accurate proportions, colors, and core design details, making them especially valuable for training.

A useful resource for screencaps is:

https://fancaps.net/

New Project (2).png

Using 3D models (Blender)

If there aren’t enough high-quality images available, another method I use is to look for an existing 3D model of the character. If one exists, I load it into Blender and render a full set of images from different angles and poses. This method is the most time-consuming, since some models are not rigged, which means you may need to learn how to rig the character yourself in order to pose it properly. However, despite the extra effort, this approach allows for a highly controlled and consistent dataset that can be very effective for LoRA training.

Useful resource for 3D models:

https://www.models-resource.com/

New Project (5).png

Using character sprites

There are also dedicated websites where character sprites can be found. These sprites are especially useful because they usually maintain consistent proportions, colors, and defining features. However, this method isn’t my favorite, because in the next section I will explain further why sprites can introduce certain limitations during training. While they may be more limited in pose variety, sprites can still help reinforce the character’s core visual identity when included in the dataset.

Useful resource for character sprites:

https://www.spriters-resource.com/

New Project (5).png


2. Image Cleaning

After collecting a good amount of images, the next step is cleaning the dataset. I like to do this because I feel it helps the AI learn more clearly and reduces the chance of confusion during training. Some common issues include images with multiple characters in a single frame, unclear or low-quality images, excessive visual effects, or anything that makes the main subject difficult to identify.

To address this, each image is reviewed individually and adjusted when necessary. This may involve cropping, removing extra characters, simplifying backgrounds, or eliminating distracting elements and effects. The important thing here is to keep the character clearly focused and centered in the frame, so the AI can easily understand what it is supposed to learn from each image.

I primarily use Adobe Photoshop for this process, but there are also effective free alternatives available, such as Photopea, which offers many of the same essential tools directly in a web browser.

Here is an example. In this case, the AI can get confused by the number of objects and characters present in the frame. By cleaning the image and removing unnecessary elements, we make sure the focus is placed entirely on the character, which improves the quality of the training data.

New Project (9).png

Upscaling an image

This step is optional. What I personally like to do is upscale the images using AI to at least, or as close as possible to, 4000×4000 pixels. I’ve read in numerous forums and discussions that this step isn’t strictly necessary for training a good LoRA, and many people skip it without any issues. However, it’s something I’ve been doing since the beginning of my workflow, and up to now I haven’t encountered any problems related to it. For me, it helps maintain a consistent image size across the dataset, but again, this step is completely optional and comes down to personal preference.

When working with sprites, I would recommend not upscaling the images with AI, since they tend to look very bad when scaled, just scale the image to the desire size. This is one of the reasons why using sprites is my least preferred method for collecting images.

New Project (8).png

3. Image tagging

This is by far the most tedious step of the entire process. Many people rely entirely on automatic tagging using AI, and I used to do the same. However, over time I started running into problems. In some cases, the AI does not fully understand the image, which results in missing important tags or adding tags that don’t make sense for the character.

Based on experience, my approach is more hands-on. I start by selecting a single image that represents the character as faithfully as possible. I carefully review its tags and, using my own glossary of tags that I have built over time, I create a main list of the character’s defining tags. These usually include consistent physical traits, clothing elements, and other core identifiers.

Once this main tag list is established, I feed those tags into the automatic AI tagger as fixed or priority tags. From there, I go through each image one by one, reviewing the generated tags and removing anything that is unnecessary, incorrect, or inconsistent. I know this approach probably isn’t optimal, and to be honest I’m not even sure if it truly helps from a technical standpoint. However, based on my experience, it has been working well, and it feels like it actually makes a difference. That’s also why the tag descriptions for my characters can sometimes be quite long, as those are the tags that consistently work best for capturing the character accurately.

As an example, in the following image I use WaifuDiffusion Tagger to check which tags the AI will assign to describe the image.

image.png

First, I remove the following tags because they are unnecessary for the dataset (In the top image, the character is not shown in full, it is only a demonstration of the workflow.):

1girl, solo, white background, simple background, smile, open mouth

After removing those, we are left with the following tags. I recommend ordering the tags using a linear structure, progressing from feet, legs, hips, torso, neck, and finally the head, as this will make the next step easier.

pantyhose, striped pantyhose, vertical-striped pantyhose, obi, sash, wide sleeves, nail polish, kimono, japanese clothes, striped clothes, vertical-striped clothes, frills, makeup, horns, purple eyes, eyeshadow, black hair, long hair, ponytail, high ponytail

As we can see, the AI provides a preliminary tag list that can be used as a starting point. From there, I adjust and replace certain tags to better match the character. For example, instead of using long hair, ponytail, and high ponytail, more accurate tags would be big hair, single hair bun, and hair bun.

We can also see that the AI misinterprets the character’s hair ornament as horns. Since we know it is actually a hair accessory, the horns tag is replaced with hair ornament and yellow hair ornament.

From there, I add a few extra tags to reinforce key character traits, such as lipstick, black lips, pale skin, and white skin.

The final tag list would look like this:

pantyhose, striped pantyhose, vertical-striped pantyhose, obi, sash, wide sleeves, nail polish, kimono, japanese clothes, striped clothes, vertical-striped clothes, frills, makeup, hair ornament, yellow hair ornament, purple eyes, eyeshadow, black hair, big hair, single hair bun, hair bun, lipstick, black lips, pale skin, white skin

After establishing your base tag set, you go through each image individually, removing any tags that do not apply to that image. This is why I recommend using a linear tag order, as it makes it easier to identify and remove unnecessary tags for each image.

Update:

I use the Dataset Maker by Hollowstrawberry website to create the dataset tags. The tool is very straightforward, so you don’t need to rearrange or manually move anything once the tags are generated. The layout is easy to follow and makes the whole process simple and consistent.

Within the website, you can add your activation tag directly. Just keep in mind that the activation tag must always be placed as the first tag in the list, since its position is important for correct usage.

4. Training

Finally, we move on to the training step. There are many different ways to train a LoRA, but I personally use the XL LoRA Trainer by Hollowstrawberry. In my opinion, this is one of the easiest training setups to understand, especially for beginners, since it allows you to get good results without having to tweak too many parameters.

For the most part, I leave everything at its default (vanilla) settings and focus only on three main parameters: repeats, batch size, and epochs. While there are better and more in-depth articles that explain the theory behind these values and how they interact with each other, I prefer to keep things simple in my workflow.

Based on my experience, I usually aim for around 450 training steps. This has worked well for me across different characters, and so far I haven’t run into major issues. That said, this is not meant to be a strict rule, just what has consistently given me stable results.

The only downside of this trainer is that, to get the best performance and reasonable training times, you usually need to pay for Google Colab Premium, as it provides faster GPUs and more stable sessions.

New Project (10).png

Final Thoughts

I made this guide as a way to celebrate three years of being on Civitai and to reflect on everything I’ve learned during that time. What started as simple curiosity eventually turned into a hobby that pushed me to learn more about datasets, tagging, training, and the many small details that go into creating a solid LoRA. This guide is my attempt to share that experience in a structured way, especially for newer creators or anyone looking to improve their own workflow.

I hope this write-up helps future creators and people interested in making better LoRAs, whether by following this method directly or by using it as a reference to develop their own approach. This is my personal contribution to this medium and to the community that has helped me grow through feedback, experimentation, and shared knowledge.

To be honest, this may end up being my last year doing this, but who knows what the future holds. Interests change, paths shift, and new opportunities appear when you least expect them. No matter what comes next, I’m grateful for the time spent learning, creating, and sharing with others.

Happy New Year to everyone, and thank you for being part of this journey.

New Project (11).png

10