diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/codeformer_model.py | 10 | ||||
-rw-r--r-- | modules/ui.py | 13 |
2 files changed, 17 insertions, 6 deletions
diff --git a/modules/codeformer_model.py b/modules/codeformer_model.py index 836417c2..82b45b15 100644 --- a/modules/codeformer_model.py +++ b/modules/codeformer_model.py @@ -16,6 +16,7 @@ from importlib import reload pretrain_model_url = 'https://github.com/sczhou/CodeFormer/releases/download/v0.1.0/codeformer.pth'
have_codeformer = False
+codeformer = None
def setup_codeformer():
path = modules.paths.paths.get("CodeFormer", None)
@@ -64,7 +65,7 @@ def setup_codeformer(): return net, face_helper
- def restore(self, np_image):
+ def restore(self, np_image, w=None):
np_image = np_image[:, :, ::-1]
net, face_helper = self.create_models()
@@ -80,7 +81,7 @@ def setup_codeformer(): try:
with torch.no_grad():
- output = net(cropped_face_t, w=shared.opts.code_former_weight, adain=True)[0]
+ output = net(cropped_face_t, w=w if w is not None else shared.opts.code_former_weight, adain=True)[0]
restored_face = tensor2img(output, rgb2bgr=True, min_max=(-1, 1))
del output
torch.cuda.empty_cache()
@@ -99,7 +100,10 @@ def setup_codeformer(): global have_codeformer
have_codeformer = True
- shared.face_restorers.append(FaceRestorerCodeFormer())
+
+ global codeformer
+ codeformer = FaceRestorerCodeFormer()
+ shared.face_restorers.append(codeformer)
except Exception:
print("Error setting up CodeFormer:", file=sys.stderr)
diff --git a/modules/ui.py b/modules/ui.py index 05161b00..689debc9 100644 --- a/modules/ui.py +++ b/modules/ui.py @@ -21,9 +21,10 @@ from modules.paths import script_path from modules.shared import opts, cmd_opts
import modules.shared as shared
from modules.sd_samplers import samplers, samplers_for_img2img
-import modules.gfpgan_model as gfpgan
import modules.realesrgan_model as realesrgan
import modules.scripts
+import modules.gfpgan_model
+import modules.codeformer_model
# this is a fix for Windows users. Without it, javascript files will be served with text/html content-type and the bowser will not show any UI
mimetypes.init()
@@ -521,7 +522,11 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo): extras_upscaler_2_visibility = gr.Slider(minimum=0.0, maximum=1.0, step=0.001, label="Upscaler 2 visibility", value=1)
with gr.Group():
- face_restoration_blending = gr.Slider(minimum=0.0, maximum=1.0, step=0.001, label="Faces restoration visibility", value=0, interactive=len(shared.face_restorers) > 1)
+ gfpgan_visibility = gr.Slider(minimum=0.0, maximum=1.0, step=0.001, label="GFPGAN visibility", value=0, interactive=modules.gfpgan_model.have_gfpgan)
+
+ with gr.Group():
+ codeformer_visibility = gr.Slider(minimum=0.0, maximum=1.0, step=0.001, label="CodeFormer visibility", value=0, interactive=modules.codeformer_model.have_codeformer)
+ codeformer_weight = gr.Slider(minimum=0.0, maximum=1.0, step=0.001, label="CodeFormer weight (0=max, 1=none)", value=0, interactive=modules.codeformer_model.have_codeformer)
submit = gr.Button('Generate', elem_id="extras_generate", variant='primary')
@@ -534,7 +539,9 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo): fn=run_extras,
inputs=[
image,
- face_restoration_blending,
+ gfpgan_visibility,
+ codeformer_visibility,
+ codeformer_weight,
upscaling_resize,
extras_upscaler_1,
extras_upscaler_2,
|