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.model = pipeline("depth-estimation") 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)