| import gradio as gr | |
| import diff | |
| import os | |
| from PIL import Image | |
| import uuid | |
| sky = "https://huggingface.co/spaces/Omnibus/game-test/resolve/main/assets/sky.png" | |
| platform = 'https://huggingface.co/spaces/Omnibus/game-test/resolve/main/assets/platform.png' | |
| star = 'https://huggingface.co/spaces/Omnibus/game-test/resolve/main/assets/star.png' | |
| bomb = 'https://huggingface.co/spaces/Omnibus/game-test/resolve/main/assets/bomb.png' | |
| dude = 'https://huggingface.co/spaces/Omnibus/game-test/resolve/main/assets/dude.png' | |
| def game_fn(sky=sky,platform=platform,star=star,bomb=bomb,dude=dude): | |
| html_mod=f""" | |
| <div id="demo" style="height:600px"> | |
| <iframe | |
| id="myIframe" | |
| src="https://omnibus-game-test-static.static.hf.space/index.html?sky={sky}&platform={platform}&star={star}&bomb={bomb}&dude={dude}" | |
| frameborder="0" | |
| width="100%" | |
| height="100%" | |
| ></iframe> | |
| </div>""" | |
| return html_mod | |
| def update_game(sky=None,platform=None,star=None,bomb=None,dude=None): | |
| return game_fn(sky=sky) | |
| def dif_fn(inp): | |
| uid=uuid.uuid4() | |
| output=diff.send_it(inp,5,1) | |
| outp=Image.open(output[0]) | |
| width, height = outp.size | |
| rat = width/height | |
| if width > height: | |
| outp = outp.resize((600*rat,600)) | |
| elif width < height: | |
| outp = outp.resize((800,800*rat)) | |
| else: | |
| outp = outp.resize((800,800)) | |
| outp.save(f"{uid}_sky.png") | |
| out = os.path.abspath(f"{uid}_sky.png") | |
| out_url = f'https://omnibus-game-test.hf.space/file={out}' | |
| return output[0],out_url | |
| with gr.Blocks() as app: | |
| with gr.Row(): | |
| with gr.Column(): | |
| prompt=gr.Textbox() | |
| with gr.Row(): | |
| btn=gr.Button("Make Image") | |
| update_game=gr.Button("Use Image") | |
| out_im=gr.Image(type='filepath') | |
| out_url=gr.Textbox(visible=False) | |
| start_prompt=gr.Textbox(value="A beautiful landscape",visible=False) | |
| html_game = gr.HTML() | |
| update_game.click(game_fn,[out_url],html_game) | |
| btn.click(dif_fn,prompt,[out_im,out_url]) | |
| app.load(dif_fn,start_prompt,[out_im,out_url]).then(game_fn,[out_url],html_game) | |
| app.launch() |