From 5cc97cf2bff2ac2f5caa93c487c35e85ff7f5e53 Mon Sep 17 00:00:00 2001 From: ltdrdata Date: Wed, 26 Apr 2023 20:36:58 +0900 Subject: [PATCH] various bug fixes * paste action - prevent opening upload popup - ensure rendering after widget_value update * view api update - support annotated_filepath * maskeditor layout - prevent covering button by hidden div --- server.py | 11 ++++++++--- web/extensions/core/maskeditor.js | 2 +- web/scripts/app.js | 20 ++++++++++---------- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/server.py b/server.py index f3caa2a9f..86253e88b 100644 --- a/server.py +++ b/server.py @@ -196,8 +196,13 @@ class PromptServer(): @routes.get("/view") async def view_image(request): if "filename" in request.rel_url.query: - type = request.rel_url.query.get("type", "output") - output_dir = folder_paths.get_directory_by_type(type) + filename = request.rel_url.query["filename"] + filename,output_dir = folder_paths.annotated_filepath(filename) + + if output_dir is None: + type = request.rel_url.query.get("type", "output") + output_dir = folder_paths.get_directory_by_type(type) + if output_dir is None: return web.Response(status=400) @@ -207,9 +212,9 @@ class PromptServer(): return web.Response(status=403) output_dir = full_output_dir - filename = request.rel_url.query["filename"] filename = os.path.basename(filename) file = os.path.join(output_dir, filename) + print(f"{filename} / {file} / {os.path.isfile(file)}") if os.path.isfile(file): return web.FileResponse(file, headers={"Content-Disposition": f"filename=\"{filename}\""}) diff --git a/web/extensions/core/maskeditor.js b/web/extensions/core/maskeditor.js index b10c871b7..1fc80146b 100644 --- a/web/extensions/core/maskeditor.js +++ b/web/extensions/core/maskeditor.js @@ -172,8 +172,8 @@ class MaskEditorDialog extends ComfyDialog { this.element.appendChild(imgCanvas); this.element.appendChild(maskCanvas); + this.element.appendChild(placeholder); // must below z-index than bottom_panel to avoid covering button this.element.appendChild(bottom_panel); - this.element.appendChild(placeholder); bottom_panel.appendChild(clearButton); bottom_panel.appendChild(saveButton); diff --git a/web/scripts/app.js b/web/scripts/app.js index a161bf40e..18057d68d 100644 --- a/web/scripts/app.js +++ b/web/scripts/app.js @@ -168,15 +168,6 @@ export class ComfyApp { content: "Paste (Clipspace)", callback: () => { if(ComfyApp.clipspace != null) { - if(ComfyApp.clipspace.widgets != null && this.widgets != null) { - ComfyApp.clipspace.widgets.forEach(({ type, name, value }) => { - const prop = Object.values(this.widgets).find(obj => obj.type === type && obj.name === name); - if (prop) { - prop.callback(value); - } - }); - } - // image paste if(ComfyApp.clipspace.imgs != undefined && this.imgs != undefined && this.widgets != null) { var filename = ""; @@ -207,7 +198,16 @@ export class ComfyApp { } } } - this.trigger('changed'); + + // ensure render after update widget_value + if(ComfyApp.clipspace.widgets != null && this.widgets != null) { + ComfyApp.clipspace.widgets.forEach(({ type, name, value }) => { + const prop = Object.values(this.widgets).find(obj => obj.type === type && obj.name === name); + if (prop && prop.type != 'button') { + prop.callback(value); + } + }); + } } } }