A local studio for training LoRA / LoKr adapters for Anima and Krea 2.
From raw images to test renders in a single browser window, including from your phone.
Features Β· Differences from upstream Β· Quick start Β· From your phone Β· Documentation
|
π§ The whole cycle in one place |
π Every setting explains itself |
|
π± Works from your phone at a permanent link |
πͺΆ Trains on 6 GB |
- Import images and zip archives by drag & drop or from the server's disk, scrape Booru, see format and size stats.
- Curation: a two-pane "dataset β train" view,
N_nameconcept folders with repeats, a separate validation set. - Preprocess (optional): perceptual-hash duplicate review, upscaling (ESRGAN / Real-ESRGAN), cropping with aspect-ratio clustering, inpainting. Every action can be undone.
- Tag editor: bulk add / remove / replace, dedupe, tag distribution, dictionary autocomplete, restore points.
- Regularization set: generated by the base model (DreamBooth-style prior) or pulled from Booru based on the train set's tag distribution.
- Projects and versions: one dataset, many versions, each with its own config, reg set and outputs.
- Two-way presets: save a version's config as a global preset, or pull a preset into a version.
- Config form: Simple / Advanced modes, section index, YAML preview, autosave.
- An honest estimate before you start: step count, expected time (measured from your own last run) and a VRAM check using the same arithmetic as the OOM guard.
- GPU queue: pause with progress saved, resume, hold the queue, schedule a start.
- Monitoring: loss / LR curves, per-step samples, logs, output files with a zip export.
| Adapters | LoRA and LyCORIS (LoKr / LoHa, DoRA, rs-LoRA, dropout), per-layer ranks via lora_rank_rules |
| Optimizers | AdamW, Lion, Automagic, Prodigy, Prodigy + ScheduleFree (how to choose) |
| Loss | MSE / Huber with min_snr, cosmap, detail_inv_t weighting and more |
| Timesteps | uniform, logit_normal, mode, mixed_uniform, InfoNoise, Style-Friendly SNR (details) |
| Against overfitting | EMA of the adapter weights and DOP, differential output preservation (details) |
| Memory | block swap (Anima from 6 GB, Krea 2 on 16 GB), fp8, caches, NaViT packing (details) |
| Attention | xformers / flash-attn / PyTorch SDPA |
- Single images and XY matrices over parameters, served by a persistent daemon.
- Prompts straight from dataset captions, several LoRAs with individual weights.
- Checkpoint soup: average several epochs or runs into one file and test it right away. Incompatible checkpoints are refused up front with the reason.
- The first launch creates a
venv, picks a PyTorch build for your driver (cu118βcu130) and installs dependencies. - All caches (pip, HuggingFace, torch, npm) stay inside the project folder.
- One-click model downloads (HuggingFace, your own mirror or ModelScope), custom VAEs and text encoders, local base models.
- Local and Colab modes, English and Russian UI, command palette on
Ctrl + K.
Outputs are saved as lora_unet_* and load into ComfyUI without conversion.
Every page is laid out for a phone: columns stack, the monitor takes the full width, crop handles and thumbnail checkboxes work with a finger.
|
Settings β Remote access
Nothing is opened on your router. The link carries a persistent access key, and the studio does not answer without it. If the link leaks, New access key revokes every old one. |
Note
AnimaTrainHub started as a fork of WalkingMeatAxolotl/AnimaLoraStudio. The training core and backend are synced with upstream v0.20.2. Everything a person actually touches is reworked.
|
π¨ Interface |
π Explanations |
β± Honest estimate |
|
π± Phone + remote access |
π§ͺ Training toolbox |
βοΈ Local / Colab |
Backported from upstream v0.21βv0.25: training-side block swap (Krea 2 on 16 GB, Anima on 6 GB), fixes for memory leaks and spurious OOMs; NaViT packing now works together with block swap.
Not backported: generation-side block swap, the v0.22 evaluation page rework, GPU selection on multi-GPU machines.
|
git clone https://github.com/DualChimerra/AnimaTrainHub
cd AnimaTrainHubWindows: |
Open Settings β Models and press download for your model family. Files go to Then create a project and follow the sidebar. |
Tip
The first launch takes a while: it creates the environment, downloads PyTorch for your GPU and builds the UI. Then http://127.0.0.1:8765 opens by itself.
flowchart LR
A[π₯ Dataset] --> B[1 Β· Curation]
B --> C[2 Β· Preprocess]
C --> D[3 Β· Tags]
D --> E[4 Β· Reg set]
E --> F[5 Β· Train]
F --> G[π Queue / Monitor]
G --> H[π¨ Generate / Soup]
style C stroke-dasharray: 4 3
style E stroke-dasharray: 4 3
Dashed steps are optional.
Step by step
| Step | What you do |
|---|---|
| Projects β New project | The first version is created automatically |
| Dataset | Upload images or a zip with captions, or scrape Booru |
| Curation | Move what you want into train, group it into concepts, set aside a validation set |
| Preprocess | Remove duplicates, upscale small images, crop β or skip |
| Tags | Clean up captions with bulk operations |
| Reg set | Generate one with the base model, collect one from Booru β or skip |
| Train | Pick a preset, adjust parameters, enter the trigger word for DOP, press Start training |
| Queue / Monitor | Watch loss, samples and logs; pause and resume |
| Generate | Test epochs with single renders or an XY matrix, blend the best into a soup |
Commands and flags
python -m studio # build the UI if needed and start the server
python -m studio dev # dev mode: Vite :5173 + uvicorn :8765 --reload
python -m studio build # build the UI only
python -m studio test # pytest + vitest
studio.bat --torch=cu128 # force a specific PyTorch build
studio.bat --reinstall # recreate venv (studio_data is kept)
AnimaLoraStudio.exe --check # diagnostics: Python, venv, GPU, cache paths
python tools/download_models.py # every model from HuggingFace
python tools/download_models.py --modelscope # via ModelScope
python tools/download_models.py --endpoint URL # via your own mirror
6 GB works for Anima with block swap. Block swap pins up to 3.6 GB of RAM for Anima and ~11 GB for Krea 2 fp8. |
Both train LoRA, LoKr and LoHa; outputs load into ComfyUI as they are. |
Warning
AMD GPUs and Apple Silicon are not supported.
|
π User guide |
π§ͺ Algorithms |
|
π Architecture |
π€ Project |
Repository layout
AnimaTrainHub/
βββ runtime/ # training core, generation, inference daemon (usable from the CLI)
βββ studio/ # web studio: FastAPI (api / services / domain / infrastructure / workers)
β βββ web/ # UI: React + Vite + Tailwind
βββ modeling/ # model implementations
βββ utils/ # shared training utilities
βββ tools/ # CLI: model downloads, torch selection, flash-attn install, launcher build
βββ models/ # weights and tokenizers (large files are not in git)
βββ studio_data/ # projects, database, presets, tasks (created on first run)
βββ docs/ # documentation
| Part | Source |
|---|---|
| Original project | WalkingMeatAxolotl/AnimaLoraStudio |
| Training scripts | Moeblack/AnimaLoraToolkit |
| Model and VAE | circlestone-labs/Anima |
| Adapters | LyCORIS |
| Everything else | THIRD_PARTY_NOTICES.md |
Code: GPL-3.0 (LICENSE). Some third-party components (NVIDIA Cosmos, Wan2.1) are Apache-2.0 (LICENSE-APACHE).
Important
Model weights (Anima, Qwen, VAE) have their own licenses, including non-commercial restrictions. Check the model cards before using a trained LoRA commercially.
AnimaTrainHub Β· made for people who train LoRAs, not for people who read training scripts
Screenshots use demo data.





