mrdilaw commited on
Commit
b3134cc
·
verified ·
1 Parent(s): 4e784eb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -25
app.py CHANGED
@@ -1,45 +1,47 @@
1
  import torch
2
- from torchvision import transforms
3
  from PIL import Image
4
- import gradio as gr
5
- from transformers import AutoModelForImageClassification, AutoFeatureExtractor
6
  import numpy as np
 
 
 
 
 
7
 
8
- # تحميل النموذج مع السماح بتشغيل الكود المخصص
9
- birefnet = AutoModelForImageClassification.from_pretrained(
10
- "briaai/RMBG-1.4", trust_remote_code=True
11
- )
12
- birefnet.to("cpu") # ✅ التشغيل على CPU
13
 
14
- # تحميل محول الميزات (feature extractor)
15
- extractor = AutoFeatureExtractor.from_pretrained("briaai/RMBG-1.4")
16
 
17
- # تحويل الصورة لإدخال النموذج
18
- def transform_image(image):
19
- inputs = extractor(images=image, return_tensors="pt")
20
- return inputs["pixel_values"][0]
 
 
 
 
 
21
 
22
- # دالة إزالة الخلفية
23
  def process(image):
24
- input_images = transform_image(image).unsqueeze(0).to("cpu")
25
  with torch.no_grad():
26
- output = birefnet(input_images).logits.squeeze(0)[0]
27
- mask = torch.sigmoid(output).cpu().numpy()
28
- mask = (mask * 255).astype(np.uint8)
29
- mask = Image.fromarray(mask).resize(image.size)
30
 
31
  image = image.convert("RGBA")
32
- mask = mask.convert("L")
33
- image.putalpha(mask)
34
  return image
35
 
36
- # واجهة Gradio
37
  demo = gr.Interface(
38
  fn=process,
39
  inputs=gr.Image(type="pil"),
40
  outputs=gr.Image(type="pil"),
41
- title="إزالة خلفية الصور باستخدام BiRefNet (CPU)",
42
- description="ارفع صورة وسيتم إزالة الخلفية تلقائيًا باستخدام نموذج BiRefNet على وحدة المعالجة المركزية فقط."
43
  )
44
 
45
  demo.launch()
 
1
  import torch
 
2
  from PIL import Image
 
 
3
  import numpy as np
4
+ import gradio as gr
5
+ from transformers import AutoFeatureExtractor
6
+ from huggingface_hub import snapshot_download
7
+ import sys
8
+ import os
9
 
10
+ # تحميل ملفات النموذج بالكامل
11
+ model_path = snapshot_download(repo_id="briaai/RMBG-1.4", trust_remote_code=True)
 
 
 
12
 
13
+ # إضافة مجلد النموذج إلى المسار
14
+ sys.path.insert(0, model_path)
15
 
16
+ # استيراد الكلاس المخصص للنموذج
17
+ from model import RMBGModel
18
+
19
+ # تهيئة النموذج
20
+ model = RMBGModel.from_pretrained(model_path, trust_remote_code=True)
21
+ model.eval()
22
+
23
+ # تحميل الـ feature extractor
24
+ extractor = AutoFeatureExtractor.from_pretrained("briaai/RMBG-1.4")
25
 
 
26
  def process(image):
27
+ inputs = extractor(images=image, return_tensors="pt")
28
  with torch.no_grad():
29
+ result = model(**inputs)
30
+ alpha = result["output"].squeeze().numpy()
31
+ alpha = (alpha * 255).astype(np.uint8)
32
+ alpha = Image.fromarray(alpha).resize(image.size)
33
 
34
  image = image.convert("RGBA")
35
+ alpha = alpha.convert("L")
36
+ image.putalpha(alpha)
37
  return image
38
 
 
39
  demo = gr.Interface(
40
  fn=process,
41
  inputs=gr.Image(type="pil"),
42
  outputs=gr.Image(type="pil"),
43
+ title="إزالة خلفية الصور باستخدام RMBG",
44
+ description="ارفع صورة وسيتم إزالة الخلفية تلقائيًا باستخدام نموذج RMBG من briaai."
45
  )
46
 
47
  demo.launch()