Skip to content

arrifat346afs/Descify

Repository files navigation

Descify

Descify

AI-powered batch metadata generator for images

Tauri React TypeScript MIT License Platform

Overview

Descify is a cross-platform desktop application that generates titles, keywords, and descriptions for images in batch using AI models. Built with Tauri, React, and TypeScript, it streamlines metadata workflows for stock photographers, e-commerce catalogs, and content managers.

Screenshot

Features

AI Integration

  • Gemini (free tier available) and OpenRouter (paid) support -Supports local AI models via LM Studio (optional).
  • Configurable AI prompt templates with variables (${titleLimit}, ${descriptionLimit}, ${keywordLimit}, ${fileName}, ${currentDate})
  • Built-in preset templates for Stock Photo, Product Catalog, and Social Media
  • Create and save custom templates with custom instructions
  • Avoid Words list to exclude specific terms from generated metadata

Processing

  • Batch processing for multiple images at once
  • Sequential mode — process one by one to avoid rate limiting on free/trial API keys
  • Parallel mode — process up to 5 images simultaneously with paid API keys
  • Configurable request delay (0–10s) between AI requests
  • ExifTool integration for embedding metadata directly into image files

Management

  • Secure API key storage (Gemini & OpenRouter)
  • Category tagging and organization
  • Metadata export and embedding

Getting Started

Prerequisites

Installation

git clone https://github.com/arrifat346afs/Descify.git
cd Descify
pnpm install

Development

pnpm run tauri dev

Production Build

pnpm run tauri build

Usage

  1. Configure API Keys — Open Settings and add your Gemini or OpenRouter key
  2. Import Images — Use the Upload button to select one or more images
  3. Select Mode — Choose Sequential (free APIs) or Parallel (paid APIs)
  4. Generate — Click Generate to produce AI-powered metadata
  5. Review & Save — Edit results, save metadata, or export

Tech Stack

Layer Technology
Desktop Shell Tauri 2.x
Frontend React 18 + TypeScript 5.6
Bundler Vite
Styling Tailwind CSS 4 + Radix UI
AI SDK Vercel AI SDK (Google & OpenRouter providers)
State Redux Toolkit
Backend (Rust) Tauri commands for file I/O, ExifTool, and OS integration

Project Structure

Descify/
├── src/                # React application source
│   └── app/            # Application components
├── src-tauri/          # Tauri Rust backend
├── public/             # Static assets
├── img/                # Logo & screenshots
├── scripts/            # Utility scripts
├── package.json
└── vite.config.ts

API Keys

Warning

OpenAI is not supported. The project uses Gemini (free) and OpenRouter (paid).

Service Get Key
Gemini Google AI Studio
OpenRouter OpenRouter

Contributing

Contributions, issues, and feature requests are welcome. Feel free to open a pull request or issue.

License

Distributed under the MIT License. See LICENSE for more information.