benienma-tts-api / deploy.py
alrab222's picture
Deploy public ZeroGPU benienma TTS API
50266e7 verified
Raw
History Blame Contribute Delete
1.84 kB
"""Create/update the public Hugging Face ZeroGPU Space from this folder.
Run this script only after reviewing the model and access scope. It uploads the
app and the bundled ``benienma`` model but excludes caches and local test output.
"""
from __future__ import annotations
import argparse
import os
from pathlib import Path
from huggingface_hub import HfApi
APP_DIR = Path(__file__).parent
DEFAULT_SPACE_ID = "alrab222/benienma-tts-api"
IGNORE_PATTERNS = [
"**/__pycache__/**",
"**/*.py[cod]",
"**/*.pickle",
".cache/**",
"output.wav",
"test_output.wav",
"space/**",
]
def main() -> None:
parser = argparse.ArgumentParser(description="Deploy the benienma CPU TTS Space")
parser.add_argument(
"--space-id",
default=os.environ.get("HF_SPACE_ID", DEFAULT_SPACE_ID),
help=f"Hugging Face Space ID (default: {DEFAULT_SPACE_ID})",
)
parser.add_argument(
"--token",
default=os.environ.get("HF_TOKEN"),
help="Hugging Face write token (or set HF_TOKEN)",
)
parser.add_argument(
"--private",
action="store_true",
help="Create a private Space instead of the public ZeroGPU Space.",
)
args = parser.parse_args()
api = HfApi(token=args.token)
api.create_repo(
repo_id=args.space_id,
repo_type="space",
space_sdk="gradio",
space_hardware="zero-a10g",
private=args.private,
exist_ok=True,
)
api.upload_folder(
repo_id=args.space_id,
repo_type="space",
folder_path=APP_DIR,
ignore_patterns=IGNORE_PATTERNS,
delete_patterns="**/*.pickle",
commit_message="Deploy public ZeroGPU benienma TTS API",
)
print(f"https://huggingface.co/spaces/{args.space_id}")
if __name__ == "__main__":
main()