$ show starik222/BooruDatasetTagManager
BooruDatasetTagManager is a Windows Forms desktop application (C# .NET) for editing tags in image datasets used to train Stable Diffusion hypernetworks, embeddings, and LoRAs. It loads a folder of images with associated .txt tag files, provides a rich UI for tag editing (add, delete, reorder, weight, undo/redo), batch operations, filtering, translation, and auto-tagging via a companion Python AI server (Flask/FastAPI). The Python server supports multiple vision-language models (BLIP, Florence2, JoyCaption, Qwen, etc.) for captioning and tagging, plus background removal and translation. The architecture is a monolithic WinForms client with a separate AI inference server, communicating over HTTP. The codebase is functional and feature-rich but shows signs of monolithic design (large forms, static global state) and some deprecated practices (BinaryFormatter). Several components, such as the universal diffusion metadata parser (Metadata.cs) and the WebP codec wrapper, are well-isolated and potentially reusable in other projects.
The LLM identified 5 files worth highlighting for reuse:
A comprehensive, self-contained parser for extracting generation parameters from images (PNG, JPEG, WebP) across multiple diffusion platforms (A1111, NovelAI, InvokeAI, ComfyUI, Fooocus, etc.). It reads embedded metadata chunks and sidecar text files, returning structured parameter objects. This component is highly reusable in any project that needs to read diffusion metadata from images, with no internal dependencies beyond standard .NET libraries.
A standalone WebP image encode/decode wrapper for .NET, supporting lossy, lossless, and near-lossless compression. It wraps native libwebp DLLs and provides simple methods for loading, saving, and converting WebP images. Could be extracted and used in any .NET application requiring WebP support without external dependencies.
A custom WinForms TextBox with dropdown autocomplete functionality. Supports multiple match modes (StartWith, Contains, Exact), displays translations, and integrates with a data source (IBindingListView). It is a well-encapsulated UI control that could be reused in other WinForms projects needing tag autocomplete or similar dropdown suggestions.
An observable collection of tags with built-in undo/redo support via EditableTagHistory. It implements IList, raises change events, and can synchronize with a string list. This component is self-contained and could be reused in any .NET application requiring an editable list with undo capabilities, not just tag editing.
A translation caching system that loads translations from text files, supports manual overrides, and provides a dictionary-like interface. It handles fallback to original text and can be used to localize tag names or UI strings. The pattern of file-based translation with override support is reusable in other applications needing simple i18n without external services.