DeepDanbooru 项目介绍
简介
DeepDanbooru 是一个用于动漫风格角色图像标签估算的系统。用户可以通过其在线实时演示网站上传和估算自己的图像标签。这个系统特别适合那些对动漫界非常感兴趣并希望自动标注图片的人。
环境要求
DeepDanbooru 使用 Python 3.11 编写,需要安装如下的依赖包:
- 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
可以通过执行以下命令从 requirements.txt
文件中安装所有依赖:
> pip install -r requirements.txt
另外,也可以直接使用 pip 安装。
> # 默认安装
> pip install .
> # 携带 tensorflow 包
> pip install .[tensorflow]
如何使用
-
准备数据集:如果没有自己的数据集,你可以使用 DanbooruDownloader 下载 Danbooru 的数据集。
-
创建训练项目文件夹:
> deepdanbooru create-project [your_project_folder]
-
准备标签列表:使用以下命令下载最新的标签(需要 Danbooru 账号和 API 密钥)。
> deepdanbooru download-tags [your_project_folder] --username [your_danbooru_account] --api-key [your_danbooru_api_key]
-
可选 - 筛选数据集:若需使用可选标签进行训练,则应将其转换为系统标签。
> deepdanbooru make-training-database [your_dataset_sqlite_path] [your_filtered_sqlite_path]
-
修改项目配置:编辑项目文件夹内的
project.json
文件,将database_path
设置为实际的 SQLite 文件路径。 -
开始训练:
> deepdanbooru train-project [your_project_folder]
-
享受成果:
> deepdanbooru evaluate [image_file_path or folder]... --project-path [your_project_folder] --allow-folder
数据集结构
DeepDanbooru 使用以下文件夹结构输入数据集。SQLite 文件名可以任意命名,但必须与 images
文件夹位于同一目录中。所有图像文件存放在文件名前两位字符命名的子文件夹中。
MyDataset/
├── images/
│ ├── 00/
│ │ ├── 00000000000000000000000000000000.jpg
│ │ ├── ...
│ ├── 01/
│ │ ├── 01000000000000000000000000000000.jpg
│ │ ├── ...
│ └── ff/
│ ├── ff000000000000000000000000000000.jpg
│ ├── ...
└── my-dataset.sqlite
SQLite 数据库文件需包含以下表结构:
posts
├── id (INTEGER)
├── md5 (TEXT)
├── file_ext (TEXT)
├── tag_string (TEXT)
└── tag_count_general (INTEGER)
图像文件名格式为 [md5].[file_ext]
。tag_string
是一个由空格分隔的标签列表,例如 1girl ahoge long_hair
。tag_count_general
用于项目设定中的 minimum_tag_count
。
项目结构
项目 是在 DeepDanbooru 上进行训练的最小单位,用户可以在其中修改各种训练参数。
MyProject/
├── project.json
└── tags.txt
tags.txt
包含所有估算所需的标签。用户可以自定义生成列表,也可以从 Danbooru 服务器下载最新标签。文件格式为简单的换行分隔。
这个项目为对动漫图片标签自动化感兴趣的用户提供了强大的工具,用户可以通过集成不同的数据集和标签来进行定制化训练。