mirror of
https://github.com/KoboldAI/KoboldAI-Client.git
synced 2025-06-05 21:59:24 +02:00
Fix for some UI1 syncing issues
This commit is contained in:
21
aiserver.py
21
aiserver.py
@@ -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")
|
||||
|
@@ -414,7 +414,6 @@ gensettingstf = [
|
||||
"ui_level": 2
|
||||
},
|
||||
{
|
||||
"UI_V2_Only": True,
|
||||
"uitype": "toggle",
|
||||
"unit": "bool",
|
||||
"label": "Alt Multi Gen",
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user