forked from extern/easydiffusion
formatting
This commit is contained in:
parent
4930f36a1a
commit
83de2b8de7
@ -696,14 +696,14 @@ function getAllModelNames(type) {
|
|||||||
if (tree == undefined) {
|
if (tree == undefined) {
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
let result=[];
|
let result = []
|
||||||
tree.forEach( e => {
|
tree.forEach((e) => {
|
||||||
if (typeof(e) == "object") {
|
if (typeof e == "object") {
|
||||||
result = result.concat(f(e[1]))
|
result = result.concat(f(e[1]))
|
||||||
} else {
|
} else {
|
||||||
result.push(e)
|
result.push(e)
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
return f(modelsOptions[type])
|
return f(modelsOptions[type])
|
||||||
@ -716,8 +716,13 @@ function onUseAsThumbnailClick(req, img) {
|
|||||||
let resize = false
|
let resize = false
|
||||||
onUseAsThumbnailClick.img = img
|
onUseAsThumbnailClick.img = img
|
||||||
|
|
||||||
if ( typeof(onUseAsThumbnailClick.croppr) == 'undefined' ) {
|
if (typeof onUseAsThumbnailClick.croppr == "undefined") {
|
||||||
onUseAsThumbnailClick.croppr = new Croppr("#use-as-thumb-image", { aspectRatio: 1, minSize: [384,384,'px'], startSize: [512, 512, 'px'], returnMode:"real" })
|
onUseAsThumbnailClick.croppr = new Croppr("#use-as-thumb-image", {
|
||||||
|
aspectRatio: 1,
|
||||||
|
minSize: [384, 384, "px"],
|
||||||
|
startSize: [512, 512, "px"],
|
||||||
|
returnMode: "real",
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (img.naturalWidth > img.naturalHeight) {
|
if (img.naturalWidth > img.naturalHeight) {
|
||||||
@ -736,22 +741,24 @@ function onUseAsThumbnailClick(req, img) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onUseAsThumbnailClick.croppr.options.minSize = {width: 384*scale>>>0, height: 384*scale>>>0}
|
onUseAsThumbnailClick.croppr.options.minSize = { width: (384 * scale) >>> 0, height: (384 * scale) >>> 0 }
|
||||||
onUseAsThumbnailClick.croppr.options.startSize = {width: 512*scale>>>0, height: 512*scale>>>0}
|
onUseAsThumbnailClick.croppr.options.startSize = { width: (512 * scale) >>> 0, height: (512 * scale) >>> 0 }
|
||||||
|
|
||||||
if (resize) {
|
if (resize) {
|
||||||
const canvas = document.createElement('canvas')
|
const canvas = document.createElement("canvas")
|
||||||
canvas.width = targetWidth
|
canvas.width = targetWidth
|
||||||
canvas.height = targetHeight
|
canvas.height = targetHeight
|
||||||
const ctx = canvas.getContext('2d')
|
const ctx = canvas.getContext("2d")
|
||||||
ctx.drawImage(img, 0, 0, targetWidth, targetHeight)
|
ctx.drawImage(img, 0, 0, targetWidth, targetHeight)
|
||||||
|
|
||||||
onUseAsThumbnailClick.croppr.setImage(canvas.toDataURL('image/png'))
|
onUseAsThumbnailClick.croppr.setImage(canvas.toDataURL("image/png"))
|
||||||
} else {
|
} else {
|
||||||
onUseAsThumbnailClick.croppr.setImage(img.src)
|
onUseAsThumbnailClick.croppr.setImage(img.src)
|
||||||
}
|
}
|
||||||
|
|
||||||
let embeddings = getAllModelNames("embeddings").filter( e => req.prompt.includes(e) || req.negative_prompt.includes(e) )
|
let embeddings = getAllModelNames("embeddings").filter(
|
||||||
|
(e) => req.prompt.includes(e) || req.negative_prompt.includes(e)
|
||||||
|
)
|
||||||
let LORA = []
|
let LORA = []
|
||||||
|
|
||||||
if ("use_lora_model" in req) {
|
if ("use_lora_model" in req) {
|
||||||
@ -760,12 +767,14 @@ function onUseAsThumbnailClick(req, img) {
|
|||||||
|
|
||||||
let optgroup = document.createElement("optgroup")
|
let optgroup = document.createElement("optgroup")
|
||||||
optgroup.label = "Embeddings"
|
optgroup.label = "Embeddings"
|
||||||
optgroup.replaceChildren(...embeddings.map(e => {
|
optgroup.replaceChildren(
|
||||||
|
...embeddings.map((e) => {
|
||||||
let option = document.createElement("option")
|
let option = document.createElement("option")
|
||||||
option.innerText = e
|
option.innerText = e
|
||||||
option.dataset["type"] = "embeddings"
|
option.dataset["type"] = "embeddings"
|
||||||
return option
|
return option
|
||||||
}))
|
})
|
||||||
|
)
|
||||||
|
|
||||||
useAsThumbSelect.replaceChildren(optgroup)
|
useAsThumbSelect.replaceChildren(optgroup)
|
||||||
useAsThumbDialog.showModal()
|
useAsThumbDialog.showModal()
|
||||||
@ -791,21 +800,27 @@ useAsThumbSaveBtn.addEventListener("click", (e) => {
|
|||||||
let profileName = profileNameField.value
|
let profileName = profileNameField.value
|
||||||
|
|
||||||
cropImageDataUrl(onUseAsThumbnailClick.img.src, crop.x * scale, crop.y * scale, len, len)
|
cropImageDataUrl(onUseAsThumbnailClick.img.src, crop.x * scale, crop.y * scale, len, len)
|
||||||
.then(thumb => fetch(thumb))
|
.then((thumb) => fetch(thumb))
|
||||||
.then(response => response.blob())
|
.then((response) => response.blob())
|
||||||
.then(async function(blob) {
|
.then(async function(blob) {
|
||||||
const formData = new FormData()
|
const formData = new FormData()
|
||||||
formData.append("file", blob)
|
formData.append("file", blob)
|
||||||
let options = useAsThumbSelect.selectedOptions
|
let options = useAsThumbSelect.selectedOptions
|
||||||
let promises = []
|
let promises = []
|
||||||
for (let embedding of options) {
|
for (let embedding of options) {
|
||||||
promises.push(fetch(`bucket/${profileName}/${embedding.dataset["type"]}/${embedding.value}.png`, { method: 'POST', body: formData }))
|
promises.push(
|
||||||
|
fetch(`bucket/${profileName}/${embedding.dataset["type"]}/${embedding.value}.png`, {
|
||||||
|
method: "POST",
|
||||||
|
body: formData,
|
||||||
|
})
|
||||||
|
)
|
||||||
}
|
}
|
||||||
return Promise.all(promises)
|
return Promise.all(promises)
|
||||||
}).then(() => {
|
})
|
||||||
|
.then(() => {
|
||||||
useAsThumbDialog.close()
|
useAsThumbDialog.close()
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch((error) => {
|
||||||
console.error(error)
|
console.error(error)
|
||||||
showToast("Couldn't save thumbnail.<br>" + error)
|
showToast("Couldn't save thumbnail.<br>" + error)
|
||||||
})
|
})
|
||||||
@ -1346,7 +1361,7 @@ async function onTaskStart(task) {
|
|||||||
|
|
||||||
/* Hover effect for the init image in the task list */
|
/* Hover effect for the init image in the task list */
|
||||||
function createInitImageHover(taskEntry) {
|
function createInitImageHover(taskEntry) {
|
||||||
taskEntry.querySelectorAll(".task-initimg").forEach( thumb => {
|
taskEntry.querySelectorAll(".task-initimg").forEach((thumb) => {
|
||||||
let thumbimg = thumb.querySelector("img")
|
let thumbimg = thumb.querySelector("img")
|
||||||
let img = createElement("img", { src: thumbimg.src })
|
let img = createElement("img", { src: thumbimg.src })
|
||||||
thumb.querySelector(".task-fs-initimage").appendChild(img)
|
thumb.querySelector(".task-fs-initimage").appendChild(img)
|
||||||
@ -1355,11 +1370,11 @@ function createInitImageHover(taskEntry) {
|
|||||||
<button class="useAsInputBtn">Use as Input</button>
|
<button class="useAsInputBtn">Use as Input</button>
|
||||||
<br>
|
<br>
|
||||||
<button class="useForControlnetBtn">Use for Controlnet</button>`
|
<button class="useForControlnetBtn">Use for Controlnet</button>`
|
||||||
div.querySelector(".useAsInputBtn").addEventListener("click", e => {
|
div.querySelector(".useAsInputBtn").addEventListener("click", (e) => {
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
onUseAsInputClick(null, img)
|
onUseAsInputClick(null, img)
|
||||||
})
|
})
|
||||||
div.querySelector(".useForControlnetBtn").addEventListener("click", e => {
|
div.querySelector(".useForControlnetBtn").addEventListener("click", (e) => {
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
controlImagePreview.src = img.src
|
controlImagePreview.src = img.src
|
||||||
})
|
})
|
||||||
@ -2709,7 +2724,16 @@ function updateEmbeddingsList(filter = "") {
|
|||||||
filter = filter.toLowerCase()
|
filter = filter.toLowerCase()
|
||||||
let toplevel = document.createElement("div")
|
let toplevel = document.createElement("div")
|
||||||
let folders = document.createElement("div")
|
let folders = document.createElement("div")
|
||||||
let embIcon = Object.assign({}, ...iconlist.map( x=> ({[x.toLowerCase().split('.').slice(0,-1).join('.')]:x})))
|
let embIcon = Object.assign(
|
||||||
|
{},
|
||||||
|
...iconlist.map((x) => ({
|
||||||
|
[x
|
||||||
|
.toLowerCase()
|
||||||
|
.split(".")
|
||||||
|
.slice(0, -1)
|
||||||
|
.join(".")]: x,
|
||||||
|
}))
|
||||||
|
)
|
||||||
|
|
||||||
let profileName = profileNameField.value
|
let profileName = profileNameField.value
|
||||||
model?.forEach((m) => {
|
model?.forEach((m) => {
|
||||||
@ -2721,7 +2745,7 @@ function updateEmbeddingsList(filter = "") {
|
|||||||
// button = document.createElement("button")
|
// button = document.createElement("button")
|
||||||
// button.innerText = m
|
// button.innerText = m
|
||||||
// } else {
|
// } else {
|
||||||
let img = '/media/images/noimg.png'
|
let img = "/media/images/noimg.png"
|
||||||
if (token in embIcon) {
|
if (token in embIcon) {
|
||||||
img = `/bucket/${profileName}/embeddings/${embIcon[token]}`
|
img = `/bucket/${profileName}/embeddings/${embIcon[token]}`
|
||||||
}
|
}
|
||||||
@ -2733,7 +2757,7 @@ function updateEmbeddingsList(filter = "") {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
let subdir = html(m[1], iconlist, prefix + m[0] + "/", filter)
|
let subdir = html(m[1], iconlist, prefix + m[0] + "/", filter)
|
||||||
if (typeof(subdir) == "object") {
|
if (typeof subdir == "object") {
|
||||||
let div1 = document.createElement("div")
|
let div1 = document.createElement("div")
|
||||||
let div2 = document.createElement("div")
|
let div2 = document.createElement("div")
|
||||||
div1.classList.add("collapsible-content")
|
div1.classList.add("collapsible-content")
|
||||||
@ -2793,7 +2817,7 @@ function updateEmbeddingsList(filter = "") {
|
|||||||
|
|
||||||
let profileName = profileNameField.value
|
let profileName = profileNameField.value
|
||||||
fetch(`/bucket/${profileName}/embeddings/`)
|
fetch(`/bucket/${profileName}/embeddings/`)
|
||||||
.then(response => response.status==200 ? response.json(): [])
|
.then((response) => (response.status == 200 ? response.json() : []))
|
||||||
.then(async function(iconlist) {
|
.then(async function(iconlist) {
|
||||||
embeddingsList.replaceChildren(html(modelsOptions.embeddings, iconlist, "", filter))
|
embeddingsList.replaceChildren(html(modelsOptions.embeddings, iconlist, "", filter))
|
||||||
createCollapsibles(embeddingsList)
|
createCollapsibles(embeddingsList)
|
||||||
@ -2834,8 +2858,6 @@ embeddingsCardSizeSelector.addEventListener("change", (e) => {
|
|||||||
resizeModifierCards(embeddingsCardSizeSelector.value)
|
resizeModifierCards(embeddingsCardSizeSelector.value)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
modalDialogCloseOnBackdropClick(embeddingsDialog)
|
modalDialogCloseOnBackdropClick(embeddingsDialog)
|
||||||
makeDialogDraggable(embeddingsDialog)
|
makeDialogDraggable(embeddingsDialog)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user