Commit Graph

362 Commits (5e061010b836e40d8e7f77ff73ea30e5f039ed4b)

Author SHA1 Message Date
zanllp 5e061010b8 feat: add tips carousel component with 10 multilingual tips
- Add TipsCarousel component with random shuffling (Fisher-Yates)
- Display 10 tips in 4 languages (zh-hans, en, zh-hant, de)
- Tips include filename uniqueness, batch operations, shortcuts, AI clustering, fuzzy search regex, walk mode, workspace snapshots, auto-tagging, performance optimization, and AI agent integration
- Integrate TipsCarousel into TagSearch and SubstrSearch pages
- Auto-rotate every 10 seconds with smooth fade transitions
- Support dismissing warning tips via localStorage
- Compact horizontal layout for minimal space usage

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 22:34:24 +08:00
zanllp 57a811e8a1 docs: reorganize skill documentation and extend URL scheme
- Move agent-guide.md to references/agent-patterns.md
- Create references/search-strategies.md for advanced search techniques
- Add Quick Links section to SKILL.md for better navigation
- Extend fuzzy-search pane to support pre-filled search parameters
  - Add initialSubstr, initialIsRegex, initialPathOnly props
  - Add initialMediaType filter and autoSearch control
- Update queryActions.ts to map URL props to component props
- Make search API parameters optional (regexp, cursor, folder_paths)
- Add ai-agents.md and ai-agents-zh.md documentation
2026-02-22 13:24:51 +08:00
zanllp 2e1562d321 fix: scroll to top when entering new folder in fixed mode
In scanned-fixed mode, stack.length is always 1 since openNext replaces
the entire stack instead of pushing. The existing watch on stack.length
wouldn't trigger scroll because v === lv is always true.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-17 21:23:28 +08:00
zanllp c869860b89 chore: rename button label to 'AI Organize' for all languages
- zh-hans: 智能整理 -> AI整理
- zh-hant: 智能整理 -> AI整理
- en: Smart Organize -> AI Organize
- de: Smart Organize -> AI Organize

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-17 17:29:35 +08:00
zanllp fcc3b66767 feat: add smart organize feature with AI-powered file organization
- Add smart organize feature that groups similar images based on prompt semantics
- AI generates meaningful folder names in user's preferred language
- Preview before action: review proposed organization, skip or adjust as needed
- Background processing for large folders
- Support move or copy, configurable min cluster size, include subfolders option

Backend changes:
- Add organize_files.py with job management and file operations
- Add recursive parameter to embedding and clustering APIs
- Default recursive=true for Topic Search (backward compatible)
- Default recursive=false for Smart Organize (first-level only)
- Update database on file move to preserve tags

Frontend changes:
- Add SmartOrganizeConfigModal for configuration
- Add OrganizeJobsPanel for progress tracking
- Add OrganizePreview for reviewing and confirming
- Add smart organize button to address bar
- Add i18n translations for zh-hans, zh-hant, en, de

Documentation:
- Update README.md and README-zh.md with feature description
- Update change.log.md with screenshots and video demo

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-17 17:14:02 +08:00
zanllp e23f6c0c98 feat(settings): add auto update index toggle
- Add autoUpdateIndex setting to global settings (enabled by default)
- When disabled, show manual update prompt instead of auto-updating expired index
- Add feature tip alert shown on first use
- Localize new strings in all languages (en, zh-hans, zh-hant, de)
- Rebuild vue dist assets with updated code
2026-02-08 21:26:55 +08:00
zanllp 0520224bbc build 2026-02-01 20:18:48 +08:00
zanllp 9fed8fa256 Interface adjustments 2026-02-01 16:02:28 +08:00
zanllp 214b1c9b67 : optimize UI styling and CSS 2026-01-30 00:36:47 +08:00
zanllp 1d9e65f835 feat: add EXIF metadata display support 2026-01-29 23:49:49 +08:00
zanllp 23f2715e75 chore: update dist build 2026-01-26 01:42:54 +08:00
zanllp bb7482f17c feat: update tiktok info panel and dist 2026-01-25 20:09:55 +08:00
zanllp a3190fc9b1 chore: update dist build assets 2026-01-25 19:35:40 +08:00
zanllp 40b8361ed0 feat: Add tag name validation and cleanup
- Add tag name validation in Tag.get_or_create method
- Chinese names: max 16 characters
- Other languages: max 8 words
- Return error tags with uppercase English names when validation fails
- Ensure error tags are created through get_or_create to maintain database consistency
- Clean up database: removed 487,938 non-custom tags, keeping only 12 custom tags
2026-01-22 01:29:53 +08:00
zanllp 4f4d766b73 fix: include hyphen in LoRA tag model name matching 2026-01-21 23:28:20 +08:00
zanllp 0b26b115ab feat: add option to extract all ComfyUI prompts at once
- Add IIB_COMFYUI_EXTRACT_ALL_PROMPTS environment variable
- When enabled, extract all CLIPTextEncode prompts instead of following KSampler chain
- Note: All prompts will be merged into positive prompt field
2026-01-18 16:37:40 +08:00
zanllp d0e916f920 Update: cache banner and type declarations 2026-01-18 14:20:06 +08:00
zanllp 7b2af32b10 feat: enhance topic search with keyword limit, irregular layout, and cache banner
- Add keyword count limit (default 600) for Tag layer to improve performance
- Implement irregular node layout with random perturbations
- Add layer spacing based on adjacent layer widths for consistent gaps
- Add cache result banner with collapse/expand functionality
- Add streaming response utility for LLM API calls
- Update i18n translations for new cache banner texts
- Optimize tag graph: increase max tags to 500, add level-2 tiered requirements
- Fix keyword deduplication and null handling in tag graph
2026-01-18 01:29:25 +08:00
wuqinchuan 6c16bd0d82 perf: optimize tag graph response and surface LLM failures 2026-01-11 20:42:14 +08:00
wuqinchuan 3771de5834 feat: enhance tag relation graph filtering, fullscreen, and i18n 2026-01-11 18:33:17 +08:00
wuqinchuan 59bef3915e feat: 优化query搜索并加入tag图(去掉max抽象层与d3依赖) 2026-01-11 00:56:58 +08:00
zanllp 38ab17006e Rebuild vue dist assets 2026-01-10 23:14:45 +08:00
zanllp 000da5ad69 Fix downloadFiles function: remove hardcoded URL, improve multiple downloads handling, add error handling 2026-01-04 23:46:25 +08:00
zanllp 810944edf6 rebuild 2026-01-04 01:15:10 +08:00
zanllp ca35b2c956 rebuild 2026-01-03 15:35:22 +08:00
rlabusiness 988bb811ae Fix duplicate auth prompt and mask password input using a proper password field 2026-01-01 17:59:03 +00:00
wuqinchuan dd5663dd89 Revert "feat: experimental natural-language categorization & search (persistent scope, clustering, retrieval)"
This reverts commit d7e2b2f9fc.
2025-12-28 23:16:31 +08:00
wuqinchuan d7e2b2f9fc feat: experimental natural-language categorization & search (persistent scope, clustering, retrieval) 2025-12-28 23:10:13 +08:00
zanllp ae800d6cbc feat: update style 2025-12-15 01:22:10 +08:00
zanllp 4cb3966cd2 feat: style update 2025-12-15 00:59:32 +08:00
zanllp da0082516c feat: add audio file playback support and improve TikTok view
- Add audio file recognition in backend (tool.py) and frontend (file.ts)
- Support audio formats: mp3, wav, ogg, flac, m4a, aac, wma
- Add audio player in TikTok view with starfield background animation
- Add audio modal similar to video modal
- Update file type filter to multi-select checkboxes (image/video/audio)
- Add filename display in TikTok view with Douyin-style bottom gradient
- Add long press to hide/show controls in TikTok view
- Fix audio resource cleanup when closing TikTok view
- Add Audio media type tag in database indexing
- Add i18n translations for audio related strings
2025-12-15 00:22:23 +08:00
zanllp e5413e41f1 feat: optimize random images, improve ComfyUI detection and prompt display
Backend optimizations:
- Refactor get_random_images() using SQLite ORDER BY RANDOM()
- Simplify from 60+ lines to ~20 lines with better performance
- Remove complex multi-cycle index calculations
- Maintain file existence check and auto-cleanup

ComfyUI support:
- Add fallback to 'parameters' field in PNG metadata
- Improve detection for ComfyUI-generated images

Frontend improvements:
- Smart prompt display: auto-detect tag vs natural language format
- Add getTextLength() with Chinese character weight (1 char = 3 letters)
- Refactor isTagStylePrompt() with clear rules:
  * Any tag length > 50  natural language format
  * Average tag length > 30  natural language format
- Natural language prompts shown as paragraphs
- Tag-style prompts shown as badges
- Better support for Chinese/English mixed content

Build:
- Update frontend asset references
2025-11-30 20:50:13 +08:00
zanllp d8ed522996 feat: implement auto-tagging feature with custom tag rules
- Add AutoTagMatcher singleton class for automatic tag application
- Support filtering by multiple fields (prompt, model, sampler, etc.)
- Add frontend UI for managing auto-tag rules in global settings
- Support AND logic for multiple conditions within a rule
- Integrate with image indexing process
- Add natural language vs tag-style prompt detection and rendering
- Include rule descriptions and usage guidance in UI
- Auto-reload rules when updated via API
2025-11-30 19:00:24 +08:00
zanllp 0184e7b1a6 support webm 2025-11-10 22:08:24 +08:00
zanllp dbf6e34ec0 feat(ui): improve TikTok viewer UX
- Add toggle for navigation buttons in global settings
- Add multi-language support for new settings (en, zh-hans, zh-hant, de)
- Improve video display in TikTok view using fit-content
2025-08-24 21:07:35 +08:00
zanllp d928aa4f56 feat: Adjust UI details & build 2025-08-23 16:13:09 +08:00
bupro 198de49e58 feat: Add video tag search and random sort with i18n support
- Added video tag support for enhanced media file handling:
  * Video files can now use tag-based search functionality
  * Added support for reading video generation info from txt files
  * Enhanced EXIF data handling for video media types

- Implemented random sort feature for image grid:
  * Added random sort toggle button with visual indicators (🎲/📅)
  * Supports both random and date-based sorting modes
  * Optimized pagination for random sorting with offset-based cursors

- Complete internationalization support:
  * Added translations for random sort and date sort in all languages
  * Supported languages: zh-hans, en, de, zh-hant
  * Improved UI consistency across language variants

- Backend improvements:
  * Enhanced database queries to support random sorting
  * Added random_sort parameter to API endpoints
  * Improved error handling for video file processing

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-23 00:41:10 +08:00
wuqinchuan 4df86dc1e2 feat: Add media type filter support for search functionality 2025-07-13 20:09:36 +08:00
wuqinchuan 064859171d fix(homepage): support disable random images feature and fix other issues 2025-06-06 22:22:54 +08:00
zanllp c2f67569ed fix i18n 2025-06-03 16:58:55 +08:00
zanllp 1a4ac9bf65 build 2025-06-02 21:15:36 +08:00
wuqinchuan fb68d78f39 feat(file-view): add toggle for TikTok-style file display,enable some experimental features by default 2025-06-02 20:46:22 +08:00
zanllp f9dca3a0eb refactor(stackview): reorder action bar buttons by priority 2025-05-26 21:22:49 +08:00
zanllp f3858cb781 build 2025-05-25 23:54:22 +08:00
zanllp 68b4d96270 build 2025-05-25 23:21:56 +08:00
zanllp 569a61c6d1 build and fix some issue 2025-05-25 23:20:21 +08:00
wuqinchuan dcd4d62c0f feat(video): implement swipeable vertical feed like TikTok 2025-05-25 22:45:53 +08:00
zanllp 68b39c20f8 fix: handle parent window access error in Colab environment 2025-03-13 21:59:45 +08:00
zanllp 0c0716db09 fix 2025-02-23 05:54:05 +08:00
zanllp ea10260756 feat: add a new feature try-my-luck 2025-02-23 04:09:01 +08:00