Unverified Commit c250d2a0 authored by AUTOMATIC1111's avatar AUTOMATIC1111 Committed by GitHub
Browse files

Merge pull request #4182 from macrosoft/process_one

Process one
parents 1b9faaa1 de64146a
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -501,6 +501,9 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed:
            if len(prompts) == 0:
                break

            if p.scripts is not None:
                p.scripts.process_one(p, n)

            with devices.autocast():
                uc = prompt_parser.get_learned_conditioning(shared.sd_model, len(prompts) * [p.negative_prompt], p.steps)
                c = prompt_parser.get_multicond_learned_conditioning(shared.sd_model, prompts, p.steps)
+16 −0
Original line number Diff line number Diff line
@@ -73,6 +73,13 @@ class Script:

        pass

    def process_one(self, p, n, *args):
        """
        Same as process(), but called for every iteration
        """

        pass

    def postprocess(self, p, processed, *args):
        """
        This function is called after processing ends for AlwaysVisible scripts.
@@ -296,6 +303,15 @@ class ScriptRunner:
                print(f"Error running process: {script.filename}", file=sys.stderr)
                print(traceback.format_exc(), file=sys.stderr)

    def process_one(self, p, n):
        for script in self.alwayson_scripts:
            try:
                script_args = p.script_args[script.args_from:script.args_to]
                script.process_one(p, n, *script_args)
            except Exception:
                print(f"Error running process_one: {script.filename}", file=sys.stderr)
                print(traceback.format_exc(), file=sys.stderr)

    def postprocess(self, p, processed):
        for script in self.alwayson_scripts:
            try: