from PIL import Image, ImageFilter, ImageOps import gradio as gr def apply_blur(image): return image.filter(ImageFilter.BLUR) def apply_invert(image): return ImageOps.invert(image.convert("RGB")) def apply_sharpen(image): return image.filter(ImageFilter.SHARPEN) def apply_black_white(image): return image.convert("L") # Convert to grayscale (black & white) def apply_filter(image, filter_type): if filter_type == 'blur': return apply_blur(image) elif filter_type == 'invert': return apply_invert(image) elif filter_type == 'sharpen': return apply_sharpen(image) elif filter_type == 'black & white': return apply_black_white(image) else: return image def run_interface(): filter_choices = ['blur', 'invert', 'sharpen', 'black & white'] interface = gr.Interface( fn=apply_filter, inputs=[gr.Image(type='pil'), gr.Dropdown(filter_choices, label='Select Filter')], outputs=gr.Image(type='pil') ) return interface iface = run_interface() iface.launch()