mapvggt / scripts /upload_mapvggt.py
ChenmingWu's picture
Upload folder using huggingface_hub
8cf92b3 verified
Raw
History Blame Contribute Delete
1.94 kB
#!/usr/bin/env python3
"""Upload MapVGGT to a PRIVATE HuggingFace repo: code + model card + 3 checkpoints.
Excludes: training data (Waymo/AV2), base VGGT-Omega weights, vendored clones, logs, caches.
Token from $HF_TOKEN."""
import os
from huggingface_hub import HfApi
REPO = os.environ.get("HF_REPO", "ChenmingWu/mapvggt")
TOKEN = os.environ["HF_TOKEN"]
ROOT = "/mnt/william"
CKPTS = ["mapvggt_refine_best.safetensors", "abl_base_best.safetensors", "abl_full_best.safetensors"]
api = HfApi(token=TOKEN)
api.create_repo(REPO, private=True, repo_type="model", exist_ok=True)
print(f"repo {REPO} (private) ready", flush=True)
IGNORE = ["**/__pycache__/**", "**/*.pyc", "**/*.log", "**/.pytest_cache/**"]
# code packages (each uploaded under its own path)
for pkg in ["mapvggt", "mapgs", "mapnurec", "scripts", "configs", "tests"]:
p = os.path.join(ROOT, pkg)
if os.path.isdir(p):
api.upload_folder(folder_path=p, path_in_repo=pkg, repo_id=REPO, repo_type="model",
ignore_patterns=IGNORE)
print(f"uploaded {pkg}/", flush=True)
# model card + small repo files
api.upload_file(path_or_fileobj=os.path.join(ROOT, "README_MAPVGGT.md"),
path_in_repo="README.md", repo_id=REPO, repo_type="model")
for f in ["pyproject.toml", "requirements.txt", "REPRODUCE.md"]:
fp = os.path.join(ROOT, f)
if os.path.exists(fp):
api.upload_file(path_or_fileobj=fp, path_in_repo=f, repo_id=REPO, repo_type="model")
print("uploaded code + card", flush=True)
# checkpoints (FAIR-derivative; private)
for c in CKPTS:
fp = os.path.join(ROOT, "runs", c)
if os.path.exists(fp):
print(f"uploading checkpoints/{c} ({os.path.getsize(fp)/1e9:.1f}G)...", flush=True)
api.upload_file(path_or_fileobj=fp, path_in_repo=f"checkpoints/{c}", repo_id=REPO, repo_type="model")
print(f" done {c}", flush=True)
print(f"DONE -> https://huggingface.co/{REPO}", flush=True)