rotatesword
详情
下载文件
关于此版本
模型描述
前言

低秩适配器并非表面看起来那样。当我们为稳定扩散模型创建一个参数高效的微调适配器时,我们实际上是在让图像生成程序解决一个复杂的优化问题,从而生成一个全新的程序。
目前,选择优化问题还没有任何有用、具体或严格的规则,能让我们轻松确定训练设置或训练数据,以生成完全符合我们需求的图像生成适配器(稳定扩散 LoRA)。
我希望让 navigating 这个问题变得稍微容易一些。
ROTATE-SWORD
训练数据准备:

直接画点什么吧,什么都行。都很棒。你所使用的纹理类型会影响输出适配器模型的行为,因此使用类似绘画的纹理而非蜡笔纹理,可能更能反映你的审美和创意价值观。
唯一重要的限制是:确保你为所画内容上色,并使用不同颜色来表示纹理的深度、反射率和图案差异。
将图像镜像,并在四个正方向和四个对角方向上旋转,使你的训练数据扩大16倍。
使用机器视觉标注工具处理你的训练数据。我并不推荐手动标注图像标题训练数据,除非你是机器视觉专家——而我连微调一个文本分类器都勉强!
检查你的训练数据,确保反映物体和背景的标签被正确传播到每一张图像上。在我的训练集中,我发现大多数图像都缺失了本应共享的大部分标签!

只需复制粘贴几次有效标签即可轻松纠正。如果你更擅长计算机操作,我相信你一定能找到使用 shell 脚本让这个过程更快或更简单的方法。
训练:
我使用了 network_dim=64、network_alpha=64、学习率=5e-05(所有字段均相同)、内部分辨率=768x768(即使在8GB显存的GPU上,只要降低训练批次大小也能运行!)、++ min_snr_gamma=5.0++,以及 multires noise discount=0.13。我的首次训练使用了5次“数据集重复”和12个epoch。在你的训练中,(重复次数 * epoch数)的总和建议在50到70之间。我建议不使用重复,直接训练60个epoch,这样更容易观察到适配器模型随训练的演变。
标记为 ++ 的训练设置可能是安慰剂效应,至少是多余的,它们对于获得良好的训练结果未必需要模仿。
务必在每一个训练epoch都保存一次检查点并采样一张图像!
输出模型:
我提过吗?这个训练过程在未优化任何参数的情况下仅耗时约18分钟,而且远远超出了收敛所需的输出适配器模型!
大胆尝试为每一个你能找到的模型训练单物体、单纹理的LoRA。训练SD1.5、SD2.0,尝试你最爱的写实和动漫风格DreamBooth模型!
只要你为训练过程提供一个简单直接的优化目标,并通过一个受限制的、明确的数据集来实现,所有稳定扩散模型都会从你的数据集中学习到有趣的东西。
附上使用本训练数据集和方法生成的 rotate-sword LoRA 模型,基于稳定扩散1.5、NAI-leak、counterfeit-3,以及我自己的块权重合并模型(类似counterfeit,但紫色斑块更少)。
我推荐在Automatic1111的WebUI中使用 lora-ctl 插件来管理以这种方式训练的LoRA。你极不可能希望你的适配器模型生成无尽的白色区域或抽象背景作为你的特定审美目标。一个 lora-ctl alpha 曲线 lora:loraname:1:[email protected],[email protected],[email protected] 能非常有效地缓和这类行为。




