refactor jsonschema
parent
b0cb75399e
commit
5dde17ad39
|
|
@ -1,12 +1,11 @@
|
|||
import math
|
||||
import os
|
||||
import json
|
||||
from jsonschema import validate
|
||||
import modules.shared as shared
|
||||
import modules.sd_models
|
||||
import gradio as gr
|
||||
from scripts import postprocessing_upscale
|
||||
from .static_variables import jsonprompt_schemafile
|
||||
from .prompt_util import readJsonPrompt
|
||||
import asyncio
|
||||
|
||||
|
||||
def fix_env_Path_ffprobe():
|
||||
|
|
@ -90,31 +89,28 @@ def do_upscaleImg(curImg, upscale_do, upscaler_name, upscale_by):
|
|||
)
|
||||
return pp.image
|
||||
|
||||
|
||||
def validatePromptJson_throws(data):
|
||||
with open(jsonprompt_schemafile, "r") as s:
|
||||
schema = json.load(s)
|
||||
validate(instance=data, schema=schema)
|
||||
|
||||
async def showGradioErrorAsync(txt, delay=1):
|
||||
await asyncio.sleep(delay) # sleep for 1 second
|
||||
raise gr.Error(txt)
|
||||
|
||||
def putPrompts(files):
|
||||
try:
|
||||
with open(files.name, "r") as f:
|
||||
file_contents = f.read()
|
||||
data = json.loads(file_contents)
|
||||
validatePromptJson_throws(data)
|
||||
|
||||
data = readJsonPrompt(file_contents,False)
|
||||
return [
|
||||
gr.DataFrame.update(data["prompts"]),
|
||||
gr.Textbox.update(data["negPrompt"]),
|
||||
]
|
||||
|
||||
except Exception:
|
||||
gr.Error(
|
||||
"loading your prompt failed. It seems to be invalid. Your prompt table is preserved."
|
||||
)
|
||||
print(
|
||||
"[InfiniteZoom:] Loading your prompt failed. It seems to be invalid. Your prompt table is preserved."
|
||||
)
|
||||
asyncio.run(
|
||||
showGradioErrorAsync("Loading your prompts failed. It seems to be invalid. Your prompt table has been preserved.",5)
|
||||
)
|
||||
return [gr.DataFrame.update(), gr.Textbox.update()]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
import json
|
||||
import gradio as gr
|
||||
from .run import create_zoom
|
||||
import modules.shared as shared
|
||||
|
|
@ -6,11 +5,10 @@ from webui import wrap_gradio_gpu_call
|
|||
from modules.ui import create_output_panel
|
||||
from .static_variables import (
|
||||
default_prompt,
|
||||
empty_prompt,
|
||||
invalid_prompt,
|
||||
available_samplers,
|
||||
)
|
||||
from .helpers import validatePromptJson_throws, putPrompts, clearPrompts
|
||||
from .helpers import putPrompts, clearPrompts
|
||||
from .prompt_util import readJsonPrompt
|
||||
|
||||
|
||||
def on_ui_tabs():
|
||||
|
|
@ -41,13 +39,11 @@ def on_ui_tabs():
|
|||
|
||||
# safe reading json prompt
|
||||
pr = shared.opts.data.get("infzoom_defPrompt", default_prompt)
|
||||
if not pr:
|
||||
pr = empty_prompt
|
||||
try:
|
||||
jpr = json.loads(pr)
|
||||
validatePromptJson_throws(jpr)
|
||||
except Exception:
|
||||
jpr = invalid_prompt
|
||||
jpr = readJsonPrompt(pr, True)
|
||||
|
||||
main_common_prompt = gr.Textbox(
|
||||
value=jpr["commonPrompt"], label="Common Prompt"
|
||||
)
|
||||
|
||||
main_common_prompt = gr.Textbox(
|
||||
value=jpr["commonPrompt"], label="Common Prompt"
|
||||
|
|
@ -83,8 +79,8 @@ def on_ui_tabs():
|
|||
exportPrompts_button.click(
|
||||
None,
|
||||
_js="exportPrompts",
|
||||
inputs=[main_common_prompt, main_prompts, main_negative_prompt],
|
||||
outputs=None,
|
||||
inputs=[main_prompts, main_negative_prompt],
|
||||
outputs=None
|
||||
)
|
||||
importPrompts_button.upload(
|
||||
fn=putPrompts,
|
||||
|
|
|
|||
Loading…
Reference in New Issue