comdoleger commited on
Commit
647a13f
1 Parent(s): c545b69

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -5
app.py CHANGED
@@ -68,19 +68,45 @@ def process(data, api, api_key):
68
 
69
  return image
70
 
71
- def process_generate(fore, prompt, image_width, image_height, intensity, mode, refprompt, bg):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72
 
73
  size = fore.size
 
 
 
74
  if size[0]*size[1]<=(768*768):
75
  gr.Warning("ℹ️ The input image resolution is low, it might lead to some deformation!")
76
 
77
  if size[0]*size[1]>(1500*1500):
78
  gr.Warning("ℹ️ The input image size is too big, I will lower it!")
79
-
80
- forestr = image_to_base64(fore.convert("RGBA"))
81
 
82
 
83
-
84
  data = {
85
  "foreground_image64": forestr,
86
  "prompt" : prompt,
@@ -182,7 +208,7 @@ with block:
182
 
183
 
184
 
185
- ips = [fore, prompt, image_width, image_height, intensity, mode, refprompt, bg]
186
  generate_button.click(fn=process_generate, inputs=ips, outputs=[result_gallery])
187
 
188
 
 
68
 
69
  return image
70
 
71
+ def resize_to_fit(max_size, original_size):
72
+ """
73
+ Calculate the new size for an image to fit within max_size while maintaining the aspect ratio.
74
+
75
+ :param max_size: Maximum allowed size as a tuple (width, height).
76
+ :param original_size: Original size of the image as a tuple (width, height).
77
+ :return: New size as a tuple (new_width, new_height) that fits within max_size while maintaining the aspect ratio.
78
+ """
79
+ original_width, original_height = original_size
80
+ max_width, max_height = max_size
81
+
82
+ # Calculate the scaling factor to maintain aspect ratio
83
+ width_ratio = max_width / original_width
84
+ height_ratio = max_height / original_height
85
+ scaling_factor = min(width_ratio, height_ratio)
86
+
87
+ # Calculate the new size while maintaining the aspect ratio
88
+ new_width = int(original_width * scaling_factor)
89
+ new_height = int(original_height * scaling_factor)
90
+
91
+ return new_width, new_height
92
+
93
+
94
+ def process_generate(fore, prompt, intensity, mode, refprompt, bg):
95
 
96
  size = fore.size
97
+ image_width = size[0]
98
+ image_height = size[1]
99
+
100
  if size[0]*size[1]<=(768*768):
101
  gr.Warning("ℹ️ The input image resolution is low, it might lead to some deformation!")
102
 
103
  if size[0]*size[1]>(1500*1500):
104
  gr.Warning("ℹ️ The input image size is too big, I will lower it!")
105
+ image_width, image_height = resize_to_fit((1500,1500), (image_width, image_height))
106
+
107
 
108
 
109
+ forestr = image_to_base64(fore.convert("RGBA"))
110
  data = {
111
  "foreground_image64": forestr,
112
  "prompt" : prompt,
 
208
 
209
 
210
 
211
+ ips = [fore, prompt, intensity, mode, refprompt, bg]
212
  generate_button.click(fn=process_generate, inputs=ips, outputs=[result_gallery])
213
 
214