From d5cb44385a4bc6f793d177827bac77f267c363c3 Mon Sep 17 00:00:00 2001 From: Tommy Date: Tue, 12 Sep 2023 21:54:20 -0400 Subject: [PATCH] Added meta sanitization --- frontends/krita/krita_diff/client.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/frontends/krita/krita_diff/client.py b/frontends/krita/krita_diff/client.py index 2f89a393..adeadcd6 100644 --- a/frontends/krita/krita_diff/client.py +++ b/frontends/krita/krita_diff/client.py @@ -279,6 +279,14 @@ def cb(obj): for ext_type in {"scripts_txt2img", "scripts_img2img", "scripts_inpaint"}: metadata: Dict[str, List[dict]] = obj[ext_type] for ext_name, ext_meta in metadata.items(): + # Meta processing to remove lists of lists in multiple choice options + for item in ext_meta: + if item["type"] in ["combo", "multiselect"]: + if isinstance(item['opts'], list) and any(isinstance(opt, list) for opt in item['opts']): + item["opts"] = [opt for sublist in item['opts'] if isinstance(sublist, list) for opt in sublist] + # Remove duplicates from combo and multiselect items + item["opts"] = list(set(item["opts"])) + old_val = self.ext_cfg(get_ext_key(ext_type, ext_name)) new_val = json.dumps(ext_meta) # Don't overwrite saved script values unless script options changed