From da036ce71251f780d25fd4b7ce90092f1e92ce4d Mon Sep 17 00:00:00 2001 From: ebolam Date: Tue, 16 Aug 2022 13:09:13 -0400 Subject: [PATCH] Fix for critical bug on saving causing infinite loop --- aiserver.py | 2 ++ koboldai_settings.py | 21 ++++++++++++++++++--- templates/index_new.html | 2 +- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/aiserver.py b/aiserver.py index 425862ed..0dee46c3 100644 --- a/aiserver.py +++ b/aiserver.py @@ -6350,12 +6350,14 @@ def UI_2_Set_Selected_Text(data): def UI_2_submit(data): print(data) if not koboldai_vars.noai and data['theme'] != "": + print("doing random prompt") memory = koboldai_vars.memory koboldai_vars.memory = "{}\n\nYou generate the following {} story concept :".format(koboldai_vars.memory, data['theme']) koboldai_vars.lua_koboldbridge.feedback = None actionsubmit("", force_submit=True, force_prompt_gen=True) koboldai_vars.memory = memory else: + print("doing normal input") koboldai_vars.actions.clear_unused_options() koboldai_vars.lua_koboldbridge.feedback = None koboldai_vars.recentrng = koboldai_vars.recentrngm = None diff --git a/koboldai_settings.py b/koboldai_settings.py index 760b8470..a2e01e97 100644 --- a/koboldai_settings.py +++ b/koboldai_settings.py @@ -38,7 +38,8 @@ def process_variable_changes(socketio, classname, name, value, old_value, debug_ socketio.emit("var_changed", {"classname": "actions", "name": "Selected Text", "old_value": None, "value": {"id": i, "text": value[i]}}, include_self=True, broadcast=True, room="UI_2") socketio.emit("var_changed", {"classname": "actions", "name": "Options", "old_value": None, "value": {"id": i, "options": value.actions[i]['Options']}}, include_self=True, broadcast=True, room="UI_2") socketio.emit("var_changed", {"classname": "actions", "name": "Selected Text Length", "old_value": None, "value": {"id": i, 'length': value.actions[i]['Selected Text Length']}}, include_self=True, broadcast=True, room="UI_2") - socketio.emit("var_changed", {"classname": "actions", "name": "In AI Input", "old_value": None, "value": {"id": i, 'In AI Input': value.actions[i]['In AI Input']}}, include_self=True, broadcast=True, room="UI_2") + if 'In AI Input' in value.actions[i]: + socketio.emit("var_changed", {"classname": "actions", "name": "In AI Input", "old_value": None, "value": {"id": i, 'In AI Input': value.actions[i]['In AI Input']}}, include_self=True, broadcast=True, room="UI_2") elif isinstance(value, KoboldWorldInfo): value.send_to_ui() else: @@ -519,7 +520,21 @@ class story_settings(settings): def save_story(self): print("Saving") save_name = self.story_name if self.story_name != "" else "untitled" - with open("stories/{}_v2.json".format(save_name), "w") as settings_file: + adder = "" + while True: + if os.path.exists("stories/{}{}_v2.json".format(save_name, adder)): + with open("stories/{}{}_v2.json".format(save_name, adder), "r") as f: + temp = json.load(f) + if 'story_id' in temp: + if self.story_id != temp['story_id']: + adder = 0 if adder == "" else adder+1 + else: + break + else: + adder = 0 if adder == "" else adder+1 + else: + break + with open("stories/{}{}_v2.json".format(save_name, adder), "w") as settings_file: settings_file.write(self.to_json()) self.gamesaved = True @@ -1019,7 +1034,7 @@ class KoboldWorldInfo(object): self.story_settings = story_settings def reset(self): - self.__init__(self.socketio, self.story_settings, self.tokenizer) + self.__init__(self.socketio, self.story_settings, self.koboldai_vars, self.tokenizer) def __iter__(self): self.itter = -1 diff --git a/templates/index_new.html b/templates/index_new.html index 51045d63..2fd2ce6a 100644 --- a/templates/index_new.html +++ b/templates/index_new.html @@ -69,7 +69,7 @@
0%