diff options
author | AUTOMATIC1111 <16777216c@gmail.com> | 2024-01-20 07:25:29 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-20 07:25:29 +0000 |
commit | 41c2121e510c1887cada376359672437809afe96 (patch) | |
tree | 89cb086ba1b3212e7050c68a6a351e406067f5d5 | |
parent | 5df56b3980fed9efc4d0ba3a5a52782c34acd9f1 (diff) | |
parent | c1e04c63b3d2a5102b4cf6deddea337c8a964c53 (diff) | |
download | stable-diffusion-webui-gfx803-41c2121e510c1887cada376359672437809afe96.tar.gz stable-diffusion-webui-gfx803-41c2121e510c1887cada376359672437809afe96.tar.bz2 stable-diffusion-webui-gfx803-41c2121e510c1887cada376359672437809afe96.zip |
Merge pull request #14657 from AUTOMATIC1111/callback-postprocess_image_after_composite
callback postprocess_image_after_composite
-rw-r--r-- | modules/processing.py | 5 | ||||
-rw-r--r-- | modules/scripts.py | 17 |
2 files changed, 22 insertions, 0 deletions
diff --git a/modules/processing.py b/modules/processing.py index 547ab2f8..6b631795 100644 --- a/modules/processing.py +++ b/modules/processing.py @@ -1029,6 +1029,11 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed: image = apply_overlay(image, p.paste_to, overlay_image)
+ if p.scripts is not None:
+ pp = scripts.PostprocessImageArgs(image)
+ p.scripts.postprocess_image_after_composite(p, pp)
+ image = pp.image
+
if save_samples:
images.save_image(image, p.outpath_samples, "", p.seeds[i], p.prompts[i], opts.samples_format, info=infotext(i), p=p)
diff --git a/modules/scripts.py b/modules/scripts.py index cf938ebb..060069cf 100644 --- a/modules/scripts.py +++ b/modules/scripts.py @@ -262,6 +262,15 @@ class Script: pass
+ def postprocess_image_after_composite(self, p, pp: PostprocessImageArgs, *args):
+ """
+ Called for every image after it has been generated.
+ Same as postprocess_image but after inpaint_full_res composite
+ So that it operates on the full image instead of the inpaint_full_res crop region.
+ """
+
+ pass
+
def postprocess(self, p, processed, *args):
"""
This function is called after processing ends for AlwaysVisible scripts.
@@ -856,6 +865,14 @@ class ScriptRunner: except Exception:
errors.report(f"Error running postprocess_image: {script.filename}", exc_info=True)
+ def postprocess_image_after_composite(self, p, pp: PostprocessImageArgs):
+ for script in self.alwayson_scripts:
+ try:
+ script_args = p.script_args[script.args_from:script.args_to]
+ script.postprocess_image_after_composite(p, pp, *script_args)
+ except Exception:
+ errors.report(f"Error running postprocess_image_after_composite: {script.filename}", exc_info=True)
+
def before_component(self, component, **kwargs):
for callback, script in self.on_before_component_elem_id.get(kwargs.get("elem_id"), []):
try:
|