iq7se2 commited on
Commit
ed15a45
·
verified ·
1 Parent(s): 7edf9a9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -54
app.py CHANGED
@@ -1,60 +1,29 @@
1
  import gradio as gr
2
- import torch
3
  from PIL import Image
4
  import numpy as np
5
- from iopaint.model_manager import ModelManager
6
- from iopaint.schema import InpaintRequest
7
-
8
- # 1. إعداد الموديل (LaMa هو الأفضل للمنهوا والـ SFX)
9
- device = "cuda" if torch.cuda.is_available() else "cpu"
10
- # سيقوم التطبيق بتحميل موديل lama تلقائياً عند أول تشغيل
11
- model = ModelManager(name="lama", device=device)
12
-
13
- def process_inpaint(image_dict):
14
- if image_dict is None:
15
- return None
16
-
17
- # استخراج الصورة الأصلية والماسك (الرسم بالفرشاة)
18
- image = image_data['composite'].convert("RGB")
19
- mask = image_data['layers'][0].convert("L") # الطبقة التي رسمت عليها
20
-
21
- # تحويل الصور إلى مصفوفات Numpy ليفهمها الموديل
22
- image_np = np.array(image)
23
- mask_np = np.array(mask)
24
-
25
- # إرسال الطلب للموديل
26
- # الموديل سيعوض المنطقة الممسوحة بناءً على الخلفية المحيطة
27
- config = InpaintRequest(
28
- ldm_steps=20,
29
- no_half=True if device == "cpu" else False
30
- )
31
-
32
- result_np = model.inference(image_np, mask_np, config)
33
-
34
- # تحويل النتيجة النهائية لصورة PIL
35
- return Image.fromarray(result_np)
36
-
37
- # 2. بناء الواجهة (Gradio Interface)
38
- with gr.Blocks(title="Manga Cleaner (LaMa)") as demo:
39
- gr.Markdown("## 🖌️ مبيض المنهوا المحترف (LaMa Model)")
40
- gr.Markdown("ارفع الصفحة، ارسم بالفرشاة فوق الـ SFX أو النص، ثم اضغط تبييض.")
41
-
42
  with gr.Row():
43
- # محرر الصور يتيح الفرشاة يدوياً
44
- input_img = gr.ImageEditor(
45
- label="صفحة المنهوا (ارسم فوق النص)",
46
- type="pil",
47
- layers=False,
48
- brush=gr.Brush(colors=["#FFFFFF"], default_size=20)
49
- )
50
- output_img = gr.Image(label="النتيجة المبيضة")
51
-
52
- run_btn = gr.Button("بدء التبييض ✨", variant="primary")
53
-
54
- run_btn.click(
55
- fn=process_inpaint,
56
- inputs=[input_img],
57
- outputs=[output_img]
58
- )
59
 
60
  demo.launch()
 
1
  import gradio as gr
 
2
  from PIL import Image
3
  import numpy as np
4
+ from transformers import pipeline
5
+
6
+ # تحميل موديل LaMa (inpainting)
7
+ pipe = pipeline("image-inpainting", model="sberbank-ai/LaMa")
8
+
9
+ def clean_sfx(image, mask):
10
+ image = image.convert("RGB")
11
+ mask = mask.convert("L")
12
+
13
+ result = pipe(image=image, mask_image=mask)
14
+ return result["image"]
15
+
16
+ with gr.Blocks() as demo:
17
+ gr.Markdown("# SFX Cleaner (lama_large_512px)")
18
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  with gr.Row():
20
+ input_image = gr.Image(type="pil", label="الصورة")
21
+ mask_image = gr.ImageMask(label="ارسم الفرشاة (Mask)")
22
+
23
+ output = gr.Image(label="النتيجة")
24
+
25
+ btn = gr.Button("تبييض")
26
+
27
+ btn.click(fn=clean_sfx, inputs=[input_image, mask_image], outputs=output)
 
 
 
 
 
 
 
 
28
 
29
  demo.launch()