diff --git a/ui/media/main.js b/ui/media/main.js index 9c3eb3b6..6a887b87 100644 --- a/ui/media/main.js +++ b/ui/media/main.js @@ -116,6 +116,7 @@ let modifiers = [] let lastPromptUsed = '' let taskQueue = [] +let currentTask = null const modifierThumbnailPath = 'media/modifier-thumbnails'; const activeCardClass = 'modifier-card-active'; @@ -528,6 +529,8 @@ async function checkTasks() { setTimeout(checkTasks, 500) stopImageBtn.style.display = 'none' makeImageBtn.innerHTML = 'Make Image' + + currentTask = null return } @@ -539,6 +542,7 @@ async function checkTasks() { previewTools.style.display = 'block' let task = taskQueue.pop() + currentTask = task let time = new Date().getTime() @@ -556,6 +560,10 @@ async function checkTasks() { let success = await doMakeImage(task) task.batchesDone++ + if (!task.isProcessing) { + break + } + if (success) { successCount++ } @@ -572,12 +580,16 @@ async function checkTasks() { task.outputMsg.innerText = 'Processed ' + task.numOutputsTotal + ' images in ' + time + ' seconds' // setStatus('request', 'done', 'success') + } else { + task.outputMsg.innerText = 'Task ended after ' + time + ' seconds' } if (randomSeedField.checked) { seedField.value = task.seed } + currentTask = null + setTimeout(checkTasks, 10) } setTimeout(checkTasks, 0) @@ -715,6 +727,7 @@ async function makeImage() { task['stopTask'].addEventListener('click', async function() { if (task['isProcessing']) { + task.isProcessing = false try { let res = await fetch('/image/stop') } catch (e) { @@ -821,6 +834,10 @@ async function stopAllTasks() { }) taskQueue = [] + if (currentTask !== null) { + currentTask.isProcessing = false + } + try { let res = await fetch('/image/stop') } catch (e) {