mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-06-16 01:35:36 -04:00
33 lines
990 B
Python
33 lines
990 B
Python
"""Compatibility helpers for optional third-party dependencies."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import sys
|
|
import types
|
|
|
|
|
|
def patch_realesrgan_torchvision_compat() -> None:
|
|
"""Restore the torchvision import path expected by BasicSR/Real-ESRGAN."""
|
|
module_name = "torchvision.transforms.functional_tensor"
|
|
if module_name in sys.modules:
|
|
return
|
|
try:
|
|
from torchvision.transforms import functional
|
|
except Exception:
|
|
return
|
|
|
|
rgb_to_grayscale = getattr(functional, "rgb_to_grayscale", None)
|
|
if rgb_to_grayscale is None:
|
|
return
|
|
|
|
shim = types.ModuleType(module_name)
|
|
shim.rgb_to_grayscale = rgb_to_grayscale
|
|
shim.__getattr__ = lambda name: getattr(functional, name)
|
|
sys.modules[module_name] = shim
|
|
|
|
|
|
def prepare_optional_dependency_import(name: str) -> None:
|
|
"""Apply known import-time compatibility shims before probing a package."""
|
|
if name == "realesrgan":
|
|
patch_realesrgan_torchvision_compat()
|