import gradio as gr import base64 import io from PIL import Image import spaces @spaces.GPU def base64_to_image(base64_str): print("Base to image") image_data = base64.b64decode(base64_str) image = Image.open(io.BytesIO(image_data)) return image @spaces.GPU def image_to_base64(image): print("Image to base") buffered = io.BytesIO() image.save(buffered, format="PNG") return base64.b64encode(buffered.getvalue()).decode("utf-8") @spaces.GPU def convert_to_grayscale(base64_str): image = base64_to_image(base64_str) grayscale_image = image.convert("L") return { "grayscale_image": image_to_base64(grayscale_image), "Normal": image_to_base64(grayscale_image) } iface = gr.Interface( fn=convert_to_grayscale, inputs=gr.Textbox(label="Base64 Image"), outputs=gr.JSON(label="Base64 Grayscale Image"), ) iface.launch()