Prompt engineering can only reach the styles a model already knows. A LoRA — Low-Rank Adaptation, a small trainable adapter that steers a diffusion model without retraining the whole thing — is how you push it somewhere new: your illustration style, a recurring character, a specific material or palette. SDXL LoRA Training locally with Kohya — FULL TUTORIAL walks through the entire pipeline on a single consumer GPU, aimed at artists who can already generate images but have never trained anything.
The dataset is 80% of the result
The single biggest lever in LoRA training isn’t the settings — it’s the images you feed it. The tutorial’s emphasis on dataset curation is the real lesson: 15 to 100 images with consistent quality, varied enough to teach the concept but coherent enough to define it. Kohya’s bucketing feature means you no longer have to crop everything to 512×512; the trainer groups images by aspect ratio and trains on them as-is, which preserves composition that square-cropping would destroy.
Captions tell the model what not to learn
Captioning is the step beginners skip and then wonder why their LoRA bleeds into everything. The principle: describe what varies (pose, background, lighting) and omit what you want the model to bake in (the style itself). If every caption says “in the style of X,” the model can’t separate your style from the concept — you want the style to become the silent default, present in every image, named in none. Getting this right is the difference between a LoRA that applies your look on command and one that ignores your prompt.
Settings, VRAM, and where to go next
The video covers the settings that actually matter — learning rate, network dimension (rank), and epoch count — and how to train within a modest VRAM budget so you don’t need a data-center GPU. Once your first LoRA works, the natural progressions are outward: stacking multiple LoRAs at different weights, feeding the output into a ComfyUI workflow (covered in this site’s ComfyUI tutorial), or training a subject and a style separately so they compose. Start small, train often, and read every failure as a dataset note.