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 trainer
The controls are captured from the installed application, not reconstructed for this guide.
Train an SDXL LoRA in five steps
- Collect the images. Supported cleaner inputs are PNG, JPG/JPEG, WebP, BMP and TIFF. The trainer itself currently loads PNG, JPG/JPEG and WebP.
- Add captions. Give each image a same-name
.txtfile. The cleaner creates missing caption files, but an empty caption is not a useful description; review and write them before training. - 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.
- 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. - 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.
What the current trainer does—and does not do
| Area | Current implementation |
|---|---|
| Base models | The 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 modules | UNet attention projections to_q, to_k, to_v and to_out.0 through PEFT LoRA. |
| Frozen modules | VAE and both SDXL text encoders. |
| Output | A local safetensors state dictionary containing the LoRA weights. |
| Not claimed | No Flux, SD3, video-LoRA or text-encoder training claim is made for this worker. |
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.
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.
Continue from here
- Choose the dev.6 Linux beta and choose Full setup.
- Saient setup help and the local SDXL generation guide.
- Saient release repository on GitHub.
- Hugging Face PEFT LoRA documentation for the adapter method used by the worker.
- Understand local checkpoint merging; a checkpoint merge is not the same operation as training a LoRA.
Keep the training images and adapter local.
Saient is free and has no Saient key gate. Base-model and dataset rights remain your responsibility.