Spaces:
Running on Zero
Running on Zero
File size: 5,098 Bytes
6a2b290 cefbdcf 63fbff1 6a2b290 1e476c0 6a2b290 1e476c0 44ce793 6a2b290 8f19a56 caa5038 44ce793 5038d62 60c7a9e 6a2b290 5038d62 1e476c0 5038d62 1e476c0 5038d62 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | ---
title: LoRA Ease
emoji: 🧞
colorFrom: blue
colorTo: purple
sdk: gradio
sdk_version: 5.29.0
app_file: app.py
startup_duration_timeout: 1h
pinned: true
license: mit
fullWidth: true
hf_oauth: true
hf_oauth_scopes:
- read-repos
- write-repos
- manage-repos
models:
- microsoft/Mage-VL
short_description: Train LoRAs with Ease
---
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
# LoRA Ease: SDXL training on Hugging Face
This fork trains LoRA adapters for `stabilityai/stable-diffusion-xl-base-1.0`.
The maintained Hugging Face Diffusers v0.39.0 advanced SDXL trainer is downloaded
from a pinned commit the first time training starts. Captions are generated in this
Space by the embedded Mage-VL model; the face-prior dataset is loaded only when needed.
## Deploy as a Hugging Face Space
Create or duplicate a Gradio Space, enable **ZeroGPU** hardware, and push these
files to it. `microsoft/Mage-VL` is loaded directly into this Space and the
captioning function is decorated with `spaces.GPU`; images never need to be sent
to a second Space or account. The first startup downloads the model and can take
several minutes.
When a user starts training, the app directly creates a private dataset repository
and a temporary private L40S Docker Space under that user's account. This keeps
AutoTrain's conflicting dependency stack out of the captioning/UI container while
preserving the same trainer runtime and finished-model upload behavior.
The user must:
1. Have a Hugging Face account with a payment method configured.
2. Accept the SDXL base-model license on their Hugging Face account.
3. Provide a Hugging Face **write** token when prompted. It is passed to the
temporary trainer and is not written into this repository.
Training currently targets the `l40sx1` hardware flavor (48 GB VRAM). The UI's
cost display is an estimate; Hugging Face billing and hardware pricing are the
source of truth.
## Optional local development
Local mode remains useful for testing the UI or training on your own NVIDIA GPU.
Use Python 3.10 or 3.11, create a virtual environment, install a CUDA-enabled
PyTorch build appropriate for your driver, and then install the project:
```powershell
py -3.11 -m venv .venv
.venv\Scripts\Activate.ps1
# Install CUDA PyTorch first: https://pytorch.org/get-started/locally/
pip install -r requirements_local.txt
python app.py
```
SDXL training is memory-intensive. The UI defaults to batch size 1, gradient
accumulation 4, gradient checkpointing, latent caching, fp16, and 1024px. For local
out-of-memory errors, keep batch size 1 and try 768px; 1024px is preferred when the
GPU permits.
The base model is gated. Before the first run, accept its license on Hugging Face
and authenticate locally with `hf auth login`.
## Training a Daggerfall-like face style
If the images show many different people sharing the same visual language, this is
a **style LoRA**, not a face/identity LoRA:
1. Prepare roughly 20-60 varied, clean portraits. Remove menus, text, cursors,
duplicates, and unrelated UI. Do not mix modern fan art with original game art
unless you deliberately want both aesthetics.
2. Crop loosely around each head and shoulders, keeping several face angles,
ancestries, genders, expressions, backgrounds, and lighting conditions. Do not
enlarge tiny source images with heavy smoothing; crisp nearest-neighbor or mild
restoration usually preserves the pixel-art language better.
3. In the UI choose **style** and keep the concept sentence
`in the style of TOK`. `TOK` is the trainer's required token abstraction; do
not replace it with `daggerfall` or another common word.
4. Caption what should remain controllable, for example:
`portrait of an elderly elf man, stern expression, dark background, in the style of TOK`.
Keep the trigger in every caption, but vary subject traits accurately.
5. Start with rank 32 and 800-1500 steps. Save/test intermediate versions if you
raise the step count; overtraining shows up as every output copying the training
backgrounds, poses, or facial proportions.
After uploading the images, click **Caption all images with Mage-VL**. The portrait
instruction asks for controllable character traits while deliberately excluding
the shared art style; the concept sentence is appended automatically. Review the
generated text boxes and correct names, species, clothing, or expressions that the
captioner guessed incorrectly. **Export captions** downloads the reviewed entries
as ImageFolder-compatible `metadata.jsonl` for backup or offline editing.
Use **character** only if all images are the same fictional character. Use **face**
only for one consistent real or fictional identity; that preset enables prior
preservation and is not appropriate for learning a whole game's portrait style.
The output folder contains `pytorch_lora_weights.safetensors`, which can be loaded
as an SDXL LoRA by Diffusers, ComfyUI, or compatible Stable Diffusion frontends.
Only train and distribute assets you have the rights or permission to use.
|