| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- """Runtime configuration (all overridable via env). Defaults target the
- `genrecon` LXC produced by issue i-opavuyaq; the MOCK path lets the whole
- app run/test on any machine without a GPU or the GenRecon install."""
- import os
- from pathlib import Path
- BASE = Path(__file__).resolve().parent
- ROOT = BASE.parent
- def _flag(name: str, default: str = "0") -> bool:
- return str(os.environ.get(name, default)).lower() in ("1", "true", "yes", "on")
- # --- mode ---
- MOCK = _flag("GENRECON_MOCK") # skip GPU pipeline, emit the sample scene
- # --- paths ---
- JOBS_DIR = Path(os.environ.get("GENRECON_JOBS_DIR", "/srv/jobs"))
- FRONTEND_DIR = Path(os.environ.get("GENRECON_FRONTEND_DIR", str(ROOT / "frontend")))
- SAMPLE_GLB = Path(os.environ.get("GENRECON_SAMPLE_GLB", str(ROOT / "sample" / "scene.glb")))
- # --- GenRecon install (on the genrecon machine) ---
- GENRECON_SRC = Path(os.environ.get("GENRECON_SRC", "/opt/genrecon/src"))
- GENRECON_CKPTS = Path(os.environ.get("GENRECON_CKPTS", "/opt/genrecon/ckpts"))
- CONDA_ENV = os.environ.get("GENRECON_CONDA_ENV", "genrecon")
- CUDA_DEVICE = os.environ.get("GENRECON_CUDA_DEVICE", "5") # pin to a free GPU on hypervisor a
- # --- pipeline knobs ---
- FFMPEG_BIN = os.environ.get("GENRECON_FFMPEG_BIN", "ffmpeg")
- COLMAP_BIN = os.environ.get("GENRECON_COLMAP_BIN", "colmap")
- FRAMES_FPS = float(os.environ.get("GENRECON_FRAMES_FPS", "2"))
- FRAMES_MAX = int(os.environ.get("GENRECON_FRAMES_MAX", "300"))
- NUM_IMGS_PER_SCENE = int(os.environ.get("GENRECON_NUM_IMGS", "999"))
- PIPELINE_CONFIG = os.environ.get("GENRECON_PIPELINE_CONFIG", "configs/pipelines/texture.json")
- MAX_UPLOAD_MB = int(os.environ.get("GENRECON_MAX_UPLOAD_MB", "2048"))
- JOBS_DIR.mkdir(parents=True, exist_ok=True)
- # Stage order + the progress band each stage fills (start, end).
- STAGES = [
- ("frames", 5, 25),
- ("colmap", 25, 55),
- ("reconstruct", 55, 90),
- ("glb", 90, 100),
- ]
|