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.
-
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
- Python 3.10+
- PyQt6
- numpy
- pandas
- Pillow
- onnxruntime
- huggingface_hub
- piexif
- exiftool installed and in your system PATH
- ffmpeg installed and in your system PATH
All Python dependencies are listed in requirements.txt.
git clone https://github.com/ThesiiNCey/IVTagger.git
cd IVTaggerpython -m venv venv- Windows (cmd):
venv\Scripts\activate- Windows (PowerShell):
venv\Scripts\Activate.ps1- Linux/macOS:
source venv/bin/activatepip install -r requirements.txt- ExifTool: Must be available in PATH
- FFmpeg: Must be available in PATH
python ivtagger.py- Select 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
- Text File: Writes tags to a
.txtfile with the same name as the media - Metadata: Writes tags to the image metadata (EXIF/IPTC/XMP)
- Video Metadata: Writes tags to video metadata (comment field)
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).
- 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.
For questions, feedback, or issues, you can contact me via:
- Email:
social@aimiko.moe - Matrix:
@aiiko:matrix.mochiart.moe
Apache 2.0 License
- ONNX Runtime for fast inference
- Hugging Face for hosting tagging models
- ExifTool for robust metadata handling
- PyQt6 for GUI
