Spaces:
Running on Zero
Running on Zero
| # Copyright (c) 2026 Scenema AI | |
| # https://scenema.ai | |
| # SPDX-License-Identifier: MIT | |
| """Scenema Audio entry point. | |
| CRITICAL: CUDA memory config must happen before torch imports. | |
| """ | |
| import os | |
| if "expandable_segments" not in os.environ.get("PYTORCH_CUDA_ALLOC_CONF", ""): | |
| _alloc = os.environ.get("PYTORCH_CUDA_ALLOC_CONF", "") | |
| os.environ["PYTORCH_CUDA_ALLOC_CONF"] = ( | |
| (_alloc + ",expandable_segments:True") if _alloc else "expandable_segments:True" | |
| ) | |
| import logging | |
| logging.basicConfig( | |
| level=logging.DEBUG if os.environ.get("DEBUG") else logging.INFO, | |
| format="%(asctime)s | %(levelname)-8s | %(name)s | %(message)s", | |
| ) | |
| logger = logging.getLogger(__name__) | |
| def main(): | |
| # These imports are inside main() because CUDA config above | |
| # must execute before torch is imported (processor -> engine -> torch) | |
| from common.runner import run | |
| from .processor import AudioProcessor | |
| handler_mode = os.environ.get("HANDLER_MODE", "http") | |
| logger.info("Starting Scenema Audio in %s mode", handler_mode) | |
| processor = AudioProcessor() | |
| run(processor, service_type="scenema_audio") | |
| if __name__ == "__main__": | |
| main() | |