diff --git a/aiserver.py b/aiserver.py index b8ff4f3e..9dd621ef 100644 --- a/aiserver.py +++ b/aiserver.py @@ -7454,13 +7454,13 @@ def loadRequest(loadpath, filename=None): if not loadpath: return - + #Original UI only sends the story name and assumes it's always a .json file... here we check to see if it's a directory to load that way - if not os.path.exists(loadpath): + if not isinstance(loadpath, dict) and not os.path.exists(loadpath): if os.path.exists(loadpath.replace(".json", "")): loadpath = loadpath.replace(".json", "") - if os.path.isdir(loadpath): + if not isinstance(loadpath, dict) and os.path.isdir(loadpath): if not valid_v3_story(loadpath): raise RuntimeError(f"Tried to load {loadpath}, a non-save directory.") koboldai_vars.update_story_path_structure(loadpath) diff --git a/gensettings.py b/gensettings.py index 8d68b4b5..a0a20908 100644 --- a/gensettings.py +++ b/gensettings.py @@ -881,6 +881,38 @@ gensettingstf = [ "classname": "system", "name": "seed", "extra_classes": "var_sync_alt_system_seed_specified", + "ui_level": 2 + }, + { + "uitype": "text", + "unit": "text", + "label": "comregex_ai_string", + "id": "comregex_ai_string", + "min": 0, + "max": 1, + "step": 1, + "default": 1, + "tooltip": "Pattern for matching comments to remove them before sending them to the AI.", + "menu_path": "Settings", + "sub_path": "Other", + "classname": "system", + "name": "comregex_ai_string", + "ui_level": 2 + }, + { + "uitype": "text", + "unit": "text", + "label": "comregex_ui_string", + "id": "comregex_ui_string", + "min": 0, + "max": 1, + "step": 1, + "default": 1, + "tooltip": "Pattern for matching comments in the editor.", + "menu_path": "Settings", + "sub_path": "Other", + "classname": "system", + "name": "comregex_ui_string", "ui_level": 2 }, { diff --git a/koboldai_settings.py b/koboldai_settings.py index fdd89ba9..407ae1e1 100644 --- a/koboldai_settings.py +++ b/koboldai_settings.py @@ -1203,7 +1203,7 @@ class undefined_settings(settings): class system_settings(settings): local_only_variables = ['lua_state', 'lua_logname', 'lua_koboldbridge', 'lua_kobold', - 'lua_koboldcore', 'regex_sl', 'acregex_ai', 'acregex_ui', 'comregex_ai', + 'lua_koboldcore', 'regex_sl', 'acregex_ai', 'acregex_ui', 'comregex_ai', 'comregex_ui', 'sp', '_horde_pid', 'inference_config', 'image_pipeline', 'summarizer', 'summary_tokenizer', 'tts_model', 'rng_states'] no_save_variables = ['lua_state', 'lua_logname', 'lua_koboldbridge', 'lua_kobold', @@ -1252,8 +1252,10 @@ class system_settings(settings): self.regex_sl = re.compile(r'\n*(?<=.) *\n(.|\n)*') # Pattern for limiting the output to a single line self.acregex_ai = re.compile(r'\n* *>(.|\n)*') # Pattern for matching adventure actions from the AI so we can remove them self.acregex_ui = re.compile(r'^ *(>.*)$', re.MULTILINE) # Pattern for matching actions in the HTML-escaped story so we can apply colouring, etc (make sure to encase part to format in parentheses) - self.comregex_ai = re.compile(r'(?:\n\[<\|(?:.|\n)*?\|>\](?=\n|$))|(?:\[<\|(?:.|\n)*?\|>\]\n?)') # Pattern for matching comments to remove them before sending them to the AI - self.comregex_ui = re.compile(r'(\[<\|(?:.|\n)*?\|>\])') # Pattern for matching comments in the editor + self.comregex_ai_string = '(?:\n\[<\|(?:.|\n)*?\|>\](?=\n|$))|(?:\[<\|(?:.|\n)*?\|>\]\n?)' # Pattern for matching comments to remove them before sending them to the AI + self.comregex_ui_string = '(\[<\|(?:.|\n)*?\|>\])' # Pattern for matching comments in the editor + self.comregex_ai = re.compile(self.comregex_ai_string) # Pattern for matching comments to remove them before sending them to the AI + self.comregex_ui = re.compile(self.comregex_ui_string) # Pattern for matching comments in the editor self.host = False self.flaskwebgui = False self.quiet = False # If set will suppress any story text from being printed to the console (will only be seen on the client web page) @@ -1340,6 +1342,12 @@ class system_settings(settings): self._socketio.emit('from_server', {'cmd': 'spstatitems', 'data': {self.spfilename: self.spmeta} if self.allowsp and len(self.spfilename) else {}}, namespace=None, broadcast=True, room="UI_1") super().__setattr__("sp_changed", False) + if name == 'comregex_ai_string': + self.comregex_ai = re.compile(self.comregex_ai_string) + + if name == 'comregex_ui_string': + self.comregex_ui = re.compile(self.comregex_ui_string) + if name == 'keep_img_gen_in_memory' and value == False: self.image_pipeline = None