Data Curation Tool is a local-first dataset curation, tagging, model-management, downloader, 3D generation, media metadata, and tool-orchestration application. The current documentation set is stored in docs/wiki/
39
stars
452
commits
Python
primary language
Jul 12, 2026
updated
assistant_show_live_chain_of_thought and assistant_show_live_reasoning_trace.visible_reasoning_trace / visible_chain_of_thought metadata so completed turns preserve the visible trace next to the visible plan/action notes.See docs/V5_8_48_GLOBAL_ASSISTANT_ACTION_AND_REASONING_OVERLAYS.md and docs/wiki/78-Global-Assistant-Action-and-Reasoning-Overlays.md.
See docs/V5_8_47_MEMORY_GUARD_ASSISTANT_MODEL_TOOLS_TAG_PRUNING.md and docs/wiki/77-Memory-Guard-Assistant-Model-Tools-Tag-Pruning.md.
See docs/V5_8_46_MULTI_UNLOAD_LIVE_TOKEN_CONTEXT.md and docs/wiki/76-Multi-Unload-Live-Token-Context.md.
See docs/V5_8_45_ATTENTION_HEATMAP_DROPDOWN_QUEUE_REFRESH.md and docs/wiki/75-Attention-Heatmap-Dropdown-Queue-Refresh.md.
/api/jobs polling so slow backend responses cannot make multi-model Quick Tag queues collapse to a single row.See docs/V5_8_44_QUICK_QUEUE_LIVE_ROWS_VIDEO_INTEGRITY_SCORES.md and docs/wiki/74-Quick-Queue-Live-Rows-Video-Integrity-Scores.md.
Improves Quick Tag queue selection and live model-state updates. The multi-model selector in the Tag Editor now explicitly supports Ctrl/Cmd-click toggling, Shift-click range selection, and Ctrl/Cmd+A select-all while preserving selected options during background status refreshes.
The Quick Tag queue panel now shows download, load, unload, and inference jobs for the selected quick-tag-capable models. Model option rows are patched in place as each individual job changes state, so the dropdown no longer waits for the entire queue to finish before showing that a specific model has downloaded, loaded, unloaded, failed, or started inference.
Improves Agentic Graph Editor node selection. Canvas nodes now support Ctrl/Cmd-click toggling and Shift-click range selection in addition to the existing Ctrl/Cmd drag selection box, copy, cut, paste, delete, and grouped dragging behavior.
See docs/V5_8_41_QUICK_TAG_MULTISELECT_LIVE_QUEUE_GRAPH_SELECTION.md and docs/wiki/71-Quick-Tag-Multiselect-Live-Queue-Graph-Selection.md.
Fixes the remaining live Models-tab refresh issue. Loaded model cards now patch their lifecycle circles, loaded/downloaded state, highlighted background, and active-model ordering in place as soon as the load/unload lifecycle reaches a terminal state; the update path preserves the Models tab scroll position and does not require a tab switch.
Improves GPU/RAM resource visibility. The resource panel now shows actual driver/torch-used VRAM, actual free VRAM, torch allocated/reserved memory, app reservation budget, loaded model count, and system RAM in the live poller so the user and assistant/orchestrator can make placement decisions from current memory state rather than stale catalog flags.
Hardens Gallery/media refresh behavior after model failures. Media loading now preserves the existing Gallery state and shows a non-blocking warning if a refresh fails, while background polling is isolated so failed model jobs cannot break Gallery rendering or general UI performance.
Adds a model runtime planning context endpoint for assistant/orchestrator workflows. /api/models/runtime-planning-context exposes live resources, compact model metadata, strict-GPU placement policy, and sharding guidance so LLM/VLM/GLM/supervisor models can propose GPU IDs, sharding strategy, tensor-parallel settings, and queueable model jobs using the same resource data shown to the user.
See docs/V5_8_39_LIVE_MODEL_CARD_VRAM_GALLERY_RESILIENCE.md and docs/wiki/69-Live-Model-Card-VRAM-Gallery-Resilience.md.
Adds live model-runtime polling for model lifecycle, GPU VRAM reservations, driver-reported CUDA memory, and regular system RAM. Models, Tag Editor, Agent Tools, Jobs, and assistant/orchestration surfaces now patch status circles, model dropdown styling, and resource panels in place without requiring a tab switch and without forcing a full page render that would reset scroll position.
Adds a queued Quick Tag inference workflow in the Tag Editor. The quick-tag card now supports a multi-select model queue, parallel enqueueing, active per-model progress rows, per-job ETAs, and an overall circular queue progress indicator. Completed jobs disappear from the active quick queue while remaining visible in the Jobs tab.
Adds a global model-job queue panel to Agent Tools so assistant/orchestrator-driven model handoffs can be monitored separately from the quick-tag subset. The new generic /api/models/queue-runs backend endpoint queues multiple model inference jobs through the existing model-inference lane and exposes the same live progress/ETA UI used by Quick Tag.
See docs/V5_8_38_LIVE_MODEL_RUNTIME_QUEUES.md and docs/wiki/68-Live-Model-Runtime-Queues.md.
Fixes the Tag Editor Quick Tag / Rating Model feedback loop. Selecting a model in the dropdown now immediately swaps the lifecycle/progress circles to that exact model and refreshes status in place, so the user no longer has to switch tabs to see whether the selected model is loaded, downloading, loading, or ready.
Fixes the post-inference refresh path for quick tag/rating runs. Completed model inference jobs now refresh the affected media rows, clear stale tag drafts, request prediction scores, and hard-refresh the active media review tab while preserving scroll position. The completed job payload now also includes full candidate/applied tag maps and candidate score rows so the frontend can optimistically patch the current image if the media fetch is slow.
Tightens model-tag normalization for applied tags. Model-emitted tags/classes now continue through the selected tag profile with alias resolution and implication expansion enabled by default, then save with the selected tag text mode and ordering strategy. This keeps PixAI/WD/Thouph/Hydra/JTP outputs aligned with the user's active e621/e926/Danbooru/etc. dictionary preset instead of silently creating disconnected new tags when a known alias/implication path exists.
See docs/V5_8_37_QUICK_TAG_REFRESH_AND_ALIAS_SCORE_SYNC.md and docs/wiki/67-Quick-Tag-Refresh-and-Alias-Score-Sync.md.
Fixes model-download progress so Hugging Face snapshot downloads, small ONNX tagger repos, and local payload finalization now update the model download lifecycle circle and the Models tab without requiring a tab switch. The loader also reconciles a completed local payload before blocking a load on an apparently active download, so a model that finished downloading should not remain stuck behind a stale running circle.
Adds three known-good Agentic Graph templates plus a new Agentic Workflow READMEs tab with rendered instructions, create/run buttons, expected results, and manual next steps. The baseline templates are intentionally local-only and dry-run-safe so the user can verify the graph runtime before expanding into model calls, media probing, downloader steps, MCP tools, shell commands, or trainer handoffs.
See docs/V5_8_33_DOWNLOAD_PROGRESS_AND_GUARANTEED_GRAPHS.md and docs/wiki/63-Download-Progress-and-Guaranteed-Agentic-Graphs.md.
Fixes migrated model detection so model folders copied or moved from an older install are loaded from local disk instead of falling back to a remote repo id and redownloading. The Models tab now has a Rescan / Reconcile Migrated Models button, load/chat paths use local-files-only resolution whenever a downloaded local payload is detected, and local model loads temporarily force Hugging Face/Transformers offline mode so helper libraries cannot silently fetch missing snapshots.
See docs/V5_8_32_MIGRATED_MODEL_DETECTION_NO_REDOWNLOAD.md and docs/wiki/62-Migrated-Model-Detection-No-Redownload.md.
Adds graph chunk-selection and grouped dragging with Ctrl+drag, graph-node copy/cut/paste shortcuts, searchable/filterable node palette menus with recent-node history, multi-input/multi-output port rendering, cursor-accurate right-click node menus, Attention Visualizer tag suggestions, an Augment-tab render fix, a closed-loop model-training improvement graph template, and isolated ONNX adapters for the PixAI and WD v3 tagger rows that previously failed with “Model adapter is not available.”
See docs/V5_8_31_GRAPH_SELECTION_MENU_WD_PIXAI_FIXES.md and docs/wiki/61-Graph-Selection-Menu-WD-PixAI-Fixes.md.
Fixes the Agentic Graph Editor refresh/input regression by separating graph clicks, right-clicks, node drags, port gestures, and graph zoom from actual page scrolling. Graph-local canvas and node-inspector updates now repaint immediately while preserving the tab scroll position. Also fixes the Agentic Graph Chat render failure in inline selected-model runtime controls.
See docs/V5_8_30_GRAPH_IMMEDIATE_INTERACTION_AND_CHAT_FIX.md and docs/wiki/60-Graph-Immediate-Interaction-and-Chat-Fix.md.
Moves heatmap-style attention review into the Tag Editor and Compare tabs as toggleable semi-transparent overlays, sets the default classifier/tagger threshold to 0.70, fixes several Agentic Graph Editor canvas/menu/inspector interactions, and adds a graph-linked chat tab with visible plan/action-trace support.
See docs/V5_8_29_ATTENTION_OVERLAY_GRAPH_CHAT_THRESHOLD.md and docs/wiki/59-Attention-Overlay-Graph-Chat-Threshold.md.
Adds model-specific Thouph preprocessing, soft automatic refreshes that preserve Models-tab scroll/dropdowns, Tag Editor prediction sort modes, Agentic Graph Editor preset-render fixes, audio/voice/video+audio dataset scope additions, and LingBot-Video world-model catalog/runtime rows.
See docs/V5_8_28_PREPROCESS_SCROLL_GRAPH_WORLD_MODELS.md and docs/wiki/58-Preprocessing-Scroll-Graph-LingBot-World-Models.md.
Adds a new Multimodal Dataset Builder tab for image/video/audio dataset preparation, structured captions, LTX-2.3 exports, Wan 2.2 Musubi/DiffSynth/SimpleTuner/AI Toolkit exports, training MCP handoffs, explicit Tripo P1.0/Rodin/Hunyuan3D 3.1 3D provider rows, and Tag Editor model-score highlighting by one/multiple/all model prediction rows.
See docs/V5_8_27_MULTIMODAL_DATASET_BUILDER.md and docs/wiki/57-Multimodal-Dataset-Builder-LTX-Wan-MCP.md.
Fixes the remaining legacy EVA attn_pool inference compatibility error and corrects the frontend refresh/defer behavior that made Models, Gallery, Jobs, and log/error views look stale until switching tabs.
See docs/V5_8_25_EVA_ATTN_POOL_AND_LIVE_TAB_REFRESH_FIXES.md and docs/wiki/55-EVA-Attention-Pool-and-Live-Tab-Refresh-Fixes.md.
Migration tag-database import no longer stalls on stale tag_export_files metadata from older installs. Export-file metadata is rebuilt from migrated local cache files, the redundant legacy dictionary mirror is skipped when normalized dictionaries are present, and tag-table import now commits before progress callbacks so the Dashboard/Jobs progress indicator can update live instead of appearing stuck.
See docs/V5_8_23_MIGRATION_TAG_DB_STALL_FIX.md and docs/wiki/53-Migration-Tag-Database-Stall-Fix.md.

Repository: https://github.com/x-CK-x/Dataset-Curation-Tool
Data Curation Tool Modern is a local-first dataset curation, tagging, model-management, downloader, 3D generation, media metadata, and tool-orchestration application. The current documentation set is stored in docs/wiki/ and is designed to be pushed directly into the repository or copied into the GitHub Wiki.
See docs/V5_8_22_MIGRATION_FAST_MODEL_GROUPS_AND_PROGRESS_FIX.md and docs/wiki/52-Migration-Fast-Model-Groups-and-Progress-Fix.md.
See docs/V5_8_21_FAST_MODEL_MOVE_MIGRATION.md and docs/wiki/51-Fast-Same-Drive-Model-Migration.md.
runtime/tag_exports/<profile>/ files can be imported directly into the current dictionary without downloading fresh copies.norm_pre.timm forward paths.1 x 3 x 448 x 448 tensor expected by its ONNX/PyTorch classifiers.reg_token and mask_token when older serialized model objects do not contain them.time import used by the live startup progress/ETA tracker.__version__ for its default user-agent string instead of a hardcoded previous release value.UnicodeEncodeError./api/system/startup-status instead of leaving the user without feedback.5.8.8.See docs/V5_8_8_HYDRA_UTF8_STARTUP_PROGRESS_GALLERY_FIXES.md and docs/wiki/39-Hydra-UTF8-Startup-Progress-and-Gallery-Fixes.md.
inference.py called Loader.heuristic_max_workers(...) while the downloaded utils/loader.py only exposed heuristic_workers(...).Loader(..., max_workers=...) in older loader snapshots.5.8.7.See docs/V5_8_7_HYDRA_LOADER_WORKFLOW_GALLERY_FIXES.md and docs/wiki/38-Hydra-Loader-Workflow-and-Gallery-Fixes.md.
multiprocessing.Queue cannot be used as Queue[str] in runtime annotations.utils/loader.py before load/inference and writes a small patch marker so the same repo is not repeatedly modified.5.8.6.See docs/V5_8_6_HYDRA_PY311_QUEUE_PATCH_AND_Z3D_REMOVAL.md and docs/wiki/37-Hydra-Python-Queue-Patch-and-Z3D-Removal.md.
pyvips was present but libvips-42.dll could not be loaded.libvips files.pyvips/libvips chain using pyvips[binary]>=3.0.0, pyvips-binary>=8.16.0, and Conda fallback repair when Conda is visible.scripts/repair_hydra_runtime_dependencies.py and updated install.bat, update.bat, install.sh, update.sh, and Hydra repair scripts to use it.5.8.5.See docs/V5_8_5_HYDRA_WINDOWS_LIBVIPS_DLL_FIX.md and docs/wiki/36-Hydra-Windows-libvips-DLL-Loader-Fix.md.
pyvips/libvips is detected before the native Hydra subprocess runs.pyvips and libvips to the Conda environment so fresh installs and updates include Hydra's image-loading runtime.install_hydra_runtime_deps.bat and install_hydra_runtime_deps.sh for repairing existing environments without reinstalling the whole tool.scripts/check_hydra_runtime_dependencies.py to verify local Hydra inference prerequisites.5.8.4.See docs/V5_8_4_HYDRA_RUNTIME_DEPENDENCY_FIX.md and docs/wiki/35-Hydra-Runtime-Dependency-Fix.md.
runtime/agentic_graphs/, API routes under /api/graph-editor/*, and compatibility aliases under /api/graphs/* for older graph-editor style integrations.5.8.3.See docs/V5_8_3_AGENTIC_GRAPH_EDITOR.md and docs/wiki/34-Agentic-Graph-Editor.md.
5.8.1.See docs/V5_8_1_CHARACTER_REFERENCE_LORA_AUGMENTATION.md.
5.8.0.See docs/V5_8_0_LEGACY_TAGGERS_TAG_TRANSLATION.md.
See docs/V5_78_13_DATASET_PIPELINE_TRAINING_PREP_3D_PRINT.md.
/api/global-dataset/* endpoints for status, asset search, manual ingest, branch linking, and variant registration.See docs/V5_78_12_GLOBAL_DATASET_3D_MCP_ZBRUSH.md.
docs/wiki/assets/images/.All visuals are stored in docs/wiki/assets/images/ and are referenced with repo-local paths so they work after the files are pushed to GitHub.
| Area | Visual | Local path |
|---|---|---|
| Repository overview | ![]() | docs/wiki/assets/images/repo_main_visual_index.png |
| Main GUI face | ![]() | docs/wiki/assets/images/main_gui_face.png |
| Quick start | ![]() | docs/wiki/assets/images/quick_start_overview.png |
| Windows install | ![]() | docs/wiki/assets/images/windows_installation.png |
| First run | ![]() | docs/wiki/assets/images/first_run_configuration.png |
| Folder layout and migration | ![]() | docs/wiki/assets/images/project_folder_layout_migration.png |
| Import workflow | ![]() | docs/wiki/assets/images/dataset_import_workflow.png |
| Gallery and tags | ![]() | docs/wiki/assets/images/gallery_tag_editor.png |
| Models and GPU jobs | ![]() | docs/wiki/assets/images/model_lifecycle_gpu_jobs.png |
| Assistant and orchestration | ![]() | docs/wiki/assets/images/assistant_orchestrator_chat.png |
| Detection, pose, and 3D | ![]() | docs/wiki/assets/images/annotation_detection_segmentation_pose_3d.png |
| Downloaders and logic gates | ![]() | docs/wiki/assets/images/downloaders_tag_dictionaries_logic.png |
| Metadata, media, MCP tools | ![]() | docs/wiki/assets/images/metadata_media_mcp_tools.png |
| Jobs and troubleshooting | ![]() | docs/wiki/assets/images/jobs_queues_troubleshooting.png |
| Best practices | ![]() | docs/wiki/assets/images/best_practices_operations_playbook.png |
| Voice and roadmap | ![]() | docs/wiki/assets/images/voice_roadmap_best_practices_faq_dev.png |
| Voice model catalog | ![]() | docs/wiki/assets/images/voice_model_catalog_hf_access.png |
| v5.78 3D/MCP/cloud/logic overview | ![]() | docs/wiki/assets/images/v578_3d_cloud_mcp_logic_overview.png |
See docs/V5_8_2_AUTOMATION_WORKFLOWS.md and docs/wiki/33-Automation-Workflows-and-Cooperative-Curation.md.
assistant_model_name and orchestrator_model_name settings.GET/PUT /api/models/assistant-config for saving and reading Assistant/Orchestrator defaults.dataset-assistant.dataset-assistant chat remains available as the no-model fallback; orchestrator placeholders resolve to the configured orchestrator default.See docs/V5_45_CONFIGURABLE_ASSISTANT_ORCHESTRATOR.md.
/api/jobs/cancel plus Jobs-tab buttons to stop queued/running download jobs. Queued downloads are cancelled immediately; running downloads stop cooperatively.model_download worker lane so large downloads do not consume the whole general job pool.run, install, and update scripts now locate a user-level Conda install and activate data-curation-tool automatically.See docs/V5_44_STOPPABLE_DOWNLOADS_CONDA_SCRIPTS.md.
runtime/tag_exports files and reports cached export row counts.See docs/V5_43_DOWNLOAD_QUEUE_RESCAN_VLM_DEFAULTS.md.
This build fixes global dropdown auto-closing during polling, extends model GPU residency controls, adds manual Tag Editor highlight/deselect controls, and routes chat/VLM models such as Gemma 4 E4B IT through real image-aware tag-selection inference instead of the old heuristic-only path.
See docs/V5_42_GPU_TAG_SELECTION_DROPDOWN_FIXES.md.
See docs/V5_41_GPU_PLACEMENT_UNLOAD_CONTROLS.md.
See docs/V5_40_DROPDOWN_MIGRATION_FIXES.md.
See docs/V5_39_MODEL_TAG_REFRESH_FOCUS_FIXES.md.
See docs/V5_38_STATUS_GALLERY_DOWNLOAD_FIXES.md.
/api/models/status and /api/models/load so model downloads, explicit memory loads, lazy loads before inference/chat/tag-selection, annotation model downloads/loads, and training scaffolds all report consistent status.See docs/V5_37_MODEL_LIFECYCLE_STATUS.md.
dct-flexavatar Conda runtime so the upstream Python 3.9 / CUDA 11.8 stack does not overwrite the main tool environment.See docs/V5_31_FLEXAVATAR_INTEGRATION.md. Run python scripts/verify_v531_flexavatar.py for an offline integration check that does not require the large checkpoint or CUDA inference.
See docs/V5_30_POSE_3D_GENERATION_RIGGING.md and docs/V5_30_SAM_SETUP_POINT_PROMPTS.md.
Detection boxes and segmentation masks now behave as persistent, editable layer stacks. Users can select and combine any number of model-generated, manual, Krita-imported, or previously composed layers; reorder, duplicate, hide, lock, rename, recolor, edit, and delete them; and retain the layers for later model runs. Detection supports union, intersection, average, and confidence-weighted composites. Segmentation supports soft-mask-preserving union, intersection, subtract, and XOR plus threshold, feather, and grow/shrink processing. Selected unsaved model previews can be promoted automatically when they are composed with saved layers.
The mask editor now includes brush, eraser, variable size/opacity/hardness, lasso, ellipse, rectangle, magic selection, add/subtract/replace modes, overlay transparency, and undo/redo. Saved edits keep revision/provenance data, and model-only cleanup no longer removes user-edited or composite layers. See docs/V5_28_SPATIAL_LAYER_COMPOSITOR.md.
model.names, YAML/JSON/TXT/CSV sidecars, ONNX metadata, and safetensors metadata, with searchable class lists in Detection and Segmentation.max_det, class filtering, NMS IoU, class-agnostic NMS, TTA, retina masks, and configurable SAM automatic-mask thresholds/crop settings.See docs/V5_27_CLASS_AWARE_SPATIAL_INFERENCE.md for model semantics and workflow details.
/api/spatial/detection/* and /api/spatial/segmentation/* contracts for future orchestration nodes.This build hardens the large booru tag-export path and the install/update scripts.
pyarrow is a required core dependency and is installed through both Conda and pip fallback paths.run.bat / run.sh check required dependencies and call the updater when the existing environment is missing core packages.update.bat / update.sh now install requirements.txt as well as the editable package.DCT_INSTALL_TORCH=auto or cu128.tags.csv.gz import to exceed one million rows, preventing partial exports such as ~119k rows from being accepted as complete.scripts/verify_tag_loader_full_count.py verifies a 1,668,155-row tags.csv.gz import end-to-end.This build focuses on the booru tag dictionary import path. Official tags.csv.gz files with id,name,category,post_count now use a PyArrow-first streaming loader and keep all valid rows, including zero-count rows, so the active dictionary/search tables can exceed 100,000 tags instead of stopping at a small partial count.
The loader also parses tag_aliases.csv.gz and tag_implications.csv.gz using antecedent_name and consequent_name, and parses artists.csv.gz using name plus braced other_names values such as {alias1,alias2}. Alias and implication terms are inserted into the searchable dictionary with alias_target, alias_targets, or implications metadata so the suggestion menu can show corrections and related terms while users type.
The e621/e926 numeric category mapping is explicit: 0=general, 1=artist, 2=rating, 3=copyright, 4=character, 5=species, 6=invalid, 7=meta, 8=lore. The active dictionary, autocomplete search table, and legacy dictionary mirror are rebuilt after import so gallery/editor/comparer coloring and suggestions use the same loaded data.
[tag:name], quoted tags, bare tags, implicit AND, explicit AND/OR/NOT, parentheses, and wildcard tag terms.This build integrates the reusable dataset-curation features from the reference-image finder prototype into the modern FastAPI/HUD application. It adds a Reference Finder tab for one/few-reference character or concept search, duplicate-aware memory, user verification feedback, BBCode/tag-query optimization, manual bbox/polygon/mask annotation helpers, training-set creation, YOLO/caption exports, and training-job script scaffolding.
It also adds a Source Browser tab that can verify/install a local geckodriver, launch Firefox in private mode through Selenium when optional browser dependencies are installed, and stop the controlled browser session.
The always-available backend is a deterministic CPU ColorHash sanity workflow so users can test the full reference-search/verification/query loop without model downloads. OWLv2, SigLIP2, GroundingDINO/SAM, and YOLOE-related rows are exposed as optional model-backed contracts/download targets so support can be expanded model-by-model without changing the UI or database layout.
This build fixes the observed e621 startup-sync failure where a canonical tags export around 69k rows was rejected before alias and implication exports could expand the searchable dictionary. The loader now imports canonical tags first, imports aliases and implications, expands the autocomplete/category dictionary from those relation files, and only then enforces the >100k searchable dictionary guardrail.
tags-YYYY-MM-DD.csv.gz, tag_aliases-YYYY-MM-DD.csv.gz, and tag_implications-YYYY-MM-DD.csv.gz candidates, even when generic fixed filenames exist.post_count > 0, which could reduce a several-hundred-thousand-row tag CSV to a much smaller active-tag subset. Zero-count tags now remain available for category color lookup, autocomplete, implications/aliases, comparison, batch edits, and custom dataset cleanup while still sorting below high-count tags.::<json> path segment.requirements-models-serving.txt so Conda installs stay stable by default.A local-first dataset curation application for building, auditing, tagging, captioning, pruning, augmenting, downloading, and exporting image/video datasets. This modernization replaces the old single-file UI approach with a Conda-first FastAPI backend, a browser-based single-page HUD, a SQLite project database, background jobs, and optional model adapters for auto-tagging, captioning, VLM/ViT inference, embeddings, deduplication, segmentation-assisted workflows, and dataset chat.
nvidia-smi is detected.tags.csv.gz through one long SQLite transaction, insert only canonical profile rows while parsing, and rebuild autocomplete/legacy mirrors with set-based SQL instead of per-row Python inserts.tag_aliases and tag_implications tables with bulk inserts instead of repeatedly updating JSON blobs one row at a time.ffprobe when available and parses generation metadata stored in container/stream tags..txt, .caption, or JSON sidecars are missing./db_exports/, keeps legacy /db_export/ as fallback, discovers dated export links, and imports the newest successful export for tags, tag aliases, and tag implications.name, category, and post_count, while also tolerating equivalent/custom column names. Zero-count tags are skipped for autocomplete.runtime/custom_tags.json plus SQLite autocomplete tables.runtime/tag_exports/, and imports them into the local SQLite search tables..txt tag sidecars can still use the selected booru profile for category colors, autocomplete, implication pruning, and tag ordering after dictionary sync.This build fixes the gallery/category issues reported after v5.3:
.txt, .caption, .json, image.ext.json, and .metadata.json files for the selected media, or the visible page if nothing is selected.{"tags": {"character": [...]}}, explicit {"categories": {"tag": "category"}} maps, flat tag lists, tag dictionaries, captions, descriptions, and rating fields.4 render as character, 3 as copyright, and 1 as artist.This build replaces the earlier placeholder/scaffolded tag-HUD work with visible, tested controls:
runtime/custom_tags.json.× deletion.Run from Anaconda Prompt or Miniconda Prompt:
install.bat
run.bat
The default installer uses this behavior:
DCT_INSTALL_TORCH=auto by default.nvidia-smi is found, CUDA 12.8 PyTorch wheels are installed.DCT_INSTALL_TORCH=cpu to force CPU PyTorch.DCT_INSTALL_TORCH=skip to skip PyTorch.For a CUDA reinstall inside the Conda environment:
install_torch_cuda128.bat
verify_gpu.bat
chmod +x install.sh run.sh
./install.sh
./run.sh
CUDA helper:
./install_torch_cuda128.sh
./verify_gpu.sh
conda env update -f environment.yml --prune
conda activate data-curation-tool
python -m pip install -e .
python run.py --host 127.0.0.1 --port 7865 --open-browser
Open the local URL printed in the terminal. By default, the app uses:
http://127.0.0.1:7865
× inside a tag chip to delete it.options.model_id or a local model path.nvidia-smi even when torch is not importable yet.torch.cuda.is_available() when torch is installed.The Assistant tab lets the user talk to the selected dataset/media context.
Supported modes:
For model-backed chat, install torch and provide a local path or Hugging Face model id in the HUD model-id field.
Supported source adapters:
Downloader behavior:
.download.json metadata sidecars for traceability.;;;.parameters, ComfyUI prompt/workflow JSON, NovelAI-style metadata/stealth PNG payloads, Fooocus/Civitai JSON comments, video container tags exposed through ffprobe, and safetensors LoRA headers.runtime/
app.db
settings.json
thumbnails/
presets/
downloads/
exports/
models/
hf/
local/
outputs/
The runtime folders are created on first launch and are ignored by git.
python run.py --host 127.0.0.1 --port 7865
python run.py --runtime ./runtime --models ./models --open-browser
python run.py --reload
GET /api/health — health check.
POST /api/system/pick-folder — open native local folder picker.
GET /api/system/devices — detect CPU/GPU/torch devices.
POST /api/datasets/import — import a local folder as a dataset.
POST /api/datasets/import-many — import multiple local folders as one background job.
GET /api/datasets — list datasets.
GET /api/media — gallery/filter page.
GET /api/media/{id} — media metadata.
GET /api/media/{id}/file — raw media file.
GET /api/media/{id}/thumbnail — thumbnail.
PUT /api/media/{id}/tags — replace visible ordered tag string.
POST /api/tags/bulk — bulk tag operations.
POST /api/tags/prune — tag implication pruning.
POST /api/models/run — run model inference as a background job.
POST /api/models/chat — chat with the dataset assistant, local LLM, or local VLM.
GET /api/downloads/sources — list compatible downloader adapters.
POST /api/downloads/run — run direct or preset downloads.
GET /api/jobs — list jobs.
GET /api/jobs/{id} — inspect job status.
POST /api/augment/run — run augmentation as a background job.
POST /api/export/run — export dataset assets/manifests.
GET /api/metadata/sources — list embedded metadata parser capabilities.
POST /api/metadata/extract-now — extract/apply metadata immediately.
POST /api/media-tools/video/extract-frames — queue frame extraction from selected videos.
POST /api/media-tools/video/extract-audio — queue audio extraction from selected videos.
POST /api/media-tools/audio/recording — save browser-recorded audio.
GET /api/krita/plugin — download the optional Krita bridge plugin zip.
POST /api/database/query — execute read-only SQL.
conda activate data-curation-tool
python -m pip install -e .
pytest
python -m compileall data_curation_tool
The frontend is plain modern browser JavaScript so it can run offline without Node, npm, or a bundler. A future Tauri/Electron shell can wrap the same backend and static HUD without changing the API.
GPL-3.0-or-later.
This pass adds a Media Tools workflow without turning the application into a ComfyUI node pack. The reusable parser logic is integrated as normal backend services so datasets can be curated directly inside the local web application.
The Media Tools tab can extract tags, tag strings, captions, LoRA references, and prompt/settings text from supported image/video metadata sources, including:
parametersffprobeMetadata extraction has non-destructive preview behavior by default. When requested, extracted tags/captions can be applied to selected media while preserving the existing tag-order/category system.
Selected videos, or external video paths, can be decoded to high-quality PNG frames at a user-selected FPS or every-N-frames interval. PNG is the default output format to avoid adding another JPEG-style lossy encode after video decoding. The extraction job can optionally attach generated frames back into the current dataset.
Videos can have audio streams extracted to WAV/FLAC/M4A/MP3 for future audio-dataset workflows. Browsers that support MediaRecorder can also record custom audio clips from the Media Tools tab and save them to the local runtime recording folder.
The Krita bridge exports selected images plus sidecars into an edit package with a manifest. Users can open the exported image in Krita, save an edited copy, and import that edited image back into the source dataset while preserving tags and captions when requested.
This pass integrates reference-image dataset curation workflows into the modern FastAPI/HUD application.
The Reference Finder tab can register a target character/object, attach one or more reference images, and scan selected media, an active dataset, or an external folder. A CPU-only ColorHash verifier is always available for smoke tests and light local matching. Optional OWLv2/SigLIP2-style detector/verifier pipelines are represented in the model catalog and service contracts so model-specific adapters can be enabled as dependencies and weights are installed.
Search results can be marked correct, incorrect, or uncertain. The app stores verification memory and can evaluate BBCode/tag-style queries such as [tag:blue_hair] AND NOT [tag:group] against known positives/negatives. This helps users discover better tag queries before downloading, filtering, or building a training set.
The tool now stores bbox, polygon, and mask-style annotation records. It can create query-derived training sets and export YOLO detection/segmentation folder structures or caption JSONL files for downstream training workflows.
A local Firefox/geckodriver source browser tab was added for authorized browsing/review workflows. It can install/verify geckodriver, launch Firefox in private mode by default, and stop the local browser session from the HUD.
The current build includes a new Reference Finder tab for one/few-reference image search, verification feedback, BBCode-style tag-query evaluation, annotation primitives, training-set creation, YOLO export, caption JSONL export, and training script scaffolding. It also includes a Source Browser tab for Firefox/geckodriver status, local geckodriver installation, private-mode Firefox launching, and browser shutdown.
The built-in demo_colorhash reference pipeline is available immediately as a no-model sanity backend. OWLv2, SigLIP2, Florence-2, Grounding DINO, SAM2, and YOLO/YOLOE are represented in the model catalog as downloadable/staged integration points so model-specific adapters can be completed incrementally without breaking startup on machines that do not have those optional dependencies installed.
The tag dictionary importer now uses PyArrow first for booru-style tags.csv.gz files with id,name,category,post_count, then falls back to the built-in Python CSV path for custom files. It also imports tag_aliases.csv.gz, tag_implications.csv.gz, and artists.csv.gz as separate export roles so tag suggestions can surface alias targets, implication targets, and artist alias corrections while the user types.
The e621/e926 numeric category mapping is now explicit:
{"0":"general","1":"artist","2":"rating","3":"copyright","4":"character","5":"species","6":"invalid","7":"meta","8":"lore"}
The active profile dictionary, autocomplete/search table, and legacy mirror are rebuilt from the same loaded data so category coloring and suggestions stay consistent across the gallery, tag editor, comparer, batch tools, and assistant tag-selection workflows.
If the computer/app is stopped while a very large DB-export import is running and startup reports database disk image is malformed, run:
Windows:
repair_database.bat
Linux/macOS:
./repair_database.sh
The repair script does not delete files permanently. It moves runtime/app.db, runtime/app.db-wal, and runtime/app.db-shm into runtime/corrupt_databases/<timestamp>/ and lets the app create a clean database at next startup.
This build adds a startup SQLite quick-check. If runtime/app.db is malformed, the app automatically moves app.db, app.db-wal, and app.db-shm into runtime/corrupt_databases/<timestamp>/ and creates a fresh database instead of crashing.
The tag DB-export importer now stages large tag dictionaries under a temporary source first, validates the row count, and only then atomically promotes the staged rows to the selected profile. It also removes unsafe PRAGMA synchronous=OFF usage from tag imports.
For an existing malformed database, use repair_database.bat or ./repair_database.sh to quarantine the database files manually before startup.
The Annotation Editor includes first-class bbox, mask, 2D pose, 3D pose, and animation-pose dataset controls. SAM/SAM-HQ/SAM2, YOLO detection/segmentation/pose, custom local YOLO/SAM-style checkpoints, VLM/API proposal routes, and pose dataset contract rows are exposed in the model catalog. Optional heavy annotation dependencies can be installed with install_annotation_models.bat or install_annotation_models.sh.
This build improves the annotation workflow with first-class dependency installation, on-page annotation model downloads, load/validate/unload controls, additional YOLO11 detection/segmentation/pose rows, a lightweight 3D pose/bone viewer, a Blender bridge plugin, annotation deletion/loading into draft, and richer gallery playback for image, animated, video, and audio media.
For annotation model runtimes, use the Annotation Editor button Install Annotation Dependencies or run:
install_annotation_models.bat
Then use Download Weights, Load / Validate, and Preview Proposal or Generate + Save from the Annotation Editor.
This build removes the no-model deterministic preview fallback from the annotation workflow. Preview and Generate + Save now only create proposals when a selected runnable model returns actual model output, or when the user manually draws/saves an annotation. Missing optional dependencies, missing checkpoints, unsupported SAM2/SAM-HQ adapter rows, and zero-detection model runs return structured errors with zero proposals instead of fake center boxes/masks.
The Annotation Editor now displays this behavior in the HUD and includes tests proving that no-model preview/save cannot create fake annotations.
dataset-assistant.segment-anything-hq and exposes it in the annotation dependency installer.sam2 runtime is installed.See docs/V5_35_METADATA_MODEL_CHAT_AUDIT.md.
docs/wiki/27-3D-Generation-MCP-Cloud-and-Booru-Logic.md.The Dataset Pipeline tab prepares branch datasets for external training tools without mutating global originals. It can generate caption/tag rule packets and model/VLM prompts for LoRA, IC-LoRA, ControlNet, and embedding workflows; evaluate branch readiness; dry-run/apply deterministic cleanup to branch-local sidecars; export trainer manifests/config stubs for tools such as Kohya SS, OneTrainer, Diffusers scripts, LTX Trainer, ComfyUI training nodes, cloud trainers, or future source-manifest/webscraper bridges; and package 3D assets for Blender/ZBrush/MeshLab/slicer handoff. See docs/wiki/29-Dataset-Pipeline-Training-Prep-and-3D-Print-Handoff.md.
This build adds RedRocket Hydra 3.5 as a first-class tagger/rating classifier across Models, Tag Editor, Compare, Batch Tags, annotation quick-run cards, and prediction/tag-selection surfaces. Hydra can run locally through the downloaded repo-native inference.py path or remotely through service.py by setting options.hydra_service_url. Remote Devices can now start Hydra service processes, plan model-run shards, and dispatch tagger/model inference to configured worker APIs. Dataset Pipeline and Pipeline Prep also include FLUX.1 Dev/Schnell/Kontext/Fill/Depth/Canny/Redux plus Chroma/FLUX-tuned caption-rule targets. See docs/wiki/30-Hydra-3-5-FLUX-Chroma-and-Remote-Tagger-Offload.md.
This release adds the legacy/local image taggers from the original model configuration into the Models catalog, including Thouph EVA02-CLIP 7704, Thouph EVA02 ViT-Large 448 8046, and Thouph Experimental EfficientNetV2-M 8035. These models use a shared legacy adapter that preserves their original preprocessing, thresholds, ONNX/PyTorch runtime choices, tag metadata ordering, placeholder output handling, and e621 alias/implication cleanup. The Tag Dictionaries tab also now includes a profile-aware tag/caption translator for converting between booru profiles or caption formats, with optional local/cloud LLM/VLM handoff for uncertain mappings. See docs/wiki/31-Legacy-Taggers-and-Tag-Caption-Translation.md.
Ports standalone graph-editor concepts into the integrated Agentic Graph Editor while keeping the existing dark/neon canvas style.
Adds multimodal input nodes, bundle/context nodes, model-call nodes, supervisor nodes, external-tool nodes, event-console support, browser search/open nodes, port connections, pan/zoom, edge deletion, and flow animation.
Adds browser MCP entries for default browser, Edge, Chrome, Firefox, Chromium, and Tor Browser. Browser MCP actions are visible/user-approved handoffs, not hidden scraping.
See docs/V5_8_10_AGENTIC_GRAPH_BROWSER_MCP.md and docs/wiki/40-Agentic-Graph-Editor-Standalone-Port-and-Browser-MCPs.md.
v5.8.11: fixes tab scroll preservation and makes migration jobs resume the Dashboard startup-maintenance progress indicator after a cancelled first-run tag sync.
Adds live startup progress during migration, an Attention Visualizer tab for Grad-CAM/CAM/U-Net/t-SNE/cross-attention contracts, and deeper standalone graph-editor compatibility.
reg_token.See docs/V5_8_16_GRAPH_PALETTE_PREDICTION_REFRESH_EVA_FIXES.md.
This update fixes the Agentic Graph Editor interaction layer, migration-finalization progress, and the post-100% frontend hydration stall. The graph canvas now supports background drag panning, cursor-centered wheel zoom, right-click node selection menus, port-based node connection, node context menus, and smoother direct-manipulation updates without replacing the existing dark/neon visual theme. Manual migration progress is also remapped so the raw file-copy phase no longer shows as 100% while reconciliation and post-migration tag/model checks are still running. The browser now renders dashboard essentials first and hydrates optional catalogs in the background while the Dashboard startup-maintenance circle displays a frontend_hydration phase.
See docs/V5_8_17_GRAPH_CANVAS_AND_MIGRATION_FINALIZATION.md.
See docs/V5_8_20_PARALLEL_MIGRATION_AND_FIRST_RUN_SYNC.md and docs/wiki/50-Parallel-Migration-and-First-Run-Tag-Sync.md.
attn_pool, head_drop, and pos_drop.See docs/V5_8_25_EVA_ATTENTION_POOL_AND_LIVE_REFRESH_FIXES.md and docs/wiki/55-EVA-Attention-Pool-and-Live-Refresh-Fixes.md.
onnxruntime-gpu so ONNX taggers can use CUDA providers after running the updater.See docs/V5_8_26_SCROLL_AND_LEGACY_ONNX_GPU_FIXES.md.
Memory guard, assistant model tools, and Tag Editor tag pruning fixes.
Python
74.9%
JavaScript
23.0%
CSS
1.3%
Data Curation Tool is a local-first dataset curation, tagging, model-management, downloader, 3D generation, media metadata, and tool-orchestration application. The current documentation set is stored in docs/wiki/
39
stars
452
commits
Python
primary language
Jul 12, 2026
updated
assistant_show_live_chain_of_thought and assistant_show_live_reasoning_trace.visible_reasoning_trace / visible_chain_of_thought metadata so completed turns preserve the visible trace next to the visible plan/action notes.See docs/V5_8_48_GLOBAL_ASSISTANT_ACTION_AND_REASONING_OVERLAYS.md and docs/wiki/78-Global-Assistant-Action-and-Reasoning-Overlays.md.
See docs/V5_8_47_MEMORY_GUARD_ASSISTANT_MODEL_TOOLS_TAG_PRUNING.md and docs/wiki/77-Memory-Guard-Assistant-Model-Tools-Tag-Pruning.md.
See docs/V5_8_46_MULTI_UNLOAD_LIVE_TOKEN_CONTEXT.md and docs/wiki/76-Multi-Unload-Live-Token-Context.md.
See docs/V5_8_45_ATTENTION_HEATMAP_DROPDOWN_QUEUE_REFRESH.md and docs/wiki/75-Attention-Heatmap-Dropdown-Queue-Refresh.md.
/api/jobs polling so slow backend responses cannot make multi-model Quick Tag queues collapse to a single row.See docs/V5_8_44_QUICK_QUEUE_LIVE_ROWS_VIDEO_INTEGRITY_SCORES.md and docs/wiki/74-Quick-Queue-Live-Rows-Video-Integrity-Scores.md.
Improves Quick Tag queue selection and live model-state updates. The multi-model selector in the Tag Editor now explicitly supports Ctrl/Cmd-click toggling, Shift-click range selection, and Ctrl/Cmd+A select-all while preserving selected options during background status refreshes.
The Quick Tag queue panel now shows download, load, unload, and inference jobs for the selected quick-tag-capable models. Model option rows are patched in place as each individual job changes state, so the dropdown no longer waits for the entire queue to finish before showing that a specific model has downloaded, loaded, unloaded, failed, or started inference.
Improves Agentic Graph Editor node selection. Canvas nodes now support Ctrl/Cmd-click toggling and Shift-click range selection in addition to the existing Ctrl/Cmd drag selection box, copy, cut, paste, delete, and grouped dragging behavior.
See docs/V5_8_41_QUICK_TAG_MULTISELECT_LIVE_QUEUE_GRAPH_SELECTION.md and docs/wiki/71-Quick-Tag-Multiselect-Live-Queue-Graph-Selection.md.
Fixes the remaining live Models-tab refresh issue. Loaded model cards now patch their lifecycle circles, loaded/downloaded state, highlighted background, and active-model ordering in place as soon as the load/unload lifecycle reaches a terminal state; the update path preserves the Models tab scroll position and does not require a tab switch.
Improves GPU/RAM resource visibility. The resource panel now shows actual driver/torch-used VRAM, actual free VRAM, torch allocated/reserved memory, app reservation budget, loaded model count, and system RAM in the live poller so the user and assistant/orchestrator can make placement decisions from current memory state rather than stale catalog flags.
Hardens Gallery/media refresh behavior after model failures. Media loading now preserves the existing Gallery state and shows a non-blocking warning if a refresh fails, while background polling is isolated so failed model jobs cannot break Gallery rendering or general UI performance.
Adds a model runtime planning context endpoint for assistant/orchestrator workflows. /api/models/runtime-planning-context exposes live resources, compact model metadata, strict-GPU placement policy, and sharding guidance so LLM/VLM/GLM/supervisor models can propose GPU IDs, sharding strategy, tensor-parallel settings, and queueable model jobs using the same resource data shown to the user.
See docs/V5_8_39_LIVE_MODEL_CARD_VRAM_GALLERY_RESILIENCE.md and docs/wiki/69-Live-Model-Card-VRAM-Gallery-Resilience.md.
Adds live model-runtime polling for model lifecycle, GPU VRAM reservations, driver-reported CUDA memory, and regular system RAM. Models, Tag Editor, Agent Tools, Jobs, and assistant/orchestration surfaces now patch status circles, model dropdown styling, and resource panels in place without requiring a tab switch and without forcing a full page render that would reset scroll position.
Adds a queued Quick Tag inference workflow in the Tag Editor. The quick-tag card now supports a multi-select model queue, parallel enqueueing, active per-model progress rows, per-job ETAs, and an overall circular queue progress indicator. Completed jobs disappear from the active quick queue while remaining visible in the Jobs tab.
Adds a global model-job queue panel to Agent Tools so assistant/orchestrator-driven model handoffs can be monitored separately from the quick-tag subset. The new generic /api/models/queue-runs backend endpoint queues multiple model inference jobs through the existing model-inference lane and exposes the same live progress/ETA UI used by Quick Tag.
See docs/V5_8_38_LIVE_MODEL_RUNTIME_QUEUES.md and docs/wiki/68-Live-Model-Runtime-Queues.md.
Fixes the Tag Editor Quick Tag / Rating Model feedback loop. Selecting a model in the dropdown now immediately swaps the lifecycle/progress circles to that exact model and refreshes status in place, so the user no longer has to switch tabs to see whether the selected model is loaded, downloading, loading, or ready.
Fixes the post-inference refresh path for quick tag/rating runs. Completed model inference jobs now refresh the affected media rows, clear stale tag drafts, request prediction scores, and hard-refresh the active media review tab while preserving scroll position. The completed job payload now also includes full candidate/applied tag maps and candidate score rows so the frontend can optimistically patch the current image if the media fetch is slow.
Tightens model-tag normalization for applied tags. Model-emitted tags/classes now continue through the selected tag profile with alias resolution and implication expansion enabled by default, then save with the selected tag text mode and ordering strategy. This keeps PixAI/WD/Thouph/Hydra/JTP outputs aligned with the user's active e621/e926/Danbooru/etc. dictionary preset instead of silently creating disconnected new tags when a known alias/implication path exists.
See docs/V5_8_37_QUICK_TAG_REFRESH_AND_ALIAS_SCORE_SYNC.md and docs/wiki/67-Quick-Tag-Refresh-and-Alias-Score-Sync.md.
Fixes model-download progress so Hugging Face snapshot downloads, small ONNX tagger repos, and local payload finalization now update the model download lifecycle circle and the Models tab without requiring a tab switch. The loader also reconciles a completed local payload before blocking a load on an apparently active download, so a model that finished downloading should not remain stuck behind a stale running circle.
Adds three known-good Agentic Graph templates plus a new Agentic Workflow READMEs tab with rendered instructions, create/run buttons, expected results, and manual next steps. The baseline templates are intentionally local-only and dry-run-safe so the user can verify the graph runtime before expanding into model calls, media probing, downloader steps, MCP tools, shell commands, or trainer handoffs.
See docs/V5_8_33_DOWNLOAD_PROGRESS_AND_GUARANTEED_GRAPHS.md and docs/wiki/63-Download-Progress-and-Guaranteed-Agentic-Graphs.md.
Fixes migrated model detection so model folders copied or moved from an older install are loaded from local disk instead of falling back to a remote repo id and redownloading. The Models tab now has a Rescan / Reconcile Migrated Models button, load/chat paths use local-files-only resolution whenever a downloaded local payload is detected, and local model loads temporarily force Hugging Face/Transformers offline mode so helper libraries cannot silently fetch missing snapshots.
See docs/V5_8_32_MIGRATED_MODEL_DETECTION_NO_REDOWNLOAD.md and docs/wiki/62-Migrated-Model-Detection-No-Redownload.md.
Adds graph chunk-selection and grouped dragging with Ctrl+drag, graph-node copy/cut/paste shortcuts, searchable/filterable node palette menus with recent-node history, multi-input/multi-output port rendering, cursor-accurate right-click node menus, Attention Visualizer tag suggestions, an Augment-tab render fix, a closed-loop model-training improvement graph template, and isolated ONNX adapters for the PixAI and WD v3 tagger rows that previously failed with “Model adapter is not available.”
See docs/V5_8_31_GRAPH_SELECTION_MENU_WD_PIXAI_FIXES.md and docs/wiki/61-Graph-Selection-Menu-WD-PixAI-Fixes.md.
Fixes the Agentic Graph Editor refresh/input regression by separating graph clicks, right-clicks, node drags, port gestures, and graph zoom from actual page scrolling. Graph-local canvas and node-inspector updates now repaint immediately while preserving the tab scroll position. Also fixes the Agentic Graph Chat render failure in inline selected-model runtime controls.
See docs/V5_8_30_GRAPH_IMMEDIATE_INTERACTION_AND_CHAT_FIX.md and docs/wiki/60-Graph-Immediate-Interaction-and-Chat-Fix.md.
Moves heatmap-style attention review into the Tag Editor and Compare tabs as toggleable semi-transparent overlays, sets the default classifier/tagger threshold to 0.70, fixes several Agentic Graph Editor canvas/menu/inspector interactions, and adds a graph-linked chat tab with visible plan/action-trace support.
See docs/V5_8_29_ATTENTION_OVERLAY_GRAPH_CHAT_THRESHOLD.md and docs/wiki/59-Attention-Overlay-Graph-Chat-Threshold.md.
Adds model-specific Thouph preprocessing, soft automatic refreshes that preserve Models-tab scroll/dropdowns, Tag Editor prediction sort modes, Agentic Graph Editor preset-render fixes, audio/voice/video+audio dataset scope additions, and LingBot-Video world-model catalog/runtime rows.
See docs/V5_8_28_PREPROCESS_SCROLL_GRAPH_WORLD_MODELS.md and docs/wiki/58-Preprocessing-Scroll-Graph-LingBot-World-Models.md.
Adds a new Multimodal Dataset Builder tab for image/video/audio dataset preparation, structured captions, LTX-2.3 exports, Wan 2.2 Musubi/DiffSynth/SimpleTuner/AI Toolkit exports, training MCP handoffs, explicit Tripo P1.0/Rodin/Hunyuan3D 3.1 3D provider rows, and Tag Editor model-score highlighting by one/multiple/all model prediction rows.
See docs/V5_8_27_MULTIMODAL_DATASET_BUILDER.md and docs/wiki/57-Multimodal-Dataset-Builder-LTX-Wan-MCP.md.
Fixes the remaining legacy EVA attn_pool inference compatibility error and corrects the frontend refresh/defer behavior that made Models, Gallery, Jobs, and log/error views look stale until switching tabs.
See docs/V5_8_25_EVA_ATTN_POOL_AND_LIVE_TAB_REFRESH_FIXES.md and docs/wiki/55-EVA-Attention-Pool-and-Live-Tab-Refresh-Fixes.md.
Migration tag-database import no longer stalls on stale tag_export_files metadata from older installs. Export-file metadata is rebuilt from migrated local cache files, the redundant legacy dictionary mirror is skipped when normalized dictionaries are present, and tag-table import now commits before progress callbacks so the Dashboard/Jobs progress indicator can update live instead of appearing stuck.
See docs/V5_8_23_MIGRATION_TAG_DB_STALL_FIX.md and docs/wiki/53-Migration-Tag-Database-Stall-Fix.md.

Repository: https://github.com/x-CK-x/Dataset-Curation-Tool
Data Curation Tool Modern is a local-first dataset curation, tagging, model-management, downloader, 3D generation, media metadata, and tool-orchestration application. The current documentation set is stored in docs/wiki/ and is designed to be pushed directly into the repository or copied into the GitHub Wiki.
See docs/V5_8_22_MIGRATION_FAST_MODEL_GROUPS_AND_PROGRESS_FIX.md and docs/wiki/52-Migration-Fast-Model-Groups-and-Progress-Fix.md.
See docs/V5_8_21_FAST_MODEL_MOVE_MIGRATION.md and docs/wiki/51-Fast-Same-Drive-Model-Migration.md.
runtime/tag_exports/<profile>/ files can be imported directly into the current dictionary without downloading fresh copies.norm_pre.timm forward paths.1 x 3 x 448 x 448 tensor expected by its ONNX/PyTorch classifiers.reg_token and mask_token when older serialized model objects do not contain them.time import used by the live startup progress/ETA tracker.__version__ for its default user-agent string instead of a hardcoded previous release value.UnicodeEncodeError./api/system/startup-status instead of leaving the user without feedback.5.8.8.See docs/V5_8_8_HYDRA_UTF8_STARTUP_PROGRESS_GALLERY_FIXES.md and docs/wiki/39-Hydra-UTF8-Startup-Progress-and-Gallery-Fixes.md.
inference.py called Loader.heuristic_max_workers(...) while the downloaded utils/loader.py only exposed heuristic_workers(...).Loader(..., max_workers=...) in older loader snapshots.5.8.7.See docs/V5_8_7_HYDRA_LOADER_WORKFLOW_GALLERY_FIXES.md and docs/wiki/38-Hydra-Loader-Workflow-and-Gallery-Fixes.md.
multiprocessing.Queue cannot be used as Queue[str] in runtime annotations.utils/loader.py before load/inference and writes a small patch marker so the same repo is not repeatedly modified.5.8.6.See docs/V5_8_6_HYDRA_PY311_QUEUE_PATCH_AND_Z3D_REMOVAL.md and docs/wiki/37-Hydra-Python-Queue-Patch-and-Z3D-Removal.md.
pyvips was present but libvips-42.dll could not be loaded.libvips files.pyvips/libvips chain using pyvips[binary]>=3.0.0, pyvips-binary>=8.16.0, and Conda fallback repair when Conda is visible.scripts/repair_hydra_runtime_dependencies.py and updated install.bat, update.bat, install.sh, update.sh, and Hydra repair scripts to use it.5.8.5.See docs/V5_8_5_HYDRA_WINDOWS_LIBVIPS_DLL_FIX.md and docs/wiki/36-Hydra-Windows-libvips-DLL-Loader-Fix.md.
pyvips/libvips is detected before the native Hydra subprocess runs.pyvips and libvips to the Conda environment so fresh installs and updates include Hydra's image-loading runtime.install_hydra_runtime_deps.bat and install_hydra_runtime_deps.sh for repairing existing environments without reinstalling the whole tool.scripts/check_hydra_runtime_dependencies.py to verify local Hydra inference prerequisites.5.8.4.See docs/V5_8_4_HYDRA_RUNTIME_DEPENDENCY_FIX.md and docs/wiki/35-Hydra-Runtime-Dependency-Fix.md.
runtime/agentic_graphs/, API routes under /api/graph-editor/*, and compatibility aliases under /api/graphs/* for older graph-editor style integrations.5.8.3.See docs/V5_8_3_AGENTIC_GRAPH_EDITOR.md and docs/wiki/34-Agentic-Graph-Editor.md.
5.8.1.See docs/V5_8_1_CHARACTER_REFERENCE_LORA_AUGMENTATION.md.
5.8.0.See docs/V5_8_0_LEGACY_TAGGERS_TAG_TRANSLATION.md.
See docs/V5_78_13_DATASET_PIPELINE_TRAINING_PREP_3D_PRINT.md.
/api/global-dataset/* endpoints for status, asset search, manual ingest, branch linking, and variant registration.See docs/V5_78_12_GLOBAL_DATASET_3D_MCP_ZBRUSH.md.
docs/wiki/assets/images/.All visuals are stored in docs/wiki/assets/images/ and are referenced with repo-local paths so they work after the files are pushed to GitHub.
| Area | Visual | Local path |
|---|---|---|
| Repository overview | ![]() | docs/wiki/assets/images/repo_main_visual_index.png |
| Main GUI face | ![]() | docs/wiki/assets/images/main_gui_face.png |
| Quick start | ![]() | docs/wiki/assets/images/quick_start_overview.png |
| Windows install | ![]() | docs/wiki/assets/images/windows_installation.png |
| First run | ![]() | docs/wiki/assets/images/first_run_configuration.png |
| Folder layout and migration | ![]() | docs/wiki/assets/images/project_folder_layout_migration.png |
| Import workflow | ![]() | docs/wiki/assets/images/dataset_import_workflow.png |
| Gallery and tags | ![]() | docs/wiki/assets/images/gallery_tag_editor.png |
| Models and GPU jobs | ![]() | docs/wiki/assets/images/model_lifecycle_gpu_jobs.png |
| Assistant and orchestration | ![]() | docs/wiki/assets/images/assistant_orchestrator_chat.png |
| Detection, pose, and 3D | ![]() | docs/wiki/assets/images/annotation_detection_segmentation_pose_3d.png |
| Downloaders and logic gates | ![]() | docs/wiki/assets/images/downloaders_tag_dictionaries_logic.png |
| Metadata, media, MCP tools | ![]() | docs/wiki/assets/images/metadata_media_mcp_tools.png |
| Jobs and troubleshooting | ![]() | docs/wiki/assets/images/jobs_queues_troubleshooting.png |
| Best practices | ![]() | docs/wiki/assets/images/best_practices_operations_playbook.png |
| Voice and roadmap | ![]() | docs/wiki/assets/images/voice_roadmap_best_practices_faq_dev.png |
| Voice model catalog | ![]() | docs/wiki/assets/images/voice_model_catalog_hf_access.png |
| v5.78 3D/MCP/cloud/logic overview | ![]() | docs/wiki/assets/images/v578_3d_cloud_mcp_logic_overview.png |
See docs/V5_8_2_AUTOMATION_WORKFLOWS.md and docs/wiki/33-Automation-Workflows-and-Cooperative-Curation.md.
assistant_model_name and orchestrator_model_name settings.GET/PUT /api/models/assistant-config for saving and reading Assistant/Orchestrator defaults.dataset-assistant.dataset-assistant chat remains available as the no-model fallback; orchestrator placeholders resolve to the configured orchestrator default.See docs/V5_45_CONFIGURABLE_ASSISTANT_ORCHESTRATOR.md.
/api/jobs/cancel plus Jobs-tab buttons to stop queued/running download jobs. Queued downloads are cancelled immediately; running downloads stop cooperatively.model_download worker lane so large downloads do not consume the whole general job pool.run, install, and update scripts now locate a user-level Conda install and activate data-curation-tool automatically.See docs/V5_44_STOPPABLE_DOWNLOADS_CONDA_SCRIPTS.md.
runtime/tag_exports files and reports cached export row counts.See docs/V5_43_DOWNLOAD_QUEUE_RESCAN_VLM_DEFAULTS.md.
This build fixes global dropdown auto-closing during polling, extends model GPU residency controls, adds manual Tag Editor highlight/deselect controls, and routes chat/VLM models such as Gemma 4 E4B IT through real image-aware tag-selection inference instead of the old heuristic-only path.
See docs/V5_42_GPU_TAG_SELECTION_DROPDOWN_FIXES.md.
See docs/V5_41_GPU_PLACEMENT_UNLOAD_CONTROLS.md.
See docs/V5_40_DROPDOWN_MIGRATION_FIXES.md.
See docs/V5_39_MODEL_TAG_REFRESH_FOCUS_FIXES.md.
See docs/V5_38_STATUS_GALLERY_DOWNLOAD_FIXES.md.
/api/models/status and /api/models/load so model downloads, explicit memory loads, lazy loads before inference/chat/tag-selection, annotation model downloads/loads, and training scaffolds all report consistent status.See docs/V5_37_MODEL_LIFECYCLE_STATUS.md.
dct-flexavatar Conda runtime so the upstream Python 3.9 / CUDA 11.8 stack does not overwrite the main tool environment.See docs/V5_31_FLEXAVATAR_INTEGRATION.md. Run python scripts/verify_v531_flexavatar.py for an offline integration check that does not require the large checkpoint or CUDA inference.
See docs/V5_30_POSE_3D_GENERATION_RIGGING.md and docs/V5_30_SAM_SETUP_POINT_PROMPTS.md.
Detection boxes and segmentation masks now behave as persistent, editable layer stacks. Users can select and combine any number of model-generated, manual, Krita-imported, or previously composed layers; reorder, duplicate, hide, lock, rename, recolor, edit, and delete them; and retain the layers for later model runs. Detection supports union, intersection, average, and confidence-weighted composites. Segmentation supports soft-mask-preserving union, intersection, subtract, and XOR plus threshold, feather, and grow/shrink processing. Selected unsaved model previews can be promoted automatically when they are composed with saved layers.
The mask editor now includes brush, eraser, variable size/opacity/hardness, lasso, ellipse, rectangle, magic selection, add/subtract/replace modes, overlay transparency, and undo/redo. Saved edits keep revision/provenance data, and model-only cleanup no longer removes user-edited or composite layers. See docs/V5_28_SPATIAL_LAYER_COMPOSITOR.md.
model.names, YAML/JSON/TXT/CSV sidecars, ONNX metadata, and safetensors metadata, with searchable class lists in Detection and Segmentation.max_det, class filtering, NMS IoU, class-agnostic NMS, TTA, retina masks, and configurable SAM automatic-mask thresholds/crop settings.See docs/V5_27_CLASS_AWARE_SPATIAL_INFERENCE.md for model semantics and workflow details.
/api/spatial/detection/* and /api/spatial/segmentation/* contracts for future orchestration nodes.This build hardens the large booru tag-export path and the install/update scripts.
pyarrow is a required core dependency and is installed through both Conda and pip fallback paths.run.bat / run.sh check required dependencies and call the updater when the existing environment is missing core packages.update.bat / update.sh now install requirements.txt as well as the editable package.DCT_INSTALL_TORCH=auto or cu128.tags.csv.gz import to exceed one million rows, preventing partial exports such as ~119k rows from being accepted as complete.scripts/verify_tag_loader_full_count.py verifies a 1,668,155-row tags.csv.gz import end-to-end.This build focuses on the booru tag dictionary import path. Official tags.csv.gz files with id,name,category,post_count now use a PyArrow-first streaming loader and keep all valid rows, including zero-count rows, so the active dictionary/search tables can exceed 100,000 tags instead of stopping at a small partial count.
The loader also parses tag_aliases.csv.gz and tag_implications.csv.gz using antecedent_name and consequent_name, and parses artists.csv.gz using name plus braced other_names values such as {alias1,alias2}. Alias and implication terms are inserted into the searchable dictionary with alias_target, alias_targets, or implications metadata so the suggestion menu can show corrections and related terms while users type.
The e621/e926 numeric category mapping is explicit: 0=general, 1=artist, 2=rating, 3=copyright, 4=character, 5=species, 6=invalid, 7=meta, 8=lore. The active dictionary, autocomplete search table, and legacy dictionary mirror are rebuilt after import so gallery/editor/comparer coloring and suggestions use the same loaded data.
[tag:name], quoted tags, bare tags, implicit AND, explicit AND/OR/NOT, parentheses, and wildcard tag terms.This build integrates the reusable dataset-curation features from the reference-image finder prototype into the modern FastAPI/HUD application. It adds a Reference Finder tab for one/few-reference character or concept search, duplicate-aware memory, user verification feedback, BBCode/tag-query optimization, manual bbox/polygon/mask annotation helpers, training-set creation, YOLO/caption exports, and training-job script scaffolding.
It also adds a Source Browser tab that can verify/install a local geckodriver, launch Firefox in private mode through Selenium when optional browser dependencies are installed, and stop the controlled browser session.
The always-available backend is a deterministic CPU ColorHash sanity workflow so users can test the full reference-search/verification/query loop without model downloads. OWLv2, SigLIP2, GroundingDINO/SAM, and YOLOE-related rows are exposed as optional model-backed contracts/download targets so support can be expanded model-by-model without changing the UI or database layout.
This build fixes the observed e621 startup-sync failure where a canonical tags export around 69k rows was rejected before alias and implication exports could expand the searchable dictionary. The loader now imports canonical tags first, imports aliases and implications, expands the autocomplete/category dictionary from those relation files, and only then enforces the >100k searchable dictionary guardrail.
tags-YYYY-MM-DD.csv.gz, tag_aliases-YYYY-MM-DD.csv.gz, and tag_implications-YYYY-MM-DD.csv.gz candidates, even when generic fixed filenames exist.post_count > 0, which could reduce a several-hundred-thousand-row tag CSV to a much smaller active-tag subset. Zero-count tags now remain available for category color lookup, autocomplete, implications/aliases, comparison, batch edits, and custom dataset cleanup while still sorting below high-count tags.::<json> path segment.requirements-models-serving.txt so Conda installs stay stable by default.A local-first dataset curation application for building, auditing, tagging, captioning, pruning, augmenting, downloading, and exporting image/video datasets. This modernization replaces the old single-file UI approach with a Conda-first FastAPI backend, a browser-based single-page HUD, a SQLite project database, background jobs, and optional model adapters for auto-tagging, captioning, VLM/ViT inference, embeddings, deduplication, segmentation-assisted workflows, and dataset chat.
nvidia-smi is detected.tags.csv.gz through one long SQLite transaction, insert only canonical profile rows while parsing, and rebuild autocomplete/legacy mirrors with set-based SQL instead of per-row Python inserts.tag_aliases and tag_implications tables with bulk inserts instead of repeatedly updating JSON blobs one row at a time.ffprobe when available and parses generation metadata stored in container/stream tags..txt, .caption, or JSON sidecars are missing./db_exports/, keeps legacy /db_export/ as fallback, discovers dated export links, and imports the newest successful export for tags, tag aliases, and tag implications.name, category, and post_count, while also tolerating equivalent/custom column names. Zero-count tags are skipped for autocomplete.runtime/custom_tags.json plus SQLite autocomplete tables.runtime/tag_exports/, and imports them into the local SQLite search tables..txt tag sidecars can still use the selected booru profile for category colors, autocomplete, implication pruning, and tag ordering after dictionary sync.This build fixes the gallery/category issues reported after v5.3:
.txt, .caption, .json, image.ext.json, and .metadata.json files for the selected media, or the visible page if nothing is selected.{"tags": {"character": [...]}}, explicit {"categories": {"tag": "category"}} maps, flat tag lists, tag dictionaries, captions, descriptions, and rating fields.4 render as character, 3 as copyright, and 1 as artist.This build replaces the earlier placeholder/scaffolded tag-HUD work with visible, tested controls:
runtime/custom_tags.json.× deletion.Run from Anaconda Prompt or Miniconda Prompt:
install.bat
run.bat
The default installer uses this behavior:
DCT_INSTALL_TORCH=auto by default.nvidia-smi is found, CUDA 12.8 PyTorch wheels are installed.DCT_INSTALL_TORCH=cpu to force CPU PyTorch.DCT_INSTALL_TORCH=skip to skip PyTorch.For a CUDA reinstall inside the Conda environment:
install_torch_cuda128.bat
verify_gpu.bat
chmod +x install.sh run.sh
./install.sh
./run.sh
CUDA helper:
./install_torch_cuda128.sh
./verify_gpu.sh
conda env update -f environment.yml --prune
conda activate data-curation-tool
python -m pip install -e .
python run.py --host 127.0.0.1 --port 7865 --open-browser
Open the local URL printed in the terminal. By default, the app uses:
http://127.0.0.1:7865
× inside a tag chip to delete it.options.model_id or a local model path.nvidia-smi even when torch is not importable yet.torch.cuda.is_available() when torch is installed.The Assistant tab lets the user talk to the selected dataset/media context.
Supported modes:
For model-backed chat, install torch and provide a local path or Hugging Face model id in the HUD model-id field.
Supported source adapters:
Downloader behavior:
.download.json metadata sidecars for traceability.;;;.parameters, ComfyUI prompt/workflow JSON, NovelAI-style metadata/stealth PNG payloads, Fooocus/Civitai JSON comments, video container tags exposed through ffprobe, and safetensors LoRA headers.runtime/
app.db
settings.json
thumbnails/
presets/
downloads/
exports/
models/
hf/
local/
outputs/
The runtime folders are created on first launch and are ignored by git.
python run.py --host 127.0.0.1 --port 7865
python run.py --runtime ./runtime --models ./models --open-browser
python run.py --reload
GET /api/health — health check.
POST /api/system/pick-folder — open native local folder picker.
GET /api/system/devices — detect CPU/GPU/torch devices.
POST /api/datasets/import — import a local folder as a dataset.
POST /api/datasets/import-many — import multiple local folders as one background job.
GET /api/datasets — list datasets.
GET /api/media — gallery/filter page.
GET /api/media/{id} — media metadata.
GET /api/media/{id}/file — raw media file.
GET /api/media/{id}/thumbnail — thumbnail.
PUT /api/media/{id}/tags — replace visible ordered tag string.
POST /api/tags/bulk — bulk tag operations.
POST /api/tags/prune — tag implication pruning.
POST /api/models/run — run model inference as a background job.
POST /api/models/chat — chat with the dataset assistant, local LLM, or local VLM.
GET /api/downloads/sources — list compatible downloader adapters.
POST /api/downloads/run — run direct or preset downloads.
GET /api/jobs — list jobs.
GET /api/jobs/{id} — inspect job status.
POST /api/augment/run — run augmentation as a background job.
POST /api/export/run — export dataset assets/manifests.
GET /api/metadata/sources — list embedded metadata parser capabilities.
POST /api/metadata/extract-now — extract/apply metadata immediately.
POST /api/media-tools/video/extract-frames — queue frame extraction from selected videos.
POST /api/media-tools/video/extract-audio — queue audio extraction from selected videos.
POST /api/media-tools/audio/recording — save browser-recorded audio.
GET /api/krita/plugin — download the optional Krita bridge plugin zip.
POST /api/database/query — execute read-only SQL.
conda activate data-curation-tool
python -m pip install -e .
pytest
python -m compileall data_curation_tool
The frontend is plain modern browser JavaScript so it can run offline without Node, npm, or a bundler. A future Tauri/Electron shell can wrap the same backend and static HUD without changing the API.
GPL-3.0-or-later.
This pass adds a Media Tools workflow without turning the application into a ComfyUI node pack. The reusable parser logic is integrated as normal backend services so datasets can be curated directly inside the local web application.
The Media Tools tab can extract tags, tag strings, captions, LoRA references, and prompt/settings text from supported image/video metadata sources, including:
parametersffprobeMetadata extraction has non-destructive preview behavior by default. When requested, extracted tags/captions can be applied to selected media while preserving the existing tag-order/category system.
Selected videos, or external video paths, can be decoded to high-quality PNG frames at a user-selected FPS or every-N-frames interval. PNG is the default output format to avoid adding another JPEG-style lossy encode after video decoding. The extraction job can optionally attach generated frames back into the current dataset.
Videos can have audio streams extracted to WAV/FLAC/M4A/MP3 for future audio-dataset workflows. Browsers that support MediaRecorder can also record custom audio clips from the Media Tools tab and save them to the local runtime recording folder.
The Krita bridge exports selected images plus sidecars into an edit package with a manifest. Users can open the exported image in Krita, save an edited copy, and import that edited image back into the source dataset while preserving tags and captions when requested.
This pass integrates reference-image dataset curation workflows into the modern FastAPI/HUD application.
The Reference Finder tab can register a target character/object, attach one or more reference images, and scan selected media, an active dataset, or an external folder. A CPU-only ColorHash verifier is always available for smoke tests and light local matching. Optional OWLv2/SigLIP2-style detector/verifier pipelines are represented in the model catalog and service contracts so model-specific adapters can be enabled as dependencies and weights are installed.
Search results can be marked correct, incorrect, or uncertain. The app stores verification memory and can evaluate BBCode/tag-style queries such as [tag:blue_hair] AND NOT [tag:group] against known positives/negatives. This helps users discover better tag queries before downloading, filtering, or building a training set.
The tool now stores bbox, polygon, and mask-style annotation records. It can create query-derived training sets and export YOLO detection/segmentation folder structures or caption JSONL files for downstream training workflows.
A local Firefox/geckodriver source browser tab was added for authorized browsing/review workflows. It can install/verify geckodriver, launch Firefox in private mode by default, and stop the local browser session from the HUD.
The current build includes a new Reference Finder tab for one/few-reference image search, verification feedback, BBCode-style tag-query evaluation, annotation primitives, training-set creation, YOLO export, caption JSONL export, and training script scaffolding. It also includes a Source Browser tab for Firefox/geckodriver status, local geckodriver installation, private-mode Firefox launching, and browser shutdown.
The built-in demo_colorhash reference pipeline is available immediately as a no-model sanity backend. OWLv2, SigLIP2, Florence-2, Grounding DINO, SAM2, and YOLO/YOLOE are represented in the model catalog as downloadable/staged integration points so model-specific adapters can be completed incrementally without breaking startup on machines that do not have those optional dependencies installed.
The tag dictionary importer now uses PyArrow first for booru-style tags.csv.gz files with id,name,category,post_count, then falls back to the built-in Python CSV path for custom files. It also imports tag_aliases.csv.gz, tag_implications.csv.gz, and artists.csv.gz as separate export roles so tag suggestions can surface alias targets, implication targets, and artist alias corrections while the user types.
The e621/e926 numeric category mapping is now explicit:
{"0":"general","1":"artist","2":"rating","3":"copyright","4":"character","5":"species","6":"invalid","7":"meta","8":"lore"}
The active profile dictionary, autocomplete/search table, and legacy mirror are rebuilt from the same loaded data so category coloring and suggestions stay consistent across the gallery, tag editor, comparer, batch tools, and assistant tag-selection workflows.
If the computer/app is stopped while a very large DB-export import is running and startup reports database disk image is malformed, run:
Windows:
repair_database.bat
Linux/macOS:
./repair_database.sh
The repair script does not delete files permanently. It moves runtime/app.db, runtime/app.db-wal, and runtime/app.db-shm into runtime/corrupt_databases/<timestamp>/ and lets the app create a clean database at next startup.
This build adds a startup SQLite quick-check. If runtime/app.db is malformed, the app automatically moves app.db, app.db-wal, and app.db-shm into runtime/corrupt_databases/<timestamp>/ and creates a fresh database instead of crashing.
The tag DB-export importer now stages large tag dictionaries under a temporary source first, validates the row count, and only then atomically promotes the staged rows to the selected profile. It also removes unsafe PRAGMA synchronous=OFF usage from tag imports.
For an existing malformed database, use repair_database.bat or ./repair_database.sh to quarantine the database files manually before startup.
The Annotation Editor includes first-class bbox, mask, 2D pose, 3D pose, and animation-pose dataset controls. SAM/SAM-HQ/SAM2, YOLO detection/segmentation/pose, custom local YOLO/SAM-style checkpoints, VLM/API proposal routes, and pose dataset contract rows are exposed in the model catalog. Optional heavy annotation dependencies can be installed with install_annotation_models.bat or install_annotation_models.sh.
This build improves the annotation workflow with first-class dependency installation, on-page annotation model downloads, load/validate/unload controls, additional YOLO11 detection/segmentation/pose rows, a lightweight 3D pose/bone viewer, a Blender bridge plugin, annotation deletion/loading into draft, and richer gallery playback for image, animated, video, and audio media.
For annotation model runtimes, use the Annotation Editor button Install Annotation Dependencies or run:
install_annotation_models.bat
Then use Download Weights, Load / Validate, and Preview Proposal or Generate + Save from the Annotation Editor.
This build removes the no-model deterministic preview fallback from the annotation workflow. Preview and Generate + Save now only create proposals when a selected runnable model returns actual model output, or when the user manually draws/saves an annotation. Missing optional dependencies, missing checkpoints, unsupported SAM2/SAM-HQ adapter rows, and zero-detection model runs return structured errors with zero proposals instead of fake center boxes/masks.
The Annotation Editor now displays this behavior in the HUD and includes tests proving that no-model preview/save cannot create fake annotations.
dataset-assistant.segment-anything-hq and exposes it in the annotation dependency installer.sam2 runtime is installed.See docs/V5_35_METADATA_MODEL_CHAT_AUDIT.md.
docs/wiki/27-3D-Generation-MCP-Cloud-and-Booru-Logic.md.The Dataset Pipeline tab prepares branch datasets for external training tools without mutating global originals. It can generate caption/tag rule packets and model/VLM prompts for LoRA, IC-LoRA, ControlNet, and embedding workflows; evaluate branch readiness; dry-run/apply deterministic cleanup to branch-local sidecars; export trainer manifests/config stubs for tools such as Kohya SS, OneTrainer, Diffusers scripts, LTX Trainer, ComfyUI training nodes, cloud trainers, or future source-manifest/webscraper bridges; and package 3D assets for Blender/ZBrush/MeshLab/slicer handoff. See docs/wiki/29-Dataset-Pipeline-Training-Prep-and-3D-Print-Handoff.md.
This build adds RedRocket Hydra 3.5 as a first-class tagger/rating classifier across Models, Tag Editor, Compare, Batch Tags, annotation quick-run cards, and prediction/tag-selection surfaces. Hydra can run locally through the downloaded repo-native inference.py path or remotely through service.py by setting options.hydra_service_url. Remote Devices can now start Hydra service processes, plan model-run shards, and dispatch tagger/model inference to configured worker APIs. Dataset Pipeline and Pipeline Prep also include FLUX.1 Dev/Schnell/Kontext/Fill/Depth/Canny/Redux plus Chroma/FLUX-tuned caption-rule targets. See docs/wiki/30-Hydra-3-5-FLUX-Chroma-and-Remote-Tagger-Offload.md.
This release adds the legacy/local image taggers from the original model configuration into the Models catalog, including Thouph EVA02-CLIP 7704, Thouph EVA02 ViT-Large 448 8046, and Thouph Experimental EfficientNetV2-M 8035. These models use a shared legacy adapter that preserves their original preprocessing, thresholds, ONNX/PyTorch runtime choices, tag metadata ordering, placeholder output handling, and e621 alias/implication cleanup. The Tag Dictionaries tab also now includes a profile-aware tag/caption translator for converting between booru profiles or caption formats, with optional local/cloud LLM/VLM handoff for uncertain mappings. See docs/wiki/31-Legacy-Taggers-and-Tag-Caption-Translation.md.
Ports standalone graph-editor concepts into the integrated Agentic Graph Editor while keeping the existing dark/neon canvas style.
Adds multimodal input nodes, bundle/context nodes, model-call nodes, supervisor nodes, external-tool nodes, event-console support, browser search/open nodes, port connections, pan/zoom, edge deletion, and flow animation.
Adds browser MCP entries for default browser, Edge, Chrome, Firefox, Chromium, and Tor Browser. Browser MCP actions are visible/user-approved handoffs, not hidden scraping.
See docs/V5_8_10_AGENTIC_GRAPH_BROWSER_MCP.md and docs/wiki/40-Agentic-Graph-Editor-Standalone-Port-and-Browser-MCPs.md.
v5.8.11: fixes tab scroll preservation and makes migration jobs resume the Dashboard startup-maintenance progress indicator after a cancelled first-run tag sync.
Adds live startup progress during migration, an Attention Visualizer tab for Grad-CAM/CAM/U-Net/t-SNE/cross-attention contracts, and deeper standalone graph-editor compatibility.
reg_token.See docs/V5_8_16_GRAPH_PALETTE_PREDICTION_REFRESH_EVA_FIXES.md.
This update fixes the Agentic Graph Editor interaction layer, migration-finalization progress, and the post-100% frontend hydration stall. The graph canvas now supports background drag panning, cursor-centered wheel zoom, right-click node selection menus, port-based node connection, node context menus, and smoother direct-manipulation updates without replacing the existing dark/neon visual theme. Manual migration progress is also remapped so the raw file-copy phase no longer shows as 100% while reconciliation and post-migration tag/model checks are still running. The browser now renders dashboard essentials first and hydrates optional catalogs in the background while the Dashboard startup-maintenance circle displays a frontend_hydration phase.
See docs/V5_8_17_GRAPH_CANVAS_AND_MIGRATION_FINALIZATION.md.
See docs/V5_8_20_PARALLEL_MIGRATION_AND_FIRST_RUN_SYNC.md and docs/wiki/50-Parallel-Migration-and-First-Run-Tag-Sync.md.
attn_pool, head_drop, and pos_drop.See docs/V5_8_25_EVA_ATTENTION_POOL_AND_LIVE_REFRESH_FIXES.md and docs/wiki/55-EVA-Attention-Pool-and-Live-Refresh-Fixes.md.
onnxruntime-gpu so ONNX taggers can use CUDA providers after running the updater.See docs/V5_8_26_SCROLL_AND_LEGACY_ONNX_GPU_FIXES.md.
Memory guard, assistant model tools, and Tag Editor tag pruning fixes.
Python
74.9%
JavaScript
23.0%
CSS
1.3%