genai-tag-db-tools は、画像生成AIで使用するタグを統合的に管理するためのデータベースツールである。 異なるプラットフォームやフォーマットで用いられるタグ情報を一元的に扱うことが可能となる。
主な目的は以下の通りだ。
- タグとその翻訳、使用頻度、関連性を統合管理
- タグタイプやフォーマットとの関連付けによるフィルタリングや統計分析
- GUIによるタグデータ参照・更新
- CLI経由の起動およびモジュールとして他プロジェクトからの利用が可能
- タグの管理:新規登録、更新、エイリアス設定、推奨タグ設定など
- タグの参照:キーワード検索、翻訳参照、使用回数やタイプ・フォーマット別の統計表示
- GUIの提供:CLIコマンドからGUIを起動し、直感的にタグデータベースを閲覧・更新
- モジュール機能の提供:他プロジェクトからインポートし、データベース操作やタグ管理ロジックを活用可能
- Python 3.12以上
- Windows 11対応(他OSは未検証)
-
仮想環境の作成(任意)
py -3.12 -m venv venv venv\Scripts\Activate.ps1
-
genai-tag-db-tools
のインストールpip install genai-tag-db-tools
またはGitHubリポジトリから直接インストール
pip install git+https://github.com/NEXTAltair/genai-tag-db-tools.git
pip uninstall genai-tag-db-tools
インストール後、以下のコマンドでGUIを起動可能。
genai-tag-db-tools
またはPythonモジュールとして実行
python -m genai_tag_db_tools
genai_tag_db_tools
をインポートし、データベース操作やタグ管理機能を他プロジェクト内から利用できる。
from genai_tag_db_tools import some_module
genai-tag-db-tools/
├── genai_tag_db_tools/ # メインパッケージ
│ ├── data/ # データ管理
│ │ ├── migrations/ # DBマイグレーション
│ │ ├── tags_v3.db # タグデータベース v3
│ │ ├── tags_v4.db # タグデータベース v4
│ │ └── database_schema.py
│ ├── db/ # データベース操作
│ ├── gui/ # GUI関連
│ │ ├── designer/ # UI定義ファイル(.ui/.py)
│ │ ├── widgets/ # 各種ウィジェット
│ │ └── windows/ # メインウィンドウ
│ ├── services/ # アプリケーションサービス
│ ├── utils/ # ユーティリティ
│ └── main.py # エントリーポイント
├── docs/ # ドキュメント
├── tests/ # テストコード
│ ├── gui/ # GUIテスト
│ ├── unit/ # ユニットテスト
│ └── resource/ # テストリソース
├── tools/ # ツールスクリプト
├── pyproject.toml # プロジェクト設定
└── README.md
主にSQLiteを用いてタグデータを管理する。 以下はエンティティとリレーションを示したER図。
erDiagram
TAGS ||--o{ TAG_TRANSLATIONS : has
TAGS ||--o{ TAG_STATUS : has
TAGS ||--o{ TAG_USAGE_COUNTS : tracks
TAG_FORMATS ||--o{ TAG_STATUS : defines
TAG_FORMATS ||--o{ TAG_USAGE_COUNTS : tracks
TAG_TYPE_FORMAT_MAPPING ||--o{ TAG_STATUS : maps
TAG_TYPE_NAME ||--o{ TAG_TYPE_FORMAT_MAPPING : references
TAGS {
int tag_id PK "primary key"
string source_tag
datetime created_at
datetime updated_at
string tag
}
TAG_TRANSLATIONS {
int translation_id PK "primary key"
int tag_id FK "references TAGS(tag_id)"
string language
string translation
datetime created_at
datetime updated_at
}
TAG_FORMATS {
int format_id PK "primary key"
string format_name
string description
}
TAG_TYPE_NAME {
int type_name_id PK "primary key"
string type_name
string description
}
TAG_TYPE_FORMAT_MAPPING {
int format_id PK, FK "references TAG_FORMATS(format_id)"
int type_id PK "part of composite key"
int type_name_id FK "references TAG_TYPE_NAME(type_name_id)"
string description
}
TAG_USAGE_COUNTS {
int tag_id PK, FK "references TAGS(tag_id)"
int format_id PK, FK "references TAG_FORMATS(format_id)"
int count
datetime created_at
datetime updated_at
}
TAG_STATUS {
int tag_id PK, FK "references TAGS(tag_id)"
int format_id PK, FK "references TAG_FORMATS(format_id)"
int type_id FK "part of mapping"
boolean alias
int preferred_tag_id FK "references TAGS(tag_id)"
datetime created_at
datetime updated_at
}
- TAGS: タグの基本情報
- TAG_TRANSLATIONS: タグ翻訳情報 (TAGSに従属)
- TAG_FORMATS: タグのフォーマット定義
- TAG_TYPE_NAME: タグタイプ定義
- TAG_TYPE_FORMAT_MAPPING: 各フォーマットとタイプを対応付け
- TAG_USAGE_COUNTS: タグのフォーマット別使用回数
- TAG_STATUS: タグの状態(エイリアス、推奨タグなど)を管理
以下のデータソースを参考・利用。
- DominikDoom/a1111-sd-webui-tagcomplete: tags.dbの基となったCSVタグデータ
- applemango氏による日本語翻訳: CSVタグデータの日本語翻訳
- としあき製作のCSVタグデータの日本語翻訳
- AngelBottomless/danbooru-2023-sqlite-fixed-7110548: danbooruタグのデータベース
- hearmeneigh/e621-rising-v3-preliminary-data: e621およびrule34タグのデータベース
- p1atdev/danbooru-ja-tag-pair-20241015: danbooruタグの日本語翻訳データベース
- toynya/Z3D-E621-Convnext: e621 tagger convnext model のタグcsv #TODO: まだ反映させてない
- Updated danbooru.csv(2024-10-16) for WebUI Tag Autocomplete: WebUI Tag Autocompleteのデフォルトのdanbooru.csvはやや古くなっているようなので、2024年10月16日時点での新しいデータに更新しました。#TODO: まだ反映させてない
本プロジェクトはMITライセンス下で公開している。詳細はLICENSEを参照。