from __future__ import annotations import argparse from pathlib import Path from huggingface_hub import HfApi, upload_file def main() -> None: parser = argparse.ArgumentParser(description="Upload custom model checkpoint to Hugging Face model repo.") parser.add_argument("--repo-id", required=True, help="e.g., username/pokemon-transfer-resnet18") parser.add_argument("--model-path", default="models/custom_resnet18.pth") parser.add_argument("--private", action="store_true") args = parser.parse_args() model_path = Path(args.model_path) if not model_path.exists(): raise FileNotFoundError(f"Model file not found: {model_path}") api = HfApi() api.create_repo(repo_id=args.repo_id, repo_type="model", private=args.private, exist_ok=True) upload_file( path_or_fileobj=str(model_path), path_in_repo=model_path.name, repo_id=args.repo_id, repo_type="model", ) print(f"Uploaded {model_path} to https://huggingface.co/{args.repo_id}") if __name__ == "__main__": main()