Image & Video Tagger
A Python desktop application for automatically tagging images and videos using ONNX models. Supports adding tags to text files, image metadata (EXIF, IPTC, XMP), or video metadata. Built with PyQt6, ONNX Runtime, and ExifTool.
Screenshot

Features
Process images (
jpg,png,webp, etc.) and videos (mp4,mkv,mov,webm)Extract frames from videos for tagging
Supports multiple ONNX tagging models from Hugging Face
Write tags to:
Text files
Image metadata (EXIF/IPTC/XMP)
Video metadata (MP4, WebM)
Customizable thresholds for character/general tags
Option to hide rating tags or prioritize character tags
Extra tags and ignore lists
Recursive folder processing
Live preview of images/frames
Stop button to cancel processing
Requirements
All Python dependencies are listed in requirements.txt.
Installation
1. Clone the repository
git clone https://github.com/ThesiiNCey/IVTagger.git
cd IVTagger2. Create a virtual environment (recommended)
python -m venv venv3. Activate the virtual environment
Windows (cmd):
venv\Scripts\activateWindows (PowerShell):
venv\Scripts\Activate.ps1Linux/macOS:
source venv/bin/activate4. Install dependencies
pip install -r requirements.txt5. Ensure external tools are installed
ExifTool: Must be available in PATH
FFmpeg: Must be available in PATH
Usage
python ivtagger.pySelect a folder containing images or videos
Configure thresholds, output type, extra tags, ignore tags, and model
Click Start
Progress will be displayed in the right panel, along with a live preview
Output options
Text File: Writes tags to a
.txtfile with the same name as the mediaMetadata: Writes tags to the image metadata (EXIF/IPTC/XMP)
Video Metadata: Writes tags to video metadata (comment field)
Models
Available tagging models (loaded from Hugging Face):
wd14-vit.v1wd14-vit.v2wd14-eva02.v3.largewd-v1-4-vit-tagger.v3wd14-vit.v3.large
The model CSV (selected_tags.csv) contains tag names and categories (general, character, rating).
Notes
PNG, JPEG, and WebP images are fully supported for metadata writing.
Video frame extraction uses FFmpeg; large videos may take time.
If using Overwrite Metadata, previous tags are replaced. Otherwise, new tags are appended.
Stop button can be used to abort processing at any time.
Contact
For questions, feedback, or issues, you can contact me via:
Email:
[email protected]Matrix:
@aiiko:matrix.mochiart.moe
License
Apache 2.0 License
Acknowledgements
ONNX Runtime for fast inference
Hugging Face for hosting tagging models
ExifTool for robust metadata handling
PyQt6 for GUI

