This repository has been archived on 2026-05-31. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
imagerepo/scripts/download_models.py
T
bvandeusen 0f35a0c484 feat: ML tag suggestions, character/fandom integrity, underscores, modal polish
Consolidated merge of feat/tag-suggestions branch. Original 64-commit history
was lost to git-object corruption in a Nextcloud-synced checkout; this single
commit captures the equivalent diff.

Includes:
- pgvector-backed tag suggestion infra (WD14 + SigLIP centroids, ml-worker
  container, Celery tasks, suggestion service, accept/reject endpoints + modal
  UI with green/red chip buttons)
- Character/fandom integrity: title-case normalization on every write path,
  fandom-id backfill, maintenance task + settings button, migrations g26041901
  + h26041901 to canonicalize legacy rows with case-only duplicate merging
- Tag-underscores + modal polish: WD14 name canonicalization at emit + accept
  + add/bulk-add paths, migration i26041901 for legacy-row rename-or-merge
  across character/fandom/NULL kinds, suggestion-accept refresh parity via
  awaited loadTags, persistent chip tint
2026-04-19 19:50:58 -04:00

46 lines
1.4 KiB
Python

"""Pre-fetch WD14 and SigLIP model files into $ML_MODEL_DIR at image build time."""
from __future__ import annotations
import os
import sys
from huggingface_hub import hf_hub_download, snapshot_download
MODEL_DIR = os.environ.get('ML_MODEL_DIR', '/models')
WD14_REPO = os.environ.get('WD14_REPO', 'SmilingWolf/wd-eva02-large-tagger-v3')
SIGLIP_REPO = os.environ.get('SIGLIP_REPO', 'google/siglip-so400m-patch14-384')
def download_wd14() -> None:
target = os.path.join(MODEL_DIR, 'wd14')
os.makedirs(target, exist_ok=True)
hf_hub_download(repo_id=WD14_REPO, filename='model.onnx', local_dir=target, local_dir_use_symlinks=False)
hf_hub_download(repo_id=WD14_REPO, filename='selected_tags.csv', local_dir=target, local_dir_use_symlinks=False)
print(f"WD14 downloaded to {target}")
def download_siglip() -> None:
target = os.path.join(MODEL_DIR, 'siglip')
os.makedirs(target, exist_ok=True)
snapshot_download(
repo_id=SIGLIP_REPO,
local_dir=target,
local_dir_use_symlinks=False,
allow_patterns=[
'config.json',
'preprocessor_config.json',
'tokenizer_config.json',
'tokenizer.json',
'special_tokens_map.json',
'spiece.model',
'model.safetensors',
'pytorch_model.bin',
],
)
print(f"SigLIP downloaded to {target}")
if __name__ == '__main__':
download_wd14()
download_siglip()
sys.exit(0)