Danbooruclip
基于Danbooru2021数据集微调的CLIP模型,专门用于动漫图像标签分类
下载量 502
发布时间 : 5/18/2023
模型介绍
内容详情
替代品
模型简介
该模型是对CLIP(ViT-L/14)进行微调的版本,专门针对动漫图像内容理解优化,能够识别角色、作品和通用标签
模型特点
动漫内容优化
专门针对动漫图像内容进行优化,能准确识别角色、作品等动漫特有元素
多标签处理
能够处理复杂的多标签分类任务,包括角色、作品和通用标签
标签预处理
包含智能的标签预处理流程,优先提取角色和作品标签
模型能力
动漫图像识别
多标签分类
角色识别
作品识别
通用标签识别
使用案例
动漫内容管理
动漫图像自动标注
为动漫图像自动生成准确的标签
可识别角色、作品和通用特征
动漫内容检索
基于图像内容搜索相似动漫作品
提高动漫数据库的检索效率
动漫社区应用
内容推荐
基于图像内容为用户推荐相似动漫作品
提升用户体验和参与度
🚀 DanbooruCLIP模型
DanbooruCLIP模型基于clip(ViT - L/14)进行微调,使用danburoo2021和pixiv数据集训练,可用于图像与文本的匹配任务,在动漫相关图像识别等场景有较好表现。
🚀 快速开始
模型使用示例
from PIL import Image
import requests
from transformers import CLIPProcessor, CLIPModel
model = CLIPModel.from_pretrained("OysterQAQ/DanbooruCLIP")
processor = CLIPProcessor.from_pretrained("OysterQAQ/DanbooruCLIP")
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
inputs = processor(text=["a photo of a cat", "a photo of a dog"], images=image, return_tensors="pt", padding=True)
outputs = model(**inputs)
logits_per_image = outputs.logits_per_image # this is the image - text similarity score
probs = logits_per_image.softmax(dim=1) # we can take the softmax to get the label probabilities
✨ 主要特性
- 2023年7月17日更新,增加了pixiv数据集进行训练,提升模型泛化能力。
- 使用danburoo2021数据集对clip(ViT - L/14)模型进行微调,优化模型性能。
📦 安装指南
文档未提及安装步骤,可参考transformers
库的安装方式来安装依赖。
💻 使用示例
基础用法
from PIL import Image
import requests
from transformers import CLIPProcessor, CLIPModel
model = CLIPModel.from_pretrained("OysterQAQ/DanbooruCLIP")
processor = CLIPProcessor.from_pretrained("OysterQAQ/DanbooruCLIP")
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
inputs = processor(text=["a photo of a cat", "a photo of a dog"], images=image, return_tensors="pt", padding=True)
outputs = model(**inputs)
logits_per_image = outputs.logits_per_image # this is the image - text similarity score
probs = logits_per_image.softmax(dim=1) # we can take the softmax to get the label probabilities
高级用法
文档未提供高级用法示例。
🔧 技术细节
训练参数
- 0 - 3 epoch学习率为4e - 6,权重衰减为1e - 3。
- 4 - 8 epoch学习率为1e - 6,权重衰减为1e - 3。
标签预处理过程
for i in range(length):
# 加载并且缩放图片
if not is_image(data_from_db.path[i]):
continue
try:
img = self.preprocess(
Image.open(data_from_db.path[i].replace("./", "/mnt/lvm/danbooru2021/danbooru2021/")))
except Exception as e:
#print(e)
continue
# 处理标签
tags = json.loads(data_from_db.tags[i])
# 优先选择人物和作品标签
category_group = {}
for tag in tags:
category_group.setdefault(tag["category"], []).append(tag)
# category_group=groupby(tags, key=lambda x: (x["category"]))
character_list = category_group[4] if 4 in category_group else []
# 作品需要过滤以bad开头的
work_list = list(filter(
lambda e:
e["name"] != "original"
, category_group[3])) if 3 in category_group else []
# work_list= category_group[5] if 5 in category_group else []
general_list = category_group[0] if 0 in category_group else []
caption = ""
caption_2 = None
for character in character_list:
if len(work_list) != 0:
# 去除括号内作品内容
character["name"] = re.sub(u"\\(.*?\\)", "", character["name"])
caption += character["name"].replace("_", " ")
caption += ","
caption = caption[:-1]
caption += " "
if len(work_list) != 0:
caption += "from "
for work in work_list:
caption += work["name"].replace("_", " ")
caption += " "
# 普通标签
if len(general_list) != 0:
caption += "with "
if len(general_list) > 20:
general_list_1 = general_list[:int(len(general_list) / 2)]
general_list_2 = general_list[int(len(general_list) / 2):]
caption_2 = caption
for general in general_list_1:
if general["name"].find("girl") == -1 and general["name"].find("boy") == -1 and len(
re.findall(is_contain, general["name"])) != 0:
caption_2 += general["name"].replace("_", " ")
caption_2 += ","
caption_2 = caption_2[:-1]
for general in general_list_2:
if general["name"].find("girl") == -1 and general["name"].find("boy") == -1 and len(
re.findall(is_contain, general["name"])) != 0:
caption += general["name"].replace("_", " ")
caption += ","
caption = caption[:-1]
else:
for general in general_list:
# 如果标签数据目大于20 则拆分成两个caption
if general["name"].find("girl") == -1 and general["name"].find("boy") == -1 and len(
re.findall(is_contain, general["name"])) != 0:
caption += general["name"].replace("_", " ")
caption += ","
caption = caption[:-1]
# 标签汇总成语句
# tokenize语句
# 返回
# 过长截断 不行的话用huggingface的
text_1 = clip.tokenize(texts=caption, truncate=True)
text_2= None
if caption_2 is not None:
text_2 = clip.tokenize(texts=caption_2, truncate=True)
# 处理逻辑
# print(img)
yield img, text_1[0]
if text_2 is not None:
yield img, text_2[0]
📚 详细文档
反馈渠道
如果您有关于该模型的问题或建议,请使用此Google表单进行反馈。
示例展示
示例标题 | 图片链接 | 候选标签 |
---|---|---|
Azur Lane | 示例图片 | Azur Lane, 3 girl with sword, cat ear, a dog |
cirno & daiyousei | 示例图片 | 1 girl with black hair, rabbit ear, big breasts, minato aqua, fate/extra, k - on!, daiyousei, cirno |
GLM 4.1V 9B MLX 4bit
MIT
这是一个基于THUDM/GLM-4.1V-9B-Thinking转换而来的MLX格式模型,支持视觉语言任务。
文本生成图像 支持多种语言
G
Rainnighttram
114
1
Treevgr 7B CI I1 GGUF
Apache-2.0
TreeVGR-7B-CI 是一个基于视觉的问答、视觉定位和视觉推理的模型量化版本,适用于多种视觉任务场景。
文本生成图像
Transformers 英语

T
mradermacher
254
1
Treevgr 7B CI GGUF
Apache-2.0
TreeVGR-7B-CI 的静态量化版本,适用于视觉问答、视觉定位和视觉推理等任务
文本生成图像
Transformers 英语

T
mradermacher
150
1
GLM 4.1V 9B Thinking AWQ
MIT
GLM-4.1V-9B-Thinking是一款强大的视觉语言模型(VLM),专注于多模态理解和推理,通过AWQ量化版本提供高效推理能力。
文本生成图像
Transformers

G
dengcao
882
1
Treevgr 7B CI
Apache-2.0
TreeVGR-7B 是一个可追溯证据增强的视觉定位推理模型,通过强化学习联合监督定位和推理,实现准确的定位和可解释的推理路径。
文本生成图像
Transformers

T
HaochenWang
115
1
FLUX.1 Dev GGUF
其他
FLUX.1 [dev] 是一个拥有120亿参数的整流流变换器,能够根据文本描述生成高质量图像,为开发者和创意人员提供强大的图像生成能力。
文本生成图像 英语
F
unsloth
371
1
Omnigen2 Transformer DF11
OmniGen2/OmniGen2的DFloat11无损压缩版本,模型大小缩小32%,保持位级相同输出,支持高效GPU推理。
文本生成图像
O
DFloat11
593
2
Mistral Small 3.2 24B Instruct 2506
Apache-2.0
Mistral-Small-3.2-24B-Instruct-2506是一个图像文本到文本的模型,是Mistral-Small-3.1-24B-Instruct-2503的更新版本,在指令遵循、减少重复错误和函数调用等方面有所改进。
文本生成图像
Safetensors 支持多种语言
M
unsloth
1,750
2
Mistral Small 3.2 24B Instruct 2506 GGUF
Apache-2.0
Mistral-Small-3.2-24B-Instruct-2506是一款语言模型,是Mistral-Small-3.1-24B-Instruct-2503的小版本更新,在指令遵循、减少重复错误和函数调用等方面有显著提升。
文本生成图像 支持多种语言
M
gabriellarson
1,645
5
Lingshu 32B GGUF
MIT
Lingshu-32B GGUF模型是适用于医疗领域的多模态大语言模型,支持多种医学影像模态,在医疗问答和报告生成任务上表现出色。
文本生成图像
Transformers

L
Mungert
3,975
1
精选推荐AI模型
Qwen2.5 VL 7B Abliterated Caption It I1 GGUF
Apache-2.0
Qwen2.5-VL-7B-Abliterated-Caption-it的量化版本,支持多语言图像描述任务。
图像生成文本
Transformers 支持多种语言

Q
mradermacher
167
1
Nunchaku Flux.1 Dev Colossus
其他
Colossus Project Flux 的 Nunchaku 量化版本,旨在根据文本提示生成高质量图像。该模型在优化推理效率的同时,将性能损失降至最低。
图像生成 英语
N
nunchaku-tech
235
3
Qwen2.5 VL 7B Abliterated Caption It GGUF
Apache-2.0
这是一个基于Qwen2.5-VL-7B模型的静态量化版本,专注于图像描述生成任务,支持多种语言。
图像生成文本
Transformers 支持多种语言

Q
mradermacher
133
1
Olmocr 7B 0725 FP8
Apache-2.0
olmOCR-7B-0725-FP8是基于Qwen2.5-VL-7B-Instruct模型,使用olmOCR-mix-0225数据集微调后量化为FP8版本的文档OCR模型。
图像生成文本
Transformers 英语

O
allenai
881
3
Lucy 128k GGUF
Apache-2.0
Lucy-128k是基于Qwen3-1.7B开发的专注于代理式网络搜索和轻量级浏览的模型,在移动设备上也能高效运行。
大型语言模型
Transformers 英语

L
Mungert
263
2