In a basic sense it's not much different from training TI or Lora. Most of the difference is related to the optimizer and not really the "type".
I have found some odd behavior in training recently and i'm not sure what is causing it.
Since i've been testing alot of different values/settings i created a "base" file which i reloaded each time to reset things incase i'd accidentally update a setting etc. I ran multiple trainings on that base file to see that the results were the same each time, generated images had just the slight random nature you'd expect like strains of hair being slightly different etc.
After quite a while of testing i started seeing results that didn't make much sense so i retrained on just the base file and images generated was nowhere close to what they initially was. Character was suddenly 3x as old and at least twice the body weight. Have spent over a day now trying to get back to the starting point i have no idea what's "gone wrong". Nothing updated, training data has remained unchanged etc so somewhat confused.
Another thing i noticed is related to epoch settings.
With the base file i had the training thankfully only needed 1 epoch, IE the -000001 file generated using kohya-ss, but i had left the setting to run for 5 epochs just incases. When i changed this setting without changing anything else, the images generated on the trained file (still using the first epoch file) changed as well.
So i did multiple trainings with setting the "max epoch" to different values then generating images with the same seed using the 000001 file from each of those trainings.
So keep in mind, these image sets are ALL generated on using the 000001 file from trainings done on the exact same settings, same data etc, only thing that's changed is how many epochs the training would have run for. That is the number in the group titles, so where it say "ep_2" means it was set to run for 2 epochs, but it was still the first epoch file used to generated images.
View attachment 2746744
This was repeatable too, so running the same generating on the same seed gave the same results so it isn't due to randomness in the generating. For some seeds the difference was much greater as well, IE one image would have just the clothing and not even the person, while wearing the same clothing in another.
I'm not sure if this is due to randomness in the optimzier (Prodigy) or if it's related to the scheduler (cosine) or if it's some kind of bug in the code.
It could be that the "cosine wave", to call it that, gets stretched from start to end, so that more epochs affects growth/decay, no idea tbh. Because it takes so long to test it i can't really look into it.
Regardless of the cause the result for "us" is that it can affect our training results and it's a value you'd not expect to do that besides when things stop.