diff --git a/extensions-builtin/sd_forge_controlnet_example/scripts/sd_forge_controlnet_example.py b/extensions-builtin/sd_forge_controlnet_example/scripts/sd_forge_controlnet_example.py index 1466f31d..fea77c50 100644 --- a/extensions-builtin/sd_forge_controlnet_example/scripts/sd_forge_controlnet_example.py +++ b/extensions-builtin/sd_forge_controlnet_example/scripts/sd_forge_controlnet_example.py @@ -1,6 +1,7 @@ # Use --show-controlnet-example to see this extension. import os +import cv2 import gradio as gr from modules import scripts @@ -51,6 +52,9 @@ class ControlNetExampleForge(scripts.Script): print('The model [control_v11p_sd15_canny_fp16.safetensors] download finished.') controlnet = load_controlnet(controlnet_canny_path) + input_image = cv2.resize(input_image, (p.height, p.width)) + + p.extra_result_images.append(input_image) return diff --git a/modules/processing.py b/modules/processing.py index 2b5723af..7a09105a 100644 --- a/modules/processing.py +++ b/modules/processing.py @@ -225,6 +225,8 @@ class StableDiffusionProcessing: is_api: bool = field(default=False, init=False) + extra_result_images = [] + def __post_init__(self): if self.sampler_index is not None: print("sampler_index argument for StableDiffusionProcessing does not do anything; use sampler_name", file=sys.stderr) @@ -514,8 +516,9 @@ class StableDiffusionProcessing: class Processed: - def __init__(self, p: StableDiffusionProcessing, images_list, seed=-1, info="", subseed=None, all_prompts=None, all_negative_prompts=None, all_seeds=None, all_subseeds=None, index_of_first_image=0, infotexts=None, comments=""): + def __init__(self, p: StableDiffusionProcessing, images_list, extra_images_list, seed=-1, info="", subseed=None, all_prompts=None, all_negative_prompts=None, all_seeds=None, all_subseeds=None, index_of_first_image=0, infotexts=None, comments=""): self.images = images_list + self.extra_images = extra_images_list self.prompt = p.prompt self.negative_prompt = p.negative_prompt self.seed = seed @@ -864,7 +867,7 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed: # strength, which is saved as "Model Strength: 1.0" in the infotext if n == 0: with open(os.path.join(paths.data_path, "params.txt"), "w", encoding="utf8") as file: - processed = Processed(p, []) + processed = Processed(p, [], []) file.write(processed.infotext(p, 0)) p.setup_conds() @@ -1057,6 +1060,7 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed: res = Processed( p, images_list=output_images, + extra_images_list=p.extra_result_images, seed=p.all_seeds[0], info=infotexts[0], subseed=p.all_subseeds[0], diff --git a/modules/txt2img.py b/modules/txt2img.py index fc56b8a8..8582eddb 100644 --- a/modules/txt2img.py +++ b/modules/txt2img.py @@ -118,4 +118,4 @@ def txt2img(id_task: str, request: gr.Request, *args): if opts.do_not_show_images: processed.images = [] - return processed.images, generation_info_js, plaintext_to_html(processed.info), plaintext_to_html(processed.comments, classname="comments") + return processed.images + processed.extra_images, generation_info_js, plaintext_to_html(processed.info), plaintext_to_html(processed.comments, classname="comments")