Rooni commited on
Commit
0619f29
·
1 Parent(s): 85ca52b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +76 -43
app.py CHANGED
@@ -1,51 +1,84 @@
1
  import gradio as gr
2
- import requests
3
- import os
4
 
5
- # Получаем URL и API Key из переменных окружения
6
- base_url = os.getenv("BASE_URL")
7
- api_key = os.getenv("API_KEY")
 
 
 
 
 
 
 
 
 
 
 
 
8
 
9
- # Функция для отправки запроса к модели
10
- def generate_image(prompt, negative_prompt, sampling_steps, cfg_scale, seed):
11
- headers = {
12
- "Authorization": f"Bearer {api_key}"
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
 
15
- payload = {
16
- "prompt": prompt,
17
- "negative_prompt": negative_prompt,
18
- "sampling_steps": sampling_steps,
19
- "cfg_scale": cfg_scale,
20
- "seed": seed
21
- }
22
 
23
- response = requests.post(base_url, json=payload, headers=headers)
 
 
 
 
24
 
25
- # Предположим, что модель возвращает изображение в виде байтов
26
- generated_image_bytes = response.content
27
-
28
- return generated_image_bytes
29
-
30
- # Функция для обработки действия при нажатии кнопки
31
- def download_image(prompt, negative_prompt, sampling_steps, cfg_scale, seed):
32
- bytes = generate_image(prompt, negative_prompt, sampling_steps, cfg_scale, seed)
33
- gr.download(bytes, "generated_image.png")
34
-
35
- # Создаем интерфейс Gradio
36
- iface = gr.Interface(
37
- fn=download_image,
38
- inputs=[
39
- gr.Textbox(label="Prompt", placeholder="Enter prompt here"),
40
- gr.Textbox(label="Negative Prompt", placeholder="Enter negative prompt here"),
41
- gr.Slider(minimum=1, maximum=30, label="Sampling Steps", initial=15),
42
- gr.Slider(minimum=1, maximum=20, label="CFG Scale", initial=10),
43
- gr.Textbox(label="Seed", placeholder="Enter seed here", default="-1")
44
- ],
45
- outputs=gr.Image(type="pil", label="Generated Image"),
46
- live=True,
47
- title="Huggingface Image Generator"
48
  )
49
 
50
- # Запускаем интерфейс
51
- iface.launch()
 
1
  import gradio as gr
2
+ import torch
3
+ from PIL import Image
4
 
5
+ # Список моделей
6
+ models = [
7
+ "CLIP",
8
+ "DALL-E 2",
9
+ "VQGAN + CLIP",
10
+ "VQGAN",
11
+ "Dreams",
12
+ "VQGAN-CLIP-ADA",
13
+ "DALL-E Mini",
14
+ "VQGAN-CLIP-Ada-Mini",
15
+ "DALL-E Mini-Fusion",
16
+ "VQGAN-CLIP-Ada-Mini-Fusion",
17
+ "DALL-E 2 Mini",
18
+ "VQGAN-CLIP-Ada-Mini-2",
19
+ ]
20
 
21
+ # Функция генерации изображения
22
+ def generate_image(prompt, negative_prompt, model):
23
+ if model == "CLIP":
24
+ from clip import clip
25
+ image = clip.generate(prompt, negative_prompt)
26
+ elif model == "DALL-E 2":
27
+ from d2l import d2l
28
+ image = d2l.generate_image(prompt, negative_prompt)
29
+ elif model == "VQGAN + CLIP":
30
+ from vqgan_clip import vqgan_clip
31
+ image = vqgan_clip.generate(prompt, negative_prompt)
32
+ elif model == "VQGAN":
33
+ from vqgan import vqgan
34
+ image = vqgan.generate(prompt, negative_prompt)
35
+ elif model == "Dreams":
36
+ from dreams import dreams
37
+ image = dreams.generate(prompt, negative_prompt)
38
+ elif model == "VQGAN-CLIP-ADA":
39
+ from vqgan_clip_ada import vqgan_clip_ada
40
+ image = vqgan_clip_ada.generate(prompt, negative_prompt)
41
+ elif model == "DALL-E Mini":
42
+ from dall_e_mini import dall_e_mini
43
+ image = dall_e_mini.generate(prompt, negative_prompt)
44
+ elif model == "VQGAN-CLIP-Ada-Mini":
45
+ from vqgan_clip_ada_mini import vqgan_clip_ada_mini
46
+ image = vqgan_clip_ada_mini.generate(prompt, negative_prompt)
47
+ elif model == "DALL-E Mini-Fusion":
48
+ from dall_e_mini_fusion import dall_e_mini_fusion
49
+ image = dall_e_mini_fusion.generate(prompt, negative_prompt)
50
+ elif model == "VQGAN-CLIP-Ada-Mini-Fusion":
51
+ from vqgan_clip_ada_mini_fusion import vqgan_clip_ada_mini_fusion
52
+ image = vqgan_clip_ada_mini_fusion.generate(prompt, negative_prompt)
53
+ elif model == "DALL-E 2 Mini":
54
+ from dall_e_2_mini import dall_e_2_mini
55
+ image = dall_e_2_mini.generate(prompt, negative_prompt)
56
+ elif model == "VQGAN-CLIP-Ada-Mini-2":
57
+ from vqgan_clip_ada_mini_2 import vqgan_clip_ada_mini_2
58
+ image = vqgan_clip_ada_mini_2.generate(prompt, negative_prompt)
59
 
60
+ image = Image.fromarray(image)
61
+ return image
 
 
 
 
 
62
 
63
+ # Функция улучшения качества изображения
64
+ def improve_image(image):
65
+ from improve_image import improve_image
66
+ image = improve_image(image)
67
+ return image
68
 
69
+ # Интерфейс gradio
70
+ app = gr.Interface(
71
+ generate_image,
72
+ title="Gradio Image Generator",
73
+ description="Генератор изображений с помощью ИИ",
74
+ inputs={
75
+ "prompt": gr.Input(type="text", label="Текстовый запрос"),
76
+ "negative_prompt": gr.Input(type="text", label="Отрицательный текстовый запрос"),
77
+ "model": gr.Select(models, label="Модель"),
78
+ },
79
+ outputs={"image": gr.Output(type="image", label="Сгенерированное изображение")},
80
+ buttons={"Улучшить качество": improve_image},
 
 
 
 
 
 
 
 
 
 
 
81
  )
82
 
83
+ if __name__ == "__main__":
84
+ app.launch()