{"id":47754494,"url":"https://github.com/bntrtm/tagman","last_synced_at":"2026-04-03T04:03:25.615Z","repository":{"id":299000282,"uuid":"1001237064","full_name":"bntrtm/tagman","owner":"bntrtm","description":"Application providing an efficient and user-friendly GUI for tagging PNG datasets with TXT files.","archived":false,"fork":false,"pushed_at":"2026-03-26T21:56:35.000Z","size":80,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-27T08:08:47.144Z","etag":null,"topics":["machine-learning","ml-tools","python"],"latest_commit_sha":null,"homepage":"https://github.com/bntrtm/tagman/wiki/Tag-Management","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bntrtm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-13T03:47:30.000Z","updated_at":"2026-03-26T21:56:38.000Z","dependencies_parsed_at":"2025-06-14T04:26:24.277Z","dependency_job_id":"ad5a8ddf-b6e6-44a5-a61d-1578c2c16741","html_url":"https://github.com/bntrtm/tagman","commit_stats":null,"previous_names":["bntrtm/lora-text-editor","bntrtm/tagman"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bntrtm/tagman","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bntrtm%2Ftagman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bntrtm%2Ftagman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bntrtm%2Ftagman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bntrtm%2Ftagman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bntrtm","download_url":"https://codeload.github.com/bntrtm/tagman/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bntrtm%2Ftagman/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31333229,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T03:20:36.090Z","status":"ssl_error","status_checked_at":"2026-04-03T03:20:35.133Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["machine-learning","ml-tools","python"],"created_at":"2026-04-03T04:03:23.884Z","updated_at":"2026-04-03T04:03:25.600Z","avatar_url":"https://github.com/bntrtm.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tagman\n\n## A Tag Manager for Captioning Image Datasets\n\nTagman (_tag manager_) is a `tkinter`-based GUI application, whose purpose is to provide users with an efficient and user-friendly tool for captioning PNG image datasets with TXT files generated from tags.\n\n![example](https://github.com/user-attachments/assets/59686119-e470-4960-8dc0-50ef38b9ebce)\n\n### About\n\nBuilding a detailed dataset is integral to getting good results when you building any algorithm leveraging image captions, or training some form of AI model on image data. However, the process is rather tedious. Auto-captioning programs building out an initial batch of `TXT` files to caption `PNG` images can apply the same irrelevant tag to a multitude of images within the dataset, or otherwise miss some obvious ones, compromising data integrity.\n\nAmending this issue becomes an interminable task while using a traditional text editor, as one must individually scrutinize every `TXT` file for errors or missing details in their image captions. This problem becomes more evident as one's dataset grows (which, for best results, is ideal).\n\nTagman aims to equip users with the ability to easily visualize existing tags in image captions built within `\\*.txt`` files, or even start building from the ground up!\n\n### Features\n\n- Loads an image dataset through a directory recursively\n  - Prompts users on missing `*.txt` captions for existing `*.png` images\n- Trigger Word protection\n  - The first tag picked up by loading a dataset is saved as the trigger word for all captioning and protected from deletion.\n- Image display shows users what image they are currently captioning\n- A robust tag entry mechanism\n  - Add a tag to a single caption\n  - Add a tag to all captions in the dataset\n  - Remove a tag from a single caption\n  - Remove a tag from all captions in the dataset\n  - Smart autocompletion feature for both the above processes\n    - Existing tags in the dataset are suggested for single captions without the tag\n    - Existing tags in a single caption are suggested during a removal process\n\n## Requirements\n\nTagman requires Python 3.13+, and the following dependencies:\n\n- Pillow (PIL) library.\n- tkinter\n\nWith `uv` installed (and the `pyproject.toml` file present), you can install these dependencies with:\n\n```bash\nuv sync\n```\n\n## Quick Start\n\nClone the project to your desired directory:\n\n```bash\ngit clone https://github.com/bntrtm/tagman.git\n```\n\nSync dependencies with `uv sync`, as discussed above.\n\nRun the program with `uv run main.py`.\n\nThe GUI will load with no meaningful contents. To begin work on a dataset, you need to build one by doing the following:\n\n- Create a directory with at least one or more images within it (or within subdirectories) in PNG format.\n- Ensure that there exists at least one TXT file with a name otherwise identical to some PNG file within the hierarchy, and that it is in the same directory as the png file.\n- Ensure that the first word of all TXT files (or of just the one existing TXT file) is equivalent to the \"trigger word\" you want to define your dataset.\n\nSelect the `Load` button in the top-left corner of the GUI window. It will prompt you for a directory; choose the directory pertaining to the dataset you built, whose image captions you wish to edit.\n\nThe program will load all PNG images and their existing TXT captions into memory. For each PNG image without a corresponding TXT caption, you will be prompted on whether or not you would like for those PNG images to be loaded into memory. Selecting \"Yes\" for these prompts will create the appropriate TXT files in the proper directory (or subdirectories) and load them into memory. The Trigger Word will be applied to these new TXT files.\n\n## Usage\n\nThis repository's [internal wiki](https://github.com/bntrtm/tagman/wiki/Tag-Management) covers how you can use the program for your purposes to perfect image captioning for your dataset!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbntrtm%2Ftagman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbntrtm%2Ftagman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbntrtm%2Ftagman/lists"}