AI based multi-label girl image classification system, implemented by using TensorFlow.
DeepDanbooru is anime-style girl image tag estimation system. You can estimate your images on my live demo site, DeepDanbooru Web.
DeepDanbooru is written by Python 3.6. Following packages are need to be installed. - tensorflow>=2.3.1 - Click>=7.0 - numpy>=1.16.2 - requests>=2.22.0 - scikit-image>=0.15.0 - six>=1.13.0
Or just use
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
> # default installation > pip install . > # with tensorflow package > pip install .[tensorflow]
> deepdanbooru create-project [your_project_folder]
> deepdanbooru download-tags [your_project_folder]
> deepdanbooru make-training-database [your_dataset_sqlite_path] [your_filtered_sqlite_path]
project.jsonin the project folder. You should change
database_pathsetting to your actual sqlite file path.
> deepdanbooru train-project [your_project_folder]
> deepdanbooru evaluate [image_file_path or folder]... --project-path [your_project_folder] --allow-folder
DeepDanbooru uses following folder structure for input dataset. SQLite file can be any name, but must be located in same folder to
MyDataset/ ├── images/ │ ├── 00/ │ │ ├── 00000000000000000000000000000000.jpg │ │ ├── ... │ ├── 01/ │ │ ├── ... │ └── ff/ │ ├── ... └── my-dataset.sqliteThe 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,
md5don't have to be actual MD5 hash value.
tag_stringis space splitted tag list, like
1girl ahoge long_hair.
tag_count_generalis used for the project setting,
minimum_tag_count. Images which has equal or larger value of
tag_count_generalare used for training.
Project is minimal unit for training on DeepDanbooru. You can modify various parameters for training.
MyProject/ ├── project.json └── tags.txt
tags.txtcontains 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 ...