genai-tag-db-toolsは、異なるプラットフォーム間でタグ、その翻訳、使用回数、関連性を統一したデータベースとして管理するためのツールセットです。このプロジェクトは、さまざまなソースからタグデータを収集し、整理し、効率的に検索・管理できるようにすることを目的としています。
- タグの検索と管理
- タグの翻訳管理(多言語サポート)
- 異なるプラットフォーム間でのタグ種類の分類
- エイリアスと推奨タグの管理
- 異なるフォーマットでのタグ使用回数の追跡
- タグ統計情報の表示
- CSVファイルからのデータインポート
genai-tag-db-tools/
├── CSVToDatabaseProcessor.py
├── gui/
│ ├── MainWindow.py
│ ├── TagCleanerWidget.py
│ ├── TagRegisterWidget.py
│ ├── TagSearchWidget.py
│ └── TagStatisticsWidget.py
├── main.py
├── README.md
├── requirements.txt
├── tag_search.py
└── tags_v3.db
データベースはSQLiteで実装されており、以下の主要なテーブルで構成されています:
TAGS
: ソースと正規化された形式を含む、ユニークなタグを保存します。TAG_TRANSLATIONS
: 異なる言語でのタグの翻訳を含みます。TAG_FORMATS
: タグの異なるフォーマットまたはソース(例:danbooru、e621、derpibooru)を定義します。TAG_TYPE_NAME
: タグの種類(例:一般、アーティスト、著作権、キャラクター)を定義します。TAG_TYPE_FORMAT_MAPPING
: タグの種類を特定のフォーマットにマッピングします。TAG_USAGE_COUNTS
: 異なるフォーマットでのタグの使用回数を追跡します。TAG_STATUS
: タグのステータス(エイリアスや推奨形式を含む)を管理します。
-
リポジトリをクローンします:
git clone https://github.com/yourusername/genai-tag-db-tools.git cd genai-tag-db-tools
-
必要な依存関係をインストールします:
pip install -r requirements.txt
-
メインアプリケーションを実行します:
python main.py
アプリケーションは以下の主要な機能を提供します:
- タグ検索: キーワード、フォーマット、タイプ、言語などで高度な検索が可能です。
- タグクリーナー: 入力されたタグを正規化し、推奨タグに変換します。
- タグ登録: 新しいタグの追加や既存タグの情報更新ができます。
- タグ統計: データベース内のタグに関する統計情報を表示します。
このプロジェクトは以下の主要なデータソースを使用しています:
- 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タグの日本語翻訳データベース
このプロジェクトはMITライセンスの下で公開されています。詳細はLICENSEファイルを参照してください。
erDiagram
TAGS ||--o{ TAG_TRANSLATIONS : has
TAGS ||--o{ TAG_USAGE_COUNTS : has
TAGS ||--o{ TAG_STATUS : has
TAGS ||--o{ TAG_STATUS : is_preferred_by
TAG_FORMATS ||--o{ TAG_USAGE_COUNTS : has
TAG_FORMATS ||--o{ TAG_TYPE_FORMAT_MAPPING : has
TAG_TYPE_NAME ||--o{ TAG_TYPE_FORMAT_MAPPING : defines
TAG_TYPE_FORMAT_MAPPING ||--o{ TAG_STATUS : defines
TAGS {
int tag_id PK
string source_tag
string tag
}
TAG_TRANSLATIONS {
int translation_id PK
int tag_id FK
string language
string translation
}
TAG_FORMATS {
int format_id PK
string format_name
string description
}
TAG_TYPE_NAME {
int type_name_id PK
string type_name
string description
}
TAG_USAGE_COUNTS {
int format_id PK, FK
int tag_id PK, FK
int count
}
TAG_STATUS {
int tag_id PK, FK
int format_id PK, FK
int type_id FK
boolean alias
int preferred_tag_id FK
}
TAG_TYPE_FORMAT_MAPPING {
int format_id PK, FK
int type_id PK, FK
int type_name_id FK
}