diff options
author | AUTOMATIC1111 <16777216c@gmail.com> | 2023-07-08 11:50:11 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-08 11:50:11 +0000 |
commit | f0c62688d26d612cb39a919cc77c86772f8b1df7 (patch) | |
tree | f9fda485b4a3cb2c2e814b55ee5b3508939628c5 | |
parent | 3602602260abaa325850e4768b7e253834e207d0 (diff) | |
parent | 9c2a7f1e8bafcb59e566bf568fdefe1be95905fe (diff) | |
download | stable-diffusion-webui-gfx803-f0c62688d26d612cb39a919cc77c86772f8b1df7.tar.gz stable-diffusion-webui-gfx803-f0c62688d26d612cb39a919cc77c86772f8b1df7.tar.bz2 stable-diffusion-webui-gfx803-f0c62688d26d612cb39a919cc77c86772f8b1df7.zip |
Merge pull request #11488 from AUTOMATIC1111/callback-after_extra_networks_activate
add callback after_extra_networks_activate
-rw-r--r-- | modules/extra_networks.py | 3 | ||||
-rw-r--r-- | modules/scripts.py | 23 |
2 files changed, 26 insertions, 0 deletions
diff --git a/modules/extra_networks.py b/modules/extra_networks.py index 1f093df2..41799b0a 100644 --- a/modules/extra_networks.py +++ b/modules/extra_networks.py @@ -103,6 +103,9 @@ def activate(p, extra_network_data): except Exception as e:
errors.display(e, f"activating extra network {extra_network_name}")
+ if p.scripts is not None:
+ p.scripts.after_extra_networks_activate(p, batch_number=p.iteration, prompts=p.prompts, seeds=p.seeds, subseeds=p.subseeds, extra_network_data=extra_network_data)
+
def deactivate(p, extra_network_data):
"""call deactivate for extra networks in extra_network_data in specified order, then call
diff --git a/modules/scripts.py b/modules/scripts.py index a07adc42..7d9dd59f 100644 --- a/modules/scripts.py +++ b/modules/scripts.py @@ -117,6 +117,21 @@ class Script: pass
+ def after_extra_networks_activate(self, p, *args, **kwargs):
+ """
+ Calledafter extra networks activation, before conds calculation
+ allow modification of the network after extra networks activation been applied
+ won't be call if p.disable_extra_networks
+
+ **kwargs will have those items:
+ - batch_number - index of current batch, from 0 to number of batches-1
+ - prompts - list of prompts for current batch; you can change contents of this list but changing the number of entries will likely break things
+ - seeds - list of seeds for current batch
+ - subseeds - list of subseeds for current batch
+ - extra_network_data - list of ExtraNetworkParams for current stage
+ """
+ pass
+
def process_batch(self, p, *args, **kwargs):
"""
Same as process(), but called for every batch.
@@ -489,6 +504,14 @@ class ScriptRunner: except Exception:
errors.report(f"Error running before_process_batch: {script.filename}", exc_info=True)
+ def after_extra_networks_activate(self, p, **kwargs):
+ for script in self.alwayson_scripts:
+ try:
+ script_args = p.script_args[script.args_from:script.args_to]
+ script.after_extra_networks_activate(p, *script_args, **kwargs)
+ except Exception:
+ errors.report(f"Error running after_extra_networks_activate: {script.filename}", exc_info=True)
+
def process_batch(self, p, **kwargs):
for script in self.alwayson_scripts:
try:
|