From ab37dbf98f0b176751ba66a866e23ae5a45594ef Mon Sep 17 00:00:00 2001 From: JeLuF Date: Sun, 30 Jul 2023 12:59:40 +0200 Subject: [PATCH] show images --- ui/media/images/noimg.png | Bin 0 -> 1338 bytes ui/media/js/main.js | 53 ++++++++++++++++++++++++++++---------- 2 files changed, 40 insertions(+), 13 deletions(-) create mode 100644 ui/media/images/noimg.png diff --git a/ui/media/images/noimg.png b/ui/media/images/noimg.png new file mode 100644 index 0000000000000000000000000000000000000000..33d7332fcbf24582eed6cdb2248bd4ee09c5ec80 GIT binary patch literal 1338 zcma)+c~}y57{`BT2AZI=W2I>xROVdz7`k#MN?zzB&$M(3J}MrC+M^Dd2W#Ht+491L z6^5G2N0$1Z>WcB3it9q2~GhpD+ zbZpUmt$`%zbws?^8aJvh7!KOzUQW)huZVb_7TRYOh;3h2iYbl0ikvz6;i7}a!|odK zRS-SMKVsVeFjcFmCl~-O>Q1e#{~xPm?ogvDa=ogyYdg!3PX;I!Rs63E;l2oJ)Wi|{1DRNF+EDDbUurnehGfal z7Ub!ilY_^o(g$++gTd&r8O+m^7X!+*oz6KSAr^u_funIQaweT)jNl>lW)y77n2U4Q z#A3Qn|CswKhPGOQYH4X%&v1Szv9Jq!ipW2;iLE!G7RM+hEusZQYoxuC%*MusNF*}v zFipIy_rQV5BF{$L6D_badV~qSNNP!?X^GS>V1UGupf|Yp^xzDhbV58?J5HpQ0I~b+ z{k)S|T#V)Fj@6muy+C^5ahpq7FFHE*DT%cMNQ((Kx;z>BMTHI!d{>&Is867=xR400 zvIK&_2Bt1cmOeZ@3~a^T4NL9T=qxn0O!ykh4&VNWoY-+rZGrL!QW@Je7HE~9&*5;M z7c}|*az?4-S0x{Rv!*z2{RRJGLqL--VMOIx86%RW{&;-AfDuuFWKX|UZvHBa9rCKVY2*m59(2_=FHhb=;Ch#AdQMPh zB*a67c-w042DP`i+F?@C6!A?d+HGIc{A8_UN%PTOA7o#Df4?e>xj7LUW?o(&ZwRF4 zHnd!A{kUIeF?$teG_6OWm8xn}r!5N)WZV5Nr263_vSo7=)j|4syBdRA^DAVqoKW~O zPaw-kkR5o4#TDEl<^SNHL|lucqrdMKN3@0$5dV(7)23O1^@z0hdktqS}7wc$JkSUSf{Pd|P?ScMV%9PP`ZvOYWeX z3R$M{y^Rw2UNv6G{lz^-@v;Msx^+0FB?;i~^Sy7(eV3kYT^T|?3yooHbA{z%!1~Ca znGb3{j@KljdM1U2y|&u^<0H1Cd-3??=A9#}gV6?{7uu?GB&U5BOgCKG!!E8K>_fWw z->tgp?~!2N-fa2%loo7#^EF+mDGEtS)PBh6Ha-rOcOHH%zjRGEIW5h-+3A9(Z1zL! zd}*#P!bScUL$El%r(T#4Y;_&G-Ex->j~ATjtnK(St|@eE_M*#BWbkMlYIb%u_73rV z$NGyG8OlyBmy1?_Y0}#Ae8HV~&a|qCHie$}3`HC2?(U9iYZRK5)qbSEL-|5AAXWUB zvA5!ApUTtC!T|-lbB^i&ygp}{s~G}-lbSC72Pgpi8-_fV4p)oNFTLMT=06?8y5rpL IVeps#2IeDOrvLx| literal 0 HcmV?d00001 diff --git a/ui/media/js/main.js b/ui/media/js/main.js index 0b936066..4b2b5dfd 100644 --- a/ui/media/js/main.js +++ b/ui/media/js/main.js @@ -508,6 +508,7 @@ function showImages(reqBody, res, outputContainer, livePreview) { { text: "Upscale", on_click: onUpscaleClick, filter: (req, img) => !req.use_upscale }, { text: "Fix Faces", on_click: onFixFacesClick, filter: (req, img) => !req.use_face_correction }, ], + { text: "Use as Thumbnail", on_click: onUseAsThumbnailClick }, ] // include the plugins @@ -632,6 +633,20 @@ function onMakeSimilarClick(req, img) { createTask(newTaskRequest) } +function onUseAsThumbnailClick(req, img) { + console.log(req) + console.log(img) + let embedding = prompt("Embedding name") + fetch(img.src) + .then(response => response.blob()) + .then(async function(blob) { + const formData = new FormData() + formData.append("file", blob) + const response = await fetch(`bucket/embeddings/${embedding}.jpg`, { method: 'POST', body: formData }); + console.log(response) + }) +} + function enqueueImageVariationTask(req, img, reqDiff) { const imageSeed = img.getAttribute("data-seed") @@ -2157,19 +2172,27 @@ document.getElementById("toggle-cloudflare-tunnel").addEventListener("click", as /* Embeddings */ +let icl = [] function updateEmbeddingsList(filter = "") { - function html(model, prefix = "", filter = "") { + function html(model, iconlist = [], prefix = "", filter = "") { filter = filter.toLowerCase() let toplevel = "" let folders = "" + console.log(iconlist) + let embIcon = Object.assign({}, ...iconlist.map( x=> ({[x.toLowerCase().split('.').slice(0,-1).join('.')]:x}))) model?.forEach((m) => { if (typeof m == "string") { - if (m.toLowerCase().search(filter) != -1) { - toplevel += ` ` + let token=m.toLowerCase() + if (token.search(filter) != -1) { + let img = '/media/images/noimg.png' + if (token in embIcon) { + img = `/bucket/embeddings/${embIcon[token]}` + } + toplevel += ` ` } } else { - let subdir = html(m[1], prefix + m[0] + "/", filter) + let subdir = html(m[1], iconlist, prefix + m[0] + "/", filter) if (subdir != "") { folders += `

${prefix}${m[0]}

` + subdir + '
' } @@ -2179,7 +2202,7 @@ function updateEmbeddingsList(filter = "") { } function onButtonClick(e) { - let text = e.target.dataset["embedding"] + let text = e.target.closest("button").dataset["embedding"] const insertIntoNegative = e.shiftKey || positiveEmbeddingText.classList.contains("displayNone") if (embeddingsModeField.value == "insert") { @@ -2214,14 +2237,18 @@ function updateEmbeddingsList(filter = "") { } // END of remove block - embeddingsList.innerHTML = warning + html(modelsOptions.embeddings, "", filter) - embeddingsList.querySelectorAll("button").forEach((b) => { - b.addEventListener("click", onButtonClick) - }) - createCollapsibles(embeddingsList) - if (filter != "") { - embeddingsExpandAll() - } + fetch("/bucket/embeddings/") + .then(response => response.json()) + .then(iconlist => { + embeddingsList.innerHTML = warning + html(modelsOptions.embeddings, iconlist, "", filter) + embeddingsList.querySelectorAll("button").forEach((b) => { + b.addEventListener("click", onButtonClick) + }) + createCollapsibles(embeddingsList) + if (filter != "") { + embeddingsExpandAll() + } + }) } function showEmbeddingDialog() {