深度Danbooru标签辅助工具。用于查找新标签的助手。

v1.4.0 2023-05-16 23:11 UTC

This package is auto-updated.

Last update: 2024-09-18 01:38:33 UTC


README

基于KichangKim的DeepDanbooru的AI多标签图像分类系统的基于Web的辅助应用。

screenshot 实时功能生产服务器,使用danbooru用户名和API密钥登录.
请注意:所选和提交的标签将被添加到Danbooru中。.
您可以在个人资料页面创建和删除API密钥: https://danbooru.donmai.us/profile。有关danbooru API的更多信息,请参阅: https://danbooru.donmai.us/wiki_pages/help:api.

数据可用性

我们使用KichangKim发布的4个RESNET模型,在阈值0.100下,对Gwern的danbooru2020 SFW数据集中的图像进行了预计算,使用Gwern的danbooru2020 SFW数据集。总共使用4个模型对3,227,713张图像进行了分类,产生了12,910,852个标签预测字符串。数据可在发布中找到。

安装

您可以通过composer安装它,也可以通过下载ZIP文件安装。

需求

  • Web服务器(已在Apache 2.4上测试)
  • PHP 8.0
  • php8-curl

可选

  • ImageMagick
  • 建议但不是必需的:将您的Web服务器配置为以public/作为webroot提供服务。

Composer

composer create-project ramsterhad/ddta-project .

ZIP

下载最新的deepdanbooru标签辅助ddta.zip包,并将其解压缩到您的Web服务器的目标目录中(例如,apache: /var/www/html/)。

wget https://github.com/ramsterhad/deep-danbooru-tag-assist-app/releases/download/v1.4.0/ddta.zip
unzip v1.4.0.zip
chmod -R 777 cache tmp

配置

Deepdanbooru标签辅助工具查询可通过https://deepdanbooru.donmai.us/访问的TensorFlow模型评估器服务器(TFMES)。参数是 ?url= 和 &min_score=,例如:https://deepdanbooru.donmai.us/?url=https://cdn.donmai.us/360x360/6e/8e/6e8e3f6c38f1e9b2e2c531943547e39e.jpg&min_score=0.5 为了适应DDTA的配置,请修改.env文件或创建.env.local,以防止更新覆盖您的配置。

danbooru_api_url

Danbooru平台API的默认API域名。目前,仅支持danbooru.donmai.us及其衍生域名。支持使用兼容API的其他*boorus将在未来的版本中添加。URL必须以斜杠结尾。您也可以直接在页面的输入字段中更改整个请求URL。只要会话cookie存在,输入字段就会覆盖环境变量。

danbooru_default_request

Danbooru平台API请求的默认请求URL。在此过程中,此字符串将被附加到配置变量 danbooru_api_url 上: ${danbooru_api_url}.'posts.json?'.${danbooru_default_request}。例如

danbooru_api_url=https://example.com/
danbooru_default_request=bar

becomes:

https://example.com/posts.json?bar

您可以直接在页面上方的输入字段中更改整个请求URL。只要会话cookie存在,输入字段就会覆盖环境变量。

danbooru_user & danbooru_pass

要能够向Danbooru提交新标签,您需要成为注册会员并提供您的API凭证。要创建会话,您需要以用户名和API密钥的形式提供凭证。或者,可以在本地托管ddta时将凭证放置到.env配置文件中。API密钥与您的密码不同,可以在Danbooru的个人资料页面上创建。请参阅他们API手册中的认证部分。

machine_learning_platform_repository_debug

如果设置为true,则不会调用实际的MLP,而是返回定义的示例标签数组。这仅用于测试,不应在生产环境中使用。

tags_min_score

机器学习平台会给标签一个置信度分数。范围从1到0。阈值0.500已经过充分测试。

picture_storage

图片从danbooru下载并临时本地存储,以防将其转发到机器学习平台(MLP)。需要写权限。

limit_for_suggested_tags

限制了建议新标签的复选框。默认情况下,一行包含3列。因此建议使用3的倍数。使用数字键盘,可以切换前9个建议标签的开关。

highlight_color_attributes

突出显示已在Danbooru上存在但也被Deep Danbooru建议的标签,但颜色不同。
示例: hair_yellow <-> hair_orange

tag_suggestion_exclude_list

一个空格分隔的列表,用于排除要建议的标签。
示例: tag_suggestion_exclude_list=tag1 tag2 tag3

debug

激活对Post响应的记录,例如来自danbooru平台的答案。

danbooru API调用示例

Members and anon cannot search for more than two tags at a time. Gold users can search for up to six tags, and Platinum and above users can search for up to twelve tags

Posts are categorized into safe for work (s), questionable (q) and explicit (e)
Safe for work:                        rating:s
Questionable / unrated:               rating:q
Explicit, not safe for work:          rating:e
The api returns posts up until limit=200 or smaller. The default order is ID, but can also be score, favcount, random, etc
Random order:                         order:random
Random safe image:                    https://danbooru.donmai.us/posts.json?limit=1&tags=order:random+rating:s
Random safe image with low tagcount:  https://danbooru.donmai.us/posts.json?limit=1&tags=order:random+rating:s+tagcount:%3C10

Tags are categorized into copyright tags (series name), artist tags, character tags (names), general tags (features), and metatags (features of the file)
Artist tag:                           arttags:<10
General tags:                         gentags:<10
Character tags:                       chartags:<10
Copyright tags:                       copytags:<10
Metatags:                             metatags:<10
Random safe image with <10 gentags:   https://danbooru.donmai.us/posts.json?limit=1&tags=order:random+rating:s+gentags:%3C10

File attributes such as hash, bytes and resolution:
Specific MD5 hash:                    https://danbooru.donmai.us/posts.json?tags=md5:460c5595dcf9b07d58f951d349202d98
Maximum 2 mb:                         filesize:..2M
Minimum 150kb:                        filesize:150kb..
Random safe image <10mb:              https://danbooru.donmai.us/posts.json?limit=1&tags=order:random+rating:s+filesize:..10M
Maximum 5 megapixel:                  mpixels:..5
Minimum 1 megapixel:                  mpixels:1..
Random safe image 10mpixel:           https://danbooru.donmai.us/posts.json?limit=1&tags=order:random+rating:s+mpixels:..10

开发

调试

PHPStorm配置

Run/Debug Configurations::PHP Web Page

Name: localhost

Configuration
Server: Docker (see below)
Start URL: /
Servers

Name: Docker
Host: localhost : Port 80
(yes) Use path mappings

/danbooru/data/www/ -> /usr/local/apache2/htdocs

测试

安装环境

git clone https://github.com/ramsterhad/deep-danbooru-tag-assist-app/ ddta
cd ddta
composer install

PHPUnit

执行所有测试: vendor/bin/phpunit -c tests/Unit/phpunit.xml

执行单个测试: vendor/bin/phpunit -c tests/Unit/phpunit.xml --filter testTransformJsonStringToObject

PHPUnit调试

PHPStorm配置

Run/Debug Configurations::PHP Script

Name: phpunit

Configuration

File: vendor/phpunit/phpunit/phpunit
Arguments: ../../../tests .