Fix for some UI1 syncing issues

This commit is contained in:
ebolam
2022-12-21 13:41:59 -05:00
parent 79f56f193d
commit 1409682427
4 changed files with 25 additions and 11 deletions

View File

@@ -2306,7 +2306,7 @@ def patch_transformers():
option = koboldai_vars.actions.actions[koboldai_vars.actions.action_count+1]['Options'][x]
if option['Pinned'] or option["Previous Selection"] or option["Edited"]:
option_offset = x+1
batch_offset = int((koboldai_vars.generated_tkns-1) / koboldai_vars.genamt) if koboldai_vars.alt_multi_gen and koboldai_vars.experimental_features else 0
batch_offset = int((koboldai_vars.generated_tkns-1) / koboldai_vars.genamt) if koboldai_vars.alt_multi_gen else 0
for batch_index, batch in enumerate(scores):
probs = F.softmax(batch, dim = -1).cpu().numpy()
@@ -2489,7 +2489,7 @@ def patch_transformers():
self.halt = not koboldai_vars.lua_koboldbridge.generating
koboldai_vars.lua_koboldbridge.regeneration_required = False
for i in range(koboldai_vars.numseqs) if not (koboldai_vars.alt_multi_gen and koboldai_vars.experimental_features) else range(1):
for i in range(koboldai_vars.numseqs) if not koboldai_vars.alt_multi_gen else range(1):
koboldai_vars.lua_koboldbridge.generated[i+1][koboldai_vars.generated_tkns] = int(input_ids[i, -1].item())
return self.regeneration_required or self.halt
@@ -4612,6 +4612,14 @@ def get_message(msg):
koboldai_vars.show_probs = msg['data']
settingschanged()
refresh_settings()
elif(msg['cmd'] == 'alttextgen'):
koboldai_vars.alt_gen = msg['data']
settingschanged()
refresh_settings()
elif(msg['cmd'] == 'alt_multi_gen'):
koboldai_vars.alt_multi_gen = msg['data']
settingschanged()
refresh_settings()
elif(not koboldai_vars.host and msg['cmd'] == 'importwi'):
wiimportrequest()
elif(msg['cmd'] == 'debug'):
@@ -5403,7 +5411,7 @@ def core_generate(text: list, _min: int, _max: int, found_entries: set, is_core:
numseqs = koboldai_vars.numseqs
total_gens = None
for i in range(koboldai_vars.numseqs if koboldai_vars.alt_multi_gen and koboldai_vars.experimental_features else 1):
for i in range(koboldai_vars.numseqs if koboldai_vars.alt_multi_gen else 1):
while True:
# The reason this is a loop is due to how Dynamic WI works. We
# cannot simply add the WI to the context mid-generation, so we
@@ -5416,7 +5424,7 @@ def core_generate(text: list, _min: int, _max: int, found_entries: set, is_core:
max_new=koboldai_vars.genamt,
do_streaming=koboldai_vars.output_streaming,
do_dynamic_wi=koboldai_vars.dynamicscan,
batch_count=numseqs if not (koboldai_vars.alt_multi_gen and koboldai_vars.experimental_features) else 1,
batch_count=numseqs if not koboldai_vars.alt_multi_gen else 1,
# Real max length is handled by CoreStopper.
bypass_hf_maxlength=koboldai_vars.dynamicscan,
is_core=True,
@@ -5428,7 +5436,7 @@ def core_generate(text: list, _min: int, _max: int, found_entries: set, is_core:
already_generated += len(genout[0])
try:
assert already_generated <= koboldai_vars.genamt * koboldai_vars.numseqs if koboldai_vars.alt_multi_gen and koboldai_vars.experimental_features else 1
assert already_generated <= koboldai_vars.genamt * koboldai_vars.numseqs if koboldai_vars.alt_multi_gen else 1
except AssertionError:
print("AlreadyGenerated", already_generated)
print("genamt", koboldai_vars.genamt)
@@ -6533,7 +6541,10 @@ def refresh_settings():
socketio.emit('from_server', {'cmd': 'updatefrmtadsnsp', 'data': koboldai_vars.frmtadsnsp}, broadcast=True, room="UI_1")
socketio.emit('from_server', {'cmd': 'updatesingleline', 'data': koboldai_vars.singleline}, broadcast=True, room="UI_1")
socketio.emit('from_server', {'cmd': 'updateoutputstreaming', 'data': koboldai_vars.output_streaming}, broadcast=True, room="UI_1")
socketio.emit('from_server', {'cmd': 'updateshowbudget', 'data': koboldai_vars.show_budget}, broadcast=True, room="UI_1")
socketio.emit('from_server', {'cmd': 'updateshowprobs', 'data': koboldai_vars.show_probs}, broadcast=True, room="UI_1")
socketio.emit('from_server', {'cmd': 'updatealt_text_gen', 'data': koboldai_vars.alt_gen}, broadcast=True, room="UI_1")
socketio.emit('from_server', {'cmd': 'updatealt_multi_gen', 'data': koboldai_vars.alt_multi_gen}, broadcast=True, room="UI_1")
# Allow toggle events again
socketio.emit('from_server', {'cmd': 'allowtoggle', 'data': True}, broadcast=True, room="UI_1")

View File

@@ -414,7 +414,6 @@ gensettingstf = [
"ui_level": 2
},
{
"UI_V2_Only": True,
"uitype": "toggle",
"unit": "bool",
"label": "Alt Multi Gen",

View File

@@ -780,13 +780,13 @@ class model_settings(settings):
#Setup TQDP for token generation
elif name == "generated_tkns" and 'tqdm' in self.__dict__:
if value == 0:
self.tqdm.reset(total=self.genamt * (self.numseqs if self.alt_multi_gen and self.koboldai_vars.experimental_features else 1) )
self.tqdm.reset(total=self.genamt * (self.numseqs if self.alt_multi_gen else 1) )
self.tqdm_progress = 0
else:
self.tqdm.update(value-self.tqdm.n)
self.tqdm_progress = int(float(self.generated_tkns)/float(self.genamt * (self.numseqs if self.alt_multi_gen and self.koboldai_vars.experimental_features else 1))*100)
self.tqdm_progress = int(float(self.generated_tkns)/float(self.genamt * (self.numseqs if self.alt_multi_gen else 1))*100)
if self.tqdm.format_dict['rate'] is not None:
self.tqdm_rem_time = str(datetime.timedelta(seconds=int(float((self.genamt * (self.numseqs if self.alt_multi_gen and self.koboldai_vars.experimental_features else 1))-self.generated_tkns)/self.tqdm.format_dict['rate'])))
self.tqdm_rem_time = str(datetime.timedelta(seconds=int(float((self.genamt * (self.numseqs if self.alt_multi_gen else 1))-self.generated_tkns)/self.tqdm.format_dict['rate'])))
#Setup TQDP for model loading
elif name == "loaded_layers" and 'tqdm' in self.__dict__:
if value == 0:
@@ -1791,8 +1791,8 @@ class KoboldStoryRegister(object):
self.story_settings.gamesaved = False
def stream_tokens(self, text_list):
if len(text_list) > 1 or (self.koboldai_vars.alt_multi_gen and self.koboldai_vars.experimental_features and self.koboldai_vars.numseqs > 1):
if self.koboldai_vars.alt_multi_gen and self.koboldai_vars.experimental_features:
if len(text_list) > 1 or (self.koboldai_vars.alt_multi_gen and self.koboldai_vars.numseqs > 1):
if self.koboldai_vars.alt_multi_gen:
#since alt_multi_gen is really just several single gens the text list is always 1 deep, so we need some
#other way to figure out wich spot in our options list we're on. We'll figure it out by seeing how many
#tokens we generated vs how many each option should take

View File

@@ -2735,6 +2735,10 @@ $(document).ready(function(){
} else {
token_prob_menu.addClass("hidden");
}
} else if(msg.cmd == "updatealt_text_gen") {
$("#alttextgen").prop('checked', msg.data).change();
} else if(msg.cmd == "updatealt_multi_gen") {
$("#alt_multi_gen").prop('checked', msg.data).change();
} else if(msg.cmd == "allowtoggle") {
// Allow toggle change states to propagate
allowtoggle = msg.data;