diff options
author | Nuullll <vfirst218@gmail.com> | 2024-01-06 09:17:53 +0000 |
---|---|---|
committer | Nuullll <vfirst218@gmail.com> | 2024-01-06 09:18:38 +0000 |
commit | ec9acb31450536a9258192351d6a26421efd7eb4 (patch) | |
tree | a7d0704ba1c2131740bc9c6af47cf3c31c3d7063 | |
parent | 8b6848c6dbee95f055b98b33804b12bd188ac625 (diff) | |
download | stable-diffusion-webui-gfx803-ec9acb31450536a9258192351d6a26421efd7eb4.tar.gz stable-diffusion-webui-gfx803-ec9acb31450536a9258192351d6a26421efd7eb4.tar.bz2 stable-diffusion-webui-gfx803-ec9acb31450536a9258192351d6a26421efd7eb4.zip |
Handle CondFunc exception when resolving attributes
-rw-r--r-- | modules/sd_hijack_utils.py | 12 |
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): |