(reqBody, res, outputContainer, livePreview)
| 403 | }) |
| 404 | |
| 405 | function showImages(reqBody, res, outputContainer, livePreview) { |
| 406 | let imageItemElements = outputContainer.querySelectorAll(".imgItem") |
| 407 | if (typeof res != "object") return |
| 408 | res.output.reverse() |
| 409 | res.output.forEach((result, index) => { |
| 410 | const imageData = result?.data || result?.path + "?t=" + Date.now(), |
| 411 | imageSeed = result?.seed, |
| 412 | imagePrompt = reqBody.prompt, |
| 413 | imageInferenceSteps = reqBody.num_inference_steps, |
| 414 | imageGuidanceScale = reqBody.guidance_scale, |
| 415 | imageWidth = reqBody.width, |
| 416 | imageHeight = reqBody.height |
| 417 | |
| 418 | if (!imageData.includes("/")) { |
| 419 | // res contained no data for the image, stop execution |
| 420 | setStatus("request", "invalid image", "error") |
| 421 | return |
| 422 | } |
| 423 | |
| 424 | let imageItemElem = index < imageItemElements.length ? imageItemElements[index] : null |
| 425 | if (!imageItemElem) { |
| 426 | imageItemElem = document.createElement("div") |
| 427 | imageItemElem.className = "imgItem" |
| 428 | imageItemElem.innerHTML = ` |
| 429 | <div class="imgContainer"> |
| 430 | <img/> |
| 431 | <div class="imgItemInfo"> |
| 432 | <div> |
| 433 | <span class="imgInfoLabel imgExpandBtn"><i class="fa-solid fa-expand"></i></span><span class="imgInfoLabel imgSeedLabel"></span> |
| 434 | </div> |
| 435 | </div> |
| 436 | <button class="imgPreviewItemClearBtn image_clear_btn"><i class="fa-solid fa-xmark"></i></button> |
| 437 | <span class="img_bottom_label"></span> |
| 438 | <div class="spinner displayNone"><center>${spinnerPacmanHtml}</center><div class="spinnerStatus"></div></div> |
| 439 | </div> |
| 440 | ` |
| 441 | outputContainer.appendChild(imageItemElem) |
| 442 | const imageRemoveBtn = imageItemElem.querySelector(".imgPreviewItemClearBtn") |
| 443 | let parentTaskContainer = imageRemoveBtn.closest(".imageTaskContainer") |
| 444 | imageRemoveBtn.addEventListener("click", (e) => { |
| 445 | undoableRemove(imageItemElem) |
| 446 | let allHidden = true |
| 447 | let children = parentTaskContainer.querySelectorAll(".imgItem") |
| 448 | for (let x = 0; x < children.length; x++) { |
| 449 | let child = children[x] |
| 450 | if (child.style.display != "none") { |
| 451 | allHidden = false |
| 452 | } |
| 453 | } |
| 454 | if (allHidden === true) { |
| 455 | const req = htmlTaskMap.get(parentTaskContainer) |
| 456 | if (!req.isProcessing || req.batchesDone == req.batchCount) { |
| 457 | undoableRemove(parentTaskContainer, true) |
| 458 | } |
| 459 | } |
| 460 | }) |
| 461 | } |
| 462 | const imageElem = imageItemElem.querySelector("img") |
no test coverage detected