Roukin8-character-LoHa/LoCon/FullCkpt ろうきん8
详情
下载文件
模型描述
本帖包含使用相同数据集微调的三种结果:LoHa、LoCon 以及完整检查点(均设置 clip skip 1)。
相关 Hugging Face 仓库:https://huggingface.co/alea31415/roukin8-characters-partial(更多版本可在此处找到)。
请注意,这些模型是在 BP 基础上进行微调的,因此想要获得我展示的风格,请使用 BP 模型。若在 Orange 上使用这些模型,除非调整权重合适,否则可能破坏 Orange 风格。
什么是 LoHa / LoCon?
LoHa:带有哈达玛分解的 LoRA(参考 https://arxiv.org/abs/2108.06098)
LoCon:将 LoRA 扩展至残差块
更多说明请见 https://github.com/KohakuBlueleaf/LyCORIS/blob/lycoris/Algo.md
如何使用?
在 WebUI 中安装 https://github.com/KohakuBlueleaf/a1111-sd-webui-locon,并将其作为 LoRA 使用。
为何选择 LoHa?
以下对比应已足够有说服力。
(左:4 个不同训练步数的 LoHa;右:相同步数的 LoCon;两组训练使用相同种子与参数)
除了五个角色外,我还额外训练了多种风格集成到模型中(这正是我一直的做法)。
然而,LoRA 与 LoCon 在角色与风格结合方面表现一般(角色仅基于动漫图像训练),而 LoHa 显著提升了这一能力。
请注意,两个文件大小几乎相同(约 30MB)。为此,我将 LoCon 的 (linear_dim, conv_dim) 设置为 (16, 8),LoHa 设置为 (8, 4)。但通过哈达玛积,线性层的最终矩阵秩可达 8×8=64,卷积层可达 4×4=16。
附注:此处提供 20000 步的文件,如需其他版本请查阅 Hugging Face。
完整检查点情况如何?
如下图所示,其性能依然最强。或许未来通过使用更大维度的 LoHa、更优的卷积层分解方式,并恢复目前 LoCon/LoHa 实现中未训练的少数层,也能达到类似效果。拭目以待。
训练细节
- LoCon/LoHa:alpha=1,维度如上所述,batch size=8,学习率恒定为 2e-4,使用常数调度器,优化器 AdamW
- 完整检查点:batch size=8,学习率 2.5e-6,采用余弦调度器,优化器 Adam8bit,条件丢弃率 0.08
示例图像
图像 1 和 4 来自 LoCon,2 和 3 来自 LoHa,5 和 6 来自完整检查点。
数据集
我已上传 3000 张动漫截图的动漫部分数据集。当前格式适用于 Everydream(需配合 multiply.txt),而对于 kohya trainer,请使用此脚本 https://github.com/cyber-meow/anime_screenshot_pipeline/blob/develop/utilities/flatten_folder.py
python flatten_folder.py --src_dir /path/to/dir






