control-lora-v3 / depth_estimator.py
HighCWu's picture
make the app runable
7a1ec93
raw
history blame
960 Bytes
import torch
import numpy as np
import PIL.Image
from controlnet_aux.util import HWC3
from transformers import pipeline
from cv_utils import resize_image
class DepthEstimator:
def __init__(self):
self.device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
self.model = pipeline("depth-estimation", device=self.device)
def __call__(self, image: np.ndarray, **kwargs) -> PIL.Image.Image:
detect_resolution = kwargs.pop("detect_resolution", 512)
image_resolution = kwargs.pop("image_resolution", 512)
image = np.array(image)
image = HWC3(image)
image = resize_image(image, resolution=detect_resolution)
image = PIL.Image.fromarray(image)
image = self.model(image)
image = image["depth"]
image = np.array(image)
image = HWC3(image)
image = resize_image(image, resolution=image_resolution)
return PIL.Image.fromarray(image)