hf-upload-gguf-model.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #!/usr/bin/env python3
  2. from huggingface_hub import HfApi
  3. import argparse
  4. import os
  5. def upload_gguf_file(local_file_path, repo_id, filename_in_repo=None):
  6. """
  7. Upload a GGUF file to a Hugging Face model repository
  8. Args:
  9. local_file_path: Path to your local GGUF file
  10. repo_id: Your repository ID (e.g., "username/model-name")
  11. filename_in_repo: Optional custom name for the file in the repo
  12. """
  13. if not os.path.exists(local_file_path):
  14. print(f"❌ File not found: {local_file_path}")
  15. return False
  16. if filename_in_repo is None:
  17. filename_in_repo = os.path.basename(local_file_path)
  18. if filename_in_repo is None or filename_in_repo == "":
  19. filename_in_repo = os.path.basename(local_file_path)
  20. print(f"📤 Uploading {local_file_path} to {repo_id}/{filename_in_repo}")
  21. api = HfApi()
  22. try:
  23. api.upload_file(
  24. path_or_fileobj=local_file_path,
  25. path_in_repo=filename_in_repo,
  26. repo_id=repo_id,
  27. repo_type="model",
  28. commit_message=f"Upload {filename_in_repo}"
  29. )
  30. print("✅ Upload successful!")
  31. print(f"🔗 File available at: https://huggingface.co/{repo_id}/blob/main/{filename_in_repo}")
  32. return True
  33. except Exception as e:
  34. print(f"❌ Upload failed: {e}")
  35. return False
  36. # This script requires that the environment variable HF_TOKEN is set with your
  37. # Hugging Face API token.
  38. api = HfApi()
  39. parser = argparse.ArgumentParser(description='Upload a GGUF model to a Huggingface model repository')
  40. parser.add_argument('--gguf-model-path', '-m', help='The GGUF model file to upload', required=True)
  41. parser.add_argument('--repo-id', '-r', help='The repository to upload to', required=True)
  42. parser.add_argument('--name', '-o', help='The name in the model repository', required=False)
  43. args = parser.parse_args()
  44. upload_gguf_file(args.gguf_model_path, args.repo_id, args.name)