Send the controlnet filter preview request only when the task is about to start

This commit is contained in:
cmdr2 2023-08-21 11:04:13 +05:30
parent 2c2b3b75d5
commit 19fdba7d73
2 changed files with 30 additions and 15 deletions

View File

@ -509,7 +509,11 @@ function showImages(reqBody, res, outputContainer, livePreview) {
{ text: "Upscale", on_click: onUpscaleClick }, { text: "Upscale", on_click: onUpscaleClick },
{ text: "Fix Faces", on_click: onFixFacesClick }, { text: "Fix Faces", on_click: onFixFacesClick },
], ],
{ text: "Use as Thumbnail", on_click: onUseAsThumbnailClick, filter: (req, img) => "use_embeddings_model" in req }, {
text: "Use as Thumbnail",
on_click: onUseAsThumbnailClick,
filter: (req, img) => "use_embeddings_model" in req,
},
] ]
// include the plugins // include the plugins
@ -720,7 +724,7 @@ function onUseAsThumbnailClick(req, img) {
onUseAsThumbnailClick.croppr.setImage(img.src) onUseAsThumbnailClick.croppr.setImage(img.src)
} }
let embeddings = req.use_embeddings_model.map(e => e.split("/").pop()) let embeddings = req.use_embeddings_model.map((e) => e.split("/").pop())
let LORA = [] let LORA = []
if ("use_lora_model" in req) { if ("use_lora_model" in req) {
@ -1080,7 +1084,6 @@ function createTask(task) {
} }
if (task.reqBody.control_image !== undefined && task.reqBody.control_filter_to_apply !== undefined) { if (task.reqBody.control_image !== undefined && task.reqBody.control_filter_to_apply !== undefined) {
let controlImagePreview = taskEntry.querySelector(".controlnet-img-preview > img")
let req = { let req = {
image: task.reqBody.control_image, image: task.reqBody.control_image,
filter: task.reqBody.control_filter_to_apply, filter: task.reqBody.control_filter_to_apply,
@ -1088,15 +1091,8 @@ function createTask(task) {
filter_params: {}, filter_params: {},
} }
req["model_paths"][task.reqBody.control_filter_to_apply] = task.reqBody.control_filter_to_apply req["model_paths"][task.reqBody.control_filter_to_apply] = task.reqBody.control_filter_to_apply
SD.filter(req).then(
(result) => { task["previewTaskReq"] = req
console.log(result)
controlImagePreview.src = result.output[0]
let controlImageLargePreview = taskEntry.querySelector(".controlnet-img-preview .task-fs-initimage img")
controlImageLargePreview.src = controlImagePreview.src
},
(error) => console.log("filter error", error)
)
} }
createCollapsibles(taskEntry) createCollapsibles(taskEntry)
@ -1129,6 +1125,7 @@ function createTask(task) {
startY = e.target.closest(".imageTaskContainer").offsetTop startY = e.target.closest(".imageTaskContainer").offsetTop
}) })
task["taskConfig"] = taskEntry.querySelector(".taskConfig")
task["taskStatusLabel"] = taskEntry.querySelector(".taskStatusLabel") task["taskStatusLabel"] = taskEntry.querySelector(".taskStatusLabel")
task["outputContainer"] = taskEntry.querySelector(".img-preview") task["outputContainer"] = taskEntry.querySelector(".img-preview")
task["outputMsg"] = taskEntry.querySelector(".outputMsg") task["outputMsg"] = taskEntry.querySelector(".outputMsg")
@ -2289,7 +2286,7 @@ document.getElementById("toggle-tensorrt-install").addEventListener("click", fun
/* Embeddings */ /* Embeddings */
addEmbeddingsThumb.addEventListener("click", e => addEmbeddingsThumbInput.click()) addEmbeddingsThumb.addEventListener("click", (e) => addEmbeddingsThumbInput.click())
addEmbeddingsThumbInput.addEventListener("change", loadThumbnailImageFromFile) addEmbeddingsThumbInput.addEventListener("change", loadThumbnailImageFromFile)
function loadThumbnailImageFromFile() { function loadThumbnailImageFromFile() {
@ -2305,7 +2302,9 @@ function loadThumbnailImageFromFile() {
img.src = reader.result img.src = reader.result
onUseAsThumbnailClick( onUseAsThumbnailClick(
{ {
use_embeddings_model: getAllModelNames("embeddings").sort((a, b) => a.localeCompare(b, undefined, { sensitivity: 'base' })) use_embeddings_model: getAllModelNames("embeddings").sort((a, b) =>
a.localeCompare(b, undefined, { sensitivity: "base" })
),
}, },
img img
) )
@ -2316,7 +2315,6 @@ function loadThumbnailImageFromFile() {
} }
} }
function updateEmbeddingsList(filter = "") { function updateEmbeddingsList(filter = "") {
function html(model, iconlist = [], prefix = "", filter = "") { function html(model, iconlist = [], prefix = "", filter = "") {
filter = filter.toLowerCase() filter = filter.toLowerCase()

View File

@ -67,6 +67,23 @@ async function onTaskStart(task) {
task["taskStatusLabel"].innerText = "Starting" task["taskStatusLabel"].innerText = "Starting"
task["taskStatusLabel"].classList.add("waitingTaskLabel") task["taskStatusLabel"].classList.add("waitingTaskLabel")
if (task.previewTaskReq !== undefined) {
let controlImagePreview = task.taskConfig.querySelector(".controlnet-img-preview > img")
try {
let result = await SD.filter(task.previewTaskReq)
controlImagePreview.src = result.output[0]
let controlImageLargePreview = task.taskConfig.querySelector(
".controlnet-img-preview .task-fs-initimage img"
)
controlImageLargePreview.src = controlImagePreview.src
} catch (error) {
console.log("filter error", error)
}
delete task.previewTaskReq
}
let newTaskReqBody = task.reqBody let newTaskReqBody = task.reqBody
if (task.batchCount > 1) { if (task.batchCount > 1) {
// Each output render batch needs it's own task reqBody instance to avoid altering the other runs after they are completed. // Each output render batch needs it's own task reqBody instance to avoid altering the other runs after they are completed.