|
import gradio as gr |
|
import diff |
|
import os |
|
from PIL import Image |
|
import uuid |
|
import random |
|
|
|
proc1=diff |
|
proc2=diff |
|
|
|
|
|
|
|
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,star=star,bomb=bomb,platform=platform,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(inp): |
|
|
|
return game_fn(sky=sky) |
|
|
|
def sky_fn(inp): |
|
rand = random.randint(1,200) |
|
for i in range(rand): |
|
inp+=" " |
|
|
|
|
|
uid=uuid.uuid4() |
|
output=proc1.send_it(inp,5,1) |
|
|
|
|
|
print(output) |
|
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,536)) |
|
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 |
|
|
|
def star_fn(inp): |
|
rand = random.randint(1,200) |
|
for i in range(rand): |
|
inp+=" " |
|
|
|
|
|
uid=uuid.uuid4() |
|
|
|
output=proc2.send_it(inp,5,1) |
|
|
|
|
|
|
|
print(output) |
|
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((24,24)) |
|
outp.save(f"{uid}_star.png") |
|
out = os.path.abspath(f"{uid}_star.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_sky=gr.Image(type='filepath',width=50) |
|
out_im_star=gr.Image(type='filepath',width=50) |
|
out_sky_url=gr.Textbox(visible=False) |
|
out_star_url=gr.Textbox(visible=False) |
|
start_prompt=gr.Textbox(value="beautiful landscape, real, 8k",visible=False) |
|
html_game = gr.HTML() |
|
|
|
update_game.click(game_fn,[out_sky_url,out_star_url],html_game) |
|
btn.click(sky_fn,prompt,[out_im_sky,out_sky_url]) |
|
btn.click(star_fn,prompt,[out_im_star,out_star_url]) |
|
app.load(sky_fn,start_prompt,[out_im_sky,out_sky_url]).then(game_fn,[out_sky_url],html_game) |
|
app.queue(concurrency_count=10).launch() |