Loraなどの学習データで無視したいdanbooruのタグを自動で排除するスクリプト

Usage

curl https://rentry.co/danbooru_ignore_tags_py/raw | python - <画像のディレクトリ> [-d <出力先>] [-n]

(別にcurlじゃなく落として使ってもいいけど今後デバッグやら機能追加やらで更新はするかもしれない)
-dはデフォルトではデスクトップ。sourceのディレクトリとdestinationのディレクトリは同じにならないように注意。
-nはテスト実行。タグだけが表示されて実際にコピーは作成されない。

使い方

deepbooruなどで既にタグ付けしてディレクトリ構造も完成している状態にした上で、そのルートもしくはサブディレクトリにignore.txtを置いて走らせる。
サブディレクトリの名前はコアとして必ず入れるタグ(,区切りで複数指定可)にしておく。

ディレクトリ構成の例

./d/ignore.txt
./d/10_arashi/00001.jpg
./d/10_arashi/00001.txt
./d/10_arashi/00002.jpg
./d/10_arashi/00002.txt
./d/10_arashi/ignore.txt
./d/10_hagikaze/00003.jpg
./d/10_hagikaze/00003.txt
./d/10_hagikaze/00004.jpg
./d/10_hagikaze/00004.txt
./d/10_hagikaze, alternate hair/hagikaze, ahoge, yukata, large breasts, carrot, enema, ass, balloon, scat, alternate hair.jpg
./d/10_hagikaze, alternate hair/ignore.txt

そうするとサブディレクトリ内のjpgとpngを走査し、ファイル名もしくはタグテキストからタグの一覧を読み取って順番に処理をしていく。
ルートにあるignore.txtは全ての画像についてそのタグを除外する。
サブディレクトリにあるignore.txtはルートで指定したものに追加で更にそのタグを除外する。
ignore.txtは1行毎のテキストで正規表現が有効。ルートのignore.txtには「色と髪型関連」「明らかに無意味なタグ」「キャラやジャンルなどの固有名詞」を主に入れる。サブは各々の狙いに応じて使う。特にキャラ学習の場合は「色と髪型関連」を入れておくと割と汎用的に使えると思う。
最後に、ignoreで除外したものを除くタグがシャッフルされた上で、サブディレクトリの"^[0-9]*_"を覗いた部分がタグの先頭に追加される。
そのタグを元に作られた新たなhoge.txtと、hoge.jpgを、同じ構成を保ったまま引数-dで指定したディレクトリへコピーして作成する。

ルートに置くignore.txtの例

^looking at viewer$
^1girl$
bangs$
buttons$
^cowboy shot$
 eyes$
 hair$
remodel|kantai collection|kancolle
pokemon
letterboxed
^solo$
^aqua 
^yellow 
^black 
^blonde 
^blue 
^light blue 
^dark blue 
^brown 
^light brown 
^green 
^dark green 
^light green 
^grey 
^orange 
^pink 
^purple 
^light purple 
^red 
^white 
background$
^scan$
^official art$
ahoge|ponytail|side up|half updo
school uniform|serafuku
nowaki|hagikaze|maikaze|arashi

例えば上記のignore.txtとフォルダ構成で処理を行った時に、元の./d/10_arashi/00001.txtのタグテキストの内容が
transparent background, 1girl, gloves, turret, machinery, solo, skirt, vest, white gloves, cannon, pleated skirt, thighhighs, rigging, school uniform, short sleeves, torpedo, black skirt, arashi \(kancolle\), necktie, searchlight, torpedo launcher, belt, torpedo tubes, shirt, open vest, ahoge, ponytail, grey legwear, open mouth, white shirt, remodel \(kantai collection\), short hair, black legwear, adapted turret, bangs, red hair, buttons, brown hair, smile
だった場合、以下のようにignore削除&シャッフル&先頭にフォルダ名が追加された状態で、-dで指定した所にタグテキストと画像のコピーが保存される。
(ファイル名は連番に勝手にリネームされる)
arashi, open mouth, smile, machinery, torpedo tubes, skirt, cannon, rigging, necktie, thighhighs, shirt, adapted turret, short sleeves, pleated skirt, ponytail, torpedo, gloves, open vest, belt, vest, searchlight, torpedo launcher, turret

Edit
Pub: 25 Jan 2023 03:32 UTC
Edit: 30 Jan 2023 21:14 UTC
Views: 2127