From 64fc777a2be8ee456c9119d34e1eae75b3bbb175 Mon Sep 17 00:00:00 2001 From: ManInDark <61268856+ManInDark@users.noreply.github.com> Date: Wed, 9 Aug 2023 22:21:36 +0200 Subject: [PATCH 01/10] Added nsfw flag, that way there won't be issues later on if it was to be implemented --- ui/easydiffusion/easydb/mappings.py | 1 + 1 file changed, 1 insertion(+) diff --git a/ui/easydiffusion/easydb/mappings.py b/ui/easydiffusion/easydb/mappings.py index 31549709..035f2ee8 100644 --- a/ui/easydiffusion/easydb/mappings.py +++ b/ui/easydiffusion/easydb/mappings.py @@ -25,6 +25,7 @@ class GalleryImage(Base): prompt = Column(String) negative_prompt = Column(String) time_created = Column(DateTime(timezone=True), server_default=func.now()) + nsfw = Column(String, server_default='unknown') def __repr__(self): return "" % ( From 2bf7116f011868ab8675aa6fa94e215f1b813d77 Mon Sep 17 00:00:00 2001 From: ManInDark <61268856+ManInDark@users.noreply.github.com> Date: Wed, 9 Aug 2023 22:50:03 +0200 Subject: [PATCH 02/10] Added Gallery search for prompt & model --- ui/easydiffusion/bucket_manager.py | 11 +++++++---- ui/index.html | 6 +++++- ui/media/css/main.css | 13 ++++++++++++- ui/media/js/main.js | 13 ++++++++++++- 4 files changed, 36 insertions(+), 7 deletions(-) diff --git a/ui/easydiffusion/bucket_manager.py b/ui/easydiffusion/bucket_manager.py index 0d72ed06..43b5f147 100644 --- a/ui/easydiffusion/bucket_manager.py +++ b/ui/easydiffusion/bucket_manager.py @@ -100,11 +100,14 @@ def init(): raise HTTPException(status_code=404, detail="Image not found") @server_api.get("/all_images") - def get_all_images(db: Session = Depends(get_db)): + def get_all_images(prompt: str = "", model: str = "", db: Session = Depends(get_db)): from easydiffusion.easydb.mappings import GalleryImage - images = db.query(GalleryImage).all() - return images - + images = db.query(GalleryImage) + if prompt != "": + images = images.filter(GalleryImage.path.like("%"+prompt+"%")) + if model != "": + images = images.filter(GalleryImage.use_stable_diffusion_model.like("%"+model+"%")) + return images.all() def get_filename_from_url(url): path = urlparse(url).path diff --git a/ui/index.html b/ui/index.html index d5803fcc..9aeb7ab2 100644 --- a/ui/index.html +++ b/ui/index.html @@ -517,7 +517,11 @@ " + + def settingsJSON(self) -> str: + # some are still missing: prompt strength, lora + json = { + "numOutputsTotal": 1, + "seed": self.seed, + "reqBody": { + "prompt": self.prompt, + "negative_prompt": self.negative_prompt, + "width": self.width, + "height": self.height, + "seed": self.seed, + "num_inference_steps": self.num_inference_steps, + "guidance_scale": self.guidance_scale, + "use_face_correction": self.use_face_correction, + "use_upscale": self.use_upscale, + "sampler_name": self.sampler_name, + "use_stable_diffusion_model": self.use_stable_diffusion_model, + "clip_skip": self.clip_skip, + "tiling": self.tiling, + "use_vae_model": self.use_vae_model, + "use_hypernetwork_model": self.use_hypernetwork_model + }} + from json import dumps + return dumps(json) from easydiffusion.easydb.database import engine diff --git a/ui/media/js/main.js b/ui/media/js/main.js index 11011a20..d54913fa 100644 --- a/ui/media/js/main.js +++ b/ui/media/js/main.js @@ -3094,7 +3094,7 @@ function galleryImage(item) { w.addEventListener("DOMContentLoaded", () => { w.document.getElementsByTagName("body")[0].classList.add(themeField.value) w.document.getElementById("use_these_settings").addEventListener("click", () => { - alert("use these settings") + restoreTaskToUI(JSON.parse(w.document.getElementById("use_these_settings").getAttribute("json"))) }) w.document.getElementById("use_as_input").addEventListener("click", () => { alert("use as input") From 216ecce506994c76c100d4e27fe57e5121c6e8ec Mon Sep 17 00:00:00 2001 From: ManInDark <61268856+ManInDark@users.noreply.github.com> Date: Fri, 11 Aug 2023 21:40:49 +0200 Subject: [PATCH 07/10] The use as Input button confuses me, that's why it is now disabled --- ui/easydiffusion/bucket_manager.py | 2 +- ui/media/css/single-gallery.css | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ui/easydiffusion/bucket_manager.py b/ui/easydiffusion/bucket_manager.py index 925ced27..f14c7bc0 100644 --- a/ui/easydiffusion/bucket_manager.py +++ b/ui/easydiffusion/bucket_manager.py @@ -116,7 +116,7 @@ def init(): try: image: GalleryImage = db.query(GalleryImage).filter(GalleryImage.path == image_path).first() head = "" - body = f"
" + image.htmlForm() + "" + body = f"
" + image.htmlForm() + "" return Response(content="" + head + body + "", media_type="text/html") except Exception as e: print(e) diff --git a/ui/media/css/single-gallery.css b/ui/media/css/single-gallery.css index 24f22e47..2427bf0b 100644 --- a/ui/media/css/single-gallery.css +++ b/ui/media/css/single-gallery.css @@ -35,4 +35,8 @@ button { div { margin: 16px; +} + +:disabled { + color: gray; } \ No newline at end of file From f3367a67732a57c9a91fc24f411fe2ac0afb4d3d Mon Sep 17 00:00:00 2001 From: ManInDark <61268856+ManInDark@users.noreply.github.com> Date: Sat, 12 Aug 2023 16:23:36 +0200 Subject: [PATCH 08/10] Implemented JeLuF's suggestion --- ui/media/js/main.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ui/media/js/main.js b/ui/media/js/main.js index 5beb094d..0628b015 100644 --- a/ui/media/js/main.js +++ b/ui/media/js/main.js @@ -3097,12 +3097,12 @@ function galleryImage(item) { function refreshGallery() { let container = document.getElementById("imagecontainer") - let promptsearchfield = document.getElementById("gallery-prompt-search").value - let promptsearch = promptsearchfield.length > 0 ? "prompt=" + promptsearchfield + "&" : "" - let modelsearchfield = document.getElementById("gallery-model-search").value - let modelsearch = modelsearchfield.length > 0 ? "model=" + modelsearchfield + "&" : "" + params = new URLSearchParams({ + prompt: promptsearchfield, + model: modelsearchfield + }) container.innerHTML="" - fetch('/all_images?' + promptsearch + modelsearch) + fetch('/all_images?' + params) .then(response => response.json()) .then(json => { console.log(json) From ff75adab7f3f5e36fd3775a58eadaef2421a1c55 Mon Sep 17 00:00:00 2001 From: ManInDark <61268856+ManInDark@users.noreply.github.com> Date: Sat, 12 Aug 2023 16:23:36 +0200 Subject: [PATCH 09/10] Implemented JeLuF's suggestion & added pagination basics --- ui/easydiffusion/bucket_manager.py | 3 ++- ui/index.html | 1 + ui/media/js/main.js | 11 ++++++----- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/ui/easydiffusion/bucket_manager.py b/ui/easydiffusion/bucket_manager.py index f14c7bc0..e8d65a48 100644 --- a/ui/easydiffusion/bucket_manager.py +++ b/ui/easydiffusion/bucket_manager.py @@ -100,13 +100,14 @@ def init(): raise HTTPException(status_code=404, detail="Image not found") @server_api.get("/all_images") - def get_all_images(prompt: str = "", model: str = "", db: Session = Depends(get_db)): + def get_all_images(prompt: str = "", model: str = "", page = 0, db: Session = Depends(get_db)): from easydiffusion.easydb.mappings import GalleryImage images = db.query(GalleryImage) if prompt != "": images = images.filter(GalleryImage.path.like("%"+prompt+"%")) if model != "": images = images.filter(GalleryImage.use_stable_diffusion_model.like("%"+model+"%")) + images = images.offset(page*50).limit(50) return images.all() @server_api.get("/single_image") diff --git a/ui/index.html b/ui/index.html index 9aeb7ab2..5676ab5c 100644 --- a/ui/index.html +++ b/ui/index.html @@ -520,6 +520,7 @@