# created with great guidance from https://github.com/NimaBoscarino import gradio as gr import kornia as K from kornia.core import Tensor def filters(file, box_blur, blur_pool2d, gaussian_blur2d, max_blur_pool2d, median_blur): # load the image using the rust backend img: Tensor = K.io.load_image(file.name, K.io.ImageLoadType.RGB32) img = img[None] # 1xCxHxW / fp32 / [0, 1] # apply tensor image enhancement x_out: Tensor = K.filters.box_blur(img, (int(box_blur), int(box_blur))) x_out = K.filters.blur_pool2d(x_out, int(blur_pool2d)) x_out = K.filters.gaussian_blur2d(x_out, (int(gaussian_blur2d), int(gaussian_blur2d)), (float(gaussian_blur2d), float(gaussian_blur2d))) x_out = K.filters.max_blur_pool2d(x_out, int(max_blur_pool2d)) x_out = K.filters.median_blur(x_out, (int(median_blur), int(median_blur))) return K.utils.tensor_to_image(x_out) examples = [ ["examples/monkey.jpg", 1, 1, 1, 1, 1], ["examples/pikachu.jpg", 1, 1, 1, 1, 1], ] title = "Kornia Image Filters" description = "
This is a Gradio demo for Kornia's Image Filters.
To use it, simply upload your image, or click one of the examples to load them, and use the sliders to enhance! Read more at the links at the bottom.
" article = "Kornia Docs | Kornia Github Repo | Kornia Enhancements Tutorial
" iface = gr.Interface( filters, [ gr.inputs.Image(type="file"), gr.inputs.Slider(minimum=1, maximum=10, step=1, default=1, label="Box Blur"), gr.inputs.Slider(minimum=1, maximum=10, step=1, default=1, label="Blur Pool"), gr.inputs.Slider(minimum=1, maximum=21, step=2, default=1, label="Gaussian Blur"), gr.inputs.Slider(minimum=1, maximum=20, step=1, default=1, label="Max Pool"), gr.inputs.Slider(minimum=1, maximum=5, step=2, default=1, label="Median Blur"), ], "image", examples=examples, # title=title, # description=description, # article=article, live=True ) iface.launch()