Size multiplier as an alternative to base size
Is your feature request related to a problem? Please describe. I kind of find myself "fighting against" the base size system when inpainting. I would select an area on the painting I'd like the AI to focus on, but then I have to check that the base size used is reasonable for it. The base size is just not a great system in my opinion due to the level of detail changing every time you select a differently sized area for inpainting but don't adjust the base size.
I also almost always just select canvas dimensions for base and max sizes when txt2imging or img2imging, so it's a point of unwieldiness of using the plugin even for those tasks for me; these days I only upscale after getting a good base image. Also the name of it is confusing, though I'm not entirely certain my suggested "size multiplier" is any better.
Describe the solution you'd like I'd almost ditch the base size altogether, but I guess there are going to be "some people" who will object. There is, after all, an increased chance of feature duplication and proportions getting messed up if using something other than the model's training size. So some kind of a way to access this alternate system of deciding what the generation resolution is, is what I'm suggesting. I think they should be mutually exclusive, so maybe a dropdown menu for which option is presented in the UI.
Most of the time I think a user would just use the default of 1.00 for it. A setting that you rarely need to adjust is better than one needing constant adjustment.
So this is how it works:
Consider the larger of width or height of the selected area or image (if no selection) and if it's larger than max size, max size will be used for the side in question and the other one of the width or height will be scaled appropriately for the generation size. Well, after doing any tricks you do now to get a multiples of 64.
In any other case, the size of the selection or the image is used, multiplied by the size multiplier and doing those usual adjustments to get multiples of 64.
Describe alternatives you've considered
- A checkbox for using selection or canvas size as the generation size. There are, though, some times when I'd want to have the generation happening in high detail like some tiny thing needing adjustment but I want it to be "perfect" without having the canvas size be ridiculous. Maybe for testing stuff also using less than 1.0 can be warranted.
- Getting rid of the base size and using this new system
Additional context I suggest the size multiplier's UI element to behave like the CFG scale's UI element, with step of 0.10 and resolution of 0.01. Not that I'd use all that resolution, maybe, but why not have it be the same everywhere.
Yeah that would be more convenient, but there doesn't not seem to be a way to get the model's training size from the model itself. So unless most models store the training size in their metadata, it is probably impossible to do the relative scaling for base size/max size.
As for using the selection/canvas size directly, thanks for the idea. I already noticed img2img typically doesn't suffer the same duplication issues, so to make using the adjustment optional makes sense.
Yeah, the part that used the max size was more confusing and I'm not sure how you understood it. But how I was thinking it was more along the lines of if the user has a canvas of 4800x2688 and only the computing resources for 1600x896, they'd set max size to 1600 and the plugin will scale the image down to that size for the generation. Of course it's still not a perfect system in that the user could select an area of 1600x1600 and their computer still couldn't handle it. But I don't really have a better solution at this time.