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

此模型生成的图像

未找到图像。