aiqtech commited on
Commit
e62f2fc
ยท
verified ยท
1 Parent(s): a817205

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +56 -0
app.py CHANGED
@@ -217,6 +217,62 @@ def fill_image(prompt, image, model_selection):
217
  def clear_result():
218
  return gr.update(value=None)
219
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
220
  #--------------- ์ด๋ฏธ์ง€ ์ธํŽ˜์ธํŒ… ๋ ----------------
221
 
222
  class timer:
 
217
  def clear_result():
218
  return gr.update(value=None)
219
 
220
+ def process_inpainting(image, mask_input, prompt):
221
+ """์ด๋ฏธ์ง€ ์ธํŽ˜์ธํŒ… ์ฒ˜๋ฆฌ ํ•จ์ˆ˜"""
222
+ try:
223
+ if image is None or mask_input is None or not prompt:
224
+ raise gr.Error("Please provide image, mask, and prompt")
225
+
226
+ # ํ”„๋กฌํ”„ํŠธ ๋ฒˆ์—ญ (ํ•œ๊ธ€์ธ ๊ฒฝ์šฐ)
227
+ translated_prompt = translate_if_korean(prompt)
228
+
229
+ # ๋งˆ์Šคํฌ ์ฒ˜๋ฆฌ
230
+ source = image
231
+ if isinstance(mask_input, dict):
232
+ mask = mask_input["layers"][0]
233
+ alpha_channel = mask.split()[3]
234
+ binary_mask = alpha_channel.point(lambda p: p > 0 and 255)
235
+ else:
236
+ raise gr.Error("Invalid mask input")
237
+
238
+ # ์ธํŽ˜์ธํŒ…์„ ์œ„ํ•œ ์ด๋ฏธ์ง€ ์ค€๋น„
239
+ cnet_image = source.copy()
240
+ cnet_image.paste(0, (0, 0), binary_mask)
241
+
242
+ # ํ”„๋กฌํ”„ํŠธ ์ž„๋ฒ ๋”ฉ
243
+ (
244
+ prompt_embeds,
245
+ negative_prompt_embeds,
246
+ pooled_prompt_embeds,
247
+ negative_pooled_prompt_embeds,
248
+ ) = pipe.encode_prompt(translated_prompt, "cuda", True)
249
+
250
+ # ์ธํŽ˜์ธํŒ… ์‹คํ–‰
251
+ result = None
252
+ for image in pipe(
253
+ prompt_embeds=prompt_embeds,
254
+ negative_prompt_embeds=negative_prompt_embeds,
255
+ pooled_prompt_embeds=pooled_prompt_embeds,
256
+ negative_pooled_prompt_embeds=negative_pooled_prompt_embeds,
257
+ image=cnet_image,
258
+ ):
259
+ result = image
260
+
261
+ if result is None:
262
+ raise gr.Error("Inpainting failed")
263
+
264
+ # ๊ฒฐ๊ณผ ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ
265
+ result = result.convert("RGBA")
266
+ cnet_image.paste(result, (0, 0), binary_mask)
267
+
268
+ return cnet_image
269
+
270
+ except Exception as e:
271
+ print(f"Inpainting error: {str(e)}")
272
+ raise gr.Error(f"Inpainting failed: {str(e)}")
273
+ finally:
274
+ clear_memory()
275
+
276
  #--------------- ์ด๋ฏธ์ง€ ์ธํŽ˜์ธํŒ… ๋ ----------------
277
 
278
  class timer: