Preset saving framework

This commit is contained in:
ebolam
2022-09-14 13:26:29 -04:00
parent 21022950cd
commit ac9e147305
2 changed files with 33 additions and 2 deletions

View File

@@ -2573,12 +2573,15 @@ def load_model(use_gpu=True, gpu_layers=None, disk_layers=None, initial_load=Fal
#Let's load the presets
presets = []
current_max_uid = 0
for file in os.listdir("./presets"):
if file[-8:] == '.presets':
with open("./presets/{}".format(file)) as f:
data = json.load(f)
for preset in data:
preset['uid'] += current_max_uid
presets.append(preset)
current_max_uid = max([preset['uid'] for preset in presets])
koboldai_vars.uid_presets = {x['uid']: x for x in presets}
#We want our data to be a 2 deep dict. Top level is "Recommended", "Same Class", "Model 1", "Model 2", etc
@@ -2601,7 +2604,7 @@ def load_model(use_gpu=True, gpu_layers=None, disk_layers=None, initial_load=Fal
used_ids.append(preset['uid'])
#Build Same Class
for preset in presets:
if preset['Model Size'] in koboldai_vars.model.replace("6.7B", "6B") and preset['uid'] not in used_ids:
if preset['Model Size'] == get_model_size(koboldai_vars.model) and preset['uid'] not in used_ids:
if preset['Model Category'] == 'Custom':
to_use['Same Class']['Custom'].append(preset)
else:
@@ -7782,9 +7785,33 @@ def UI_2_load_cookies():
def UI_2_save_new_preset(data):
print(data)
preset = {}
for item in ["genamt", "rep_pen", "rep_pen_range", "rep_pen_slope", "sampler_order", "temp", "tfs", "top_a", "top_k", "top_p", "typical"]
#Data to get from current settings
for item in ["genamt", "rep_pen", "rep_pen_range", "rep_pen_slope", "sampler_order", "temp", "tfs", "top_a", "top_k", "top_p", "typical"]:
preset[item] = getattr(koboldai_vars, item)
#Data to get from UI
for item in ['preset', 'description']:
preset[item] = data[item]
preset['Model Size'] = get_model_size(koboldai_vars.model)
preset['Model Category'] = 'Custom'
preset['uid'] = 0
preset = [preset]
print(preset)
with open("./presets/{}.presets".format(data['preset']), "w") as f:
json.dump(preset, f, indent="\t")
def get_model_size(model_name):
if "30B" in model_name:
return "30B"
elif "20B" in model_name:
return "20B"
elif "13B" in model_name:
return "13B"
elif "6B" in model_name.replace("6.7B", "6B"):
return "6B"
elif "2.7B" in model_name:
return "2.7B"
elif "1.3B" in model_name:
return "1.3B"
#==================================================================#
# Test

View File

@@ -109,6 +109,10 @@
<div id="setting_menu_settings" class="hidden settings_category_area tab-target tab-target-settings">
<div class="force_center">
<select class="var_sync_model_selected_preset settings_select presets" onchange='sync_to_server(this)'><option>Preset</option></select>
<button class="settings_button" onclick="">
<span class="material-icons-outlined cursor" title="Save Preset">save</span>
<span class="button_label">Save Preset</span>
</button>
</div>
{% with menu='Settings' %}
<div class="collapsable_header" onclick="toggle_setting_category(this);">