All Projects → rachmadaniHaryono → iqdb_tagger

rachmadaniHaryono / iqdb_tagger

Licence: MIT license
Search IQDB from CLI

Projects that are alternatives of or similar to iqdb tagger

py-image-search-engine
Python Image Search Engine with OpenCV
Stars: ✭ 37 (+105.56%)
Mutual labels:  image-search
Fergun
An utility Discord bot written in C# using Discord.Net
Stars: ✭ 26 (+44.44%)
Mutual labels:  image-search
img classification deep learning
No description or website provided.
Stars: ✭ 19 (+5.56%)
Mutual labels:  image-search
Trace.moe
Anime Scene Search by Image
Stars: ✭ 3,231 (+17850%)
Mutual labels:  image-search
Person reid baseline pytorch
Pytorch ReID: A tiny, friendly, strong pytorch implement of object re-identification baseline. Tutorial 👉https://github.com/layumi/Person_reID_baseline_pytorch/tree/master/tutorial
Stars: ✭ 2,963 (+16361.11%)
Mutual labels:  image-search
SmartImage
Reverse image search tool (SauceNao, ImgOps, trace.moe, and more)
Stars: ✭ 346 (+1822.22%)
Mutual labels:  image-search
google-this
🔎 A simple yet powerful module to retrieve organic search results and much more from Google.
Stars: ✭ 88 (+388.89%)
Mutual labels:  image-search
PicImageSearch
整合图片识别api,用于以图搜源(以图搜图,以图搜番),支持SauceNAO,tracemoe,iqdb,ascii2d,google(谷歌识图),baidu(百度识图),E-Hentai,ExHentai识图
Stars: ✭ 175 (+872.22%)
Mutual labels:  iqdb
Jina
Cloud-native neural search framework for 𝙖𝙣𝙮 kind of data
Stars: ✭ 12,618 (+70000%)
Mutual labels:  image-search
weapp-saucenao
微信小程序: 识图娘
Stars: ✭ 19 (+5.56%)
Mutual labels:  image-search
Milvus
An open-source vector database for embedding similarity search and AI applications.
Stars: ✭ 9,015 (+49983.33%)
Mutual labels:  image-search
Fast Reid
SOTA Re-identification Methods and Toolbox
Stars: ✭ 2,287 (+12605.56%)
Mutual labels:  image-search
natural-language-joint-query-search
Search photos on Unsplash based on OpenAI's CLIP model, support search with joint image+text queries and attention visualization.
Stars: ✭ 143 (+694.44%)
Mutual labels:  image-search
trace.moe-www
Anime Scene Search by Image
Stars: ✭ 16 (-11.11%)
Mutual labels:  image-search
pupyl
🧿 Pupyl is a really fast image search library which you can index your own (millions of) images and find similar images in milliseconds.
Stars: ✭ 83 (+361.11%)
Mutual labels:  image-search
EfficientIR
人工智障本地图片检索工具 | An EfficientNet based image retrieval tool
Stars: ✭ 64 (+255.56%)
Mutual labels:  image-search
pqlite
⚡ A fast embedded library for approximate nearest neighbor search
Stars: ✭ 141 (+683.33%)
Mutual labels:  image-search
fuzzysearch
A site that allows you to reverse image search millions of furry images in under a second
Stars: ✭ 34 (+88.89%)
Mutual labels:  image-search
MoTIS
Mobile(iOS) Text-to-Image search powered by multimodal semantic representation models(e.g., OpenAI's CLIP). Accepted at NAACL 2022.
Stars: ✭ 60 (+233.33%)
Mutual labels:  image-search
web-image-crawler
Code to download web-images
Stars: ✭ 15 (-16.67%)
Mutual labels:  image-search

IQDB TAGGER

https://travis-ci.org/rachmadaniHaryono/iqdb_tagger.svg?branch=master

Overview

Get result from iqdb.org from CLI using python3.

Feature:

- Written for python3
- iqdb and danbooru.iqdb parser
- Hydrus integration

Usage

Use as Hydrus as cli program

To parse folder of images (e.g. in this example image_folder:) and write tags to text file, use following command:

iqdb-tagger cli-run --resize --match-filter best-match --write-tags --input-mode folder image_folder

Use as Hydrus iqdb script server

  1. Run iqdb-tagger run and note the server address.
To run it on 127.0.0.1 on port 5006, run the following command:
`iqdb-tagger run -h 127.0.0.1 -p 5006`
  1. Import one of the parsing scripts below to Hydrus parsing scripts.
  2. Check the server address and edit it as needed.

IQDB parsing script

[32, "local iqdb", 2, ["http://127.0.0.1:5006", 1, 0, [55, 1, [[], "some hash bytes"]], "file", {"place": "0", "resize": "on"}, [[29, 1, ["link", [27, 5, [[["a", {"data-status": "best-match", "class": "img-match-detail"}, null]], 0, "href", [51, 1, [3, "", null, null, "example string"]], [55, 1, [[], "parsed information"]]]], [[30, 2, ["", 0, [27, 5, [[["li", {"class": "tag-creator"}, null]], 1, "", [51, 1, [3, "", null, null, "example string"]], [55, 1, [[], "parsed information"]]]], "creator"]], [30, 2, ["", 0, [27, 5, [[["li", {"class": "tag-series"}, null]], 1, "", [51, 1, [3, "", null, null, "example string"]], [55, 1, [[], "parsed information"]]]], "series"]], [30, 2, ["", 0, [27, 5, [[["li", {"class": "tag-character"}, null]], 1, "", [51, 1, [3, "", null, null, "example string"]], [55, 1, [[], "parsed information"]]]], "character"]], [30, 2, ["", 0, [27, 5, [[["li", {"class": "tag-general"}, null]], 1, "", [51, 1, [3, "", null, null, "example string"]], [55, 1, [[], "parsed information"]]]], ""]]]]]]]]

Every uploaded and match history can be seen on Front page (in this case http://127.0.0.1:5006).

Using IQDB-tagger with Hydrus API

Set up your hydrus to get the access key, which will be used for this feature.

Install the required hydrus package

pip install https://gitlab.com/cryzed/hydrus-api/-/archive/master/hydrus-api-master.zip

After that you can run the command below. For example to run the command with image tagged as 'thread:cat' on hydrus

# to get tags
iqdb-tagger search-hydrus-and-send-tag --access_key 1234_your_access_key 'thread:cat'
# to get matching urls
iqdb-tagger search-hydrus-and-send-url --access_key 1234_your_access_key 'thread:cat'

Note: hydrus version 349 have default bandwidth of 100 mb data per month, which may raise ApiError when the bandwidth reached.

to fix it, go to services menu -> manage services -> client api and raise your bandwidth limit

Setting Hydrus iqdb script server on NAS

Here is example for Synology DS1817+ with DSM6.1.7 running on an Intel Atom C2538

  1. Make sure SSH is turned on in your control panel
  2. Install python 3 community package: https://synocommunity.com/package/python3
  3. Install pip3
install pip3 with:
sudo -i
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
  1. Install iqdb-tagger
cd /volume1/@appstore/py3k/usr/local/bin
./pip install iqdb_tagger

3.1 Add bin folder to path (optional)

export PATH=$PATH:/volume1/@appstore/py3k/usr/local/bin

That command line above can also be put on ~/.bashrc, so NAS will run it everytime user login.

Installation

Install it with from pypi

$ pip install iqdb_tagger

Or install it manually

$ git clone https://github.com/softashell/iqdb_tagger.git
$ cd iqdb_tagger
# run the command below
$ python setup.py install
# for windows user: to force it using python3 run following command
$ python -3 setup.py install
# or
$ pip install .

If you are in windows and get SyntaxError, check your python version. To install under python3 follow the instruction on this link https://stackoverflow.com/a/18059129/1766261

FAQ

libxml error in Windows

If you are encounter this error on Windows

Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?

Please follow this guide to install lxml: StackOverflow - how to install lxml on windows?

Contributing

To test the program do the following:

$ # install required package
$ pip install -e ".[dev]"
$ cd docs
$ make test

To upload the new version, do the following:

  1. register to pypi and test.pypi
  2. upgrade setuptools. setuptools>=38.6.0 is required to produce a distribution with the new metadata
  3. make a source distribution. command: python setup.py sdist. in this example it will produce dist/iqdb_tagger-0.3.2.tar.gz
  4. install twine>=1.11.0.
  5. upload first to test.pypi. command: twine upload --repository-url https://test.pypi.org/legacy/ dist/iqdb_tagger-0.3.2.tar.gz
  6. if upload success but result is not as intended, change the version with postn-suffix format. fix the program and go to number 5.
  7. if upload sucsess and result is as intended:
  1. check the program version. maybe rolled it back to original if possible
  2. upload it to pypi. command: twine upload --repository-url https://upload.pypi.org/legacy/ dist/iqdb_tagger-0.3.2.tar.gz

this guideline is based on this guide https://dustingram.com/articles/2018/03/16/markdown-descriptions-on-pypi

Licence

This project is licensed under the MIT License - see the LICENSE file for details

Authors

iqdb_tagger was written by softashell and maintained by Rachmadani Haryono

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].