try1.0(sdxl fine tune practice) sdxl 的微调尝试练习

Details

Model description

这个模型的训练集已经上传到huggingface公开,如有需要可以下载

https://huggingface.co/datasets/TLFZ/civitai-try1.0-model-train-dataset

try1.0

只是一个仿照nai3的用animaginev3.1 finetune的尝试,打了画师的标签 很有可能会欠拟合和过拟合交加的一个粗糙的新手尝试(如果可以最好别下载)

This is just an attempt to imitate nai3's animage finetune, with the artist's label. It is likely to be a rough novice attempt with both underfitting and overfitting (if possible, it is best not to download it)

try1.01

这个版本因为我修改了训练集打标和训练集图像内容。相比与上一个版本有比较大的进步,

  • 大概流程就是

  • 先使用vpn翻墙

  • 之后使用nai3交流群(即原先的元素法典的novelai的群,在nai3出后弄了个解构法典群,qq群号是852429527 在b站上可以通过搜索novelai在相关视频下面的简介得到,不用私聊,我个人水平也有限.....只是会使用现有的工具来弄模型而已,(群友水平比我高:)))的群友的nai3画师串的画风融合测试集比如说‘’【腾讯文档】【精简200画师】~K7的个人向画师榜‘’,‘’300画风法典:融合类‘’

如下

  • 来寻找我喜欢的画师或者混合画师风格并以我想要达到的混合画风效果去收集有关的画师的画师名

  • 然后在gpt-4o和群友的帮助与提醒下利用waifuc的爬虫爬取danbooru和gelbooru的有关画师tag的所有图片和其人工高质量打标,

  • 或者从exhentai网站使用qbittorrent下载各个画廊的bt种子文件来得到画师的fanbox或者patreon无码高清图包,

  • 然后利用破解的Duplicate Cleaner 5软件去除大部分高度类似的差分图片,

  • 在人工(人类智能....)去除绝大部分画风为画师早期的图片(这步也很重要)但貌似有美学评分模型,只是我感觉没啥用.....美学模型并不能很好的分辨同一个画师的画风下的较好的或者说早期的画风的图片,也可能是我没找到比较好的美学评分模型吧....

  • 并利用waifuc内部的脚本将透明背景图片修改为白色背景,以及去除其中的线稿,和黑白图

  • 然后使用tagger1.4的swinv2-v3模型对各个画师文件夹打标,加上画师名提示词,开0.35阈值,人物阈值开0.1,机器打标

  • 并**最后(也可能是最重要的一步!!!)**人工打标利用BooruDatasetTagManager软件打上可能漏掉的标签和删除与改正错误的标签。这个人工打标的想法和技术学习来自civitai首页的rulles作者的civitai的文章”Prompt Guidance, Tags t’o Avoid and useful tags to include”https://civitai.com/articles/1009 并在danbooru或者类似的图片托管网站的wiki可以查询到如何打标以及有什么标签(当然有些标签下面的示意图比较辣眼睛...)

  • 并在最后于本地使用3090显卡和克隆秋叶的lora-scripts整合包到本地 LoRA & Dreambooth training GUI & scripts preset & one key training environment for kohya-ss/sd-scripts 来运行dreambooth下属的sdxl finetune 脚本
    https://github.com/Akegarasu/lora-scripts

  • 一共使用了31位画师的图集大约7613张图,1epoch约11063重复次数跑了8epoch,大约bond size为88504,目前可以大致还原有关画师的风格7到9成(我是猜测50w到100w可能比较好,但是由于不想训练太久就选择高学习率来减少训练步数与时间,24gb也有点慢,8epoch大概用了17h左右)

  • 同时可以支持nai3的画师串形式混合画师画风出图,例图里面也有相关prompt

  • 由于只重点关注了角,头发,动物耳朵这些比较容易混淆,机器打标不好的地方,以及个人精力和vpn质量和网速的问题导致人物改标不完全仍然会有物体混合的情况特别是有些人物名无法被识别或是识别错误成另一些角色让人十分苦恼

  • 大概在下一次训练中仍会沿袭当前训练模型的过程,加入3到4个画师风格的同时,将大部分精力用来学习和改正训练集打标上

  • 综上所述,开心的玩吧.....(当然请不要将其拿来盈利,因为训练集是未经过画师授权的,此模型只是用来人工智能的有关学习和交流经验的用途而已)

  • 以下是微调模型所用的参数

model_train_type = "sdxl-finetune" pretrained_model_name_or_path = "D:/stablediffusion/lora-scripts/sd-models/animagineXLV31_v31.safetensors" vae = "D:/stablediffusion/sdwebuiakiv4.2/models/VAE/sdxl-vae-fp16-fix.safetensors" train_data_dir = "D:/stablediffusion/lora-scripts/train/try" resolution = "1024,1024" enable_bucket = true min_bucket_reso = 256 max_bucket_reso = 1536 bucket_reso_steps = 32 output_name = "try1.01" output_dir = "./output" save_model_as = "safetensors" save_precision = "bf16" save_every_n_epochs = 1 save_state = true max_train_epochs = 20 train_batch_size = 1 gradient_checkpointing = true gradient_accumulation_steps = 32 learning_rate = 0.000007 learning_rate_te1 = 5e-7 learning_rate_te2 = 5e-7 lr_scheduler = "cosine_with_restarts" lr_warmup_steps = 0 lr_scheduler_num_cycles = 3 optimizer_type = "Lion8bit" min_snr_gamma = 5 log_with = "tensorboard" logging_dir = "./logs" caption_extension = ".txt" shuffle_caption = true weighted_captions = false keep_tokens = 1 max_token_length = 255 caption_tag_dropout_rate = 0.1 multires_noise_iterations = 6 multires_noise_discount = 0.3 seed = 1337 no_token_padding = false mixed_precision = "bf16" full_bf16 = true xformers = true lowram = false cache_latents = true cache_latents_to_disk = true persistent_data_loader_workers = true train_text_encoder = true

try1.02

大概加多了一点画师,然后目前弄画师画风大概可以通过画师提示词混合,比以前的版本貌似要更加生动一点(但是可能会有更多的人体结构错误)训练集到了9500张图,测试了后感觉稍微过拟合的单画风以及多画风混合效果会比较好就这样选择了。

然后是用了waifuset这个数据库管理软件(或者说脚本?)

这玩意十分甚至九分的好用,就是有点小bug和市面上没什么视频介绍如何使用,毕竟只是100到200张图的单画风无所谓,但一旦上万图就只能用脚本式的操作来给图片去重复标签,打标和修改错误标签了。(有点想弄个什么使用教程免得自己忘记了)

还有一件事,之前的版本的v1.01模型因为用的是8epoch所以有点过拟合,后来发现貌似5epoch在测试的过程中效果更好就换成了5epoch为v1.01版本的模型。因此模型前后的hash值会改变(请以hash值来分辨模型,我只是尽可能把个人感觉好用的模型上传,有几率会xjb乱改上传的模型.....)

新提示词在v1.02版本的提示词界面可以通过展开来复制和找到。

(感觉有100位画师的时候我估计就干不动了)

训练集包括图片和txt文件已经有30gb大小了.....现在弄画风都是danbooru或者pixiv直接脚本下载,然后tagger1.4 v3追加加标,然后去重标签最后一键解析和整理标签(结果一堆人物标没有打,danbooru和tagger1.4都没有识别或者打好,要自己一个个看(比如烧钱的李恩菲尔德的官方立绘无论是danbooru还是tagger1.4都没有打标,哪怕这个人物和对应的danbooru标签确实存在,我都快无语了....))

既然大家都用脚本下载danbooru了,然后追求质量去手动下载exhentai的种子文件

突然想到能不能脚本下exhentai的指定艺术家姓名或者某些分类下的画廊的种子文件?

比如说先选择要下的艺术家姓名,语言模型通过网站自带的分类器初步检索网站后,先用语言模型检查画廊名字及其大致内容是否相同,然后选择这些独一无二没有重复的画廊下载其种子文件?时间的话还可以让语言模型选择下画师的最早画廊和最晚画廊中间的中后期画廊或者直接网站时间排序由晚到早来下2022或者2023年以后的种子?(不知道在说什么,xjb乱想的)不过人类智能(人工)是最保险的.....

等等,发现琥珀青叶dalao早就炼了一个类似的模型了...../model/399873?modelVersionId=546178 不紧怀疑起重复造轮子的意义所在.......(我打琥珀青叶,真的假的)笑

都给我去用琥珀青叶dalao的模型吖

Images made by this model

No Images Found.