File size: 3,187 Bytes
645a646
 
bdc1000
645a646
 
1e9186f
65b9940
082714d
 
 
08c6b22
f158749
645a646
5c44832
645a646
2a151c5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0a0f56d
2a151c5
 
 
988fab5
645a646
1e9186f
645a646
 
 
 
 
9f4a4c7
 
28134b1
9f4a4c7
28134b1
e71ddd1
61e602a
28134b1
 
4e262af
b2bdc9e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2a151c5
7d1bd87
 
 
 
 
 
 
 
 
 
2a151c5
b2bdc9e
9f4a4c7
 
b2bdc9e
 
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
83
84
85
86
87
88
89
90
91
92
import gradio as gr
import requests
import os

# API ссылка
url = "https://stablediffusionapi.com/api/v4/dreambooth"

# API ключ
api_key = os.getenv("KEY")

model_list = ["AbsoluteReality 1.8.1", "Elldreth's Vivid Mix", "Anything V5", "Openjourney V4", "Analog Diffusion", "Lyriel 1.6", "Realistic Vision 5.0", "Dreamshaper 8", "epiCRealism v5", "CyberRealistic 3.3", "ToonYou 6", "Deliberate 3"]

# Функция для отправки запроса
def render(prompt, model, negative_prompt, width, height, guidance, seed, upscale):
    data = {
        "key": api_key,
        "model_id": model,
        "prompt": prompt,
        "negative_prompt": negative_prompt,
        "width": width,
        "height": height,
        "samples": "1",
        "num_inference_steps": "40",
        "safety_checker": "no",
        "enhance_prompt": "yes",
        "seed": seed,
        "guidance_scale": guidance,
        "multi_lingual": "no",
        "panorama": "no",
        "self_attention": "no",
        "upscale": upscale,
        "embeddings": "embeddings_model_id",
        "lora": "lora_model_id",
        "webhook": None,
        "track_id": None,
    }
    response = requests.post(url, json=data)
    if response.status_code == 200:
        return response.content
    else:
        return None

# Создаем компоненты для ввода данных
prompt_textbox = gr.Textbox(lines=3, placeholder="Введите описание изображения", label="Описание изображения:")
model_radio = gr.Radio(choices=model_list, label="Модель:", value="Anything V5", type="value")
negative_prompt_textbox = gr.Textbox(lines=3, placeholder="Введите Negative Prompt", label="Negative Prompt:")
width_slider = gr.Slider(minimum=256, maximum=2048, value=512, label="Ширина:")
height_slider = gr.Slider(minimum=256, maximum=2048, value=512, label="Высота:")
guidance_slider = gr.Slider(minimum=1, maximum=20, value=7.5, label="CFG Scale:")
seed_slider = gr.Slider(minimum=-1, maximum=1000000, value=-1, label="Seed:")
upscale_dropdown = gr.Dropdown(choices=["yes", "no"], label="Upscale", value="no")

# Создаем интерфейс для первой вкладки
iface_tab1 = gr.Interface(
    fn=render,
    inputs=[
        prompt_textbox,
        model_radio,
        negative_prompt_textbox,
        width_slider,
        height_slider,
        guidance_slider,
        seed_slider,
        upscale_dropdown,
    ],
    outputs=gr.Image(),
    title="Вкладка 1"
)

# Создаем компоненты для второй вкладки (можно скопировать и адаптировать)
# ...

# Создаем интерфейс для второй вкладки
iface_tab2 = gr.Interface(
    fn=render,
    inputs=[
        prompt_textbox,
        model_radio,
        negative_prompt_textbox,
        width_slider,
        height_slider,
        guidance_slider,
        seed_slider,
        upscale_dropdown,
    ],
    outputs=gr.Image(),
    title="Вкладка 2"
)

# Запускаем оба интерфейса
gr.Interface.Tab([iface_tab1, iface_tab2]).launch()