Interpause/auto-sd-krita

Base size and max size input boxes are too far above the img2img and txt2img tabs

Closed this issue ยท 7 comments

Is your feature request related to a problem? Please describe.
I frequently change the base and max size setting when using txt2img and img2img.
Right now I have to dedicate a huge portion of the screen to the SD plugin so I always have those input boxes within reach
Having to scroll every time I change those values is not an option, that's why I've been forced to dedicated a large portion of the screen for the plugin and not much else.
The problem is this leaves significantly less room for other docker windows, noticeably interrupting the workflow

Describe the solution you'd like
Transfer the base and max size setting to the empty & unused space in the img2img and txt2img tabs like in the old version of the plugin

Describe alternatives you've considered
A setting to toggle the location of base and max size input boxes between the current position and the suggested position

Additional context
image showing the current, previous, and suggested location for the input boxes:
suggestion fw

My monitor is 1080p, 27 inches - I imagine this new plugin was designed with a 1440p 32 inch screen in mind which might explain all the wasted space in the plugin's docker window.

Interesting, I didn't think base size & max size was smth that needed to be adjusted frequently & was actually considering moving to the Config tab to save vertical space. Could I know a bit more about why you frequently adjust it?

-- short summary at the bottom --

Sure, the main reason is how I've stopped using inpaint because it's two additional steps to get the same job done:

  1. change the brush color to white, losing the brush color I had before that
  2. create a new layer for inpainting
  3. draw around areas that need to be inpainted at full res
  4. press the [start inpaint] button
  5. delete the inpaint layer when done

One thing that might be weird is I never actually change base size, I just leave it at 1536, so when I need to use img2img at a different resolution I only need to change one value (max size)
**changing base size basically seems to do nothing for my use case since it's smart enough to adjust for my needs
***I actually have no idea if base size is needed for anything

When I want to make edits on small parts of the image, I set max size to 512, that way I can get small portions fixed quickly.
(With inpainting, the entire image dimensions are used which is really slow when doing small changes in large images)
*I'm using an RTX 2060, so I can really feel the speed improvement by using small img2img selections- RTX 4090 users probably won't need to do this

After making small edits in separate areas of the image, colors tend to not-go-well together, that's when I need to use img2img on the entire image and set max size to 1536
**or whatever the overall dimensions of the image is

Lastly, when fixing eyes or other fine details (using Waifu Diffusion 1.3), users have the option to either inpaint at full resolution or select the area around the eyes then use img2img
When going the img2img route, to get the same result as inpainting at full resolution I need to:

  1. perform a feathered selection around the eyes
  2. set max size to a high resolution (ex: 1024)
  3. press the [start img2img] button

3 steps with img2img vs 5 with inpaint
Inpaint would probably be as convenient as img2img if there were keyboard shortcuts for deleting a layer, switching the brush color to white, and returning to the previous color when inpainting is done.

The great part about using inpainting though is I never have to worry about aspect ratio changes that frequently happen when using small img2img selections.
(My suggestion for that issue with aspect ratio changes is to expand the selection to the next size that's a power of 2, then remove the extra parts after img2img is done)

Takeaways:

  • I don't use inpainting because img2img+setting max size to whatever I need at the moment is overall faster
  • the problem with the img2img route is I need to frequently change max size, so it has to be always within reach
  • Also base size setting is probably useless
  • I should probably open a different feature request for fixing the aspect ratio changes when using selections with img2img

Okay so its not written anywhere, but actually the current logic for how mask inpainting works doesn't care if its white, so you don't actually have to change the brush color to white.

Personally, I don't delete the inpaint layer since they get buried under the actual inpaint itself, also in case I want to repeat that inpaint later on.

Also, the code is already supposed to handle aspect ratio in the way you mentioned. You should notice that for smaller selections, the transparency masks added do actually remove extra parts.

BTW, how base size/max size works is basically an alternative to AUTO's highres fix that also works for small selections. I put it on the FAQ https://github.com/Interpause/auto-sd-krita#faq somewhat recently. Tell me if the explanation isn't that clear though. Took me a while to understand what the original base size/max size was supposed to do and fix it.

ok looks like i'll have to stick with img2img's issues with aspect ratio changes for non-square selections since that can be worked around by only using perfectly square selections
(the highest change I've seen in the terminal was around 9%, significantly stretching the result compared to the original)

But there's still the huge unused space between [Denoising Strength] and [Start img2img], it would be great if that could be either removed or used ๐Ÿ™
image
If the easier option is to just remove that unused space but keep the base and max size boxes above the txt2img and img2img tabs - moving the base and max size boxes below [Tiling Mode] will allow me to save some more valuable vertical space on my <32 inch screen

Wait the image is actually stretched? It shouldn't be doing that. Okay, file a bug report for that with some images of the image being stretched.

btw, the huge space is due to the inpaint tab being so vertically large that the other tabs are forced to expand...

Thanks for the quick update, that definitely showed me which files I need to poke around to customize the plugin to suit my needs.
Now I fully understand why opensource projects are awesome ๐Ÿ‘

With the base and max size input boxes moved lower, I only needed to hide the inpaint tab and tips in the txt2img, img2img, and config tabs to save even more vertical space
image

Thanks again for this plugin!

No problem