项目简介:DanTagGen-alpha
DanTagGen-alpha,即Danbooru标签生成器,是一个灵感来源于p1atdev的dart项目的新项目。然而,它采用了不同的架构、数据集、格式和训练策略。
模型架构
这款DanTagGen版本是在全新的400M参数LLaMA架构(昵称NanoLLaMA)上进行训练的。由于它基于LLaMA架构,理论上可以在任何LLaMA推理接口中使用。
该项目还提供了转换后的FP16 gguf模型,以及量化的8位和6位gguf模型。建议使用llama.cpp或llama-cpp-python运行这个模型,因为它们将非常快速。
格式
DanTagGen采用了一种特定的格式来输入和输出数据。以下是输入格式的示例:
prompt = f"""
rating: {rating or '<|empty|>'}
artist: {artist.strip() or '<|empty|>'}
characters: {characters.strip() or '<|empty|>'}
copyrights: {copyrights.strip() or '<|empty|>'}
aspect ratio: {f"{aspect_ratio:.1f}" or '<|empty|>'}
target: {'<|' + target + '|>' if target else '<|long|>'}
general: {", ".join(special_tags)}, {general.strip().strip(",")}<|input_end|>
"""
例如,输入可能是这样的:
rating: safe
artist: <|empty|>
characters: <|empty|>
copyrights: <|empty|>
aspect ratio: 1.0
target: <|short|>
general: 1girl, solo, dragon girl, dragon horns, dragon tail<|input_end|>
而输出可能会生成以下内容:
rating: safe
artist: <|empty|>
characters: <|empty|>
copyrights: <|empty|>
aspect ratio: 1.0
target: <|short|>
general: 1girl, solo, dragon girl, dragon horns, dragon tail<|input_end|> open mouth, red eyes, long hair, pointy ears, tail, black hair, chinese clothes, simple background, dragon, hair between eyes, horns, china dress, dress, looking at viewer, breasts
数据集和训练
DanTagGen在训练中使用了由HakuPhi开发的训练器,现在被称为HakuLLM。模型在2M数据上进行了15个epoch的训练,在5.3M数据上进行了5个epoch的训练,模型大约看到了6到12亿个标记(token)。
数据集由HakuBooru通过自家的danbooru sqlite数据库导出。数据通过fav_count的百分位进行筛选:(2M = 前25%,5.3M = 前75%)
实用工具
开发者正在为DanTagGen构建一个基于Gradio的用户界面,同时这个项目中还提供了一个API,其他开发者可以利用这个API开发不同的应用。此外,还有计划开发一个sd-webui扩展。
DanTagGen-alpha致力于通过创新的架构和数据处理方式为艺术绘画领域的标签生成提供新的思路和解决方案。