Skip to content

v2.5.0 - AI Image Tagging with CLIP

Choose a tag to compare

@gotar gotar released this 20 Jan 15:08
· 50 commits to master since this release

🎨 AI Image Tagging with CLIP

WallPicker now features AI-powered semantic tag generation using OpenAI's CLIP (ViT-B/32) model!

✨ What's New

AI Tagging

  • Automatic tag generation for local wallpapers
  • Semantic tags like mountain, sunset, flower, anime, digital art, etc.
  • Auto-tagging queue: Processes untagged images in background (2 concurrent operations)
  • Manual tagging: Click tag button on any wallpaper card
  • Smart search: Find wallpapers by tags with bonus scoring
  • Persistent cache: Tags stored in ~/.cache/wallpicker/tags/
  • Visual feedback: Spinner overlays during generation, flash animation on completion

Tag Display

  • Tags appear below wallpaper metadata in hashtag format: #tag1 #tag2 #tag3 +N
  • Tooltip shows all tags on hover
  • "No tags" indicator for untagged wallpapers
  • Real-time updates after generation

Configuration

Enable in ~/.config/wallpicker/config.json:

{
  "tagger_enabled": true
}

πŸ”§ Technical Improvements

  • Fixed asyncio integration: Proper GTK4 threading with background event loop
  • Fixed wallpaper loading: Resolved startup issues where wallpapers wouldn't display
  • Improved refresh mechanism: Tags update without reloading thumbnails
  • Better error handling: Prevents executor shutdown errors during generation

πŸ“¦ Dependencies

New optional dependency:

  • clip-anytorch - AI image tagging with CLIP model (354MB model download on first use)

Install: pip install clip-anytorch

πŸ“Έ Example Tags Generated

  • 00700_yellowlilly_1680x1050.jpg β†’ flower (89%), photography (6%)
  • Silent_Wall_by_netpirate.jpg β†’ dark, 3d render, white
  • mountain_sunset.jpg β†’ mountain, sunset, scenery, nature

πŸš€ Performance

  • Tag generation: ~3-5 seconds per image
  • Queue processing: 2 concurrent operations
  • No UI blocking: All operations run in background
  • Efficient caching: Tagged images never need re-processing

πŸ“ Full Changelog

See CHANGELOG.md for complete details.


Installation:

  • Arch Linux (AUR): yay -S wallpicker
  • Python (pip): pip install wallpicker
  • From source: See README.md