IoError(Os { code: 5, kind: PermissionDenied, message: "Access is denied." })
Interestingly the saves worked in
G:\OneTrainer\workspace\save
But model output destination failed while saving
G:/automatic1111/stable-diffusion-webui/models/Stable-diffusion/one_train
When you are saving as save tensors or ckpt, you need to specify a full file name. Not just the folder. But this has been a problem for many people already, so maybe I can improve this a bit.
What exactly would you expect to happen here? I could automatically append a generated file name similar to the save folder if no name is specified.
When you are saving as save tensors or ckpt, you need to specify a full file name. Not just the folder. But this has been a problem for many people already, so maybe I can improve this a bit.
What exactly would you expect to happen here? I could automatically append a generated file name similar to the save folder if no name is specified.
my expectation was like this - first time using onetrainer
we give output folder
and it will save checkpoints and final into that one. i see checkpoints are saved inside OneTrainer\workspace\save
so it could be made that way. so a file name will be used
in kohya outputs named like that
The general naming convention for OneTrainer output is {timestamp}-{name}-{train_progress}.{extension} This is used in many places: Saves, backups, samples and tensorboard folders. Some of those don't include a name, so they just use the timestamp and train_progress. Automatically generating a filename based on this convention is simple, except for the name part. A training run doesn't have an inherent name. So I think the best I could do is save files in this format, for example: 2024-01-07_12-38-02_22-26-07.safetensors for 7th January 2024, 12:38:02, at epoch 22, global step 26, epoch step 7
Or maybe 2024-01-07_12-38-02-output-22-26-07.safetensors to clarify it's an output model instead of an intermediate save
The general naming convention for OneTrainer output is
{timestamp}-{name}-{train_progress}.{extension}This is used in many places: Saves, backups, samples and tensorboard folders. Some of those don't include a name, so they just use the timestamp and train_progress. Automatically generating a filename based on this convention is simple, except for the name part. A training run doesn't have an inherent name. So I think the best I could do is save files in this format, for example:2024-01-07_12-38-02_22-26-07.safetensorsfor 7th January 2024, 12:38:02, at epoch 22, global step 26, epoch step 7 Or maybe2024-01-07_12-38-02-output-22-26-07.safetensorsto clarify it's an output model instead of an intermediate save
i think adding name option would be more convenient like Kohya does
Easier to see and compare on automatic1111
Adding an additional "Name" input would be pretty confusing if that name is only used when saving to an auto generated file name.
Please also keep in mind that this would only be a fallback. The preferred way of specifying a file name is to put the whole name into that input box. That way you can use exactly the name you want.
Maybe do a validation prior to initiating training? I.e. check that the input could be created as a file.
Personally I'd just stick it in the existing save folder because the last epoch isn't always the best one and I would test a bunch of them. But maybe that's just me.
A validation would help. It's the fatality of the error that's the problem rather than it not saving anything. I assume there's no way to just auto-name and save in the provided directory if no file name is included? That would be my expected behaviour for any app that asks for a save location. I'm changing all the other default locations, so that was just one more ctrl-v.
For me too the final save isn't any more interesting than the auto-saves before it, so maybe make it optional if people want to specifically name and have it save somewhere special? I've already set a save location for that specific training run on the previous screen, so with the epoch/steps auto populated in the file name it's obvious which was the final save.
I'm impressed that people were paying attention to what the default was populating the field with though!
Maybe just changing the UI so it's obvious that the final save is something non-standard? Rather than just a normal 'stick your desired save directory here' box.
I'm aware there's other use cases for OneTrainer that might require more particular care for that final save. This is just me showing my thought process as a user that's used to using Kohya's and installs and populates save directories on every half interesting AI app that pops up during the day haha.
@Lytanshade i am also using saved files instead of final one :D
Solved with #687