File size: 2,085 Bytes
20ed832
 
 
 
8f39d59
ef06509
8f39d59
5721855
20ed832
 
ef06509
5721855
 
20ed832
 
ef06509
 
371a997
ef06509
5721855
ef06509
 
 
5721855
 
ef06509
 
5721855
20ed832
ef06509
6487501
 
371a997
6487501
 
 
5721855
6487501
 
5721855
 
 
6487501
5721855
6487501
5721855
6487501
5721855
 
 
 
 
 
 
 
 
6487501
 
 
 
371a997
 
 
 
 
 
 
 
 
 
 
6487501
5721855
371a997
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
71
72
73
74
75
#!/usr/bin/env python

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 in {"celeba-hq", "ffhq"}:
        size = 1024
    elif name == "lsun-church":
        size = 256
    else:
        raise ValueError
    seed = "0-99"
    return f"""
    - size: {size}x{size}
    - seed: {seed}
    ![sample images]({url})"""


model = Model()

with gr.Blocks(css_paths="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.launch()