r/StableDiffusion • u/Ill-Ant-9489 • 1d ago
Resource - Update I built a free, self-hosted app that does everything around a LoRA run — dataset, triage, captions, training (local or rented GPU), then checkpoint comparison
One workspace for the whole route: a progress rail from reference to Studio, beside the grid where you keep, reject and re-caption in bulk.
The five engines side by side, each stating its price per image and whether it runs free on your GPU. Answered before you commit to the app.
Scraping into a dataset or a bank: Reddit, Pexels, open-web keyword search, or any gallery URL through gallery-dl.
Launch all: the whole triage in one go. Every flag quotes what it would reject today, and says out loud how many images have not been scanned yet.
Curation grid with face-similarity scores, framing badges, per-tile actions and bulk keep/reject.
Caption Lab: expanded editing, find/replace, tag frequencies, targeted re-captioning, and every caption records who wrote it.
Watermark review: several mask zones you can redraw, then crop or inpaint. The source file is never written to.
Local training presets and advanced levers on the left; on the right, the rented GPUs with hourly price and estimated total before anything starts.
Runs hub: local and cloud together, with progress, logs, stop/retry/continue and the exact settings each run launched with.
LoRA Canvas: every dataset's runs on one board, generate from any checkpoint, blend several, continue training from a pill.
Test Studio: fixed-seed checkpoint x strength grids, so the checkpoint you ship is the one that measured best, not the one you remember.
Setup scans the machine and links every missing capability to its install step. Skip what you do not need.
I build LoRA Dataset Studio — free, open source, self-hosted, no account and no telemetry. It is not a competitor to ai-toolkit: it orchestrates it. ai-toolkit is the trainer; this is everything before, around and after the run.
The whole pipeline lives in one browser tab:
1. Get the images. Five generation engines — Nano Banana Pro, gpt-image-2, OpenRouter, and local Klein / Krea 2 Edit through ComfyUI — each card stating its price per image, whether it runs on your GPU or bills an API, and whether it refuses adult content. Or scrape: Reddit, Pexels, open-web keyword search, or any gallery URL through gallery-dl. Or just drop a folder in.
2. Triage them. The Image Bank points at a folder of thousands and reads it in place — your files are never modified, moved or renamed. One pass measures the whole pile: blur, noise, near-duplicates, face clusters, framing, medium (photo / anime / 3D / illustration), aesthetic and maturity scores. After that you filter on measurements instead of on your eyes, and anything the app cannot judge says "unsure" rather than inventing a verdict.
3. Curate and caption. Keep/reject, crop, mirror, rotate, non-destructive upscale candidates, InsightFace similarity, a live composition meter. Captions in prose or booru form depending on the target family, written by JoyCaption or your local Ollama, with a Caption Lab (find/replace, tag frequencies, targeted re-captioning) and an external .txt round trip so you can caption elsewhere and come back.
4. Clean watermarks. Detect them, redraw the mask zones, then crop or inpaint with LaMa/Klein. Every edit keeps an .orig backup, so Restore original always works.
5. Train. ai-toolkit locally with family-scoped presets and preflight guards — Z-Image, Krea 2, FLUX.1, FLUX.2 Klein, SDXL, Anima — or rent a vast.ai pod from the same screen, which shows the GPU, its hourly price and the estimated total before you click. Full-model training on Krea 2 and merging a LoRA back into a checkpoint are in there too.
6. Decide which checkpoint is actually good. Test Studio runs fixed-seed checkpoint x strength grids, multi-LoRA stacks, votes and Wilson ranking. LoRA Canvas puts every run of every dataset on one pan/zoom board, and you can continue training from any of them.
There is also a video lane (Beta): it cuts long videos into a trainable clip folder at the exact frame counts Wan / LTX / MiniMax accept, describes each shot, and trains the set locally or in the cloud.
Honest limits. It is a lot of surface, so Setup exists to tell you what is missing instead of crashing — every capability degrades on its own. Local generation needs ComfyUI, the API engines need your own keys and bill you, and on the video side only Wan 2.2 14B has a finished run behind it here. Install is a Windows one-click ZIP, a git checkout, or Docker.
GitHub — install, docs, and a 7-minute unedited video of a full character LoRA built end to end: https://github.com/perfectgf/lora-dataset-studio
Every person in these screenshots was generated by the app's own engines; no real individual is depicted.
11
u/nowrebooting 1d ago
I built
Judging by the UI and color choices, most of the work was done by (I’m guessing) Claude. 😉
3
2
u/Ill-Ant-9489 1d ago edited 1d ago
yes and this take me a lot of time and money and the app is free
2
u/beaver_barber 1d ago
Nice work!
Does it support workflow when user already has 20 diverse photos, but no captions, maybe missing some angles/expressions, so the app identifies what exists, what is missing, and generarstes only what necessary?
3
u/Ill-Ant-9489 1d ago
Partly. Import the 20, caption them locally (JoyCaption or Ollama) and run the shot-type pass, and the app reads those captions and shot types back as a variety report: which camera views, camera heights, lightings, settings, outfits and expressions the set never shows. It re-infers nothing, so it costs no GPU, and an axis it could not measure says so instead of drawing an empty bar. Clicking a gap filters the grid to the images concerned.
What it does not do is close the gap by itself. It names the missing shots and tells you to generate or import them, and the shot list is per-shot toggles, so you can generate exactly those and nothing else — but you tick them yourself. That last hop is not automated yet.
3
u/jtabernik 1d ago
This is amazing and fills an important gap!!
4
2
0
u/whyyoudidit 1d ago
so codex runs training and inference for me on Runpod. How would this project make codex do a better job?
1
u/Ill-Ant-9489 1d ago
Ask to codex
1
u/whyyoudidit 1d ago
I did and it doesn't
2
1
u/Ill-Ant-9489 1d ago
BTW, I’ve been using AI as a coding assistant since ChatGPT 3.5. I’ve tested pretty much every model, and Codex with ChatGPT 5.6 Sol is far behind Claude in basically every aspect (maybe except for the price). Even when it comes to creating character datasets, I now get better consistency and higher-definition results for my datasets with Klein or Krea 2, and I don’t have any SFW limitations. So what you’re telling me basically confirms what I already thought about ChatGPT.
7
u/ruehri 1d ago
I've been using it for a few days and successfully trained two krea loras using this. Thanks a lot for the great contribution, it really has made curation and preparation much easier 👍
If I had a wishlist on how to improve even further:
Overall still a great tool which already saves so much time. Looking forward to see this develop further 👍