aboutsummaryrefslogtreecommitdiffstats
path: root/modules/sd_hijack_utils.py
diff options
context:
space:
mode:
authorNuullll <vfirst218@gmail.com>2024-01-06 09:17:53 +0000
committerNuullll <vfirst218@gmail.com>2024-01-06 09:18:38 +0000
commitec9acb31450536a9258192351d6a26421efd7eb4 (patch)
treea7d0704ba1c2131740bc9c6af47cf3c31c3d7063 /modules/sd_hijack_utils.py
parent8b6848c6dbee95f055b98b33804b12bd188ac625 (diff)
downloadstable-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
Diffstat (limited to 'modules/sd_hijack_utils.py')
-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):