|
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() |