Rooni commited on
Commit
550e3c0
·
verified ·
1 Parent(s): 9a8fd00

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -5
app.py CHANGED
@@ -10,6 +10,10 @@ import hashlib
10
 
11
  app = Flask(__name__)
12
 
 
 
 
 
13
  # Кэш на 10 минут
14
  cache = TTLCache(maxsize=100, ttl=600)
15
 
@@ -25,6 +29,18 @@ def generate_cache_key(prompt, width, height, seed, model_name):
25
  # Создаем уникальный ключ на основе всех параметров
26
  return hashlib.md5(f"{prompt}_{width}_{height}_{seed}_{model_name}".encode()).hexdigest()
27
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  @cached(cache)
29
  def generate_cached_image(cache_key, prompt, width, height, seed, model_name):
30
  api_key = get_random_key()
@@ -38,10 +54,7 @@ def generate_cached_image(cache_key, prompt, width, height, seed, model_name):
38
  "width": width,
39
  "height": height,
40
  "seed": seed
41
- },
42
- "width": width,
43
- "height": height,
44
- "seed": seed,
45
  }
46
 
47
  try:
@@ -64,6 +77,9 @@ def get_image(prompt):
64
  # Декодируем URL-кодированный prompt
65
  prompt = urllib.parse.unquote(prompt)
66
 
 
 
 
67
  # Генерируем уникальный ключ для кэша
68
  cache_key = generate_cache_key(prompt, width, height, seed, model_name)
69
 
@@ -87,4 +103,4 @@ def health_check():
87
  return "OK", 200
88
 
89
  if __name__ == '__main__':
90
- app.run(host='0.0.0.0', port=7860, debug=True)
 
10
 
11
  app = Flask(__name__)
12
 
13
+ # Максимальные значения для ширины и высоты
14
+ MAX_WIDTH = 850
15
+ MAX_HEIGHT = 850
16
+
17
  # Кэш на 10 минут
18
  cache = TTLCache(maxsize=100, ttl=600)
19
 
 
29
  # Создаем уникальный ключ на основе всех параметров
30
  return hashlib.md5(f"{prompt}_{width}_{height}_{seed}_{model_name}".encode()).hexdigest()
31
 
32
+ def scale_dimensions(width, height, max_width, max_height):
33
+ """Масштабирует размеры изображения, сохраняя соотношение сторон."""
34
+ aspect_ratio = width / height
35
+ if width > max_width or height > max_height:
36
+ if width / max_width > height / max_height:
37
+ width = max_width
38
+ height = int(width / aspect_ratio)
39
+ else:
40
+ height = max_height
41
+ width = int(height * aspect_ratio)
42
+ return width, height
43
+
44
  @cached(cache)
45
  def generate_cached_image(cache_key, prompt, width, height, seed, model_name):
46
  api_key = get_random_key()
 
54
  "width": width,
55
  "height": height,
56
  "seed": seed
57
+ }
 
 
 
58
  }
59
 
60
  try:
 
77
  # Декодируем URL-кодированный prompt
78
  prompt = urllib.parse.unquote(prompt)
79
 
80
+ # Масштабируем размеры изображения, если они превышают максимальные значения
81
+ width, height = scale_dimensions(width, height, MAX_WIDTH, MAX_HEIGHT)
82
+
83
  # Генерируем уникальный ключ для кэша
84
  cache_key = generate_cache_key(prompt, width, height, seed, model_name)
85
 
 
103
  return "OK", 200
104
 
105
  if __name__ == '__main__':
106
+ app.run(host='0.0.0.0', port=7860, debug=False)