import gradio as gr from skimage import io from pyxelate import Pyx, Pal def pixel(image,downsample,palette,depth,upscale): image = io.imread(image.name) downsample_by = int(downsample) # new image will be 1/14th of the original in size palette = int(palette) # find 7 colors # 1) Instantiate Pyx transformer pyx = Pyx(factor=downsample_by, palette=palette,depth=int(depth),upscale = int(upscale)) # 2) fit an image, allow Pyxelate to learn the color palette pyx.fit(image) # 3) transform image to pixel art using the learned color palette new_image = pyx.transform(image) # save new image with 'skimage.io.imsave()' io.imsave("pixel.png", new_image) return "pixel.png" title = "Pyxelate" description = "Gradio demo for Pyxelate: converts images to pixel art. To use it, simply upload your image, or click one of the examples to load them. Read more at the links below." article = "

Github Repo

" gr.Interface( pixel, [gr.inputs.Image(type="file", label="Input", shape=(512,512)),gr.inputs.Number(default=14, label="downsample by"),gr.inputs.Number(default=7, label="palette"),gr.inputs.Number(default=1, label="depth"),gr.inputs.Number(default=14, label="upscale") ], gr.outputs.Image(type="file", label="Output"), title=title, description=description, article=article, examples=[['mona.jpeg',14,7,1,14]] ).launch(enable_queue=True)