File size: 2,099 Bytes
20ed832 8f39d59 ef06509 8f39d59 5721855 20ed832 ef06509 5721855 20ed832 ef06509 5721855 ef06509 5721855 ef06509 5721855 ef06509 5721855 ef06509 5721855 20ed832 ef06509 6487501 5721855 6487501 5721855 6487501 5721855 6487501 5721855 6487501 5721855 6487501 5721855 6487501 5721855 6487501 5721855 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
#!/usr/bin/env python
from __future__ import annotations
import gradio as gr
import numpy as np
from model import Model
DESCRIPTION = "# [StyleSwin](https://github.com/microsoft/StyleSwin)"
def get_sample_image_url(name: str) -> str:
sample_image_dir = "https://huggingface.co/spaces/hysts/StyleSwin/resolve/main/samples"
return f"{sample_image_dir}/{name}.jpg"
def get_sample_image_markdown(name: str) -> str:
url = get_sample_image_url(name)
if name == "celeba-hq":
size = 1024
elif name == "ffhq":
size = 1024
elif name == "lsun-church":
size = 256
else:
raise ValueError
seed = "0-99"
return f"""
- size: {size}x{size}
- seed: {seed}
"""
model = Model()
with gr.Blocks(css="style.css") as demo:
gr.Markdown(DESCRIPTION)
with gr.Tabs():
with gr.TabItem("App"):
with gr.Row():
with gr.Column():
model_name = gr.Dropdown(model.MODEL_NAMES, value=model.MODEL_NAMES[3], label="Model")
seed = gr.Slider(0, np.iinfo(np.uint32).max, step=1, value=0, label="Seed")
run_button = gr.Button("Run")
with gr.Column():
result = gr.Image(label="Result", elem_id="result")
with gr.TabItem("Sample Images"):
with gr.Row():
model_name2 = gr.Dropdown(
[
"celeba-hq",
"ffhq",
"lsun-church",
],
value="celeba-hq",
label="Model",
)
with gr.Row():
text = get_sample_image_markdown(model_name2.value)
sample_images = gr.Markdown(text)
run_button.click(fn=model.set_model_and_generate_image, inputs=[model_name, seed], outputs=result, api_name="run")
model_name2.change(fn=get_sample_image_markdown, inputs=model_name2, outputs=sample_images)
if __name__ == "__main__":
demo.queue(max_size=15).launch()
|