diff --git a/index.js b/index.js index 7d988fa..a2b37b8 100644 --- a/index.js +++ b/index.js @@ -755,6 +755,15 @@ document.getElementById('btnGenerate').addEventListener('click', async () => { console.dir(numberOfImages) const bUsePromptShortcut = document.getElementById('chUsePromptShortcut').checked + let prompt_shortcut_ui_dict = {} + try { + let prompt_shortcut_string = document.getElementById('taPromptShortcut').value + prompt_shortcut_ui_dict = JSON.parse(prompt_shortcut_string) + } catch (e) { + console.warn(`warning prompt_shortcut_ui_dict is not valid Json obj: ${e}`) + prompt_shortcut_ui_dict = {} + } + payload = { prompt: prompt, @@ -768,7 +777,8 @@ document.getElementById('btnGenerate').addEventListener('click', async () => { cfg_scale: cfg_scale, seed: seed, mask_blur: mask_blur, - use_prompt_shortcut: bUsePromptShortcut + use_prompt_shortcut: bUsePromptShortcut, + prompt_shortcut_ui_dict: prompt_shortcut_ui_dict } console.log({ payload }) diff --git a/server/python_server/img2imgapi.py b/server/python_server/img2imgapi.py index fa8f8da..8011a1d 100644 --- a/server/python_server/img2imgapi.py +++ b/server/python_server/img2imgapi.py @@ -29,10 +29,11 @@ async def img2ImgRequest(sd_url,payload): if(payload['use_prompt_shortcut']): # use edit prompt #edit prompt, replaceShortcut(prompt) - prompt_shortcut.load() - payload['prompt'] = prompt_shortcut.replaceShortcut(payload['prompt']) + prompt_shortcut_dict = prompt_shortcut.load() + prompt_shortcut_dict.update(payload["prompt_shortcut_ui_dict"]) + payload['prompt'] = prompt_shortcut.replaceShortcut(payload['prompt'],prompt_shortcut_dict) # edit negative prompt, replaceShortcut(negative_prompt) - payload['negative_prompt'] = prompt_shortcut.replaceShortcut(payload['negative_prompt']) + payload['negative_prompt'] = prompt_shortcut.replaceShortcut(payload['negative_prompt'],prompt_shortcut_dict) init_img_dir = "./init_images" init_img_name = payload['init_image_name'] diff --git a/server/python_server/prompt_shortcut.py b/server/python_server/prompt_shortcut.py index f77dce5..85a6db8 100644 --- a/server/python_server/prompt_shortcut.py +++ b/server/python_server/prompt_shortcut.py @@ -1,6 +1,6 @@ import re import json -prompt_shortcut ={} +prompt_shortcut_dict ={} def readToJson(): @@ -12,15 +12,15 @@ def writeToJson(file_name,data_dict): def load(): - global prompt_shortcut + global prompt_shortcut_dict try: with open('prompt_shortcut.json') as f_obj: data = json.load(f_obj) - prompt_shortcut = data + prompt_shortcut_dict = data print(data) except IOError: print("prompt_shortcut.json is not found") - return prompt_shortcut + return prompt_shortcut_dict def find_words_inside_braces(string): result = "" pattern ="\{(.*?)\}" @@ -37,7 +37,7 @@ text = "a beautiful girl{ }, {char1}, {painterly_style} holding a cute cat { -def replaceShortcut(text): +def replaceShortcut(text,prompt_shortcut_dict): raw_keywords = find_words_inside_braces(text) strip_keywords = list(map(lambda s: s.strip(),raw_keywords)) @@ -51,8 +51,8 @@ def replaceShortcut(text): for i, word in enumerate(strip_keywords): # word = word.strip() print("word: ",word) - if len(word) > 0 and word in prompt_shortcut: - prompt = prompt_shortcut[word] + if len(word) > 0 and word in prompt_shortcut_dict: + prompt = prompt_shortcut_dict[word] print("prompt: ",prompt) text = text.replace(original_substrings[i],prompt) # else: diff --git a/server/python_server/serverMain.py b/server/python_server/serverMain.py index ad75fc1..fc180f3 100644 --- a/server/python_server/serverMain.py +++ b/server/python_server/serverMain.py @@ -23,10 +23,11 @@ async def txt2ImgRequest(payload): if(payload['use_prompt_shortcut']): # use edit prompt #edit prompt, replaceShortcut(prompt) - prompt_shortcut.load() - payload['prompt'] = prompt_shortcut.replaceShortcut(payload['prompt']) + prompt_shortcut_dict = prompt_shortcut.load() + prompt_shortcut_dict.update(payload["prompt_shortcut_ui_dict"]) + payload['prompt'] = prompt_shortcut.replaceShortcut(payload['prompt'],prompt_shortcut_dict) # edit negative prompt, replaceShortcut(negative_prompt) - payload['negative_prompt'] = prompt_shortcut.replaceShortcut(payload['negative_prompt']) + payload['negative_prompt'] = prompt_shortcut.replaceShortcut(payload['negative_prompt'],prompt_shortcut_dict) #request the images to be generated