diff --git a/ui/media/main.js b/ui/media/main.js index 6ab58e40..735f9c01 100644 --- a/ui/media/main.js +++ b/ui/media/main.js @@ -335,21 +335,24 @@ function showImages(req, res, outputContainer, livePreview) { + ` - const useAsInputBtn = imageItemElem.querySelector('.imgUseBtn'), - saveImageBtn = imageItemElem.querySelector('.imgSaveBtn'); + const useAsInputBtn = imageItemElem.querySelector('.imgUseBtn') + const saveImageBtn = imageItemElem.querySelector('.imgSaveBtn') + const upscaleImageBtn = imageItemElem.querySelector('.upscaleBtn') useAsInputBtn.addEventListener('click', getUseAsInputHandler(imageItemElem)) saveImageBtn.addEventListener('click', getSaveImageHandler(imageItemElem, req['output_format'])) + upscaleImageBtn.addEventListener('click', getStartUpscaleHandler(req, imageItemElem)) outputContainer.appendChild(imageItemElem) } - const imageElem = imageItemElem.querySelector('img'), - imageSeedLabel = imageItemElem.querySelector('.imgSeedLabel'); + const imageElem = imageItemElem.querySelector('img') + const imageSeedLabel = imageItemElem.querySelector('.imgSeedLabel') imageElem.src = imageData imageElem.width = parseInt(imageWidth) @@ -398,6 +401,29 @@ function getSaveImageHandler(imageItemElem, outputFormat) { imgDownload.click() } } +function getStartUpscaleHandler(reqBody, imageItemElem) { + return function() { + if (serverStatus !== 'online') { + alert('The server is still starting up..') + return + } + const imageElem = imageItemElem.querySelector('img') + const newTaskRequest = getCurrentUserRequest() + newTaskRequest.reqBody = Object.assign({}, reqBody, { + num_outputs: 1, + width: reqBody.width * 2, + height: reqBody.height * 2, + init_image: imageElem.src, + sampler: 'ddim', + prompt_strength: '0.5', + num_inference_steps: Math.min(100, reqBody.num_inference_steps * 2) + }) + newTaskRequest.seed = newTaskRequest.reqBody.seed + newTaskRequest.numOutputsTotal = 1 + newTaskRequest.batchCount = 1 + createTask(newTaskRequest) + } +} // makes a single image. don't call this directly, use makeImage() instead async function doMakeImage(task) {