Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request]: Ability to cancel all processes with one action #274

Closed
KatsPurr opened this issue Dec 5, 2023 · 12 comments
Closed

[Feature Request]: Ability to cancel all processes with one action #274

KatsPurr opened this issue Dec 5, 2023 · 12 comments
Assignees
Labels
already-exists Feature already exists

Comments

@KatsPurr
Copy link

KatsPurr commented Dec 5, 2023

Is your feature request related to a problem? Please describe.

One of the most time consuming parts of using OpenOutpaint is when you have queued up lots of additional images with the + button but then already get the result you wanted early on and press "Y" to accept it. But then you're left with having to deal with the queue and having to keep pressing Interrupt over and over again as it tries to start the next iteration in the queue. This mechanic is the most frustrating since it can take forever to interrupt them all. Especially if the selected area was a large one.

Describe the solution you'd like

It would be great if after approving an iteration with the "Yes" button, that the rest of the iteration queue is removed.

Proposed workflow

  1. Go to scenario where image is being generated and the menu is showing on the bottom of the image showing options for Y/N/+ etc
  2. Press "Y" on the version you like which not only approves that iteration, but also automatically cancels any queued up iterations since they don't serve a purpose anymore at this point

Describe alternatives you've considered

If removing the remaining queued iterations after pressing "Yes" cannot be done for whatever reason I'm overlooking, then at least it would be nice to have an additional control in the bottom menu to just cancel the queue completely.

Additional context

No response

@KatsPurr KatsPurr added the enhancement New feature or request label Dec 5, 2023
@zero01101
Copy link
Owner

sorry for the delay - this is one of those things where people are using this so far outside of expectations that i could've never even considered this lol, like the + button's intent is "no, all these options won't do at all, i require more" and wasn't meant to really be a firehose of potential... i'll have to look into this one further

@KatsPurr
Copy link
Author

KatsPurr commented Dec 9, 2023

Thanks so much for the response zero! And I already said it in the discussions, but I'll say it again. I ADORE OpenOutpaint.

So [+] was never even designed for people to go nuts pressing over and over huh? But doesn't everyone do it hehe!

Well let me explain the psychology behind it. OpenOutpaint is an essential part of my daily workflow to fix weird eyes, hands, belly buttons and other things for the types of images I generate. Since I use it so much, I already know from experience that it might take 20 tries or more to get a wonky hand fixed. So it's already standard for me to go ahead and press [+] a gazillion times as soon as I start, knowing that I will most likely need a lot of iterations.

You might be asking "Well why don't you just click [+] once... see if you like the result... and if not, click it again?" But try and imagine how tedious that would be if this is something you do a lot of. Because you'd have to sit there doing click-wait-click-wait that for minutes on end. Sometimes it might take up to half an hour to get a weird hand or belly button fixed. By queueing a whole bunch of [+] presses, I can at least alt tab to check emails, chats etc and then come back to start cycling through the results.

And yes, I do things like:

  • Adjusting the denoising strength according to how different of a result I need
  • If a hand is especially tricky, I might try to completely cut it off and allow OpenPaint to create one "fresh", but that doesn't always work either, it's a case by case scenario.

And let me say that outside of weird eyes, belly buttons and hands, MOST other things are pretty fast and simple to get a nice result with and would never require a billion iterations like that. So if you've never had to cycle through 20 hand options, I can understand why this sort of case would come as a surprise!

Sorry for the long-drawn explanation, but just as you were surprised that anyone would use OpenOutpaint this way, I was also surprised, - assuming that everyone queues up the [+]'s hehe! So I really wanted to clearly explain how this kind of scenario can even happen!

Thanks so much for looking into it! It would be SUCH a time saver if I didn't have to sit there "Interrupting" over and over again.

@zero01101
Copy link
Owner

zero01101 commented Dec 9, 2023

aww much obliged for the kind words <3

so i just realized you might be very interested in the generate-ahead count functionality (discussion, pull request, manual - just scroll up a tad for the section on generate-ahead, it's the same for img2img) which should be available on both dream/img2img tools - i think it already does exactly what you want up to 100 images at a shot, and then if that's not enough you can push + after looking through all the results, and it already respects "queue cancelling" once a selection is made

note the increasing image count in the gifs because i'm sure not doing that manually lol

generate ahead

actually i just realized with SDXLturbo (non-inpainting of course but hey) and the jump to 1st new on + option enabled, this thing kinda does firehose pretty successfully doesn't it

OPEN WIDE

@KatsPurr
Copy link
Author

KatsPurr commented Dec 9, 2023

Thanks for linking the stuff about the generate-ahead stuff. It does look very handy! And if it respects queue cancelling beautifully then sign me up! The ability to cancel is all I ever really wanted to begin with.

OpenOutpaint is not working for me now so I can't test it yet. But dumb question: should the extension even be working right now? (or... is it actually a problem at my end after all?) Or is it just a matter of waiting for an update from you guys? Because when it stopped working after the last update, I just totally assumed (perhaps incorrectly?) that it was the Automatic1111 update that broke it and I just need to patiently wait for a OpenOutpaint update to become compatible again.

Anyhow, when and if I do ever get it to work again (or take the plunge with the standalone version), I'll definitely test this feature out. Thanks so much!

@zero01101
Copy link
Owner

yeah, extension or standalone, it's definitely working as expected against webUI up to 1.6.x... you might want to reinstall webUI completely from scratch in a different folder somewhere just as a test, particularly if you've got a lot of extensions

@KatsPurr
Copy link
Author

Daaaammnnnnn really?

  1. So installed a second Automatic1111 to another folder (did not reinstall Python or Git however, just automatic).
  2. Set up my bat file like I usually have it, which is like this:

`@echo off

set PYTHON="C:\Users\andre\AppData\Local\Programs\Python\Python310\python.exe"
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS= --api --xformers --no-half-vae --medvram
call webui.bat`

  1. Copied my models over
  2. Started up, went to the extensions tab and installed OpenOutpaint from there (did not install any other extensions)
  3. Unfortunately it behaved exactly like it did in my original install. I made a video for you so you can see it in action.

https://www.youtube.com/watch?v=0MU4aD0K7wg

@zero01101
Copy link
Owner

well huh

yeah, that's assuredly not supposed to happen lol... in fact, in the entirety of openOutpaint's history, i don't believe i've ever experienced an actual OOM from any browser...

re: the 2nd install, yep, spot on, no need to reinstall git/python whatsoever, and if you wanted to try openOutpaint standalone you'd just need to add --cors-allow-origins=http://127.0.0.1:3456 after --medvram in your COMMANDLINE_ARGS value to set webUI up, but i suspect it'll probably conk out the same way :/

in any case, for the time being i might possibly recommend trying edge since you're running windows and it should be preinstalled, or i can heartily recommend firefox lol, but tl;dr i SUSPECT this might be a chrom(ium) (and possibly extension) vs canvas thing somewhere? if it's chrom(ium) without extension, you're the first to discover it, congratulations (?)

however if you want me to continue blah-blahing...

so until very recently, chrome and its downstream chromium dependents (i.e. every single browser that currently exists except firefox and safari) were suddenly acting quite foolish regarding HTML canvas operations (a,b,c,d), and in the past issues had arisen explicitly with extensions with a privacy focus, specifically duck duck go's extension which makes me kinda suspect some canvas skullduggery, since openOutpaint relies so heavily on HTML canvas and its use is sparing throughout webUI otherwise :/

@KatsPurr
Copy link
Author

OMG OMG OMG!!! Thank you thank you thank you! IT WORKS IN Edge JUST FINE!!!!!

See I totally thought that the recent Automatic1111 update broke it because that's exactly when OpenOutpaint stopped working. I'd been using it no problemo DAILY since the update in the fall. So of course I assumed that's what it was!

Thank you so much for the extra blah-blah too because even though I don't fully understand it all, it's still super interesting to know!

Oh my god, I'm so relieved!

A HUGE MASSIVE thank you for taking time out of your day to try and help me with my questions. I hope that if there is anyone out there in the world that has been going through the same thing, that they stumble upon this conversation, learn a thing or two and that it might help them as well.

@zero01101
Copy link
Owner

lmao no worries at all, browsers are such a giant catastrophic pile of moving parts that like 12 things might all get updated at once and there's a single config value that has ruined your week ;) glad to help in any case - and back to the original topic lol, is that generate-ahead sort of what you were looking for as far as "continual" generation/queue cancellation?

@KatsPurr
Copy link
Author

I tested it out and it's great! Really nice to simply put in a default generate-ahead count so I don't have to sit there clicking [+] over and over again. Really like the possibility to add the little * to one's favorites as well. But the best part of all.... You know what I'm gonna say... When I tell it to stop generating, it STOPS. Aaaahhhh bliss!

The amount of hours I would have saved if I'd only known about this feature earlier. See... originally I didn't really scour through the manual here on Github because I discovered this extension and how to use it from a YouTube video. So naturally was just using the basic tools I saw in that and was still a happy camper. But this feature makes me even happier.

Thank you again so much for everything!

@zero01101 zero01101 added already-exists Feature already exists and removed enhancement New feature or request labels Dec 10, 2023
@zero01101
Copy link
Owner

zero01101 commented Dec 10, 2023

no worries :) glad it's working better for your needs, i just kinda felt dumb yesterday because yeah of course your use case was 100% considered long ago, that's why generate ahead exists lol 🤦 terribly sorry for the wasted hours, i suck at advertising the manual
lil bad pokerface

@zero01101 zero01101 closed this as not planned Won't fix, can't repro, duplicate, stale Dec 10, 2023
@KatsPurr
Copy link
Author

I can totally see how you were bewildered, assuming everyone has read the manual and is aware of the feature. And even though I DID read the manual THIS time (because I was trying to find answers to my problem), that particular part that talks about "Generate-ahead" has no mention of it's bonus attribute: That it will obediently cancel/interfere when you ask it to. And of course that was originally the MAIN reason I was here to begin with. I never complained about having to click [+] over and over again. Rather that I had to click [Interfere] over and over. So I guess if there is anything useful that can be taken away from this, is perhaps to add a mention of that wonderful bonus feature in the Generate-ahead section of the manual? Or else to change OpenOutpaint to by default stop/interfere/cancel just as beautifully as it does if you have generate-ahead in use.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
already-exists Feature already exists
Projects
None yet
Development

No branches or pull requests

3 participants