Skip to main content

Anime Character Segmentation with DINOv2

Project description

AnimeSeg

GitHub release GitHub release Visitor Badge

Anime Character Segmentation using Mask2Former and DINOv2 + U-Net++ with LoRA fine-tuning. Also integrates Background Removal via anime-segmentation.

sample image

sample image

Installation

pip install anime_seg

Usage

from anime_seg import AnimeSegPipeline
pipe = AnimeSegPipeline.from_mask2former().to("cuda")
mask = pipe("path/to/image.jpg")
mask.save("output.png")

# Background Removal (powered by anime-segmentation)
bg_pipe = AnimeSegPipeline.from_bg_remover().to("cuda")
no_bg_img = bg_pipe("path/to/image.jpg")
no_bg_img.save("no_bg_output.png")

AnimeSegPipeline() default constructor is deprecated. Use from_mask2former(), from_dinoV2(), or from_bg_remover().

Optional: output size

# Same as input size (default)
mask_same = pipe("path/to/image.jpg")

# Fixed output size
mask_fixed = pipe("path/to/image.jpg", width=1024, height=1024)

# Width/height can be specified independently
mask_w = pipe("path/to/image.jpg", width=1024)
mask_h = pipe("path/to/image.jpg", height=1024)

Advanced Usage

# Load specific file from HF repo
pipe = AnimeSegPipeline.from_mask2former(
    repo_id="suzukimain/AnimeSeg",
    filename="models/anime_seg_mask2former_v3.safetensors"
).to(device="cuda")

# DINOv2 backend
pipe_dino = AnimeSegPipeline.from_dinoV2(
    filename="models/anime_seg_dinov2_v2.safetensors"
).to("cuda")

# Use PIL Image
from PIL import Image
img = Image.open("image.jpg")
mask = pipe(img)

# Background Removal (powered by anime-segmentation)
bg_pipe = AnimeSegPipeline.from_bg_remover().to("cuda")
no_bg_img = bg_pipe("path/to/image.jpg")
no_bg_img.save("no_bg_output.png")

Model Files

Models should follow the naming convention:

models/anime_seg_{architecture}_v{version}.safetensors

Example:

  • models/anime_seg_dinov2_v2.safetensors
  • models/anime_seg_mask2former_v3.safetensors

Resolution order:

  1. models/model_config.json
  2. fallback scan by models/anime_seg_{architecture}_v{max_version}.{ext}

Segmentation Classes and Mask Colors

Default from_mask2former() returns 12 classes:

ID Class Key RGB Color
0 background (0, 0, 0) Black
1 skin (255, 220, 180) Pale Orange
2 face (100, 150, 255) Blue
3 hair_main (255, 0, 0) Red
4 left_eye (0, 255, 255) Cyan
5 right_eye (255, 255, 0) Yellow
6 left_eyebrow (150, 255, 0) Yellow Green
7 right_eyebrow (0, 255, 100) Emerald Green
8 nose (255, 140, 0) Dark Orange
9 mouth (255, 0, 150) Magenta Pink
10 clothes (180, 0, 255) Purple
11 accessory (128, 128, 0) Olive

from_dinoV2() returns 13 classes (includes unknown as ID 12).

DINOv2 Compatibility Note

Earlier versions primarily used DINOv2. Current recommendation is from_mask2former(), while from_dinoV2() remains for compatibility.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

anime_seg-0.2.6.tar.gz (19.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

anime_seg-0.2.6-py3-none-any.whl (24.3 kB view details)

Uploaded Python 3

File details

Details for the file anime_seg-0.2.6.tar.gz.

File metadata

  • Download URL: anime_seg-0.2.6.tar.gz
  • Upload date:
  • Size: 19.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for anime_seg-0.2.6.tar.gz
Algorithm Hash digest
SHA256 c2b7391aa1eeea9fb85ec07a2b0e064c518f75f70ce5c5539ed4ee02ec5e55f3
MD5 3a73c816cdf99449c1875ffea6e0f234
BLAKE2b-256 961bb9326711bb957e4ee180c9c3f94bc03f40dd217ae7cfdb27367a031819ec

See more details on using hashes here.

File details

Details for the file anime_seg-0.2.6-py3-none-any.whl.

File metadata

  • Download URL: anime_seg-0.2.6-py3-none-any.whl
  • Upload date:
  • Size: 24.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for anime_seg-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 3bf09f683b6ac3813d146e57f9555a8f23d50b7c99da6aaebfaaf444eee3eebe
MD5 260f4f6fb6fd4d66a8cb60f8c6874ecf
BLAKE2b-256 8e5fea4559f4a891b70e43e4760b54dc312a9a1b492dd1a06c9bf5c0188f36b9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page