From 14b2f4edaa3ca89acca3f61191e52841a528e087 Mon Sep 17 00:00:00 2001 From: GeorgLegato Date: Fri, 28 Apr 2023 21:49:41 +0200 Subject: [PATCH] shorter names in json schema (neg/pre/postPrompt) --- iz_helpers/helpers.py | 4 ++-- iz_helpers/prompt_util.py | 44 ++++++++++------------------------ iz_helpers/promptschema.json | 9 +++---- iz_helpers/static_variables.py | 10 ++++---- scripts/infinite-zoom.py | 2 -- 5 files changed, 23 insertions(+), 46 deletions(-) diff --git a/iz_helpers/helpers.py b/iz_helpers/helpers.py index 4373bac..72b8f34 100644 --- a/iz_helpers/helpers.py +++ b/iz_helpers/helpers.py @@ -100,9 +100,9 @@ def putPrompts(files): data = readJsonPrompt(file_contents,False) return [ - gr.Textbox.update(data["commonPromptPrefix"]), + gr.Textbox.update(data["prePrompt"]), gr.DataFrame.update(data["prompts"]), - gr.Textbox.update(data["commonPromptSuffix"]), + gr.Textbox.update(data["postPromt"]), gr.Textbox.update(data["negPrompt"]) ] diff --git a/iz_helpers/prompt_util.py b/iz_helpers/prompt_util.py index a1bd445..95519a8 100644 --- a/iz_helpers/prompt_util.py +++ b/iz_helpers/prompt_util.py @@ -7,40 +7,21 @@ from .static_variables import ( jsonprompt_schemafile ) -""" - json is valid, but not our current schema. - lets try something. - does it look like something usable? -def fixJson(j): - fixedJ = empty_prompt - try: - if isinstance(j, dict): - if "prompts" in j: - if "data" in j["prompts"]: - if isinstance (j["prompts"]["data"],list): - fixedJ["prompts"]["data"] = j["prompts"]["data"] - if not isinstance (fixedJ["prompts"]["data"][0]. - - if "headers" not in j["prompts"]: - fixedJ["prompts"]["headers"] = ["outpaint steps","prompt"] - else: - fixedJ["prompts"]["headers"] = j["prompts"]["headers"] - - if "negPrompt" in j: - fixedJ["prompts"]["headers"] - - if "commonPrompt" in j: - return j - except Exception: - raise "JsonFix: Failed on recovering json prompt" - return j -""" - -def fixHeaders(j): +def completeOptionals(j): if isinstance(j, dict): if "prompts" in j: if "headers" not in j["prompts"]: j["prompts"]["headers"] = ["outpaint steps","prompt"] + + if "negPrompt" not in j: + j["prompts"]["negPrompt"]="" + + if "prePrompt" not in j: + j["prompts"]["prePrompt"]="" + + if "postPrompt" not in j: + j["prompts"]["postPrompt"]="" + return j @@ -49,11 +30,12 @@ def validatePromptJson_throws(data): schema = json.load(s) try: validate(instance=data, schema=schema) + except Exception: raise "Your prompts are not schema valid." #fixJson(data) - return fixHeaders(data) + return completeOptionals(data) def readJsonPrompt(txt, returnFailPrompt=False): diff --git a/iz_helpers/promptschema.json b/iz_helpers/promptschema.json index 396a554..ec513e0 100644 --- a/iz_helpers/promptschema.json +++ b/iz_helpers/promptschema.json @@ -47,17 +47,14 @@ "negPrompt": { "type": "string" }, - "commonPromptPrefix": { + "prePrompt": { "type": "string" }, - "commonPromptSuffix": { + "postPrompt": { "type": "string" } }, "required": [ - "prompts", - "negPrompt", - "commonPromptPrefix", - "commonPromptSuffix" + "prompts" ] } \ No newline at end of file diff --git a/iz_helpers/static_variables.py b/iz_helpers/static_variables.py index b52b31d..503dec3 100644 --- a/iz_helpers/static_variables.py +++ b/iz_helpers/static_variables.py @@ -4,20 +4,20 @@ import modules.sd_samplers default_prompt = """ { - "commonPromptPrefix":" ", + "prePrompt":" ", "prompts":{ "headers":["outpaint steps","prompt","img"], "data":[ [0,"Huge spectacular Waterfall in a dense tropical forest,epic perspective,(vegetation overgrowth:1.3)(intricate, ornamentation:1.1),(baroque:1.1), fantasy, (realistic:1) digital painting , (magical,mystical:1.2) , (wide angle shot:1.4), (landscape composed:1.2)(medieval:1.1), divine,cinematic,(tropical forest:1.4),(river:1.3)mythology,india, volumetric lighting, Hindu ,epic"] ] }, - "commonPromptSuffix":"style by Alex Horley Wenjun Lin greg rutkowski Ruan Jia (Wayne Barlowe:1.2)", + "postPrompt":"style by Alex Horley Wenjun Lin greg rutkowski Ruan Jia (Wayne Barlowe:1.2)", "negPrompt":"frames, border, edges, borderline, text, character, duplicate, error, out of frame, watermark, low quality, ugly, deformed, blur, bad-artist" } """ empty_prompt = ( - '{"prompts":{"data":[],"headers":["outpaint steps","prompt"]},"negPrompt":"", commonPromptPrefix:"", commonPromptSuffix}' + '{"prompts":{"data":[],"headers":["outpaint steps","prompt"]},"negPrompt":"", prePrompt:"", postPrompt:""}' ) invalid_prompt = { @@ -26,8 +26,8 @@ invalid_prompt = { "headers": ["outpaint steps", "prompt"], }, "negPrompt": "Invalid prompt-json", - "commonPromptPrefix": "Invalid prompt", - "commonPromptSuffix": "Invalid prompt" + "prePromp": "Invalid prompt", + "postPrompt": "Invalid prompt" } available_samplers = [ diff --git a/scripts/infinite-zoom.py b/scripts/infinite-zoom.py index a68461f..ab2764d 100644 --- a/scripts/infinite-zoom.py +++ b/scripts/infinite-zoom.py @@ -1,7 +1,5 @@ from modules import script_callbacks from iz_helpers.ui import on_ui_tabs from iz_helpers.settings import on_ui_settings - - script_callbacks.on_ui_tabs(on_ui_tabs) script_callbacks.on_ui_settings(on_ui_settings)