File size: 2,941 Bytes
ff1df2a
 
 
7d9be07
056a538
f6b6ceb
7fcead6
f6b6ceb
 
7d9be07
 
056a538
f6b6ceb
 
 
aeb71ff
db9320e
aeb71ff
24da95e
 
7d9be07
 
f6b6ceb
7fcead6
f6b6ceb
a5b71c1
0619f29
7d9be07
5cbcb31
 
 
 
 
 
 
 
 
 
 
 
0619f29
75d0567
0619f29
5cbcb31
 
 
 
 
 
 
 
0619f29
70ba535
7d9be07
 
9cb2b2f
5cbcb31
c8514d9
4210b53
cac4c70
 
4210b53
 
cac4c70
 
 
 
 
4210b53
 
0782038
4210b53
c8514d9
0aaeb17
5cbcb31
9cb2b2f
 
 
a5b71c1
0619f29
7d9be07
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
79
80
81
82
import gradio as gr
import requests

# Базовые настройки
prompt = gr.Textbox(label="Prompt")
models = gr.Radio(
    ["Bard", "DALL-E 2", "VQGAN+CLIP", "VQGAN", "CLIP", "InceptionV3", "VQGAN+CLIP-ViT-B16", "VQGAN+CLIP-ViT-B32", "VQGAN+CLIP-ViT-L", "VQGAN+CLIP-ViT-H", "VQGAN+CLIP-ViT-XL"],
    label="Model",
)

# Расширенные настройки
negative_prompt = gr.Textbox(label="Negative Prompt")
sampling_method = gr.Radio(
    ["random", "greedy", "nucleus", "top_k", "top_p"], label="Sampling Method"
)
sampling_steps = gr.Number(
    label="Sampling Steps", value=30, minimum=1, maximum=100
)
cfg_scale = gr.Number(label="CFG Scale", minimum=0.1, maximum=10.0, value=1.0)
seed = gr.Number(label="Seed", minimum=0, maximum=2**31, value=0)

# Улучшение качества
algorithm = gr.Radio(
    ["nearest", "bilinear", "bicubic", "lanczos", "cubic", "mitchell", "bicubic_nn", "bicubic_nn_diff", "bicubic_nn_diff_v2"], label="Algorithm"
)

# Функция генерации изображения
def generate_image(prompt, model, negative_prompt, sampling_method, sampling_steps, cfg_scale, seed):
    url = "https://api.huggingface.co/models/text-to-image/v1/generate"
    data = {
        "prompt": prompt,
        "model": model,
        "negative_prompt": negative_prompt,
        "sampling_method": sampling_method,
        "sampling_steps": sampling_steps,
        "cfg_scale": cfg_scale,
        "seed": seed,
    }
    response = requests.post(url, json=data)
    image = response.json()["image"]
    return image

# Функция улучшения качества изображения
def improve_quality(image, algorithm):
    url = "https://api.huggingface.co/models/text-to-image/v1/improve-quality"
    data = {
        "image": image,
        "algorithm": algorithm,
    }
    response = requests.post(url, json=data)
    image = response.json()["image"]
    return image

# Основная функция
def main():
    interface = gr.Interface(
        generate_image,
        [
            gr.Row(
                gr.Column(prompt, "Базовые настройки"),
                gr.Column(models, "Базовые настройки"),
            ),
            gr.Row(
                gr.Column(negative_prompt, "Расширенные настройки"),
                gr.Column(sampling_method, "Расширенные настройки"),
                gr.Column(sampling_steps, "Расширенные настройки"),
                gr.Column(cfg_scale, "Расширенные настройки"),
                gr.Column(seed, "Расширенные настройки"),
            ),
            gr.Row(
                algorithm,  # Assuming 'algorithm' is a single component
            ),
        ],
        outputs=gr.Image(),
        title="Gradio Image Generator",
    )

    interface.launch()

if __name__ == "__main__":
    main()