Handle CondFunc exception when resolving attributes #14560
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
AttributeError
ongetattr
. This happens whenorig_func
string refers to a non-existent object.For example, I attempted to hijack sd-webui-controlnet
annotator.anime_face_segment.AnimeFaceSegment.__init__
in my extension. However,annotator.anime_face_segment
is only available starting from ControlNet >= 1.1.420.Screenshots/videos:
Before this change, an uncaught exception may be thrown at
CondFunc
instantiation, andfoo()
will not be executed unless we wrap everyCondFunc
with atry-except
block, which is inconvenient.After this change, a warning will be printed indicating this
CondFunc
didn't take effect:Checklist: