diff --git a/__init__.py b/__init__.py index a5ea0a9..4eaca51 100644 --- a/__init__.py +++ b/__init__.py @@ -1,3 +1,35 @@ +import subprocess +import sys +import logging + +logger = logging.getLogger("BIM-VFI") + + +def _auto_install_deps(): + """Auto-install missing dependencies on first load.""" + # gdown + try: + import gdown # noqa: F401 + except ImportError: + logger.info("[BIM-VFI] Installing gdown...") + subprocess.check_call([sys.executable, "-m", "pip", "install", "gdown"]) + + # cupy + try: + import cupy # noqa: F401 + except ImportError: + try: + import torch + major = int(torch.version.cuda.split(".")[0]) + cupy_pkg = f"cupy-cuda{major}x" + logger.info(f"[BIM-VFI] Installing {cupy_pkg} (CUDA {torch.version.cuda})...") + subprocess.check_call([sys.executable, "-m", "pip", "install", cupy_pkg]) + except Exception as e: + logger.warning(f"[BIM-VFI] Could not auto-install cupy: {e}") + + +_auto_install_deps() + from .nodes import LoadBIMVFIModel, BIMVFIInterpolate NODE_CLASS_MAPPINGS = {