{"adoption": {"forks": 82, "observed_at": "2026-08-28T04:04:27.390379+00:00", "stars": 1346}, "canonical_url": "https://ross.abutalabs.com/products/taggui", "card": {"archived": false, "artifact_type": "application", "description": "Tag manager and captioner for image datasets", "domain": ["image-processing", "machine-learning", "artificial-intelligence", "desktop-applications"], "enriched": true, "function": ["image-processing", "machine-learning", "gui", "nlp"], "health_score": 63, "homepage": null, "language": "Python", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["jhc13/taggui"], "name": "jhc13/taggui", "platform": ["windows", "python", "cross-platform"], "pushed_at": "2025-10-11T21:54:09+00:00", "repo": "jhc13/taggui", "stars": 1346, "tags": ["image-captioning", "image-tagging", "stable-diffusion", "dataset-preparation", "pyside6", "llava", "cogvlm", "florence-2", "tag-editor", "linux", "desktop"], "topics": ["image-captioning", "image-tagging", "pyside6", "stable-diffusion", "tag-manager", "llava", "cogvlm", "florence-2"], "urls": [], "use_cases": ["tag images for stable diffusion training datasets", "auto-generate captions for image datasets", "batch rename and delete tags across images", "edit image caption text files quickly with keyboard shortcuts", "prepare LoRA training datasets with tags", "count stable diffusion tokens while tagging"], "what_it_is": "TagGUI is a cross-platform desktop application for quickly adding and editing image tags and captions, aimed at creators of image datasets for generative AI models. It offers keyboard-friendly tagging, batch tag operations, and automatic caption generation using models like LLaVA, CogVLM, and Florence-2.", "when_to_avoid": ["you need a macOS-native release (only manual installation is supported)", "you want cloud-based or API captioning services", "you need video or audio annotation", "you require collaborative multi-user tagging"], "when_to_choose": ["you are building image datasets for generative AI models like Stable Diffusion", "you need fast, keyboard-driven tagging with autocomplete", "you want local automatic captioning with vision-language models", "you need batch tag operations and image filtering"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/taggui", "repo": "jhc13/taggui", "role": "main", "score": 53}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.390379+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:42:42.078576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8f09f4b23f611aa4e1d9f8673bc76bb65e51e925e0b4439d257146c9625e5ac", "fetched_at": "2026-08-28T04:04:27.390379+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jhc13/taggui"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.390379+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:42:42.078576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8f09f4b23f611aa4e1d9f8673bc76bb65e51e925e0b4439d257146c9625e5ac", "fetched_at": "2026-08-28T04:04:27.390379+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jhc13/taggui"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:42:42.078576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8f09f4b23f611aa4e1d9f8673bc76bb65e51e925e0b4439d257146c9625e5ac", "fetched_at": "2026-08-28T04:04:27.390379+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jhc13/taggui"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.390379+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.390379+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.390379+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:42:42.078576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8f09f4b23f611aa4e1d9f8673bc76bb65e51e925e0b4439d257146c9625e5ac", "fetched_at": "2026-08-28T04:04:27.390379+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jhc13/taggui"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.390379+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.390379+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:42:42.078576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8f09f4b23f611aa4e1d9f8673bc76bb65e51e925e0b4439d257146c9625e5ac", "fetched_at": "2026-08-28T04:04:27.390379+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jhc13/taggui"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.390379+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.390379+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.390379+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:42:42.078576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8f09f4b23f611aa4e1d9f8673bc76bb65e51e925e0b4439d257146c9625e5ac", "fetched_at": "2026-08-28T04:04:27.390379+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jhc13/taggui"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.390379+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.390379+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:42:42.078576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8f09f4b23f611aa4e1d9f8673bc76bb65e51e925e0b4439d257146c9625e5ac", "fetched_at": "2026-08-28T04:04:27.390379+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jhc13/taggui"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:42:42.078576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8f09f4b23f611aa4e1d9f8673bc76bb65e51e925e0b4439d257146c9625e5ac", "fetched_at": "2026-08-28T04:04:27.390379+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jhc13/taggui"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:42:42.078576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8f09f4b23f611aa4e1d9f8673bc76bb65e51e925e0b4439d257146c9625e5ac", "fetched_at": "2026-08-28T04:04:27.390379+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jhc13/taggui"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:42:42.078576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8f09f4b23f611aa4e1d9f8673bc76bb65e51e925e0b4439d257146c9625e5ac", "fetched_at": "2026-08-28T04:04:27.390379+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jhc13/taggui"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 46, "longevity": 91, "rhythm": 39}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1274, "days_push": 326, "days_rel": 326, "gap_med": 79.0, "n_releases_24m": 5}, "score": 53, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}