Smolvlm 500M Anime Caption V0.2
专注于描述动漫风格图像的视觉语言模型,基于SmolVLM-500M-Base微调
下载量 17
发布时间 : 5/12/2025
模型简介
专为高效生成高质量的动漫风格图像描述而设计,能够为各类动漫作品和插画作品生成自然流畅的英文描述
模型特点
动漫风格专注
专门针对动漫图像优化,能准确捕捉动漫特有风格特征
高效生成
500M参数规模平衡了性能与效率
合成数据训练
使用大语言模型生成的40万组高质量合成数据
模型能力
动漫图像描述生成
动漫内容索引
动漫风格识别
使用案例
内容创作
动漫作品字幕生成
为动漫作品自动生成英文描述字幕
自然流畅的风格化描述
数据管理
动漫资料库标记
自动化生成动漫图像元数据
提升资料库检索效率
🚀 SmolVLM-500M-Anime-Caption-v0.1
SmolVLM-500M-Anime-Caption-v0.1 是一款专注于描述动漫风格图像的视觉语言模型。它基于先进的大语言模型技术,能够高效且高质量地为动漫风格图像生成自然流畅的英文描述,为动漫内容的索引、标记等应用场景提供有力支持。
🚀 快速开始
模型基本信息
属性 | 详情 |
---|---|
基础模型 | HuggingFaceTB/SmolVLM-500M-Base |
视觉编码器 | SigLIP (google/siglip-base-patch16-512) |
语言 | 英语(图像描述) |
许可证 | Apache 2.0 |
微调数据集 | 通过先进大语言模型生成的 40 万对合成动漫图像/描述对,专注于动漫内容和风格 |
模型描述
该模型专为高效、高质量地描述动漫风格图像而设计,能够为各种动漫和插画作品生成自然的英文描述。
预期用途
- 动漫图像描述:为动漫、漫画面板或插画生成英文描述。
- 内容索引或标记:用于以动漫为重点的档案、数据库和创意工具。
适用范围外/限制
该模型不适用于现实世界照片描述、非动漫艺术作品或关键决策场景。
✨ 主要特性
- 专注动漫:专门针对动漫风格图像进行优化,能够准确捕捉动漫作品的独特特征和风格。
- 高质量描述:生成的英文描述自然流畅,符合语言表达习惯。
- 高效推理:在处理动漫图像时具有较高的效率。
📦 安装指南
文档中未提及安装步骤,故跳过此章节。
💻 使用示例
基础用法
import requests
from PIL import Image
import torch
from transformers import AutoProcessor, Idefics3ForConditionalGeneration, TextIteratorStreamer, StoppingCriteria, StoppingCriteriaList
base_model_id = "Andres77872/SmolVLM-500M-anime-caption-v0.2"
processor = AutoProcessor.from_pretrained(base_model_id)
model = Idefics3ForConditionalGeneration.from_pretrained(
base_model_id,
device_map="auto",
torch_dtype=torch.bfloat16
)
class StopOnTokens(StoppingCriteria):
def __init__(self, tokenizer, stop_sequence):
super().__init__()
self.tokenizer = tokenizer
self.stop_sequence = stop_sequence
def __call__(self, input_ids: torch.LongTensor, scores: torch.FloatTensor, **kwargs) -> bool:
new_text = self.tokenizer.decode(input_ids[0], skip_special_tokens=True)
max_keep = len(self.stop_sequence) + 10
if len(new_text) > max_keep:
new_text = new_text[-max_keep:]
return self.stop_sequence in new_text
def prepare_inputs(image: Image.Image):
# IMPORTANT: The question prompt must remain fixed as "describe the image".
# This model is NOT designed for visual question answering.
# It is strictly an image captioning model, not intended to answer arbitrary visual questions.
question = "describe the image"
messages = [
{
"role": "user",
"content": [
{"type": "image"},
{"type": "text", "text": question}
]
}
]
max_image_size = processor.image_processor.max_image_size["longest_edge"]
size = processor.image_processor.size.copy()
if "longest_edge" in size and size["longest_edge"] > max_image_size:
size["longest_edge"] = max_image_size
prompt = processor.apply_chat_template(messages, add_generation_prompt=True)
inputs = processor(text=[prompt], images=[[image]], return_tensors='pt', padding=True, size=size)
inputs = {k: v.to(model.device) for k, v in inputs.items()}
return inputs
# Example: caption a sample anime image
image = Image.open(requests.get('https://img.arz.ai/5A7A-ckt', stream=True).raw).convert("RGB")
inputs = prepare_inputs(image)
stop_sequence = "</RATING>"
streamer = TextIteratorStreamer(
processor.tokenizer,
skip_prompt=True,
skip_special_tokens=True,
)
custom_stopping_criteria = StoppingCriteriaList([
StopOnTokens(processor.tokenizer, stop_sequence)
])
with torch.no_grad():
generation_kwargs = dict(
**inputs,
streamer=streamer,
do_sample=False,
max_new_tokens=512,
pad_token_id=processor.tokenizer.pad_token_id,
stopping_criteria=custom_stopping_criteria,
)
import threading
generation_thread = threading.Thread(target=model.generate, kwargs=generation_kwargs)
generation_thread.start()
for new_text in streamer:
print(new_text, end="", flush=True)
generation_thread.join()
高级用法
文档中未提及高级用法相关代码,故跳过此部分。
📚 详细文档
训练详情
- 微调数据集:40 万对动漫图像和合成英文描述对。
- 描述生成:合成描述使用 Llama 4 Maverick 生成。
- 任务:图像到文本,专注于高质量动漫风格描述。
- 基础模型:HuggingFaceTB/SmolVLM-500M-Base
许可证
Apache 2.0(继承自基础模型和训练组件)
归属说明
该模型是 HuggingFaceTB/SmolVLM-500M-Base 的微调衍生模型,使用大语言模型生成的合成数据,用于动漫图像描述任务。
⚠️ 重要提示
问题提示必须固定为 "describe the image",该模型并非设计用于视觉问答,它严格是一个图像描述模型,不用于回答任意视觉问题。
💡 使用建议
在使用该模型时,确保输入的是动漫风格的图像,以获得最佳的描述效果。
Clip Vit Large Patch14
CLIP是由OpenAI开发的视觉-语言模型,通过对比学习将图像和文本映射到共享的嵌入空间,支持零样本图像分类
图像生成文本
C
openai
44.7M
1,710
Clip Vit Base Patch32
CLIP是由OpenAI开发的多模态模型,能够理解图像和文本之间的关系,支持零样本图像分类任务。
图像生成文本
C
openai
14.0M
666
Siglip So400m Patch14 384
Apache-2.0
SigLIP是基于WebLi数据集预训练的视觉语言模型,采用改进的sigmoid损失函数,优化了图像-文本匹配任务。
图像生成文本
Transformers

S
google
6.1M
526
Clip Vit Base Patch16
CLIP是由OpenAI开发的多模态模型,通过对比学习将图像和文本映射到共享的嵌入空间,实现零样本图像分类能力。
图像生成文本
C
openai
4.6M
119
Blip Image Captioning Base
Bsd-3-clause
BLIP是一个先进的视觉-语言预训练模型,擅长图像描述生成任务,支持条件式和非条件式文本生成。
图像生成文本
Transformers

B
Salesforce
2.8M
688
Blip Image Captioning Large
Bsd-3-clause
BLIP是一个统一的视觉-语言预训练框架,擅长图像描述生成任务,支持条件式和无条件式图像描述生成。
图像生成文本
Transformers

B
Salesforce
2.5M
1,312
Openvla 7b
MIT
OpenVLA 7B是一个基于Open X-Embodiment数据集训练的开源视觉-语言-动作模型,能够根据语言指令和摄像头图像生成机器人动作。
图像生成文本
Transformers 英语

O
openvla
1.7M
108
Llava V1.5 7b
LLaVA 是一款开源多模态聊天机器人,基于 LLaMA/Vicuna 微调,支持图文交互。
图像生成文本
Transformers

L
liuhaotian
1.4M
448
Vit Gpt2 Image Captioning
Apache-2.0
这是一个基于ViT和GPT2架构的图像描述生成模型,能够为输入图像生成自然语言描述。
图像生成文本
Transformers

V
nlpconnect
939.88k
887
Blip2 Opt 2.7b
MIT
BLIP-2是一个视觉语言模型,结合了图像编码器和大型语言模型,用于图像到文本的生成任务。
图像生成文本
Transformers 英语

B
Salesforce
867.78k
359
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers 支持多种语言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers 英语

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统 中文
R
uer
2,694
98