Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| import os | |
| from pathlib import Path | |
| from huggingface_hub import HfApi | |
| REQUIRED_ENV = ["HF_TOKEN", "HF_SPACE_ID", "KAGGLE_USERNAME", "KAGGLE_API_TOKEN"] | |
| def main() -> None: | |
| missing = [name for name in REQUIRED_ENV if not os.environ.get(name)] | |
| if missing: | |
| raise SystemExit(f"Missing required environment variables: {', '.join(missing)}") | |
| project_root = Path(__file__).resolve().parents[1] | |
| repo_id = os.environ["HF_SPACE_ID"] | |
| token = os.environ["HF_TOKEN"] | |
| api = HfApi(token=token) | |
| api.create_repo( | |
| repo_id=repo_id, | |
| repo_type="space", | |
| space_sdk="docker", | |
| private=True, | |
| exist_ok=True, | |
| ) | |
| secrets = { | |
| "PORT": "7860", | |
| "GENERATION_PROVIDER": "kaggle", | |
| "COMMERCIAL_MODE": "1", | |
| "FLUX_MODEL_ID": os.environ.get("FLUX_MODEL_ID", "black-forest-labs/FLUX.2-klein-4B"), | |
| "KAGGLE_COMMAND": "kaggle", | |
| "KAGGLE_USERNAME": os.environ["KAGGLE_USERNAME"], | |
| "KAGGLE_API_TOKEN": os.environ["KAGGLE_API_TOKEN"], | |
| "KAGGLE_ACCELERATOR": os.environ.get("KAGGLE_ACCELERATOR", "NvidiaTeslaT4"), | |
| "KAGGLE_USE_SMALL_DECODER": os.environ.get("KAGGLE_USE_SMALL_DECODER", "0"), | |
| "KAGGLE_INFERENCE_STEPS": os.environ.get("KAGGLE_INFERENCE_STEPS", "4"), | |
| "KAGGLE_CACHE_KERNEL_REF": os.environ.get("KAGGLE_CACHE_KERNEL_REF", "jolvangeest/mplus-flux2-cache"), | |
| "KAGGLE_POLL_INTERVAL_MS": os.environ.get("KAGGLE_POLL_INTERVAL_MS", "5000"), | |
| "KAGGLE_POLL_TIMEOUT_MS": os.environ.get("KAGGLE_POLL_TIMEOUT_MS", "7200000"), | |
| } | |
| for key, value in secrets.items(): | |
| api.add_space_secret(repo_id=repo_id, key=key, value=value) | |
| api.upload_folder( | |
| repo_id=repo_id, | |
| repo_type="space", | |
| folder_path=str(project_root), | |
| commit_message="Deploy Mplus Studio", | |
| ignore_patterns=[ | |
| ".git/*", | |
| ".angular/*", | |
| ".kaggle-work/*", | |
| ".env", | |
| "backend/dist/*", | |
| "backend/node_modules/*", | |
| "dist/*", | |
| "graphify-out/*", | |
| "node_modules/*", | |
| "test-results/*", | |
| ], | |
| ) | |
| print(f"Deployed to https://huggingface.co/spaces/{repo_id}") | |
| if __name__ == "__main__": | |
| main() | |