File size: 2,291 Bytes
19ec9f5
 
 
 
86496e6
 
 
19ec9f5
86496e6
19ec9f5
86496e6
 
19ec9f5
 
 
86496e6
 
19ec9f5
 
 
 
 
 
86496e6
 
19ec9f5
86496e6
19ec9f5
 
86496e6
19ec9f5
 
86496e6
19ec9f5
 
 
 
 
 
 
 
 
 
86496e6
19ec9f5
 
 
 
 
 
 
 
 
86496e6
19ec9f5
 
 
86496e6
 
19ec9f5
 
 
 
 
 
 
 
 
 
 
 
 
 
86496e6
 
19ec9f5
 
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
76
77
78
#!/usr/bin/env python

from __future__ import annotations

import gradio as gr
import numpy as np

from model import Model

DESCRIPTION = "# [AvantGAN](https://github.com/ellemcfarlane/AvantGAN)"


def get_sample_image_url(name: str) -> str:
    sample_image_dir = "https://huggingface.co/spaces/ellemac/avantGAN/resolve/main/samples"
    return f"{sample_image_dir}/{name}.png"


def get_sample_image_markdown(name: str) -> str:
    url = get_sample_image_url(name)
    size = 128 if ("stylegan3" in name or "original" in name) else 64
    return f"""
    - size: {size}x{size}
    ![sample images]({url})"""


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(
                        label="Model", choices=list(model.MODEL_DICT.keys()), value="stylegan3-abstract"
                    )
                    seed = gr.Slider(label="Seed", minimum=0, maximum=np.iinfo(np.uint32).max, step=1, value=0)
                    run_button = gr.Button()
                with gr.Column():
                    result = gr.Image(label="Result", elem_id="result", width=300, height=300)

        with gr.TabItem("Sample Images"):
            with gr.Row():
                model_name2 = gr.Dropdown(
                    [
                        "stylegan3-abstract",
                        "stylegan3-high-fidelity",
                        "ada-dcgan",
                        "original-training-data",
                    ],
                    value="stylegan3-abstract",
                    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,
        queue=False,
        api_name=False,
    )

if __name__ == "__main__":
    demo.queue(max_size=20).launch()