from transformers_js import import_transformers_js, as_url
import gradio as gr
transformers = await import_transformers_js()
pipeline = transformers.pipeline
depth_estimator = await pipeline('depth-estimation', 'Xenova/depth-anything-small-hf');
async def estimate(input_image):
output = await depth_estimator(as_url(input_image))
depth_image = output["depth"].to_pil()
tensor = output["predicted_depth"]
tensor_data = {
"dims": tensor.dims,
"type": tensor.type,
"data": tensor.data,
"size": tensor.size,
}
return depth_image, tensor_data
demo = gr.Interface(
fn=estimate,
inputs=[
gr.Image(type="filepath")
],
outputs=[
gr.Image(label="Depth Image"),
gr.JSON(label="Tensor"),
],
examples=[
["bread_small.png"]
]
)
demo.launch()
transformers_js_py