TagScribeR is a local, GPU-accelerated studio for building AI training datasets and training LoRAs on them. Browse and filter thousands of images, caption them with current vision-language models or booru taggers, fix and clean them, then train, all in one app.
It runs natively on AMD Radeon (ROCm, Windows and Linux) and NVIDIA (CUDA), with a CPU fallback. Nothing leaves your machine unless you point it at an API yourself.

Tested on one machine. This version was built and tested on Windows 11 with an AMD Radeon RX 7900 XT (20 GB) on ROCm. The NVIDIA (CUDA), Linux and CPU paths are written to work and are covered by automated tests where that is possible, but the author has no NVIDIA hardware to run them on. If something is wrong on your setup, please open an issue.
This release is a rebuild of TagScribeR 2.1. The old app was a set of separate tabs around a caption box; this one is a dataset studio with training built in.
A new foundation
uv and current PyTorch, with AMD's native ROCm wheels on Windows and Linux, CUDA on NVIDIA and
a CPU fallback. The installer detects your GPU and picks the build.user_data\, which updates never touch. Old 2.1 settings, quick tags and API presets are imported.Captioning
Dataset tools
Training (new)
Everyday use
One folder is open in every tab, so you can tag, caption, edit and train without reopening anything.
tag:1girl -tag:blurry missing:caption res:<768. Save filters per folder.
Finds exact and near-duplicates, blurry and low-resolution images, and previews the aspect-ratio buckets for your training resolution.



Rotate, flip, resize, crop to a size or aspect ratio, and convert, with a live before/after preview. Edits are saved as copies by default and keep their captions, colour profiles and EXIF.

Gather finished images and captions into training folders, or export a training-ready copy (resized to buckets, cleaned, with kohya-style folder names).

A privacy audit (GPS, device serials, AI prompts and workflows), lossless cleanup that never re-encodes pixels, authorship templates, and embedded A1111 / ComfyUI / NovelAI / InvokeAI prompts turned into captions.

Train on the open dataset with the Fizgig trainer's engine, ported into TagScribeR. See Training a LoRA.

A Ctrl+K command palette, a searchable Help Center (F1 opens help for the current tab), tooltips on every control, and interface scaling up to 200%.


You need: Windows 10/11 or Linux, Python 3.12, and Git.
git clone https://github.com/ArchAngelAries/TagScribeR.git
cd TagScribeR
install.bat
The installer creates a venv\ folder, detects your GPU and installs the matching PyTorch build. Then launch with start.bat.
| Your GPU | What gets installed |
|---|---|
| AMD Radeon on Windows | AMD's native ROCm wheels: torch 2.12.0+rocm7.15, built for your exact chip |
| AMD Radeon on Linux | AMD's multi-arch ROCm 7.14 wheels |
| NVIDIA | PyTorch with CUDA 12.8 (RTX 20 to 50 series) |
| None | CPU build |
Supported: RX 7000 and RX 9000 series, Radeon PRO W7000, and Ryzen AI APUs (including Strix Halo). RX 6000 cards are detected but are less tested.
Update to a current AMD Adrenalin driver.
Run install.bat. It reads your GPU and picks its architecture (for example gfx1100 for the RX 7900 series, gfx1201 for the RX 9070).
If it can't tell which GPU you have, pass the architecture yourself:
install.bat --arch gfx1100
Other AMD options:
install.bat --no-bnb :: skip bitsandbytes (8-bit optimizers and 8/4-bit model loading)
install.bat --experimental :: use AMD's newest, unpinned ROCm nightlies
No separate ROCm or HIP SDK install is needed. The app sets the ROCm environment itself when it starts.
bitsandbytes is installed by default. On Windows with an AMD card it is a community ROCm build (0xDELUXA/bitsandbytes_win_rocm), the same pinned wheel the Fizgig trainer uses. It is built by neither AMD nor TagScribeR.
install.bat. It installs the CUDA 12.8 build of PyTorch.To force it (for example on a machine with both vendors):
install.bat --backend cuda
git clone https://github.com/ArchAngelAries/TagScribeR.git
cd TagScribeR
./install.sh # same options as install.bat
./start.sh
On Debian and Ubuntu, Qt also needs sudo apt-get install libxcb-cursor0.
install.bat --backend cpu
Captioning with a local model is slow on CPU. Use the API source in Auto Caption instead (LM Studio, Ollama or a cloud API). Training needs a GPU.
Run update.bat. It pulls the latest code and refreshes dependencies without touching your PyTorch build. Your settings live in user_data\, which git never touches.
Upgrading from TagScribeR 2.1? Run
install.batagain. Your old venv is renamed tovenv-old\(not deleted), and your settings, quick tags and API presets are imported on first launch. API keys move into Windows Credential Manager. Once you've checked that, delete the oldapi_presets.json, which held them in plain text.
Press Ctrl+K anywhere to find any action, filter or help topic by typing a few letters. Press F1 for help on the current tab.
Captions are stored the way trainers expect: image.png and image.txt side by side.
The Train tab trains the dataset folder you have open. It uses a port of Fizgig's training engine, so it has Fizgig's presets, adaptive learning rate and loss watch.
The tab opens in a simple view with only the essentials. Tick Show all settings to control every option.

What you get while it runs:


Training runs as separate processes, so the app stays responsive and a crash can't take it down. Each run lives in its own folder: <output folder>\<LoRA name>\ with checkpoints, sample\, loss_log\ and run.log.
| Family | Recipe |
|---|---|
| Krea 2 | Fizgig's presets and measured settings |
| Qwen Image 2.1 (including edit LoRAs from before/after pairs) | Fizgig's presets and measured settings |
| MiniMax H3 (still images only) | Fizgig's presets |
| FLUX.2 Klein Base 9B | Fizgig's presets, with Model Area block targeting |
| SDXL 1.0, Pony Diffusion V6 XL, Illustrious-XL, NoobAI-XL (eps and v-pred) | Community starting points |
| Anima | Community starting points |
What has actually been run. Krea 2 has been trained end to end on real weights on the author's RX 7900 XT: an fp8-scaled RAW checkpoint on the INT8 base, 60 images at 0.25 MP, with checkpoints, resume states and both preview engines. On that card its step speed matched Fizgig's (about 4.9 s per step in the first minutes of the same run in each trainer). Every other family is experimental: the code is ported and unit-tested on small random models, but nobody has trained it on real weights yet. Reports are very welcome.
Fizgig has no code for the SDXL family or Anima, so their presets are community starting points, not measured recipes. Model weights are not included and have their own licences.
On the author's 20 GB card, Krea 2 on the INT8 base held about 13 GB in use and 17.5 GB reserved at 0.25 MP, and 1024 x 1024 previews peaked at 19.5 GB. Training at 0.5 MP ran at the limit of the card. Watch the memory bar: if VRAM stays pinned at the top, training is spilling into system memory and each step gets much slower.
user_data\caption_backups\<date>\. (2) suffix.Image Edits\.user_data\logs\tagscriber.log. Settings → System & diagnostics shows the detected GPU and library versions (Copy report for bug reports).user_data\caption_backups\<date>\.update.bat, which installs it.nvidia-smi;
on AMD Windows a system performance counter; on AMD Linux amd-smi or rocm-smi.install.bat can't find Python 3.12: install it from python.org (or py install 3.12) and run the installer again.Developer notes: docs/ARCHITECTURE.md. Run the tests with venv\Scripts\python -m pytest.
Planned, roughly in this order. Nothing here is promised by a date.
Finishing the Fizgig port
Image editor
Datasets and training
Support considerations
training/families/. Requests are welcome.Tell us what you want, and what you don't: open an issue.
Issues and pull requests are welcome, from bug reports to whole features.
run.log.venv\Scripts\python -m pytest), and keep the notices in
THIRD_PARTY_NOTICES.md accurate if you bring in code from another project.Before sharing logs or screenshots, check them for folder names or anything else personal.
Licence: TagScribeR is free software under the GNU General Public License v3.0. Use it, change it and share it freely; if you redistribute it or a modified version, keep the source open under the same licence. The licence covers the program only: the LoRAs, captions and images you make with it are yours. Code adapted from other projects keeps its original notices in THIRD_PARTY_NOTICES.md. Model weights are not included and have their own licences.
Created by ArchAngelAries.
Acknowledgement. The rebuild in this release (the shared workspace, the captioning and dataset tools, the port of Fizgig's training engine, the tests and this documentation) was written with Anthropic's Claude Opus 5.5 working alongside the author. Earlier versions were assisted by Google's Gemini and Anthropic's Claude.
TagScribeR is a local, GPU-accelerated studio for building AI training datasets and training LoRAs on them. Browse and filter thousands of images, caption them with current vision-language models or booru taggers, fix and clean them, then train, all in one app.
It runs natively on AMD Radeon (ROCm, Windows and Linux) and NVIDIA (CUDA), with a CPU fallback. Nothing leaves your machine unless you point it at an API yourself.

Tested on one machine. This version was built and tested on Windows 11 with an AMD Radeon RX 7900 XT (20 GB) on ROCm. The NVIDIA (CUDA), Linux and CPU paths are written to work and are covered by automated tests where that is possible, but the author has no NVIDIA hardware to run them on. If something is wrong on your setup, please open an issue.
This release is a rebuild of TagScribeR 2.1. The old app was a set of separate tabs around a caption box; this one is a dataset studio with training built in.
A new foundation
uv and current PyTorch, with AMD's native ROCm wheels on Windows and Linux, CUDA on NVIDIA and
a CPU fallback. The installer detects your GPU and picks the build.user_data\, which updates never touch. Old 2.1 settings, quick tags and API presets are imported.Captioning
Dataset tools
Training (new)
Everyday use
One folder is open in every tab, so you can tag, caption, edit and train without reopening anything.
tag:1girl -tag:blurry missing:caption res:<768. Save filters per folder.
Finds exact and near-duplicates, blurry and low-resolution images, and previews the aspect-ratio buckets for your training resolution.



Rotate, flip, resize, crop to a size or aspect ratio, and convert, with a live before/after preview. Edits are saved as copies by default and keep their captions, colour profiles and EXIF.

Gather finished images and captions into training folders, or export a training-ready copy (resized to buckets, cleaned, with kohya-style folder names).

A privacy audit (GPS, device serials, AI prompts and workflows), lossless cleanup that never re-encodes pixels, authorship templates, and embedded A1111 / ComfyUI / NovelAI / InvokeAI prompts turned into captions.

Train on the open dataset with the Fizgig trainer's engine, ported into TagScribeR. See Training a LoRA.

A Ctrl+K command palette, a searchable Help Center (F1 opens help for the current tab), tooltips on every control, and interface scaling up to 200%.


You need: Windows 10/11 or Linux, Python 3.12, and Git.
git clone https://github.com/ArchAngelAries/TagScribeR.git
cd TagScribeR
install.bat
The installer creates a venv\ folder, detects your GPU and installs the matching PyTorch build. Then launch with start.bat.
| Your GPU | What gets installed |
|---|---|
| AMD Radeon on Windows | AMD's native ROCm wheels: torch 2.12.0+rocm7.15, built for your exact chip |
| AMD Radeon on Linux | AMD's multi-arch ROCm 7.14 wheels |
| NVIDIA | PyTorch with CUDA 12.8 (RTX 20 to 50 series) |
| None | CPU build |
Supported: RX 7000 and RX 9000 series, Radeon PRO W7000, and Ryzen AI APUs (including Strix Halo). RX 6000 cards are detected but are less tested.
Update to a current AMD Adrenalin driver.
Run install.bat. It reads your GPU and picks its architecture (for example gfx1100 for the RX 7900 series, gfx1201 for the RX 9070).
If it can't tell which GPU you have, pass the architecture yourself:
install.bat --arch gfx1100
Other AMD options:
install.bat --no-bnb :: skip bitsandbytes (8-bit optimizers and 8/4-bit model loading)
install.bat --experimental :: use AMD's newest, unpinned ROCm nightlies
No separate ROCm or HIP SDK install is needed. The app sets the ROCm environment itself when it starts.
bitsandbytes is installed by default. On Windows with an AMD card it is a community ROCm build (0xDELUXA/bitsandbytes_win_rocm), the same pinned wheel the Fizgig trainer uses. It is built by neither AMD nor TagScribeR.
install.bat. It installs the CUDA 12.8 build of PyTorch.To force it (for example on a machine with both vendors):
install.bat --backend cuda
git clone https://github.com/ArchAngelAries/TagScribeR.git
cd TagScribeR
./install.sh # same options as install.bat
./start.sh
On Debian and Ubuntu, Qt also needs sudo apt-get install libxcb-cursor0.
install.bat --backend cpu
Captioning with a local model is slow on CPU. Use the API source in Auto Caption instead (LM Studio, Ollama or a cloud API). Training needs a GPU.
Run update.bat. It pulls the latest code and refreshes dependencies without touching your PyTorch build. Your settings live in user_data\, which git never touches.
Upgrading from TagScribeR 2.1? Run
install.batagain. Your old venv is renamed tovenv-old\(not deleted), and your settings, quick tags and API presets are imported on first launch. API keys move into Windows Credential Manager. Once you've checked that, delete the oldapi_presets.json, which held them in plain text.
Press Ctrl+K anywhere to find any action, filter or help topic by typing a few letters. Press F1 for help on the current tab.
Captions are stored the way trainers expect: image.png and image.txt side by side.
The Train tab trains the dataset folder you have open. It uses a port of Fizgig's training engine, so it has Fizgig's presets, adaptive learning rate and loss watch.
The tab opens in a simple view with only the essentials. Tick Show all settings to control every option.

What you get while it runs:


Training runs as separate processes, so the app stays responsive and a crash can't take it down. Each run lives in its own folder: <output folder>\<LoRA name>\ with checkpoints, sample\, loss_log\ and run.log.
| Family | Recipe |
|---|---|
| Krea 2 | Fizgig's presets and measured settings |
| Qwen Image 2.1 (including edit LoRAs from before/after pairs) | Fizgig's presets and measured settings |
| MiniMax H3 (still images only) | Fizgig's presets |
| FLUX.2 Klein Base 9B | Fizgig's presets, with Model Area block targeting |
| SDXL 1.0, Pony Diffusion V6 XL, Illustrious-XL, NoobAI-XL (eps and v-pred) | Community starting points |
| Anima | Community starting points |
What has actually been run. Krea 2 has been trained end to end on real weights on the author's RX 7900 XT: an fp8-scaled RAW checkpoint on the INT8 base, 60 images at 0.25 MP, with checkpoints, resume states and both preview engines. On that card its step speed matched Fizgig's (about 4.9 s per step in the first minutes of the same run in each trainer). Every other family is experimental: the code is ported and unit-tested on small random models, but nobody has trained it on real weights yet. Reports are very welcome.
Fizgig has no code for the SDXL family or Anima, so their presets are community starting points, not measured recipes. Model weights are not included and have their own licences.
On the author's 20 GB card, Krea 2 on the INT8 base held about 13 GB in use and 17.5 GB reserved at 0.25 MP, and 1024 x 1024 previews peaked at 19.5 GB. Training at 0.5 MP ran at the limit of the card. Watch the memory bar: if VRAM stays pinned at the top, training is spilling into system memory and each step gets much slower.
user_data\caption_backups\<date>\. (2) suffix.Image Edits\.user_data\logs\tagscriber.log. Settings → System & diagnostics shows the detected GPU and library versions (Copy report for bug reports).user_data\caption_backups\<date>\.update.bat, which installs it.nvidia-smi;
on AMD Windows a system performance counter; on AMD Linux amd-smi or rocm-smi.install.bat can't find Python 3.12: install it from python.org (or py install 3.12) and run the installer again.Developer notes: docs/ARCHITECTURE.md. Run the tests with venv\Scripts\python -m pytest.
Planned, roughly in this order. Nothing here is promised by a date.
Finishing the Fizgig port
Image editor
Datasets and training
Support considerations
training/families/. Requests are welcome.Tell us what you want, and what you don't: open an issue.
Issues and pull requests are welcome, from bug reports to whole features.
run.log.venv\Scripts\python -m pytest), and keep the notices in
THIRD_PARTY_NOTICES.md accurate if you bring in code from another project.Before sharing logs or screenshots, check them for folder names or anything else personal.
Licence: TagScribeR is free software under the GNU General Public License v3.0. Use it, change it and share it freely; if you redistribute it or a modified version, keep the source open under the same licence. The licence covers the program only: the LoRAs, captions and images you make with it are yours. Code adapted from other projects keeps its original notices in THIRD_PARTY_NOTICES.md. Model weights are not included and have their own licences.
Created by ArchAngelAries.
Acknowledgement. The rebuild in this release (the shared workspace, the captioning and dataset tools, the port of Fizgig's training engine, the tests and this documentation) was written with Anthropic's Claude Opus 5.5 working alongside the author. Earlier versions were assisted by Google's Gemini and Anthropic's Claude.