我比较了 Kohya 和 OneTrainer 在 FLUX Dev 微调/DreamBooth 训练方面的表现
OneTrainer vs Kohya for FLUX Dev 训练
OneTrainer 可以使用 Text-Encoders 训练 FLUX Dev,而 Kohya 不能,所以我决定尝试一下。
不幸的是,开发者不想添加将训练好的 Clip L 或 T5 XXL 保存为 safetensors 或将它们合并到输出中的功能,所以基本上它们在没有大量额外努力的情况下是无用的。
我仍然继续并测试了 EMA 训练。EMA 通常能显著提高 SD 1.5 训练的质量。对于 FLUX,我不得不使用 CPU 进行 EMA 训练,速度非常慢,但我还是想测试一下。
我尝试复制 Kohya 的配置。下面您将看到结果。遗憾的是,质量不尽如人意。需要进行更多研究,而且由于开发者决定不进行文本编码器训练,我看不到使用 OneTrainer 进行 FLUX 训练而不是使用 Kohya 的任何好处。
第一张图片:Kohya 最佳配置:https://www.patreon.com/posts/112099700 第二张图片:One Trainer Kohya 配置,EMA 每 1 步更新一次 第三张图片:One Trainer Kohya 配置,EMA 每 5 步更新一次 第四张图片:One Trainer Kohya 配置 第五张图片:One Trainer Kohya 配置,但时间步移位为 1 而不是 3.1582
我猜 OneTrainer 的时间步移位与 Kohya 的离散流移位不同。
可能我需要做更多的工作和测试,才能改进结果,但目前我看不到这样做的任何理由。如果 Clip 训练 + 将其合并到 safetensors 文件中可行,我就会继续追求。
这些不是精挑细选的结果,全部来自第一次测试网格。
结论
测试结果表明,OneTrainer 使用 EMA 无法达到 Kohya 在 FLUX 训练方面的质量。如果无法正确集成文本编码器训练并导出 safetensors,则使用 OneTrainer 用于此目的的好处有限。
关键问题
- 文本编码器训练无法保存/合并结果
- 时间步移位与 Kohya 的离散流移位实现不同
- EMA 实现速度较慢(仅限 CPU)