Mystyc commited on
Commit
74a7f88
·
1 Parent(s): 7091fd8
Files changed (2) hide show
  1. app.py +54 -0
  2. requirements.txt +5 -0
app.py ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import torch
3
+ from torchvision import transforms
4
+ from transformers import AutoModelForImageSegmentation
5
+ from PIL import Image
6
+
7
+ # Muat model
8
+ model = AutoModelForImageSegmentation.from_pretrained(
9
+ "briaai/RMBG-2.0",
10
+ trust_remote_code=True
11
+ )
12
+ device = "cuda" if torch.cuda.is_available() else "cpu"
13
+ model.to(device)
14
+ model.eval()
15
+
16
+ # Transformasi untuk penyesuaian ukuran gambar
17
+ transform_image = transforms.Compose([
18
+ transforms.Resize((1024, 1024)),
19
+ transforms.ToTensor(),
20
+ transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),
21
+ ])
22
+
23
+ def remove_background(image: Image.Image):
24
+ """
25
+ Menghilangkan latar belakang dari gambar yang diunggah.
26
+ """
27
+ img = image.convert("RGB")
28
+ orig_size = img.size
29
+
30
+ # Pre‑process dan pindahkan ke device (CPU/GPU)
31
+ input_images = transform_image(img).unsqueeze(0).to(device)
32
+ with torch.no_grad():
33
+ preds = model(input_images)[-1].sigmoid().cpu()
34
+
35
+ # Konversi prediksi ke PIL dan ubah ukurannya ke ukuran asli
36
+ pred = preds[0].squeeze()
37
+ pred_pil = transforms.ToPILImage()(pred)
38
+ mask = pred_pil.resize(orig_size)
39
+
40
+ # Tambahkan channel alpha (latar belakang transparan)
41
+ img.putalpha(mask)
42
+ return img
43
+
44
+ # Membuat antarmuka Gradio
45
+ iface = gr.Interface(
46
+ fn=remove_background,
47
+ inputs=gr.Image(type="pil", label="Unggah gambar"),
48
+ outputs=gr.Image(type="pil", label="Gambar tanpa latar"),
49
+ title="BRIA RMBG‑2.0 – Penghapus Latar Belakang",
50
+ description="Model RMBG‑2.0 dari BRIA AI (non-komersial). Unggah gambar dan dapatkan gambar dengan latar transparan."
51
+ )
52
+
53
+ if __name__ == "__main__":
54
+ iface.launch()
requirements.txt ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ transformers>=4.38.0
2
+ torch
3
+ torchvision
4
+ gradio>=4.42.0
5
+ Pillow