tabras / app_hf.py
Codex
Hardcode Modal endpoint URLs in app_hf.py (public; env still overrides)
0b3ffc4
Raw
History Blame Contribute Delete
1.65 kB
"""Hugging Face Space entry point for Tabras.
`MODE` selects the model backend (clients.configure_mode):
- LOCAL : run MiniCPM / Nemotron / SDXL on your own hardware (the default
when you clone and run the repo).
- MODAL : call Modal GPU endpoints over HTTP (used here on the Space).
This file defaults to MODE=MODAL. After `modal deploy modal_app.py`, set these
Space variables to the printed URLs:
TABRAS_CARD_ENDPOINT -> CardModel.chat URL
TABRAS_BOSS_ENDPOINT -> BossModel.chat URL
TABRAS_ART_ENDPOINT -> ArtModel.generate URL
The Space needs no GPU (it just makes HTTP calls), so run it on free CPU hardware.
"""
import os
os.environ.setdefault("MODE", "MODAL")
# Modal GPU endpoints (deployed from modal_app.py). Public URLs, safe to hardcode;
# a Space variable still overrides any of these if you redeploy under a new name.
_MODAL = "https://vishnupratikvennelakanti--tabras-models"
os.environ.setdefault("TABRAS_CARD_ENDPOINT", f"{_MODAL}-cardmodel-chat.modal.run")
os.environ.setdefault("TABRAS_BOSS_ENDPOINT", f"{_MODAL}-bossmodel-chat.modal.run")
os.environ.setdefault("TABRAS_ART_ENDPOINT", f"{_MODAL}-artmodel-generate.modal.run")
from clients import configure_mode # noqa: E402
configure_mode()
from app import CSS, HEAD, build_app # noqa: E402
# Module-level `demo` so Hugging Face's launcher finds the Blocks; css/head are
# applied via launch() below (keep the Space's Dev Mode off so this runs).
demo = build_app()
demo.queue()
if __name__ == "__main__":
port = int(os.environ.get("PORT", "7860"))
demo.launch(server_name="0.0.0.0", server_port=port, css=CSS, head=HEAD)