glucauze / sd-webui-faceswaplab

Extended faceswap extension for StableDiffusion web-ui with multiple faceswaps, inpainting, checkpoints, ....
https://glucauze.github.io/sd-webui-faceswaplab/
GNU Affero General Public License v3.0
741 stars 99 forks source link

A1111 Directml AMD GPU - upscale in FSL stopped working after the git pull/update of the extensions #198

Open Voidbord opened 1 week ago

Voidbord commented 1 week ago

Hey, so yesterday I git pulled the A1111 Directml build together with updating extensions. Since then, FaceSwap Lab face upscale is not working with any of the upscale. I tried to git clone the A1111 repo, build venv from a scratch and get FaceSwap Lab repo as the one and only extension. It didn't help and the faceswap lab generates the following problem when using an upscale:

2024-09-04 21:54:20,554 - FaceSwapLab - INFO - Try to use model : C:\Users\mbord_\Documents\stable-diffusion-webui-directml\models\faceswaplab\inswapper_128.onnx 2024-09-04 21:54:20,872 - FaceSwapLab - INFO - blend all faces together 2024-09-04 21:54:20,872 - FaceSwapLab - INFO - loading face DEFAN_FULL.safetensors 2024-09-04 21:54:20,874 - FaceSwapLab - INFO - Int Gender : 0 2024-09-04 21:54:20,874 - FaceSwapLab - INFO - Process face 0 2024-09-04 21:54:20,884 - FaceSwapLab - INFO - Source Gender 0 2024-09-04 21:54:20,885 - FaceSwapLab - INFO - Target faces count : 1 2024-09-04 21:54:20,885 - FaceSwapLab - INFO - swap face 0 2024-09-04 21:54:21,681 - FaceSwapLab - INFO - **** 2024-09-04 21:54:21,681 - FaceSwapLab - INFO - Inswapper 2024-09-04 21:54:21,683 - FaceSwapLab - INFO - Upscale with ESRGAN4x scale = 4 tiled upscale: 0%| | 0/1 [00:00<?, ?it/s] Traceback (most recent call last): File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\extensions\sd-webui-faceswaplab\scripts\faceswaplab_swapping\upscaled_inswapper.py", line 215, in get bgr_fake = self.upscale_andrestore( File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\extensions\sd-webui-faceswaplab\scripts\faceswaplab_swapping\upscaled_inswapper.py", line 153, in upscale_and_restore upscaled = upscaling.upscale_img(pil_img, ppoptions) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\extensions\sd-webui-faceswaplab\scripts\faceswaplab_postprocessing\upscaling.py", line 19, in upscale_img result_image = ppoptions.upscaler.scaler.upscale( File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\modules\upscaler.py", line 68, in upscale img = self.do_upscale(img, selectedmodel) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\modules\esrgan_model.py", line 36, in do_upscale return esrganupscale(model, img) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\modules\esrgan_model.py", line 57, in esrgan_upscale return upscale_withmodel( File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\modules\upscaler_utils.py", line 74, in upscale_with_model output = upscale_pilpatch(model, tile) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\modules\upscaler_utils.py", line 48, in upscale_pil_patch return torch_bgr_to_pilimage(model(tensor)) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\torch\utils_contextlib.py", line 115, in decoratecontext return func(*args, **kwargs) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\spandrel__helpers\model_descriptor.py", line 472, in call output = self._callfn(self.model, image) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\spandrel__helpers\model_descriptor.py", line 439, in self._call_fn = callfn or (lambda model, image: model(image)) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\torch\nn\modules\module.py", line 1532, in _wrapped_call_impl return self._callimpl(*args, **kwargs) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\torch\nn\modules\module.py", line 1541, in _call_impl return forwardcall(*args, **kwargs) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\spandrel\architectures\ESRGAN\arch\RRDB.py", line 142, in forward return self.model(x) File "C:\Users\mbord_\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\torch\nn\modules\module.py", line 1532, in _wrapped_call_impl return self._callimpl(*args, **kwargs) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\torch\nn\modules\module.py", line 1541, in _call_impl return forwardcall(*args, **kwargs) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\torch\nn\modules\container.py", line 217, in forward input = module(input) File "C:\Users\mbord_\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\torch\nn\modules\module.py", line 1532, in _wrapped_call_impl return self._callimpl(*args, **kwargs) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\torch\nn\modules\module.py", line 1541, in _call_impl return forwardcall(*args, **kwargs) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\extensions-builtin\Lora\networks.py", line 599, in network_Conv2d_forward return originals.Conv2dforward(self, input) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\torch\nn\modules\conv.py", line 460, in forward return self._convforward(input, self.weight, self.bias) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\torch\nn\modules\conv.py", line 456, in _convforward return F.conv2d(input, weight, bias, self.stride, File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\modules\dml\amp\autocast_mode.py", line 43, in setattr(resolved_obj, funcpath[-1], lambda *args, **kwargs: forward(op, args, kwargs)) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\modules\dml\amp\autocast_mode.py", line 15, in forward return op(*args, kwargs) RuntimeError: Cannot set version_counter for inference tensor 2024-09-04 21:54:21,948 - FaceSwapLab - ERROR - Conversion failed Cannot set version_counter for inference tensor 2024-09-04 21:54:21,948 - FaceSwapLab - ERROR - Failed to swap face in postprocess method : Cannot set versioncounter for inference tensor Traceback (most recent call last): File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\extensions\sd-webui-faceswaplab\scripts\faceswaplab.py", line 187, in postprocess swapped_images = swapper.process_imagesunits( File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\extensions\sd-webui-faceswaplab\scripts\faceswaplab_swapping\swapper.py", line 841, in process_images_units swapped = process_image_unit(model, units[0], image, info, forceblend) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\extensions\sd-webui-faceswaplab\scripts\faceswaplab_swapping\swapper.py", line 752, in process_image_unit result: ImageResult = swapface( File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\extensions\sd-webui-faceswaplab\scripts\faceswaplab_swapping\swapper.py", line 658, in swapface raise e File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\extensions\sd-webui-faceswaplab\scripts\faceswaplab_swapping\swapper.py", line 646, in swap_face result = faceswapper.get( File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\extensions\sd-webui-faceswaplab\scripts\faceswaplab_swapping\upscaledinswapper.py", line 328, in get raise e File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\extensions\sd-webui-faceswaplab\scripts\faceswaplab_swapping\upscaled_inswapper.py", line 215, in get bgr_fake = self.upscale_andrestore( File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\extensions\sd-webui-faceswaplab\scripts\faceswaplab_swapping\upscaled_inswapper.py", line 153, in upscale_and_restore upscaled = upscaling.upscale_img(pil_img, ppoptions) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\extensions\sd-webui-faceswaplab\scripts\faceswaplab_postprocessing\upscaling.py", line 19, in upscale_img result_image = ppoptions.upscaler.scaler.upscale( File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\modules\upscaler.py", line 68, in upscale img = self.do_upscale(img, selectedmodel) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\modules\esrgan_model.py", line 36, in do_upscale return esrganupscale(model, img) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\modules\esrgan_model.py", line 57, in esrgan_upscale return upscale_withmodel( File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\modules\upscaler_utils.py", line 74, in upscale_with_model output = upscale_pilpatch(model, tile) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\modules\upscaler_utils.py", line 48, in upscale_pil_patch return torch_bgr_to_pilimage(model(tensor)) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\torch\utils_contextlib.py", line 115, in decoratecontext return func(*args, **kwargs) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\spandrel__helpers\model_descriptor.py", line 472, in call output = self._callfn(self.model, image) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\spandrel__helpers\model_descriptor.py", line 439, in self._call_fn = callfn or (lambda model, image: model(image)) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\torch\nn\modules\module.py", line 1532, in _wrapped_call_impl return self._call_impl(*args, kwargs) File "C:\Users\mbord_\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\torch\nn\modules\module.py", line 1541, in _call_impl return forwardcall(*args, **kwargs) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\spandrel\architectures\ESRGAN\arch\RRDB.py", line 142, in forward return self.model(x) File "C:\Users\mbord_\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\torch\nn\modules\module.py", line 1532, in _wrapped_call_impl return self._callimpl(*args, **kwargs) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\torch\nn\modules\module.py", line 1541, in _call_impl return forwardcall(*args, **kwargs) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\torch\nn\modules\container.py", line 217, in forward input = module(input) File "C:\Users\mbord_\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\torch\nn\modules\module.py", line 1532, in _wrapped_call_impl return self._callimpl(*args, **kwargs) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\torch\nn\modules\module.py", line 1541, in _call_impl return forwardcall(*args, **kwargs) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\extensions-builtin\Lora\networks.py", line 599, in network_Conv2d_forward return originals.Conv2dforward(self, input) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\torch\nn\modules\conv.py", line 460, in forward return self._convforward(input, self.weight, self.bias) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\venv\lib\site-packages\torch\nn\modules\conv.py", line 456, in _convforward return F.conv2d(input, weight, bias, self.stride, File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\modules\dml\amp\autocast_mode.py", line 43, in setattr(resolved_obj, funcpath[-1], lambda *args, **kwargs: forward(op, args, kwargs)) File "C:\Users\mbord\Documents\stable-diffusion-webui-directml\modules\dml\amp\autocast_mode.py", line 15, in forward return op(*args, **kwargs) RuntimeError: Cannot set version_counter for inference tensor

To Reproduce Venv built from scratch, clean install of A1111 and FaceSwap Lab.

Expected behavior In inpaint tab of img2img, I usually set the attached options and it ran smoothly, producing swapped face. Now it's not possible to get an upscaled face. SRC Zrzut ekranu 2024-09-04 220457

Desktop (please complete the following information):

Voidbord commented 1 week ago

Ok, I think it's a problem of Directml - there has been an update recently.