Spaces:
Running
Running
| import gradio as gr | |
| from models import models | |
| from PIL import Image | |
| import requests | |
| import uuid | |
| import io | |
| import base64 | |
| import random | |
| from transforms import RGBTransform # from source code mentioned above | |
| 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_color(out_prompt,model_drop,cnt,color,tint): | |
| h=color.lstrip('#') | |
| #h = input('Enter hex: ').lstrip('#') | |
| #print('RGB =', tuple(int(h[i:i+2], 16) for i in (0, 2, 4))) | |
| color=tuple(int(h[i:i+2], 16) for i in (0, 2, 4)) | |
| print (color) | |
| p_seed="" | |
| out_box=[] | |
| out_html="" | |
| #for i,ea in enumerate(loaded_model): | |
| for i in range(int(cnt)): | |
| rand=random.randint(1,500) | |
| for i in range(rand): | |
| p_seed+=" " | |
| try: | |
| #model=gr.load(f'models/{model[int(model_drop)]}') | |
| model=loaded_model[int(model_drop)] | |
| out_img=model(out_prompt+p_seed) | |
| print(out_img) | |
| raw=Image.open(out_img) | |
| raw=raw.convert('RGB') | |
| colorize = RGBTransform().mix_with(color,factor=float(tint)).applied_to(raw) | |
| out_box.append(colorize) | |
| except Exception as e: | |
| print(e) | |
| out_html=str(e) | |
| pass | |
| yield out_box,out_html | |
| def run_dif(out_prompt,model_drop,cnt): | |
| p_seed="" | |
| out_box=[] | |
| out_html="" | |
| #for i,ea in enumerate(loaded_model): | |
| for i in range(int(cnt)): | |
| p_seed+=" " | |
| try: | |
| model=loaded_model[int(model_drop)] | |
| out_img=model(out_prompt+p_seed) | |
| print(out_img) | |
| out_box.append(out_img) | |
| except Exception as e: | |
| print(e) | |
| out_html=str(e) | |
| pass | |
| yield out_box,out_html | |
| def run_dif_og(out_prompt,model_drop,cnt): | |
| out_box=[] | |
| out_html="" | |
| #for i,ea in enumerate(loaded_model): | |
| for i in range(cnt): | |
| try: | |
| #print (ea) | |
| model=loaded_model[int(model_drop)] | |
| 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) | |
| else: | |
| out_html=r.status_code | |
| html_out = "<div class='grid_class'>"+out_html+"</div>" | |
| return out_box,html_out | |
| except Exception as e: | |
| out_html=str(e) | |
| #out_html+=str(e) | |
| html_out = "<div class='grid_class'>"+out_html+"</div>" | |
| return 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) | |
| a1,a2=t1.result() | |
| b1,b2=t2.result() | |
| return a1,a2 | |
| css=""" | |
| .grid_class{ | |
| display:flex; | |
| height:100%; | |
| } | |
| .img_class{ | |
| min-width:200px; | |
| } | |
| """ | |
| with gr.Blocks(css=css, theme="Nymbo/Nymbo_Theme") as app: | |
| with gr.Row(): | |
| with gr.Column(): | |
| inp=gr.Textbox(label="Prompt") | |
| btn=gr.Button() | |
| with gr.Column(): | |
| col = gr.ColorPicker(label="Color Tint") | |
| tint = gr.Slider(label="Tint Strength", minimum=0, maximum=1, step=0.01, value=0.30) | |
| with gr.Row(): | |
| model_drop=gr.Dropdown(label="Models", choices=models, type='index', value=models[0]) | |
| cnt = gr.Number(value=1) | |
| out_html=gr.HTML() | |
| outp=gr.Gallery() | |
| btn.click(run_dif_color,[inp,model_drop,cnt,col,tint],[outp,out_html]) | |
| app.launch() |