Local SDXL fine-tuning

How to train an SDXL LoRA locally

Saient trains a LoRA on the SDXL UNet using your local image-and-caption dataset. Choose rank, alpha, learning rate, epochs, batch size and resolution, then save the adapter as a local .safetensors file.

Short answer: create one folder containing images and same-name text captions, select an SDXL base in Saient's LoRA screen, review the hyperparameters and start training. The worker freezes the VAE and text encoders and trains LoRA adapters on the UNet attention projections.

Updated · Dev.6 Linux beta; see the beta manifest requirements.

Real interface

Historical LoRA training screen

This screenshot from v1.0.4 shows the base-model selector, dataset folder, cleaner, output path, rank, alpha, learning rate, epochs, batch size and resolution.

Saient LoRA screen with SDXL base model, dataset cleaner, output path and training hyperparameters

Saient LoRA trainer

The controls are captured from the installed application, not reconstructed for this guide.

Dataset and training

Train an SDXL LoRA in five steps

  1. Collect the images. Supported cleaner inputs are PNG, JPG/JPEG, WebP, BMP and TIFF. The trainer itself currently loads PNG, JPG/JPEG and WebP.
  2. Add captions. Give each image a same-name .txt file. The cleaner creates missing caption files, but an empty caption is not a useful description; review and write them before training.
  3. Back up, then clean deliberately. The awaited confirmation names the folder and permanent deletions: junk, unsupported, corrupt and sub-64px files, plus orphan captions. Only immediate files are processed; subfolders and symlinks are skipped. Filesystem root and home folders are refused. Deleted files have no Saient undo.
  4. Select SDXL and settings. The default UI is rank 16, alpha 16, learning rate 1e-4, 10 epochs, batch size 1 and 1024px. Defaults are starting values, not guaranteed best settings.
  5. Start and monitor. Saient streams step, epoch and loss progress. Successful completion writes a safetensors adapter. Stop cancels the owned job and waits for cleanup; do not treat a cancelled job or partial file as a completed adapter.
Exact support

What the current trainer does—and does not do

AreaCurrent implementation
Base modelsThe corrected picker lists installed SDXL image models, not GGUF chat models. Managed Diffusers components use safetensors; the worker also has a compatible single-file SDXL loading path. Prefer safetensors and verify the source model's architecture.
Trainable modulesUNet attention projections to_q, to_k, to_v and to_out.0 through PEFT LoRA.
Frozen modulesVAE and both SDXL text encoders.
OutputA local safetensors state dictionary containing the LoRA weights.
Not claimedNo Flux, SD3, video-LoRA or text-encoder training claim is made for this worker.
Hardware

Training hardware requirements

  • Hardware: check the beta manifest requirements. Training needs substantially more memory than simply loading a model. The worker keeps the VAE in FP32 and uses mixed precision on its CUDA path.
  • CPU: an implemented fallback, but this page does not claim it provides practical SDXL training speed.
  • VRAM: depends on resolution, batch size and model. Lowering batch size/resolution reduces memory pressure, but changes the training regime.
  • Storage: base model, training images, managed Python environment and output adapter all remain local.
Unknown: a cross-GPU minimum-VRAM and training-time benchmark has not been published for this trainer.
Proof boundary

What has been checked

The dev.6 source includes the corrected SDXL picker, visible subprocess failure reporting, cancellation ownership and an awaited dataset-cleaning confirmation. Earlier development acceptance recorded a small SDXL adapter training/reload check and native cleaner checks for Cancel, accepted deletion and root-folder refusal.

Those earlier runs are historical evidence, not a fresh dev.6 training benchmark. The dev.6 native smoke did not retrain a LoRA. Full-size dataset quality, generalisation and cross-GPU training time remain unevaluated here.

Test a completed adapter by reloading it with the matching SDXL base. Record the dataset, settings and output when comparing results; completion of a training process alone does not establish useful image quality.

Keep the training images and adapter local.

Saient is free and has no Saient key gate. Base-model and dataset rights remain your responsibility.