/ Модель

Характеристики

Параметры
58,7 млн
Лицензия
Apache 2.0
Архитектура
swinv2 · dense
Базовая модель
wd-swinv2-tagger-v3
Библиотека
transformers
Опубликована
8 мар 2024

wd-swinv2-tagger-v3-hf

Классификация изображенийИзображение → label4 профессии

Модель SwinV2 автоматически классифицирует изображения и присваивает им рейтинговые, персонажные и общие теги.

850скачиваний за 30 дней20лайковвеса обновлены11 мар 2024

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

p1atdev представляет конвертированную в формат библиотеки Transformers версию WD SwinV2 Tagger v3 от SmilingWolf. Это модель классификации изображений на архитектуре SwinV2 с 58,7 млн параметров, которая автоматически присваивает изображениям рейтинговые, персонажные и общие теги, включая метки для каталогизации изображений Danbooru. Репозиторий содержит веса Safetensors и ONNX и распространяется по лицензии Apache-2.0.

Для ускорения можно использовать вариант через 🤗 Optimum: в README заявлены примерно на 30% более высокая скорость и на 50% меньший размер модели по сравнению с вариантом Transformers, при небольшом снижении точности. Модель предназначена для присвоения тегов изображениям; README приводит примеры рейтинговых меток general и sensitive, а также тегов персонажей. Она не генерирует описания изображений.

Сценарии применения

  • автоматическая разметка изображений тегами Danbooru
  • распознавание персонажей на изображениях
  • классификация изображений по рейтинговым категориям
  • подготовка тегов для каталога изображений

Ограничения

При использовании ускоренного варианта через Optimum точность немного снижается. Модель присваивает теги и не предназначена для генерации текстовых описаний изображений.

Для каких профессий подходит4

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

WD SwinV2 Tagger v3 with 🤗 transformers

Converted from SmilingWolf/wd-swinv2-tagger-v3 to transformers library format.

Example

Installation

pip install transformers

Pipeline

from transformers import pipeline

pipe = pipeline(
    "image-classification",
    model="p1atdev/wd-swinv2-tagger-v3-hf",
    trust_remote_code=True,
)

print(pipe("sample.webp", top_k=15))
#[{'label': '1girl', 'score': 0.9973934888839722},
# {'label': 'solo', 'score': 0.9719744324684143},
# {'label': 'dress', 'score': 0.9539461135864258},
# {'label': 'hat', 'score': 0.9511678218841553},
# {'label': 'outdoors', 'score': 0.9438753128051758},
# ...

AutoModel

from PIL import Image

import numpy as np
import torch

from transformers import (
    AutoImageProcessor,
    AutoModelForImageClassification,
)

MODEL_NAME = "p1atdev/wd-swinv2-tagger-v3-hf"

model = AutoModelForImageClassification.from_pretrained(
    MODEL_NAME,
)
processor = AutoImageProcessor.from_pretrained(MODEL_NAME, trust_remote_code=True)

image = Image.open("sample.webp")
inputs = processor.preprocess(image, return_tensors="pt")

with torch.no_grad():
  outputs = model(**inputs.to(model.device, model.dtype))
logits = torch.sigmoid(outputs.logits[0]) # take the first logits

# get probabilities
results = {model.config.id2label[i]: logit.float() for i, logit in enumerate(logits)}
results = {
    k: v for k, v in sorted(results.items(), key=lambda item: item[1], reverse=True) if v > 0.35 # 35% threshold
}
print(results)  # rating tags and character tags are also included
#{'1girl': tensor(0.9974),
# 'solo': tensor(0.9720),
# 'dress': tensor(0.9539),
# 'hat': tensor(0.9512),
# 'outdoors': tensor(0.9439),
# ...

Accelerate with 🤗 Optimum

Maybe about 30% faster and about 50% light weight model size than transformers version, but the accuracy is slightly degraded.

pip install optimum[onnxruntime] 
-from transformers import pipeline
+from optimum.pipelines import pipeline

pipe = pipeline(
    "image-classification",
    model="p1atdev/wd-swinv2-tagger-v3-hf",
    trust_remote_code=True,
)

print(pipe("sample.webp", top_k=15))
#[{'label': '1girl', 'score': 0.9966088533401489},
# {'label': 'solo', 'score': 0.9740601778030396},
# {'label': 'dress', 'score': 0.9618403911590576},
# {'label': 'hat', 'score': 0.9563733339309692},
# {'label': 'outdoors', 'score': 0.945336639881134},
# ...

Labels

All of rating tags have prefix rating: and character tags have prefix character:.

  • Rating tags: rating:general, rating:sensitive, ...
  • Character tags: character:frieren, character:hatsune miku, ...

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers · image-classification

Можно запустить

Подбираем GPU…

Класс архитектуры
Swinv2ForImageClassification
Ревизия весов
b09fdef

0 моделей