Skip to content

tauraloke/tegownitsa

Repository files navigation

Tegownitsa main workflow

GUI for a image tag manager.

Now you can put your image collection in order... Or not.

How to use

  • Import images via actions in the menu File.
  • Find and remove low-dimensional duplicates.
  • Scan images and find them by a recognized text if you remember it.
  • Lurk tags, mark tags by your own hands or choose smooth tips of a neural net.
  • Find images by tag net. You can use pseudonamespaces like in_url:... (find images with linked urls), in_title:... (find images with titles of linked urls), in_filename:... (find by original filename), in_reco:... (find by recognized text), fresh:15 (find images created latest 15 minutes), limit:100 (get a limited image set), limit:no (get images without a limit).
  • Find remote sources of an image by this application.
  • Scanning and tag lurking are batch operation. These ones operate current file instead a query files if you have selected a file.
  • You can edit tags after a right click.
  • Export images by a right click on an image and copying to a clipboard.
  • Great! Now you have remembered the image you want... Perhaps.

Requirements

Comfortable

  • 1.4+ Gb free disc space (SSD)
  • 16 Gb RAM
  • i7

Minimal

Unknown.

Install

Build

Linux, and Windows 7+ are supported (64-bit only).

Linux

  • Clone repo

  • npm install

  • npm run dist

Windows

Only windows environment (due to sharp package).

  • Clone repo

  • npm install

  • npm run dist


Release

  • Update a version and create a new tag by npm run release.

  • Build linux and windows dists (see above).

  • Upload *.Appimage, latest-linux.yml; *.exe, latest.yml, *.exe.blockmap to Github by the uploader "creating new release".

New version will be downloaded silently after a next launch of the app and applied after window' exit.


Dev

Clone the repo. Then

npm install
npm start

WSL useful trick: run a linux desktop application via WSL2 + VcXsrv.


Third-party resources

  • Interface

    • Icons are generated by Midjourney neural network so these ones are published under Creative Commons Noncommercial 4.0 Attribution International License due to ToS.
    • Electron is a GUI framework for fast prototyping, MIT license. Current application based on electron-boilerplate, MIT license.
    • VueJS is a frontend framework. MIT license.
    • Vuetify is an UI framefork for Vue applications. MIT license.
    • Vue18n for localizations. MIT license.
  • API

    • IQDB is independent image search engine and using to download tag data. We recommend do not commit requests by this application too often. Default timeout range in application is 30-60 seconds now.
    • Bunch of boorus. You can't download tags from a booru if this one is blocked. Default timeout range is 30-60 seconds.
    • Fuzzy is SQLite library using for duplicate detection by a hamming distance between perceptive hashes of images. MIT license.
    • Sharp is NodeJS module for image transformation, Apache 2.0 license.
    • Tesseract OCR engine for extracting textes from images for better indexing, Apache 2.0 license.
    • TensorflowJS is a ML library adapted for JavaScript, Apache-2.0 license.
    • Autotagger is a project to predict tags on anime images. You can see online demo. MIT license.

How you can help

  • This bundle is very large. There is a big potential to compress package by cutting unusable libraries. BTW experiements with Webpack and Tesseract, Sharp, TensorflowJS are unseccuessful yet.
  • Suggest a translation to other languages. You can find localization files in the folder <root>/src/locales/.

Next goals

  • Adjust HTML and styles in the application.
  • Move Tesseract language list to settings.
  • i18n.
  • Make job interface for scanning and tag search.
  • Add Saucenao API requests with a private token.
  • Optimize tag extraction by replacing scraping HTML to JSON API if possible.
  • Try to add tag prediction like Autotagger.
  • Refine search interface for tags and other texts of images.
  • Mark requested tag sources of a file as visited to prevent double requesting.
  • Add tag extraction when a file imported by URL.
  • Add proxy options and requesting tags with proxy.