| import os | |
| from huggingface_hub import hf_hub_download | |
| def download_models(): | |
| """Download all models from the dedicated Model Repo using huggingface_hub.""" | |
| repo_id = "icanedit2/bakoai-models" | |
| models_to_download = [ | |
| "player_detector.pt", | |
| "ball_detector.pt", | |
| "court_keypoint_detector.pt", | |
| "swish_ball_rim.pt", | |
| "swish_pose.pt", | |
| "yolov8n-pose.pt" | |
| ] | |
| os.makedirs("models", exist_ok=True) | |
| token = os.environ.get("HF_TOKEN") | |
| for model_file in models_to_download: | |
| dest_path = os.path.join("models", model_file) | |
| if os.path.exists(dest_path): | |
| print(f"β {dest_path} already exists.") | |
| continue | |
| print(f"β³ Downloading {model_file} from {repo_id}...") | |
| try: | |
| # hf_hub_download automatically handles LFS, Xet, and auth | |
| path = hf_hub_download( | |
| repo_id=repo_id, | |
| filename=model_file, | |
| local_dir="models", | |
| token=token | |
| ) | |
| print(f"β Successfully downloaded {model_file} to {path}") | |
| except Exception as e: | |
| print(f"β Failed to download {model_file}: {e}") | |
| raise | |
| if __name__ == "__main__": | |
| download_models() | |