Rooni commited on
Commit
d09d81b
·
verified ·
1 Parent(s): 78c61d3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -10
app.py CHANGED
@@ -3,6 +3,7 @@ import numpy as np
3
  import PIL.Image as Image
4
  import random
5
  import time
 
6
 
7
  # Список моделей с отображаемыми названиями и внутренними именами
8
  models = {
@@ -27,10 +28,10 @@ models = {
27
  # Очередь на генерации
28
  queue = []
29
 
30
- def generate_image(prompt, model_name, width, height, seed, steps, guidance_scale, random_seed, gallery, params_text):
31
  # Проверка очереди
32
  if len(queue) >= 150:
33
- return "Очередь переполнена. Пожалуйста, подождите.", gallery, params_text, seed
34
 
35
  # Добавляем задачу в очередь
36
  task_id = random.randint(100000, 999999)
@@ -50,7 +51,9 @@ def generate_image(prompt, model_name, width, height, seed, steps, guidance_scal
50
  f"Гуидансе скейл: {guidance_scale}"
51
  )
52
 
53
- images = []
 
 
54
  for step in range(steps):
55
  # Имитация генерации изображения
56
  time.sleep(random.uniform(0.1, 0.5)) # Таймаут до 0.5 секунды
@@ -59,14 +62,13 @@ def generate_image(prompt, model_name, width, height, seed, steps, guidance_scal
59
  image_array = np.random.randint(0, 256, (height, width, 3), dtype=np.uint8)
60
  image = Image.fromarray(image_array)
61
 
62
- # Добавление изображения в галерею
63
- images.append(image)
64
- gallery = images
65
 
66
  # Удаляем задачу из очереди
67
  queue.remove(task_id)
68
 
69
- return gallery, params_text, seed
70
 
71
  # Создание интерфейса
72
  with gr.Blocks() as demo:
@@ -93,7 +95,7 @@ with gr.Blocks() as demo:
93
  guidance_scale_slider = gr.Slider(0.1, 20.0, value=7.5, step=0.1, label="Гуидансе скейл")
94
 
95
  generate_button = gr.Button("Сгенерировать изображение")
96
- gallery = gr.Gallery(label="Сгенерированные изображения")
97
  params_textbox = gr.Textbox(label="Параметры генерации", interactive=False)
98
 
99
  generate_button.click(
@@ -107,10 +109,10 @@ with gr.Blocks() as demo:
107
  steps_slider,
108
  guidance_scale_slider,
109
  random_seed_checkbox,
110
- gallery,
111
  params_textbox
112
  ],
113
- outputs=[gallery, params_textbox, seed_slider]
114
  )
115
 
116
  demo.queue(max_size=150, api_open=False)
 
3
  import PIL.Image as Image
4
  import random
5
  import time
6
+ import threading
7
 
8
  # Список моделей с отображаемыми названиями и внутренними именами
9
  models = {
 
28
  # Очередь на генерации
29
  queue = []
30
 
31
+ def generate_image(prompt, model_name, width, height, seed, steps, guidance_scale, random_seed, output_image, params_textbox):
32
  # Проверка очереди
33
  if len(queue) >= 150:
34
+ return "Очередь переполнена. Пожалуйста, подождите.", None, None
35
 
36
  # Добавляем задачу в очередь
37
  task_id = random.randint(100000, 999999)
 
51
  f"Гуидансе скейл: {guidance_scale}"
52
  )
53
 
54
+ # Обновление параметров
55
+ params_textbox.update(params_text)
56
+
57
  for step in range(steps):
58
  # Имитация генерации изображения
59
  time.sleep(random.uniform(0.1, 0.5)) # Таймаут до 0.5 секунды
 
62
  image_array = np.random.randint(0, 256, (height, width, 3), dtype=np.uint8)
63
  image = Image.fromarray(image_array)
64
 
65
+ # Обновление изображения
66
+ output_image.update(image)
 
67
 
68
  # Удаляем задачу из очереди
69
  queue.remove(task_id)
70
 
71
+ return output_image, params_text, seed
72
 
73
  # Создание интерфейса
74
  with gr.Blocks() as demo:
 
95
  guidance_scale_slider = gr.Slider(0.1, 20.0, value=7.5, step=0.1, label="Гуидансе скейл")
96
 
97
  generate_button = gr.Button("Сгенерировать изображение")
98
+ output_image = gr.Image(label="Сгенерированное изображение")
99
  params_textbox = gr.Textbox(label="Параметры генерации", interactive=False)
100
 
101
  generate_button.click(
 
109
  steps_slider,
110
  guidance_scale_slider,
111
  random_seed_checkbox,
112
+ output_image,
113
  params_textbox
114
  ],
115
+ outputs=[output_image, params_textbox, seed_slider]
116
  )
117
 
118
  demo.queue(max_size=150, api_open=False)