# Lista candidatos de outfit desde WD14 (PAWCHISE + Purah).
# Filtra tags de ropa/accesorio con frecuencia >= 8 en 549 imgs.

import json, pathlib, re
from collections import Counter

BASE = pathlib.Path(r"C:\Users\Usuario\Downloads\SD")
OUT = BASE / "Archivos" / "wd14" / "tags" / "pawchive"
data = {}
data.update(json.loads((OUT / "scores.json").read_text(encoding="utf-8")))
purah = json.loads((OUT / "purah" / "scores.json").read_text(encoding="utf-8"))
for k, v in purah.items():
    data["Purah/" + k] = v

CLOTH = re.compile(r"(bikini|leotard|dress|skirt|top|shirt|sweater|cardigan|blouse|jacket|coat|robe|kimono|yukata|maid|apron|tiara|crown|headband|hairband|hair_ornament|hair_stick|hair_ribbon|ribbon|bow|choker|necklace|collar|earrings|earring|jewelry|bracelet|gloves|stockings|pantyhose|fishnet|thighhighs|socks|shoes|heels|boots|slippers|hat|cap|hood|fork|horns|horn|tail|ears|animal_ears|cat_ears|rabbit_ears|bunny|playboy|cowprint|cow_|maid|striped|polka_dot|lace|frilled|ruffle|voluminous|frill)", re.I)

cnt = Counter()
by_pack = {}
for key, pairs in data.items():
    pk = key.split("/")[0]
    by_pack.setdefault(pk, Counter())
    for tag, score in pairs:
        if score >= 0.35 and CLOTH.search(tag):
            cnt[tag] += 1
            by_pack[pk][tag] += 1

for tag, c in cnt.most_common(60):
    print(f"{c:4d}  {tag}")
