Added ability to add labels that are based on validation data in model loading settings

This commit is contained in:
ebolam
2023-05-26 12:43:17 -04:00
parent 0376ab5715
commit 51cea7eb9d
5 changed files with 71 additions and 3 deletions

View File

@@ -77,6 +77,18 @@ class HFInferenceModel(InferenceModel):
break_values += [0] * (gpu_count - len(break_values))
if disk_blocks is not None:
break_values += [int(disk_blocks)]
requested_parameters.append({
"uitype": "Valid Display",
"unit": "text",
"label": "Current Allocated Layers: %1/{}".format(layer_count), #%1 will be the validation value
"id": "valid_layers",
"max": layer_count,
"step": 1,
"check": {"sum": ["{}_Layers".format(i) for i in range(gpu_count)]+['CPU_Layers']+(['Disk_Layers'] if disk_blocks is not None else []), "value": layer_count, 'check': "="},
"menu_path": "Layers",
"extra_classes": "",
"refresh_model_inputs": False
})
for i in range(gpu_count):
requested_parameters.append({
"uitype": "slider",

View File

@@ -4080,6 +4080,25 @@ function model_settings_checker() {
accept.classList.add("disabled");
accept.disabled = true;
}
//We now have valid display boxes potentially. We'll go through them and update the display
for (const item of document.querySelectorAll(".model_settings_valid_display:not(#blank_model_settings_valid_display)")) {
check_value = 0
missing_element = false;
for (const temp of item.check_data['sum']) {
if (document.getElementById(item.id.split("|")[0] +"|" + temp + "_value")) {
check_value += parseInt(document.getElementById(item.id.split("|")[0] +"|" + temp + "_value").value);
} else {
missing_element = true;
}
}
if (!missing_element) {
item.innerText = item.original_text.replace("%1", check_value);
}
}
}
function selected_model_info(sent_data) {
@@ -4250,18 +4269,26 @@ function selected_model_info(sent_data) {
new_setting.querySelector('#blank_model_settings_text').remove();
}
if (item['uitype'] == "Valid Display") {
new_setting = document.createElement("DIV");
new_setting.classList.add("model_settings_valid_display");
new_setting.id = loader + "|" + item['id'] + "_value";
new_setting.innerText = item['label'];
new_setting.check_data = item['check'];
new_setting.original_text = item['label'];
}
model_area.append(new_setting);
loadmodelsettings.append(model_area);
}
}
//unhide the first plugin settings
console.log(document.getElementById("modelplugin").value + "_settings_area");
if (document.getElementById(document.getElementById("modelplugin").value + "_settings_area")) {
document.getElementById(document.getElementById("modelplugin").value + "_settings_area").classList.remove("hidden");
}
model_settings_checker();
model_settings_checker()
}

View File

@@ -2395,6 +2395,7 @@ body.connected .popupfooter, .popupfooter.always-available {
padding-top: 0px;
text-align: right;
font-size: calc(0.8em + var(--font_size_adjustment));
text-align: left;
}
.setting_label {

View File

@@ -386,6 +386,7 @@ border-top-right-radius: var(--tabs_rounding);
padding-top: 0px;
text-align: right;
font-size: calc(0.8em + var(--font_size_adjustment));
text-align: left;
}
.setting_label {

View File

@@ -1754,6 +1754,25 @@ function model_settings_checker() {
accept.classList.add("disabled");
accept.disabled = true;
}
//We now have valid display boxes potentially. We'll go through them and update the display
for (const item of document.querySelectorAll(".model_settings_valid_display:not(#blank_model_settings_valid_display)")) {
check_value = 0
missing_element = false;
for (const temp of item.check_data['sum']) {
if (document.getElementById(item.id.split("|")[0] +"|" + temp + "_value")) {
check_value += parseInt(document.getElementById(item.id.split("|")[0] +"|" + temp + "_value").value);
} else {
missing_element = true;
}
}
if (!missing_element) {
item.innerText = item.original_text.replace("%1", check_value);
}
}
}
function selected_model_info(sent_data) {
@@ -1924,13 +1943,21 @@ function selected_model_info(sent_data) {
new_setting.querySelector('#blank_model_settings_text').remove();
}
if (item['uitype'] == "Valid Display") {
new_setting = document.createElement("DIV");
new_setting.classList.add("model_settings_valid_display");
new_setting.id = loader + "|" + item['id'] + "_value";
new_setting.innerText = item['label'];
new_setting.check_data = item['check'];
new_setting.original_text = item['label'];
}
model_area.append(new_setting);
loadmodelsettings.append(model_area);
}
}
//unhide the first plugin settings
console.log(document.getElementById("modelplugin").value + "_settings_area");
if (document.getElementById(document.getElementById("modelplugin").value + "_settings_area")) {
document.getElementById(document.getElementById("modelplugin").value + "_settings_area").classList.remove("hidden");
}