Features:
- Tag-based relationship graph using force-directed layout
- Hybrid weight calculation (frequency + TF-IDF)
- Automatic community detection using Louvain algorithm
- Interactive visualization with ECharts
- Support for Tag and Cluster nodes
- Click to search images by tag
- Top-N filtering to avoid visual clutter
Backend:
- New API endpoint: POST /db/cluster_tag_graph
- Tag weight calculation with configurable alpha
- Category inference (character/style/scene/object)
- Community detection (requires networkx, optional)
Frontend:
- New component: TagRelationGraph.vue
- Switch between Cluster Cards and Tag Graph views
- Interactive graph with drag/zoom/pan
- Node details panel with search functionality
- Stats panel showing tags/clusters/images count
Documentation:
- Added TAG_GRAPH_README.md with usage guide
Co-Authored-By: Claude <noreply@anthropic.com>
- Add environment variable IIB_SKIP_OPTIONAL_DEPS to skip numpy and hnswlib installation
- Provide detailed helpful hints when hnswlib or numpy installation fails
- Include guidance on C++ compiler requirements and pre-built wheel installation
- Add links to related GitHub issues for troubleshooting
- Improve error handling with better Unicode support on Windows
- Skip empty lines and comments in requirements parsing
- Set numpy to >=1.10.0,<3.0.0 (minimum for np.stack function, compatible with Python 3.11 and below)
- Python 3.12 users will automatically get numpy 1.26.0+ due to compatibility
- Add runtime version info for requests, numpy, hnswlib in /version endpoint
- Lock requests to >=2.0.0,<3.0.0 (current: 2.32.5)
- Lock numpy to >=2.0.0,<3.0.0 (current: 2.4.0)
- Lock hnswlib to >=0.0.0,<1.0.0 (current: 0.8.0)
- Add runtime version info for requests, numpy, hnswlib in /version endpoint
- Remove emoji icons (鉁?and 馃殌) from i18n translation strings
- Icons are already displayed in the Vue template, preventing duplication
- Update all language files: EN, ZH-Hans, ZH-Hant, DE
- Add AI-powered tag analysis feature in full-screen context menu
- Analyze prompts using AI to suggest matching custom tags
- Add loading state with spinner during analysis
- Filter out already-added tags to avoid duplicates
- Support i18n for all user-facing messages (EN/ZH-Hans/ZH-Hant/DE)
- Keep system prompts in English for consistency
- Improve authentication error handling
- Add special marker for secret verification 401 errors
- Only trigger password modal for secret verification failures
- Prevent password modal from showing on other 401 errors
- Enhance Topic Search guide
- Add two advantage points highlighting semantic similarity grouping
- Add natural language semantic search capabilities
- Support i18n for new guide content