fix: patch basicsr compatibility with torchvision 0.18+

The functional_tensor module was removed in torchvision 0.18+.
Added compatibility shim to create a fake module that basicsr can import.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-27 12:41:07 +01:00
parent 65f50d5a9a
commit 99b40e3f54

View File

@@ -1,6 +1,7 @@
"""Model management for Real-ESRGAN and GFPGAN."""
import logging
import sys
import time
from pathlib import Path
from threading import Lock
@@ -10,6 +11,21 @@ import requests
import torch
from tqdm import tqdm
# Patch for basicsr compatibility with torchvision 0.18+
# The functional_tensor module was removed, but basicsr still imports from it
import torchvision.transforms.functional as TF
if not hasattr(TF, "rgb_to_grayscale"):
TF.rgb_to_grayscale = TF.to_grayscale
# Create a fake module to satisfy basicsr's import
if "torchvision.transforms.functional_tensor" not in sys.modules:
class FakeFunctionalTensor:
rgb_to_grayscale = TF.rgb_to_grayscale
sys.modules["torchvision.transforms.functional_tensor"] = FakeFunctionalTensor()
from src.config import MODEL_REGISTRY, MODELS_DIR, ModelInfo, config
logger = logging.getLogger(__name__)