AI image generation queue not purging declined slaves while browsing slave market
Expected Behavior
While viewing slaves in any of the markets (I don't think it's specific to the market, rather, the market is an ideal situation for this scenario to happen), the AI generation queue should remove pending requests for slaves that I have declined, such that the slave currently being displayed begins generating immediately.
Current Behavior
When repeatedly pressing "Decline to purchase and check out another slave" the queue gets backlogged and sometimes will eventually give up on the currently displayed slave.
Steps to Reproduce
- Create a new game or resume an existing one
- Enable AI art, run A1111 web ui client
- Go to buy slaves, any market
- Repeatedly press "Decline to purchase" and observe the A1111 console continue to work on old requests instead of purging them
Additional information
- Release ID:
master
branch, after4.0.0-alpha.27
- Commit: Latest commit as of posting cfbd6015, however I have consistently observed this problem for over a month--pretty much ever since the image queue was implemented.
- Save file: I can provide one if necessary but this problem has occurred with every game I play, not specific to a save.
I'm running an RTX 4070Ti and each image takes about 5 seconds to generate with my settings. When the queue gets backlogged with declined slaves it can take over a minute for it to work through all of them and sometimes gives up before reaching the current slave. It's odd because this MR !11496 (merged) looks like it should prevent this.
Here is a pastebin dump of the A1111 console logs https://pastebin.com/sPDC94H0
EDIT: Checked the browser console while waiting for the queue to catch up. Curious behavior:
Stable Diffusion fetch interrupted
Fetching image for slave 271, satisfying 1 requests
Fetching image for slave 271, satisfying 1 requests
Fetching image for slave 271, satisfying 1 requests
Fetching image for slave 271, satisfying 1 requests
Fetching image for slave 271, satisfying 1 requests
Fetching image for slave 271, satisfying 1 requests
Fetching image for slave 271, satisfying 1 requests
Looks like the while
loop in the process
function in stableDiffusion.js
iterates multiple times. The body
and slaveID
for each fetch corresponds to a previously declined slave that for some reason still appears to be in the queue...except the queue object itself does appear to have been cleared with the interrupt so... not really sure what's going on.