AstroStarDetect / download_models.py
MilanMagik's picture
Add model download helper
37e5413 verified
Raw History Blame Contribute Delete
1.64 kB
"""Download the deployable PyTorch weights from Hugging Face Hub."""
from __future__ import annotations
import argparse
from pathlib import Path
from huggingface_hub import hf_hub_download
REPO_ID = "MilanMagik/AstroStarDetect"
ROOT = Path(__file__).resolve().parent
MODEL_FILES = {
"denoise": ["StarDenoise/models/deep_denoise_cnn_AI3_6.pth"],
"starnet": [
"StarNetPyTorch/models/weights_G_RGB.pth",
"StarNetPyTorch/models/weights_G_Greyscale.pth",
],
}
def main() -> None:
parser = argparse.ArgumentParser(
description="Download AstroColorProcess model weights from Hugging Face."
)
parser.add_argument(
"--only",
choices=("all", "denoise", "starnet"),
default="all",
help="Select which model weights to download (default: all).",
)
parser.add_argument(
"--revision",
default="main",
help="Hugging Face branch, tag, or commit (default: main).",
)
parser.add_argument(
"--force",
action="store_true",
help="Download again even when a cached file is available.",
)
args = parser.parse_args()
groups = MODEL_FILES if args.only == "all" else {args.only: MODEL_FILES[args.only]}
for filenames in groups.values():
for filename in filenames:
local_path = hf_hub_download(
repo_id=REPO_ID,
filename=filename,
revision=args.revision,
local_dir=ROOT,
force_download=args.force,
)
print(f"Downloaded: {local_path}")
if __name__ == "__main__":
main()