diff options
author | AUTOMATIC1111 <16777216c@gmail.com> | 2022-11-27 10:48:25 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-27 10:48:25 +0000 |
commit | 151e2cc627b262fc23e392d2450be2364edf4714 (patch) | |
tree | 1fb00fdb640c6cb201375e60a16af3c5d61ca3f2 | |
parent | cc90dcc93334356931e799f162a41ae99cc84716 (diff) | |
parent | f4a488f585c09b420dc05199240e68f8fb74337f (diff) | |
download | stable-diffusion-webui-gfx803-151e2cc627b262fc23e392d2450be2364edf4714.tar.gz stable-diffusion-webui-gfx803-151e2cc627b262fc23e392d2450be2364edf4714.tar.bz2 stable-diffusion-webui-gfx803-151e2cc627b262fc23e392d2450be2364edf4714.zip |
Merge pull request #4461 from brkirch/face-restoration-device-fix
Fix setting device for GFPGAN and CodeFormer
-rw-r--r-- | modules/codeformer_model.py | 3 | ||||
-rw-r--r-- | modules/gfpgan_model.py | 4 |
2 files changed, 6 insertions, 1 deletions
diff --git a/modules/codeformer_model.py b/modules/codeformer_model.py index e6d9fa4f..ab40d842 100644 --- a/modules/codeformer_model.py +++ b/modules/codeformer_model.py @@ -36,6 +36,7 @@ def setup_model(dirname): from basicsr.utils.download_util import load_file_from_url
from basicsr.utils import imwrite, img2tensor, tensor2img
from facelib.utils.face_restoration_helper import FaceRestoreHelper
+ from facelib.detection.retinaface import retinaface
from modules.shared import cmd_opts
net_class = CodeFormer
@@ -65,6 +66,8 @@ def setup_model(dirname): net.load_state_dict(checkpoint)
net.eval()
+ if hasattr(retinaface, 'device'):
+ retinaface.device = devices.device_codeformer
face_helper = FaceRestoreHelper(1, face_size=512, crop_ratio=(1, 1), det_model='retinaface_resnet50', save_ext='png', use_parse=True, device=devices.device_codeformer)
self.net = net
diff --git a/modules/gfpgan_model.py b/modules/gfpgan_model.py index a9452dce..1e2dbc32 100644 --- a/modules/gfpgan_model.py +++ b/modules/gfpgan_model.py @@ -36,7 +36,9 @@ def gfpgann(): else:
print("Unable to load gfpgan model!")
return None
- model = gfpgan_constructor(model_path=model_file, upscale=1, arch='clean', channel_multiplier=2, bg_upsampler=None)
+ if hasattr(facexlib.detection.retinaface, 'device'):
+ facexlib.detection.retinaface.device = devices.device_gfpgan
+ model = gfpgan_constructor(model_path=model_file, upscale=1, arch='clean', channel_multiplier=2, bg_upsampler=None, device=devices.device_gfpgan)
loaded_gfpgan_model = model
return model
|