Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from models import models | |
| from PIL import Image | |
| import requests | |
| import uuid | |
| import io | |
| import base64 | |
| import threading | |
| loaded_model=[] | |
| for i,model in enumerate(models): | |
| try: | |
| loaded_model.append(gr.load(f'models/{model}')) | |
| except Exception as e: | |
| print(e) | |
| pass | |
| print (loaded_model) | |
| def run_dif(out_prompt,mod): | |
| out_box=[] | |
| out_html="" | |
| for i,ea in enumerate(loaded_model): | |
| try: | |
| print (ea) | |
| model=loaded_model[int(i)] | |
| out_img=model(out_prompt) | |
| print(out_img) | |
| url=f'https://omnibus-top-20.hf.space/file={out_img}' | |
| print(url) | |
| uid = uuid.uuid4() | |
| #urllib.request.urlretrieve(image, 'tmp.png') | |
| #out=Image.open('tmp.png') | |
| r = requests.get(url, stream=True) | |
| if r.status_code == 200: | |
| img_buffer = io.BytesIO(r.content) | |
| print (f'bytes:: {io.BytesIO(r.content)}') | |
| str_equivalent_image = base64.b64encode(img_buffer.getvalue()).decode() | |
| img_tag = "<img src='data:image/png;base64," + str_equivalent_image + "'/>" | |
| out_html+=f"<div class='img_class'><a href='https://huggingface.co/models/{models[i]}'>{models[i]}</a><br>"+img_tag+"</div>" | |
| out = Image.open(io.BytesIO(r.content)) | |
| out_box.append(out) | |
| html_out = "<div class='grid_class'>"+out_html+"</div>" | |
| yield out_box,html_out | |
| except Exception as e: | |
| out_html+=str(e) | |
| html_out = "<div class='grid_class'>"+out_html+"</div>" | |
| yield out_box,html_out | |
| def thread_dif(out_prompt,mod): | |
| out_box=[] | |
| out_html="" | |
| #for i,ea in enumerate(loaded_model): | |
| try: | |
| print (ea) | |
| model=loaded_model[int(mod)] | |
| out_img=model(out_prompt) | |
| print(out_img) | |
| url=f'https://omnibus-top-20.hf.space/file={out_img}' | |
| print(url) | |
| uid = uuid.uuid4() | |
| #urllib.request.urlretrieve(image, 'tmp.png') | |
| #out=Image.open('tmp.png') | |
| r = requests.get(url, stream=True) | |
| if r.status_code == 200: | |
| img_buffer = io.BytesIO(r.content) | |
| print (f'bytes:: {io.BytesIO(r.content)}') | |
| str_equivalent_image = base64.b64encode(img_buffer.getvalue()).decode() | |
| img_tag = "<img src='data:image/png;base64," + str_equivalent_image + "'/>" | |
| out_html+=f"<div class='img_class'><a href='https://huggingface.co/models/{models[i]}'>{models[i]}</a><br>"+img_tag+"</div>" | |
| out = Image.open(io.BytesIO(r.content)) | |
| out_box.append(out) | |
| html_out = "<div class='grid_class'>"+out_html+"</div>" | |
| yield out_box,html_out | |
| except Exception as e: | |
| out_html+=str(e) | |
| html_out = "<div class='grid_class'>"+out_html+"</div>" | |
| yield out_box,html_out | |
| def start_threads(prompt): | |
| t1 = threading.Thread(target=thread_dif, args=(prompt,0)) | |
| t2 = threading.Thread(target=thread_dif, args=(prompt,1)) | |
| t1.start() | |
| t2.start() | |
| print (t1) | |
| print (t2) | |
| css=""" | |
| .grid_class{ | |
| display:flex; | |
| height:100%; | |
| } | |
| .img_class{ | |
| min-width:200px; | |
| } | |
| """ | |
| with gr.Blocks(css=css) as app: | |
| inp=gr.Textbox() | |
| out_html=gr.HTML() | |
| outp=gr.Gallery() | |
| btn=gr.Button() | |
| btn.click(start_threads,inp,[outp,out_html]) | |
| app.launch() |