Plain-English explanation
Fully retraining a multi-gigabyte diffusion or language model to teach it one new character or style is slow, expensive, and produces another multi-gigabyte file every time. LoRA sidesteps that: instead of touching the base model's own weights, it trains a small set of new matrices that sit alongside the base model and adjust its output during generation. The base checkpoint never changes. The LoRA file just contains the small adjustment, which is why LoRA files for image models typically run from a few megabytes up to a couple hundred megabytes: orders of magnitude smaller than the multi-gigabyte checkpoint they're applied to.
This is why LoRAs are the dominant way people customize local image generators for a specific character or style: you keep one large base checkpoint and swap in different small LoRA files depending on what you want, rather than storing a full separate multi-gigabyte model per character.
How it works
LoRA works by low-rank decomposition: instead of learning a full update to a weight matrix (which would be as large as the matrix itself), it learns two much smaller matrices, commonly called A and B, whose product approximates the update. The size of those matrices is controlled by a rank parameter (often written r): a lower rank means fewer trainable parameters, a smaller file, and a more targeted (but less flexible) adaptation. During training, the original weights stay frozen and only the small A/B matrices are updated, which is also why LoRA training needs far less compute and memory than training or fully fine-tuning a base model from scratch.
LoRA is usually applied to specific parts of the network (commonly the attention layers) rather than every weight in the model. At generation time, a LoRA can either be applied "live" alongside the frozen base model (so it can be enabled, disabled, or blended with other LoRAs at different strengths), or permanently merged into a copy of the base model's weights to produce a new standalone checkpoint. Multiple LoRAs can often be combined (for example, a character LoRA plus a separate style LoRA), though results vary and heavy stacking can degrade output quality.
Adult-AI use
LoRA is arguably the single most common customization tool in local AI image generation communities, and it's the backbone of how a lot of custom AI "characters" get made: someone downloads a general-purpose checkpoint, trains or downloads a small character LoRA from a community hub like Civitai (often built from a curated set of reference images), and combines the two to consistently reproduce a specific face, body type, outfit, or style across many generations. It's popular precisely because it's cheap to train, small enough to share easily, and doesn't require redistributing an entire base model. The same underlying idea is increasingly used for local companion chatbots too, where a LoRA can shift a base language model's tone or persona without a full retrain.
How it differs from DreamBooth and Textual Inversion
These three are often confused because they solve a similar problem (teaching a model a new subject or style from a handful of images), but they use different mechanisms and produce different kinds of files.
- LoRA trains a small set of add-on weights applied on top of a frozen base checkpoint. It never touches the original weights and produces a small, separate file (a few MB to a few hundred MB).
- DreamBooth is heavier: it updates the model's own weights (often the full UNet, sometimes the text encoder too) through further training, typically producing a new full-size or merged checkpoint rather than a small add-on.
- Textual Inversion is the lightest of the three: it doesn't touch model weights at all. It learns a new text embedding tied to a placeholder word, resulting in a tiny file (often under a megabyte).
As a rule of thumb: Textual Inversion teaches the model a new word, LoRA teaches it a small adjustment to its behavior, and DreamBooth teaches it by retraining part of itself.
Common uses
- Locking in a consistent original character's face, body type, or outfit across many generations.
- Applying a specific art style (a particular illustrator's look, an anime style, a photography style) to a base checkpoint.
- Adjusting a base model's tendencies (poses, camera angles, lighting) without a full retrain.
- Sharing a lightweight file that others can apply to a base checkpoint they already have, rather than distributing a full model.
Civitai is the largest hub for downloading community-made LoRAs, and ComfyUI and AUTOMATIC1111 are the most common local interfaces for loading and applying them.
Limitations and misconceptions
- A LoRA is not a standalone model. It does nothing on its own and requires a compatible base checkpoint (LoRAs are usually trained for, and only work well with, a specific base model family and version).
- Overtraining is common. A LoRA trained too long or on too few, too-similar images can overfit, causing it to reproduce training images too literally or bleed its subject into unrelated prompts.
- Quality depends heavily on training data. A LoRA trained on low-quality, low-variety, or mislabeled images will reproduce those flaws.
- Strength matters. Most tools let you set how strongly a LoRA is applied; too high can distort output, too low can make it barely noticeable.
Privacy and safety considerations
Because LoRAs can be trained from a small set of reference photos, the same technology used to build a consistent original character can be misused to train a LoRA on a real, identifiable person without their consent. Doing so to generate sexual content of that person is harmful and, in a growing number of jurisdictions, illegal; this is distinct from training a LoRA on an original character or on your own likeness.
Technical context
The adaptation dossier places LoRA inside the larger dataset, base-model, validation and distribution workflow.