File size: 1,671 Bytes
af10332
3a8ce39
75d0567
af10332
a5b71c1
 
 
 
 
43b1092
716be81
 
 
75d0567
a5b71c1
0176c0d
 
75d0567
 
 
70ba535
75d0567
a5b71c1
70ba535
a5b71c1
 
75d0567
a5b71c1
3a8ce39
a5b71c1
 
716be81
a5b71c1
3000443
 
a5b71c1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3000443
a5b71c1
 
 
 
 
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
import gradio as gr
import requests
import os

# Получаем URL и API Key из переменных окружения
base_url = os.getenv("BASE_URL")
api_key = os.getenv("API_KEY")

# Функция для отправки запроса к модели
def generate_image(prompt, negative_prompt, sampling_steps, cfg_scale, seed):
    headers = {
        "Authorization": f"Bearer {api_key}"
    }

    payload = {
        "prompt": prompt,
        "negative_prompt": negative_prompt,
        "sampling_steps": sampling_steps,
        "cfg_scale": cfg_scale,
        "seed": seed
    }

    response = requests.post(base_url, json=payload, headers=headers)

    # Предположим, что модель возвращает изображение в виде байтов
    generated_image_bytes = response.content

    return generated_image_bytes

# Создаем интерфейс Gradio
iface = gr.Interface(
    fn=generate_image,
    inputs=[
        gr.Textbox(label="Prompt", default=""),
        gr.Textbox(label="Negative Prompt", default="")
    ],
    outputs=[
        gr.Image(type="pil", label="Generated Image"),
        gr.Button("Download Image", onclick=lambda bytes: gr.download(bytes, "generated_image.png"))
    ],
    live=True,
    title="Huggingface Image Generator"
)

# Добавляем вторую вкладку
iface.add_tab(
    "Advanced Settings",
    [
        gr.Slider(minimum=1, maximum=30, label="Sampling Steps", default=15),
        gr.Slider(minimum=1, maximum=20, label="CFG Scale", default=10),
        gr.Textbox(label="Seed", default="-1")
    ]
)

# Запускаем интерфейс
iface.launch()