mirror of
https://github.com/easydiffusion/easydiffusion.git
synced 2024-11-23 00:33:28 +01:00
Merge pull request #367 from cmdr2/beta
Refactor the time delays into constants and mention the units
This commit is contained in:
commit
3fe2545228
@ -253,11 +253,11 @@
|
|||||||
</body>
|
</body>
|
||||||
|
|
||||||
<script src="media/js/plugins.js?v=1"></script>
|
<script src="media/js/plugins.js?v=1"></script>
|
||||||
<script src="media/js/utils.js?v=2"></script>
|
<script src="media/js/utils.js?v=3"></script>
|
||||||
<script src="media/js/inpainting-editor.js?v=1"></script>
|
<script src="media/js/inpainting-editor.js?v=1"></script>
|
||||||
<script src="media/js/image-modifiers.js"></script>
|
<script src="media/js/image-modifiers.js"></script>
|
||||||
<script src="media/js/auto-save.js?v=1"></script>
|
<script src="media/js/auto-save.js?v=1"></script>
|
||||||
<script src="media/js/main.js?v=2"></script>
|
<script src="media/js/main.js?v=3"></script>
|
||||||
<script src="media/js/themes.js?v=1"></script>
|
<script src="media/js/themes.js?v=1"></script>
|
||||||
<script>
|
<script>
|
||||||
async function init() {
|
async function init() {
|
||||||
|
@ -257,11 +257,6 @@ function logError(msg, res, outputMsg) {
|
|||||||
console.log('request error', res)
|
console.log('request error', res)
|
||||||
setStatus('request', 'error', 'error')
|
setStatus('request', 'error', 'error')
|
||||||
}
|
}
|
||||||
function asyncDelay(timeout) {
|
|
||||||
return new Promise(function(resolve, reject) {
|
|
||||||
setTimeout(resolve, timeout, true)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function playSound() {
|
function playSound() {
|
||||||
const audio = new Audio('/media/ding.mp3')
|
const audio = new Audio('/media/ding.mp3')
|
||||||
@ -493,6 +488,11 @@ async function doMakeImage(task) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const RETRY_DELAY_IF_BUFFER_IS_EMPTY = 1000 // ms
|
||||||
|
const RETRY_DELAY_IF_SERVER_IS_BUSY = 30 * 1000 // ms, status_code 503, already a task running
|
||||||
|
const TASK_START_DELAY_ON_SERVER = 1500 // ms
|
||||||
|
const SERVER_STATE_VALIDITY_DURATION = 10 * 1000 // ms
|
||||||
|
|
||||||
const reqBody = task.reqBody
|
const reqBody = task.reqBody
|
||||||
const batchCount = task.batchCount
|
const batchCount = task.batchCount
|
||||||
const outputContainer = document.createElement('div')
|
const outputContainer = document.createElement('div')
|
||||||
@ -518,11 +518,13 @@ async function doMakeImage(task) {
|
|||||||
})
|
})
|
||||||
renderRequest = await res.json()
|
renderRequest = await res.json()
|
||||||
// status_code 503, already a task running.
|
// status_code 503, already a task running.
|
||||||
} while (renderRequest.status_code === 503 && await asyncDelay(30 * 1000))
|
} while (renderRequest.status_code === 503 && await asyncDelay(RETRY_DELAY_IF_SERVER_IS_BUSY))
|
||||||
|
|
||||||
if (typeof renderRequest?.stream !== 'string') {
|
if (typeof renderRequest?.stream !== 'string') {
|
||||||
console.log('Endpoint response: ', renderRequest)
|
console.log('Endpoint response: ', renderRequest)
|
||||||
throw new Error('Endpoint response does not contains a response stream url.')
|
throw new Error('Endpoint response does not contains a response stream url.')
|
||||||
}
|
}
|
||||||
|
|
||||||
task['taskStatusLabel'].innerText = "Waiting"
|
task['taskStatusLabel'].innerText = "Waiting"
|
||||||
task['taskStatusLabel'].classList.add('waitingTaskLabel')
|
task['taskStatusLabel'].classList.add('waitingTaskLabel')
|
||||||
task['taskStatusLabel'].classList.remove('activeTaskLabel')
|
task['taskStatusLabel'].classList.remove('activeTaskLabel')
|
||||||
@ -532,7 +534,8 @@ async function doMakeImage(task) {
|
|||||||
if (!isServerAvailable()) {
|
if (!isServerAvailable()) {
|
||||||
throw new Error('Connexion with server lost.')
|
throw new Error('Connexion with server lost.')
|
||||||
}
|
}
|
||||||
} while (serverState.time > (Date.now() - (10 * 1000)) && serverState.task !== renderRequest.task)
|
} while (Date.now() < (serverState.time + SERVER_STATE_VALIDITY_DURATION) && serverState.task !== renderRequest.task)
|
||||||
|
|
||||||
if (serverState.session !== 'pending' && serverState.session !== 'running' && serverState.session !== 'buffer') {
|
if (serverState.session !== 'pending' && serverState.session !== 'running' && serverState.session !== 'buffer') {
|
||||||
if (serverState.session === 'stopped') {
|
if (serverState.session === 'stopped') {
|
||||||
return false
|
return false
|
||||||
@ -540,9 +543,10 @@ async function doMakeImage(task) {
|
|||||||
|
|
||||||
throw new Error('Unexpected server task state: ' + serverState.session || 'Undefined')
|
throw new Error('Unexpected server task state: ' + serverState.session || 'Undefined')
|
||||||
}
|
}
|
||||||
|
|
||||||
while (serverState.task === renderRequest.task && serverState.session === 'pending') {
|
while (serverState.task === renderRequest.task && serverState.session === 'pending') {
|
||||||
// Wait for task to start on server.
|
// Wait for task to start on server.
|
||||||
await asyncDelay(1500)
|
await asyncDelay(TASK_START_DELAY_ON_SERVER)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Task started!
|
// Task started!
|
||||||
@ -636,7 +640,7 @@ async function doMakeImage(task) {
|
|||||||
}
|
}
|
||||||
if (readComplete && finalJSON.length <= 0) {
|
if (readComplete && finalJSON.length <= 0) {
|
||||||
if (res.status === 200) {
|
if (res.status === 200) {
|
||||||
await asyncDelay(1000)
|
await asyncDelay(RETRY_DELAY_IF_BUFFER_IS_EMPTY)
|
||||||
res = await fetch(renderRequest.stream, {
|
res = await fetch(renderRequest.stream, {
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/json'
|
'Content-Type': 'application/json'
|
||||||
@ -1201,7 +1205,7 @@ updatePromptStrength()
|
|||||||
useBetaChannelField.addEventListener('click', async function(e) {
|
useBetaChannelField.addEventListener('click', async function(e) {
|
||||||
if (!isServerAvailable()) {
|
if (!isServerAvailable()) {
|
||||||
// logError('The server is still starting up..')
|
// logError('The server is still starting up..')
|
||||||
alert('The server is not available.')
|
alert('The server is still starting up..')
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
@ -273,4 +273,10 @@ function BraceExpander() {
|
|||||||
return evaluated(dctParse);
|
return evaluated(dctParse);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function asyncDelay(timeout) {
|
||||||
|
return new Promise(function(resolve, reject) {
|
||||||
|
setTimeout(resolve, timeout, true)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import json
|
import json
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
TASK_TTL = 15 * 60 # Discard last session's task timeout
|
TASK_TTL = 15 * 60 # seconds, Discard last session's task timeout
|
||||||
|
|
||||||
import queue, threading, time
|
import queue, threading, time
|
||||||
from typing import Any, Generator, Hashable, Optional, Union
|
from typing import Any, Generator, Hashable, Optional, Union
|
||||||
|
Loading…
Reference in New Issue
Block a user