How just-a-freshman/vimgfind works
VimgFind is a local AI image-search desktop application. Users add image folders, build or incrementally update a model-specific index, then search with an image or text and refine results with filters. The main path is visible in the sampled search and index controllers; the README documents additional model management, exclusion rules, custom context commands, tray behavior, and automatic updates. Several UI/controller connections and those additional features are represented from the tree and README, since their implementation was not sampled.
Main entry points: search_engine.py Search Engine · settings.py Settings · search_controller.py Search Controller · index_controller.py Index Controller
Components 22
Desktop Application
- Application Entry
main.py - App Controller
controllers/app_controller.py - Main Window
views/main_window.py - Search Page
views/search_page.py - Index Page
views/index_page.py - Search Result Views
views/widgets/preview_canvas.py
Search and Index
- Search Controller
controllers/search_controller.py - Filter Controller
controllers/search_controller.py - Search Engine
core/search_engine.py - Index Controller
controllers/index_controller.py - Multimodal Encoder
core/multimodal_encoder.py - Vector and Name Indexes
core/index_manager.py
Models and Settings
- Model Controller
controllers/model_controller.py - Model Page
views/model_page.py - Settings
config/settings.py - Model Catalog
User Features
- Exclusion Rules
controllers/exclude_controller.py - Context Commands
controllers/menu_controller.py - System Tray
controllers/tray_controller.py - Application Updates
controllers/update_controller.py - General Settings
controllers/setting_controller.py
Other components
- User
Connections 26
- User → Application Entry: launches
- Application Entry → App Controller: creates
- App Controller → Main Window: creates
- User → Search Page: enters query
- User → Index Page: chooses folders
- Search Page → Search Controller: submits query
- Search Controller → Search Engine: runs search
- Search Controller → Filter Controller: applies filters
- Search Controller → Search Result Views: shows results
- Search Engine → Multimodal Encoder: encodes query
- Search Engine → Vector and Name Indexes: queries indexes
- Index Page → Index Controller: requests update
- Index Controller → Search Engine: updates index
- Search Engine → Vector and Name Indexes: writes vectors and names
- Search Engine → Multimodal Encoder: encodes images
- Index Controller → Settings: reads configuration
- Search Engine → Settings: reads model settings
- Model Page → Model Controller: manages models
- Model Controller → Model Catalog: fetches catalog
- Model Controller → Settings: saves model config
- Exclusion Rules → Settings: configures exclusions
- Index Controller → Exclusion Rules: applies exclusions
- Context Commands → Search Result Views: acts on selections
- System Tray → Main Window: controls visibility
- General Settings → Settings: updates preferences
- Application Updates → Model Catalog: checks releases