import numpy as np import gradio as gr import requests import io import base64 import PIL from PIL import Image url = "https://api.runpod.ai/v2/d4p75k87yroni1/runsync" def convert(input_img, quality=85): buffer = io.BytesIO() input_img.save(buffer, format="JPEG", quality=quality) buffer.seek(0) img_base64 = base64.b64encode(buffer.read()).decode('utf-8') return img_base64 def send_req(input_img, compression, noise): if type(input_img) is not PIL.Image.Image: input_img = Image.fromarray(input_img, 'RGB') payload = { "input": { "image": convert(input_img), "mode": "1", "quality": str(compression), "noise": str(noise) } } headers = { "Authorization": "Bearer XWV1ST04C0QLWNVAUSJWI6VJMR7YDJCKJSAR6TPA", "content-type": "application/json" } response = requests.post(url, json=payload, headers=headers) image_data = base64.b64decode(response.json()["output"]) image = Image.open(io.BytesIO(image_data)) return image demo = gr.Interface(send_req, [gr.Image(), gr.Slider(0, 100, label="Compression", step=1), gr.Slider(0, 100, label="Noise", step=1)], "image") if __name__ == "__main__": demo.launch()