From 740070ea9cdb254209f66417418f2a4af8b099d6 Mon Sep 17 00:00:00 2001 From: d8ahazard Date: Mon, 26 Sep 2022 09:29:50 -0500 Subject: Re-implement universal model loading --- webui.py | 45 +++++++++++++++++++++------------------------ 1 file changed, 21 insertions(+), 24 deletions(-) (limited to 'webui.py') diff --git a/webui.py b/webui.py index 9ea5f5a3..7e0b3296 100644 --- a/webui.py +++ b/webui.py @@ -1,37 +1,34 @@ import os -import threading - -from modules.paths import script_path - import signal +import threading -from modules.shared import opts, cmd_opts, state -import modules.shared as shared -import modules.ui -import modules.scripts -import modules.sd_hijack -import modules.codeformer_model -import modules.gfpgan_model -import modules.face_restoration -import modules.realesrgan_model as realesrgan +import modules.codeformer_model as codeformer import modules.esrgan_model as esrgan -import modules.ldsr_model as ldsr import modules.extras -import modules.lowvram -import modules.txt2img +import modules.face_restoration +import modules.gfpgan_model as gfpgan import modules.img2img -import modules.swinir as swinir +import modules.ldsr_model as ldsr +import modules.lowvram +import modules.realesrgan_model as realesrgan +import modules.scripts +import modules.sd_hijack import modules.sd_models +import modules.shared as shared +import modules.swinir_model as swinir +import modules.txt2img +import modules.ui +from modules.paths import script_path +from modules.shared import cmd_opts - -modules.codeformer_model.setup_codeformer() -modules.gfpgan_model.setup_gfpgan() +codeformer.setup_model(cmd_opts.codeformer_models_path) +gfpgan.setup_model(cmd_opts.gfpgan_models_path) shared.face_restorers.append(modules.face_restoration.FaceRestoration()) -esrgan.load_models(cmd_opts.esrgan_models_path) -swinir.load_models(cmd_opts.swinir_models_path) -realesrgan.setup_realesrgan() -ldsr.add_lsdr() +esrgan.setup_model(cmd_opts.esrgan_models_path) +swinir.setup_model(cmd_opts.swinir_models_path) +realesrgan.setup_model(cmd_opts.realesrgan_models_path) +ldsr.setup_model(cmd_opts.ldsr_models_path) queue_lock = threading.Lock() -- cgit v1.2.3 From 7d5c29b674bacc5654f8613af134632b7cbdb158 Mon Sep 17 00:00:00 2001 From: d8ahazard Date: Mon, 26 Sep 2022 10:27:18 -0500 Subject: Cleanup existing directories, fixes --- webui.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'webui.py') diff --git a/webui.py b/webui.py index 7e0b3296..e71a217c 100644 --- a/webui.py +++ b/webui.py @@ -18,9 +18,11 @@ import modules.shared as shared import modules.swinir_model as swinir import modules.txt2img import modules.ui +from modules import modelloader from modules.paths import script_path from modules.shared import cmd_opts +modelloader.cleanup_models() codeformer.setup_model(cmd_opts.codeformer_models_path) gfpgan.setup_model(cmd_opts.gfpgan_models_path) shared.face_restorers.append(modules.face_restoration.FaceRestoration()) -- cgit v1.2.3 From 11875f586323cea7c5b8398976449788a83dee76 Mon Sep 17 00:00:00 2001 From: d8ahazard Date: Tue, 27 Sep 2022 11:01:13 -0500 Subject: Use model loader with stable-diffusion too. Hook the model loader into the SD_models file. Add default url/download if checkpoint is not found. Add matching stablediffusion-models-path argument. Add message that --ckpt-dir will be removed in the future, but have it pipe to stablediffusion-models-path for now. Update help strings for models-path args so they're more or less uniform. Move sd_model "setup" call to webUI with the others. Ensure "cleanup_models" method moves existing models to the new locations, including SD, and that we aren't deleting folders that still have stuff in them. --- webui.py | 1 + 1 file changed, 1 insertion(+) (limited to 'webui.py') diff --git a/webui.py b/webui.py index e71a217c..15e49bf6 100644 --- a/webui.py +++ b/webui.py @@ -23,6 +23,7 @@ from modules.paths import script_path from modules.shared import cmd_opts modelloader.cleanup_models() +modules.sd_models.setup_model(cmd_opts.stablediffusion_models_path) codeformer.setup_model(cmd_opts.codeformer_models_path) gfpgan.setup_model(cmd_opts.gfpgan_models_path) shared.face_restorers.append(modules.face_restoration.FaceRestoration()) -- cgit v1.2.3 From 0dce0df1ee63b2f158805c1a1f1a3743cc4a104b Mon Sep 17 00:00:00 2001 From: d8ahazard Date: Thu, 29 Sep 2022 17:46:23 -0500 Subject: Holy $hit. Yep. Fix gfpgan_model_arch requirement(s). Add Upscaler base class, move from images. Add a lot of methods to Upscaler. Re-work all the child upscalers to be proper classes. Add BSRGAN scaler. Add ldsr_model_arch class, removing the dependency for another repo that just uses regular latent-diffusion stuff. Add one universal method that will always find and load new upscaler models without having to add new "setup_model" calls. Still need to add command line params, but that could probably be automated. Add a "self.scale" property to all Upscalers so the scalers themselves can do "things" in response to the requested upscaling size. Ensure LDSR doesn't get stuck in a longer loop of "upscale/downscale/upscale" as we try to reach the target upscale size. Add typehints for IDE sanity. PEP-8 improvements. Moar. --- webui.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'webui.py') diff --git a/webui.py b/webui.py index 76d392a2..be1bc769 100644 --- a/webui.py +++ b/webui.py @@ -1,9 +1,10 @@ import os import signal import threading - +import modules.paths import modules.codeformer_model as codeformer import modules.esrgan_model as esrgan +import modules.bsrgan_model as bsrgan import modules.extras import modules.face_restoration import modules.gfpgan_model as gfpgan @@ -27,11 +28,7 @@ modules.sd_models.setup_model(cmd_opts.stablediffusion_models_path) codeformer.setup_model(cmd_opts.codeformer_models_path) gfpgan.setup_model(cmd_opts.gfpgan_models_path) shared.face_restorers.append(modules.face_restoration.FaceRestoration()) - -esrgan.setup_model(cmd_opts.esrgan_models_path) -swinir.setup_model(cmd_opts.swinir_models_path) -realesrgan.setup_model(cmd_opts.realesrgan_models_path) -ldsr.setup_model(cmd_opts.ldsr_models_path) +modelloader.load_upscalers() queue_lock = threading.Lock() -- cgit v1.2.3