Skip to main content

DeepDanbooru is AI based multi-label girl image classification system, implemented by using TensorFlow.

Project description

DeepDanbooru

Python GitHub Web

DeepDanbooru is anime-style girl image tag estimation system. You can estimate your images on my live demo site, DeepDanbooru Web.

Requirements

DeepDanbooru is written by Python 3.11. Following packages are need to be installed.

  • Click>=8.1.7
  • numpy>=1.26.4
  • requests>=2.32.3
  • scikit-image>=0.24.0
  • six>=1.16.0
  • tensorflow>=2.17.0
  • tensorflow-io>=0.31.0

Or just use requirements.txt.

> pip install -r requirements.txt

alternatively you can install it with pip. Note that by default, tensorflow is not included.

To install it with tensorflow, add tensorflow extra package.

> # default installation
> pip install .
> # with tensorflow package
> pip install .[tensorflow]

Usage

  1. Prepare dataset. If you don't have, you can use DanbooruDownloader for download the dataset of Danbooru. If you want to make your own dataset, see Dataset Structure section.
  2. Create training project folder.
> deepdanbooru create-project [your_project_folder]
  1. Prepare tag list. If you want to use latest tags, use following command. It downloads tag from Danbooru server. (Need Danbooru account and API key)
> deepdanbooru download-tags [your_project_folder] --username [your_danbooru_account] --api-key [your_danbooru_api_key]
  1. (Option) Filtering dataset. If you want to train with optional tags (rating and score), you should convert it as system tags.
> deepdanbooru make-training-database [your_dataset_sqlite_path] [your_filtered_sqlite_path]
  1. Modify project.json in the project folder. You should change database_path setting to your actual sqlite file path.
  2. Start training.
> deepdanbooru train-project [your_project_folder]
  1. Enjoy it.
> deepdanbooru evaluate [image_file_path or folder]... --project-path [your_project_folder] --allow-folder

Running on Docker

In the container, the dataset is located on the folder /app/model. You can always mount a volume to use a dataset in your local disk.

You'll also need to mount a volume using the folder containing your images, eg:

docker run --rm -it -v /home/kamuri/images/:/app/data kamuri/deepdanbooru evaluate --project-path "/app/model" "/app/data/" --allow-folder

If you do not want to use the dataset included with the image, you can use the image without it. The image is kamuri/deepdanbooru:nomodel

Dataset Structure

DeepDanbooru uses following folder structure for input dataset. SQLite file can be any name, but must be located in same folder to images folder. All of image files are located in sub-folder which named first 2 characters of its filename.

MyDataset/
├── images/
│   ├── 00/
│   │   ├── 00000000000000000000000000000000.jpg
│   │   ├── ...
│   ├── 01/
│   │   ├── 01000000000000000000000000000000.jpg
│   │   ├── ...
│   └── ff/
│       ├── ff000000000000000000000000000000.jpg
│       ├── ...
└── my-dataset.sqlite

The core is SQLite database file. That file must be contains following table structure.

posts
├── id (INTEGER)
├── md5 (TEXT)
├── file_ext (TEXT)
├── tag_string (TEXT)
└── tag_count_general (INTEGER)

The filename of image must be [md5].[file_ext]. If you use your own images, md5 don't have to be actual MD5 hash value.

tag_string is space splitted tag list, like 1girl ahoge long_hair.

tag_count_general is used for the project setting, minimum_tag_count. Images which has equal or larger value of tag_count_general are used for training.

Project Structure

Project is minimal unit for training on DeepDanbooru. You can modify various parameters for training.

MyProject/
├── project.json
└── tags.txt

tags.txt contains all tags for estimating. You can make your own list or download latest tags from Danbooru server. It is simple newline-separated file like this:

1girl
ahoge
...

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

deepdanbooru-1.0.4.tar.gz (22.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

deepdanbooru-1.0.4-py3-none-any.whl (27.1 kB view details)

Uploaded Python 3

File details

Details for the file deepdanbooru-1.0.4.tar.gz.

File metadata

  • Download URL: deepdanbooru-1.0.4.tar.gz
  • Upload date:
  • Size: 22.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for deepdanbooru-1.0.4.tar.gz
Algorithm Hash digest
SHA256 6f023dc3a2fb3b7f612979b5acb5264c2ddcf5720b4769a45f91ebfc6efe047c
MD5 aa9244d4e26254900b046b97a1aafd7b
BLAKE2b-256 890daf54a40ed38d60e6a6e8f9384d01fea518ac29ae98e9cb416fb496e405b5

See more details on using hashes here.

File details

Details for the file deepdanbooru-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: deepdanbooru-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 27.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for deepdanbooru-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 062ca6388e74380e5b8fb3a4b8fb60b5da4949f52c7c993444df8685e42b8e37
MD5 bd1425732c69073efb3286fed688eddd
BLAKE2b-256 7fea8343ac79a32c8792cdd88254195d3d13647e23fe5d5497cd77f2433e29cc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page