diff --git a/README.md b/README.md
index cbe6396..437a90d 100644
--- a/README.md
+++ b/README.md
@@ -37,6 +37,15 @@ Rembg is a tool to remove images background.
+
+
+
+
+
+
+
+
+
**If this project has helped you, please consider making a [donation](https://www.buymeacoffee.com/danielgatis).**
## Sponsor
diff --git a/examples/anime-girl-1.jpg b/examples/anime-girl-1.jpg
new file mode 100644
index 0000000..5f404ec
Binary files /dev/null and b/examples/anime-girl-1.jpg differ
diff --git a/examples/anime-girl-1.out.png b/examples/anime-girl-1.out.png
new file mode 100644
index 0000000..b415933
Binary files /dev/null and b/examples/anime-girl-1.out.png differ
diff --git a/examples/anime-girl-2.jpg b/examples/anime-girl-2.jpg
new file mode 100644
index 0000000..21501d2
Binary files /dev/null and b/examples/anime-girl-2.jpg differ
diff --git a/examples/anime-girl-2.out.png b/examples/anime-girl-2.out.png
new file mode 100644
index 0000000..7cdae38
Binary files /dev/null and b/examples/anime-girl-2.out.png differ
diff --git a/examples/anime-girl-3.jpg b/examples/anime-girl-3.jpg
new file mode 100644
index 0000000..683d8f6
Binary files /dev/null and b/examples/anime-girl-3.jpg differ
diff --git a/examples/anime-girl-3.out.png b/examples/anime-girl-3.out.png
new file mode 100644
index 0000000..457c4d7
Binary files /dev/null and b/examples/anime-girl-3.out.png differ
diff --git a/rembg/sessions/dis_anime.py b/rembg/sessions/dis_anime.py
new file mode 100644
index 0000000..a71618f
--- /dev/null
+++ b/rembg/sessions/dis_anime.py
@@ -0,0 +1,49 @@
+import os
+from typing import List
+
+import numpy as np
+import pooch
+from PIL import Image
+from PIL.Image import Image as PILImage
+
+from .base import BaseSession
+
+
+class DisSession(BaseSession):
+ def predict(self, img: PILImage, *args, **kwargs) -> List[PILImage]:
+ ort_outs = self.inner_session.run(
+ None,
+ self.normalize(img, (0.485, 0.456, 0.406), (1.0, 1.0, 1.0), (1024, 1024)),
+ )
+
+ pred = ort_outs[0][:, 0, :, :]
+
+ ma = np.max(pred)
+ mi = np.min(pred)
+
+ pred = (pred - mi) / (ma - mi)
+ pred = np.squeeze(pred)
+
+ mask = Image.fromarray((pred * 255).astype("uint8"), mode="L")
+ mask = mask.resize(img.size, Image.LANCZOS)
+
+ return [mask]
+
+ @classmethod
+ def download_models(cls, *args, **kwargs):
+ fname = f"{cls.name()}.onnx"
+ pooch.retrieve(
+ "https://github.com/danielgatis/rembg/releases/download/v0.0.0/isnet-anime.onnx",
+ None
+ if cls.checksum_disabled(*args, **kwargs)
+ else "md5:6f184e756bb3bd901c8849220a83e38e",
+ fname=fname,
+ path=cls.u2net_home(*args, **kwargs),
+ progressbar=True,
+ )
+
+ return os.path.join(cls.u2net_home(), fname)
+
+ @classmethod
+ def name(cls, *args, **kwargs):
+ return "isnet-anime"
diff --git a/rembg/sessions/dis.py b/rembg/sessions/dis_general_use.py
similarity index 100%
rename from rembg/sessions/dis.py
rename to rembg/sessions/dis_general_use.py
diff --git a/tests/fixtures/anime-girl-1.jpg b/tests/fixtures/anime-girl-1.jpg
new file mode 100644
index 0000000..5f404ec
Binary files /dev/null and b/tests/fixtures/anime-girl-1.jpg differ
diff --git a/tests/results/anime-girl-1.isnet-anime.png b/tests/results/anime-girl-1.isnet-anime.png
new file mode 100644
index 0000000..8ed53b8
Binary files /dev/null and b/tests/results/anime-girl-1.isnet-anime.png differ
diff --git a/tests/results/anime-girl-1.isnet-general-use.png b/tests/results/anime-girl-1.isnet-general-use.png
new file mode 100644
index 0000000..1f57302
Binary files /dev/null and b/tests/results/anime-girl-1.isnet-general-use.png differ
diff --git a/tests/results/anime-girl-1.sam.png b/tests/results/anime-girl-1.sam.png
new file mode 100644
index 0000000..daf576f
Binary files /dev/null and b/tests/results/anime-girl-1.sam.png differ
diff --git a/tests/results/anime-girl-1.silueta.png b/tests/results/anime-girl-1.silueta.png
new file mode 100644
index 0000000..199c3a3
Binary files /dev/null and b/tests/results/anime-girl-1.silueta.png differ
diff --git a/tests/results/anime-girl-1.u2net.png b/tests/results/anime-girl-1.u2net.png
new file mode 100644
index 0000000..fc48847
Binary files /dev/null and b/tests/results/anime-girl-1.u2net.png differ
diff --git a/tests/results/anime-girl-1.u2net_cloth_seg.png b/tests/results/anime-girl-1.u2net_cloth_seg.png
new file mode 100644
index 0000000..2dbd1ab
Binary files /dev/null and b/tests/results/anime-girl-1.u2net_cloth_seg.png differ
diff --git a/tests/results/anime-girl-1.u2net_human_seg.png b/tests/results/anime-girl-1.u2net_human_seg.png
new file mode 100644
index 0000000..6ca8915
Binary files /dev/null and b/tests/results/anime-girl-1.u2net_human_seg.png differ
diff --git a/tests/results/anime-girl-1.u2netp.png b/tests/results/anime-girl-1.u2netp.png
new file mode 100644
index 0000000..4b20f05
Binary files /dev/null and b/tests/results/anime-girl-1.u2netp.png differ
diff --git a/tests/results/car-1.isnet-anime.png b/tests/results/car-1.isnet-anime.png
new file mode 100644
index 0000000..cdb19da
Binary files /dev/null and b/tests/results/car-1.isnet-anime.png differ
diff --git a/tests/results/car-1.isnet-general-use.png b/tests/results/car-1.isnet-general-use.png
index 2e4beb7..dba386d 100644
Binary files a/tests/results/car-1.isnet-general-use.png and b/tests/results/car-1.isnet-general-use.png differ
diff --git a/tests/results/car-1.sam.png b/tests/results/car-1.sam.png
index f36b669..2250b06 100644
Binary files a/tests/results/car-1.sam.png and b/tests/results/car-1.sam.png differ
diff --git a/tests/results/car-1.silueta.png b/tests/results/car-1.silueta.png
index 82f572f..286cfcf 100644
Binary files a/tests/results/car-1.silueta.png and b/tests/results/car-1.silueta.png differ
diff --git a/tests/results/car-1.u2net.png b/tests/results/car-1.u2net.png
index e5c3994..d8f9115 100644
Binary files a/tests/results/car-1.u2net.png and b/tests/results/car-1.u2net.png differ
diff --git a/tests/results/car-1.u2net_cloth_seg.png b/tests/results/car-1.u2net_cloth_seg.png
index 64ffd88..e4ae761 100644
Binary files a/tests/results/car-1.u2net_cloth_seg.png and b/tests/results/car-1.u2net_cloth_seg.png differ
diff --git a/tests/results/car-1.u2net_human_seg.png b/tests/results/car-1.u2net_human_seg.png
index fee65a6..597e885 100644
Binary files a/tests/results/car-1.u2net_human_seg.png and b/tests/results/car-1.u2net_human_seg.png differ
diff --git a/tests/results/car-1.u2netp.png b/tests/results/car-1.u2netp.png
index ba72870..8eeaa7b 100644
Binary files a/tests/results/car-1.u2netp.png and b/tests/results/car-1.u2netp.png differ
diff --git a/tests/results/cloth-1.isnet-anime.png b/tests/results/cloth-1.isnet-anime.png
new file mode 100644
index 0000000..7c4c65d
Binary files /dev/null and b/tests/results/cloth-1.isnet-anime.png differ
diff --git a/tests/results/cloth-1.isnet-general-use.png b/tests/results/cloth-1.isnet-general-use.png
index 6e474f7..9f141ea 100644
Binary files a/tests/results/cloth-1.isnet-general-use.png and b/tests/results/cloth-1.isnet-general-use.png differ
diff --git a/tests/results/cloth-1.sam.png b/tests/results/cloth-1.sam.png
index 664a7dc..2ef9037 100644
Binary files a/tests/results/cloth-1.sam.png and b/tests/results/cloth-1.sam.png differ
diff --git a/tests/results/cloth-1.silueta.png b/tests/results/cloth-1.silueta.png
index 9bc356a..78af756 100644
Binary files a/tests/results/cloth-1.silueta.png and b/tests/results/cloth-1.silueta.png differ
diff --git a/tests/results/cloth-1.u2net.png b/tests/results/cloth-1.u2net.png
index 501bb5b..8743fcd 100644
Binary files a/tests/results/cloth-1.u2net.png and b/tests/results/cloth-1.u2net.png differ
diff --git a/tests/results/cloth-1.u2net_cloth_seg.png b/tests/results/cloth-1.u2net_cloth_seg.png
index bc72550..63ab692 100644
Binary files a/tests/results/cloth-1.u2net_cloth_seg.png and b/tests/results/cloth-1.u2net_cloth_seg.png differ
diff --git a/tests/results/cloth-1.u2net_human_seg.png b/tests/results/cloth-1.u2net_human_seg.png
index 2abde7f..62ccc79 100644
Binary files a/tests/results/cloth-1.u2net_human_seg.png and b/tests/results/cloth-1.u2net_human_seg.png differ
diff --git a/tests/results/cloth-1.u2netp.png b/tests/results/cloth-1.u2netp.png
index cc11944..c2fce72 100644
Binary files a/tests/results/cloth-1.u2netp.png and b/tests/results/cloth-1.u2netp.png differ
diff --git a/tests/test_remove.py b/tests/test_remove.py
index 6c2fc44..79758b6 100644
--- a/tests/test_remove.py
+++ b/tests/test_remove.py
@@ -11,6 +11,11 @@ here = Path(__file__).parent.resolve()
def test_remove():
kwargs = {
"sam": {
+ "anime-girl-1" : {
+ "input_points": [[400, 165]],
+ "input_labels": [1],
+ },
+
"car-1" : {
"input_points": [[250, 200]],
"input_labels": [1],
@@ -19,7 +24,7 @@ def test_remove():
"cloth-1" : {
"input_points": [[370, 495]],
"input_labels": [1],
- }
+ },
}
}
@@ -30,9 +35,10 @@ def test_remove():
"u2net_cloth_seg",
"silueta",
"isnet-general-use",
+ "isnet-anime",
"sam"
]:
- for picture in ["car-1", "cloth-1"]:
+ for picture in ["anime-girl-1", "car-1", "cloth-1"]:
image_path = Path(here / "fixtures" / f"{picture}.jpg")
image = image_path.read_bytes()