DanTagGen-delta项目介绍
项目概述
DanTagGen,顾名思义,是一个基于Danbooru标签生成的项目。它从p1atdev的dart项目中汲取灵感,但在结构、数据集、格式和训练策略上都有不同。这个项目主要用于生成与标签相关的文本,适合艺术内容的描述。
版本差异
- alpha版本:基于200万数据集进行预训练,使用较小的批次处理数据,能力相对有限。
- beta版本:预训练数据增加到530万,批次更大,稳定性和能力都有明显提升,即使只提供少量信息。
- delta版本:预训练数据达到720万,批次同样较大。虽然存在轻微的欠拟合现象,但多样性更好,并引入了质量标签。
模型架构
该版本的DanTagGen是基于LLaMA架构从头训练的,使用了4亿参数,被称为NanoLLaMA。由于采用了LLaMA架构,理论上应该可以在任何LLaMA推理接口中使用。此外,项目中还提供了转换的FP16 gguf模型和量化的8bit/6bit gguf模型,推荐使用llama.cpp或llama-cpp-python来运行这些模型,以保证速度。
输入格式
DanTagGen使用一种特定格式的输入数据:
quality: {quality or '<|empty|>'}
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|>
例如:
quality: masterpiece
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-delta版本使用HakuPhi实现的训练程序进行模型训练,训练共进行了10个epoch,使用了约7.2M的数据,总共见过10~15亿个字词。数据集通过HakuBooru从Danbooru的sqlite数据库导出,使用fav_count各等级的百分位数进行数据筛选(200万=前25%,530万=前75%)。
实用链接
- Hugging Face演示空间: DTG-demo
- DTG + Kohaku XL Epsilon演示: This-Cute-Dragon-Girl-Doesnt-Exist
- SD-WebUI扩展: GitHub链接
- ComfyUI节点: GitHub链接
通过这些资源和工具,用户可以深入了解和使用DanTagGen进行标签生成,以丰富他们的艺术创作。