aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAUTOMATIC1111 <16777216c@gmail.com>2024-01-07 05:23:08 +0000
committerGitHub <noreply@github.com>2024-01-07 05:23:08 +0000
commit30aa5e0a7ca7f2de61940b97aa642ae4f6d7d17f (patch)
tree39f2e1e3f7a53886538794ac712ae0f4ddd07069
parentcab1d839b5bf04949f22226aa712b3c9370059a4 (diff)
parentec9acb31450536a9258192351d6a26421efd7eb4 (diff)
downloadstable-diffusion-webui-gfx803-30aa5e0a7ca7f2de61940b97aa642ae4f6d7d17f.tar.gz
stable-diffusion-webui-gfx803-30aa5e0a7ca7f2de61940b97aa642ae4f6d7d17f.tar.bz2
stable-diffusion-webui-gfx803-30aa5e0a7ca7f2de61940b97aa642ae4f6d7d17f.zip
Merge pull request #14560 from Nuullll/condfunc-warning
Handle CondFunc exception when resolving attributes
-rw-r--r--modules/sd_hijack_utils.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/modules/sd_hijack_utils.py b/modules/sd_hijack_utils.py
index f8684475..79bf6e46 100644
--- a/modules/sd_hijack_utils.py
+++ b/modules/sd_hijack_utils.py
@@ -11,10 +11,14 @@ class CondFunc:
break
except ImportError:
pass
- for attr_name in func_path[i:-1]:
- resolved_obj = getattr(resolved_obj, attr_name)
- orig_func = getattr(resolved_obj, func_path[-1])
- setattr(resolved_obj, func_path[-1], lambda *args, **kwargs: self(*args, **kwargs))
+ try:
+ for attr_name in func_path[i:-1]:
+ resolved_obj = getattr(resolved_obj, attr_name)
+ orig_func = getattr(resolved_obj, func_path[-1])
+ setattr(resolved_obj, func_path[-1], lambda *args, **kwargs: self(*args, **kwargs))
+ except AttributeError:
+ print(f"Warning: Failed to resolve {orig_func} for CondFunc hijack")
+ pass
self.__init__(orig_func, sub_func, cond_func)
return lambda *args, **kwargs: self(*args, **kwargs)
def __init__(self, orig_func, sub_func, cond_func):