From b0137ed399871415d8a2894f39b0b86b645e9cab Mon Sep 17 00:00:00 2001 From: Bingsu Date: Wed, 5 Jul 2023 22:44:43 +0900 Subject: [PATCH] fix: preserve prompts --- scripts/!adetailer.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/scripts/!adetailer.py b/scripts/!adetailer.py index 2ea1ff6..53d8666 100644 --- a/scripts/!adetailer.py +++ b/scripts/!adetailer.py @@ -84,6 +84,17 @@ def pause_total_tqdm(): opts.data["multiple_tqdm"] = orig +@contextmanager +def preseve_prompts(p): + all_pt = copy(p.all_prompts) + all_ng = copy(p.all_negative_prompts) + try: + yield + finally: + p.all_prompts = all_pt + p.all_negative_prompts = all_ng + + class AfterDetailerScript(scripts.Script): def __init__(self): super().__init__() @@ -587,7 +598,8 @@ class AfterDetailerScript(scripts.Script): if p.scripts is not None and self.need_call_postprocess(p): dummy = Processed(p, [], p.seed, "") - p.scripts.postprocess(p, dummy) + with preseve_prompts(p): + p.scripts.postprocess(p, dummy) is_processed = False with CNHijackRestore(), pause_total_tqdm(), cn_allow_script_control(): @@ -602,7 +614,8 @@ class AfterDetailerScript(scripts.Script): ) if p.scripts is not None and self.need_call_process(p): - p.scripts.process(p) + with preseve_prompts(p): + p.scripts.process(p) try: ia = p._ad_idx_all