import gradio as gr from transformers import pipeline import torch import numpy as np from PIL import Image depth_estimator = pipeline(task="depth-estimation", model="Intel/dpt-hybrid-midas") if __name__ == "__main__": def launch(input_image): out = depth_estimator(input_image) # resize the prediction prediction = torch.nn.functional.interpolate( out["predicted_depth"].unsqueeze(1), size=input_image.size[::-1], mode="bicubic", align_corners=False, ) # normalize the prediction output = prediction.squeeze().numpy() formatted = (output * 255 / np.max(output)).astype("uint8") depth = Image.fromarray(formatted) return depth iface = gr.Interface(launch, inputs=gr.Image(type='pil'), outputs=gr.Image(type='pil')) iface.launch()