aflammkhtart5 commited on
Commit
19f439c
·
verified ·
1 Parent(s): 5feb31d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -0
app.py CHANGED
@@ -2,7 +2,19 @@ import gradio as gr
2
  import numpy as np
3
  from PIL import Image
4
  import cv2
 
5
 
 
 
 
 
 
 
 
 
 
 
 
6
  def get_mask_bbox(mask: Image.Image):
7
  """نسخة محسنة من الدالة"""
8
  try:
@@ -40,6 +52,7 @@ def mask_to_alpha(mask: Image.Image, smooth_edges=True, morph_level=0):
40
 
41
  return Image.fromarray(mask_np)
42
 
 
43
  def crop_masked_object(img: Image.Image, mask: Image.Image, smooth_edges=True, morph_level=0, scale=1.0, rotation=0, transparency=1.0):
44
  bbox = get_mask_bbox(mask)
45
  if bbox is None:
@@ -124,6 +137,7 @@ def extract_mask_from_editor(editor_data):
124
 
125
  return None
126
 
 
127
  def process_transfer(image1_editor, mask1_upload, image2_editor, mask2_upload,
128
  scale, transparency, rotation, smooth_edges, morph_level, fit_mode):
129
  # التحقق من وجود الصور
@@ -211,6 +225,11 @@ def create_interface():
211
  """
212
 
213
  with gr.Blocks(title="نقل كائن من صورة إلى أخرى مع القناع والمحاذاة", css=css) as demo:
 
 
 
 
 
214
  gr.Markdown("""
215
  # 🖼️ نقل كائن من صورة إلى أخرى مع القناع والمحاذاة
216
  يمكنك تعديل إعدادات نقل الكائن من هنا، أو تركها على الإعدادات الافتراضية.
 
2
  import numpy as np
3
  from PIL import Image
4
  import cv2
5
+ import time
6
 
7
+ # دالة لقياس أداء الدوال
8
+ def timing_decorator(func):
9
+ def wrapper(*args, **kwargs):
10
+ start_time = time.time()
11
+ result = func(*args, **kwargs)
12
+ end_time = time.time()
13
+ print(f"⏱️ {func.__name__} استغرقت: {end_time - start_time:.2f} ثانية")
14
+ return result
15
+ return wrapper
16
+
17
+ @timing_decorator
18
  def get_mask_bbox(mask: Image.Image):
19
  """نسخة محسنة من الدالة"""
20
  try:
 
52
 
53
  return Image.fromarray(mask_np)
54
 
55
+ @timing_decorator
56
  def crop_masked_object(img: Image.Image, mask: Image.Image, smooth_edges=True, morph_level=0, scale=1.0, rotation=0, transparency=1.0):
57
  bbox = get_mask_bbox(mask)
58
  if bbox is None:
 
137
 
138
  return None
139
 
140
+ @timing_decorator
141
  def process_transfer(image1_editor, mask1_upload, image2_editor, mask2_upload,
142
  scale, transparency, rotation, smooth_edges, morph_level, fit_mode):
143
  # التحقق من وجود الصور
 
225
  """
226
 
227
  with gr.Blocks(title="نقل كائن من صورة إلى أخرى مع القناع والمحاذاة", css=css) as demo:
228
+ gr.Markdown("""
229
+ ⏳ **ملاحظة:** عند أول استخدام، قد يستغرق التطبيق 20-30 ثانية للبدء بسبب تحميل النماذج.
230
+ بعد ذلك ستعمل الأداة بسرعة.
231
+ """)
232
+
233
  gr.Markdown("""
234
  # 🖼️ نقل كائن من صورة إلى أخرى مع القناع والمحاذاة
235
  يمكنك تعديل إعدادات نقل الكائن من هنا، أو تركها على الإعدادات الافتراضية.