diff options
author | AUTOMATIC <16777216c@gmail.com> | 2022-11-19 12:15:24 +0000 |
---|---|---|
committer | AUTOMATIC <16777216c@gmail.com> | 2022-11-19 12:15:24 +0000 |
commit | 5a6387e189dc365c47a7979b9040d5b6fdd7ba43 (patch) | |
tree | 35b26bb962212573fa408d0ac85e4b19f26e55ed /modules/shared.py | |
parent | 84a6f211d407cd748c603edc3a81862488505c24 (diff) | |
download | stable-diffusion-webui-gfx803-5a6387e189dc365c47a7979b9040d5b6fdd7ba43.tar.gz stable-diffusion-webui-gfx803-5a6387e189dc365c47a7979b9040d5b6fdd7ba43.tar.bz2 stable-diffusion-webui-gfx803-5a6387e189dc365c47a7979b9040d5b6fdd7ba43.zip |
make it possible to change models etc by editing options using API
Diffstat (limited to 'modules/shared.py')
-rw-r--r-- | modules/shared.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/modules/shared.py b/modules/shared.py index 84567c8e..58f53e54 100644 --- a/modules/shared.py +++ b/modules/shared.py @@ -437,6 +437,23 @@ class Options: return super(Options, self).__getattribute__(item)
+ def set(self, key, value):
+ """sets an option and calls its onchange callback, returning True if the option changed and False otherwise"""
+
+ oldval = self.data.get(key, None)
+ if oldval == value:
+ return False
+
+ try:
+ setattr(self, key, value)
+ except RuntimeError:
+ return False
+
+ if self.data_labels[key].onchange is not None:
+ self.data_labels[key].onchange()
+
+ return True
+
def save(self, filename):
assert not cmd_opts.freeze_settings, "saving settings is disabled"
|