InvokeAI icon indicating copy to clipboard operation
InvokeAI copied to clipboard

[bug]: Why Denoising Strength in UI when doing txt2img?

Open Jonseed opened this issue 1 year ago • 3 comments

Is there an existing issue for this problem?

  • [X] I have searched the existing issues

Operating system

Windows

GPU vendor

Nvidia (CUDA)

GPU model

RTX 3060

GPU VRAM

12GB

Version number

5.0.0

Browser

Edge 128.0.2739.79 (Official build) (64-bit)

Python dependencies

No response

What happened

When doing regular txt2img generation (not img2img from a pre-existing image), why does the denoising strength slider show and is active in the UI? It doesn't seem to do anything in that mode (changing it has no effect), so why does it show or be active?

What you expected to happen

When doing txt2img, it seems the denoising strength slider should not show in the UI (or perhaps be deactivated or grayed out like when seed is on random), as it doesn't have any functionality in that mode, especially when sending directly to the gallery. Only when doing img2img functions on the canvas (when the bounding box overlaps a pre-existing image) does it seem like denoising strength should show up in the UI. Of course, you'd need to detect when the bounding box overlaps a pre-existing image on the canvas in order to enable this in the UI, but it seems like it would be more intuitive to only show or activate the denoising strength when it will actually affect the refining or editing of a pre-existing image. When generating from scratch (sending direct to gallery or on a blank part of the canvas), it seems that slider should not appear or be active in the UI.

How to reproduce the problem

No response

Additional context

No response

Discord username

No response

Jonseed avatar Sep 27 '24 16:09 Jonseed

Maybe this is more of an enhancement than a bug? (Although the slider is really functionless when doing txt2img, so kind of a bug?)

Jonseed avatar Sep 27 '24 18:09 Jonseed

We don't know if the canvas is going to do txt2img, img2img, inpaint or outpaint until the user clicks the Invoke button, so we need to show all controls, even if some might be ignored.

As you intuited, calculating the generation mode requires we check the contents of the bbox. This causes a brief UI lag/stutter. Doing this while drawing - even if debounced - introduces unacceptable stutters because the operation blocks the main thread. We might be able to improve this, but it's not a high priority item for us right now.

FWIW, this is unchanged from earlier releases.

psychedelicious avatar Sep 30 '24 09:09 psychedelicious

We could consider other ways to handle it, but think it might involve moving the position/tying it to layers, which might confuse folks.

hipsterusername avatar Sep 30 '24 12:09 hipsterusername