Move all settings to KAI script

This commit is contained in:
SillyLossy
2023-03-18 19:13:43 +02:00
parent 7b6eaf6ed0
commit d7547ef869
4 changed files with 75 additions and 84 deletions

View File

@ -540,9 +540,9 @@
<h4>Repetition Penalty Range</h4> <h4>Repetition Penalty Range</h4>
</div> </div>
<div class="range-block-counter"> <div class="range-block-counter">
<h5 id="rep_pen_size_counter">select</h5> <h5 id="rep_pen_range_counter">select</h5>
</div> </div>
<div class="range-block-range"><input type="range" id="rep_pen_size" name="volume" <div class="range-block-range"><input type="range" id="rep_pen_range" name="volume"
min="0" max="2048" step="1"></div> min="0" max="2048" step="1"></div>
</div> </div>
</div> </div>
@ -673,6 +673,12 @@
<input type="range" id="rep_pen_size_textgenerationwebui" name="volume" min="0" max="2048" <input type="range" id="rep_pen_size_textgenerationwebui" name="volume" min="0" max="2048"
step="1"> step="1">
<div class="drawer">
<div class="drawer-toggle drawer-header">
<h3>Advanced Settings</h3>
<div class="drawer-icon down"></div>
</div>
<div class="drawer-content">
<h4>Top K</h4> <h4>Top K</h4>
<h5 id="top_k_counter_textgenerationwebui">select</h5> <h5 id="top_k_counter_textgenerationwebui">select</h5>
<input type="range" id="top_k_textgenerationwebui" name="volume" min="0" max="200" step="1"> <input type="range" id="top_k_textgenerationwebui" name="volume" min="0" max="200" step="1">
@ -684,8 +690,9 @@
<input type="range" id="typical_p_textgenerationwebui" name="volume" min="0" max="1" step="0.1"> <input type="range" id="typical_p_textgenerationwebui" name="volume" min="0" max="1" step="0.1">
<h4>Penalty Alpha</h4> <h4>Penalty Alpha</h4>
<h5 id="penalty_alpha_counter_textgenerationwebui">select</h5> <h5 id="penalty_alpha_counter_textgenerationwebui">select</h5>
<input type="range" id="penalty_alpha_textgenerationwebui" name="volume" min="0" max="5" <input type="range" id="penalty_alpha_textgenerationwebui" name="volume" min="0" max="5" step="0.05" />
step="0.05" /> </div>
</div>
</div> </div>
</div> </div>

View File

@ -67,7 +67,7 @@
</p> </p>
<h3>Repetition Penalty Slope</h3> <h3>Repetition Penalty Slope</h3>
<p> <p>
If both this and Repetition Penalty Range are below 0, then repetition penalty will have more effect If both this and Repetition Penalty Range are above 0, then repetition penalty will have more effect
closer to the end of the prompt. The higher the value, the stronger the effect. closer to the end of the prompt. The higher the value, the stronger the effect.
</p> </p>
<p>Set value to 1 for linear interpolation or 0 to disable interpolation.</p> <p>Set value to 1 for linear interpolation or 0 to disable interpolation.</p>

View File

@ -235,11 +235,8 @@ var koboldai_settings;
var koboldai_setting_names; var koboldai_setting_names;
var preset_settings = "gui"; var preset_settings = "gui";
var user_avatar = "you.png"; var user_avatar = "you.png";
var temp = 0.5;
var amount_gen = 80; //default max length of AI generated responses var amount_gen = 80; //default max length of AI generated responses
var max_context = 2048; var max_context = 2048;
var rep_pen = 1;
var rep_pen_size = 100;
var textgenerationwebui_settings = { var textgenerationwebui_settings = {
temp: 0.5, temp: 0.5,
@ -1365,7 +1362,7 @@ async function Generate(type, automatic_trigger) {//encode("dsfs").length
var generate_data; var generate_data;
if (main_api == 'kobold') { if (main_api == 'kobold') {
var generate_data = { prompt: finalPromt, gui_settings: true, max_length: amount_gen, temperature: temp, max_context_length: max_context }; var generate_data = { prompt: finalPromt, gui_settings: true, max_length: amount_gen, temperature: kai_settings.temp, max_context_length: max_context };
if (preset_settings != 'gui') { if (preset_settings != 'gui') {
generate_data = { generate_data = {
@ -1374,10 +1371,10 @@ async function Generate(type, automatic_trigger) {//encode("dsfs").length
sampler_order: this_settings.sampler_order, sampler_order: this_settings.sampler_order,
max_context_length: parseInt(max_context),//this_settings.max_length, max_context_length: parseInt(max_context),//this_settings.max_length,
max_length: this_amount_gen,//parseInt(amount_gen), max_length: this_amount_gen,//parseInt(amount_gen),
rep_pen: parseFloat(rep_pen), rep_pen: parseFloat(kai_settings.rep_pen),
rep_pen_range: parseInt(rep_pen_size), rep_pen_range: parseInt(kai_settings.rep_pen_range),
rep_pen_slope: kai_settings.rep_pen_slope, rep_pen_slope: kai_settings.rep_pen_slope,
temperature: parseFloat(temp), temperature: parseFloat(kai_settings.temp),
tfs: kai_settings.tfs, tfs: kai_settings.tfs,
top_a: kai_settings.top_a, top_a: kai_settings.top_a,
top_k: kai_settings.top_k, top_k: kai_settings.top_k,
@ -2004,7 +2001,6 @@ async function getSettings(type) {
textgenerationwebui_settings = textgenerationwebui_settings =
settings.textgenerationwebui_settings || textgenerationwebui_settings; settings.textgenerationwebui_settings || textgenerationwebui_settings;
temp = settings.temp;
amount_gen = settings.amount_gen; amount_gen = settings.amount_gen;
if (settings.max_context !== undefined) if (settings.max_context !== undefined)
max_context = parseInt(settings.max_context); max_context = parseInt(settings.max_context);
@ -2015,14 +2011,6 @@ async function getSettings(type) {
if (settings.character_anchor !== undefined) if (settings.character_anchor !== undefined)
character_anchor = !!settings.character_anchor; character_anchor = !!settings.character_anchor;
rep_pen = settings.rep_pen;
rep_pen_size = settings.rep_pen_size;
var addZeros = "";
if (isInt(temp)) addZeros = ".00";
$("#temp").val(temp);
$("#temp_counter").html(temp + addZeros);
$("#style_anchor").prop("checked", style_anchor); $("#style_anchor").prop("checked", style_anchor);
$("#character_anchor").prop("checked", character_anchor); $("#character_anchor").prop("checked", character_anchor);
$("#anchor_order option[value=" + anchor_order + "]").attr( $("#anchor_order option[value=" + anchor_order + "]").attr(
@ -2036,14 +2024,6 @@ async function getSettings(type) {
$("#amount_gen").val(amount_gen); $("#amount_gen").val(amount_gen);
$("#amount_gen_counter").html(amount_gen + " Tokens"); $("#amount_gen_counter").html(amount_gen + " Tokens");
addZeros = "";
if (isInt(rep_pen)) addZeros = ".00";
$("#rep_pen").val(rep_pen);
$("#rep_pen_counter").html(rep_pen + addZeros);
$("#rep_pen_size").val(rep_pen_size);
$("#rep_pen_size_counter").html(rep_pen_size + " Tokens");
swipes = !!settings.swipes; //// swipecode swipes = !!settings.swipes; //// swipecode
$('#swipes-checkbox').prop('checked', swipes); /// swipecode $('#swipes-checkbox').prop('checked', swipes); /// swipecode
console.log('getSettings -- swipes = ' + swipes + '. toggling box'); console.log('getSettings -- swipes = ' + swipes + '. toggling box');
@ -2058,7 +2038,7 @@ async function getSettings(type) {
rep_pen_novel = settings.rep_pen_novel; rep_pen_novel = settings.rep_pen_novel;
rep_pen_size_novel = settings.rep_pen_size_novel; rep_pen_size_novel = settings.rep_pen_size_novel;
addZeros = ""; let addZeros = "";
if (isInt(temp_novel)) addZeros = ".00"; if (isInt(temp_novel)) addZeros = ".00";
$("#temp_novel").val(temp_novel); $("#temp_novel").val(temp_novel);
$("#temp_counter_novel").html(temp_novel + addZeros); $("#temp_counter_novel").html(temp_novel + addZeros);
@ -2181,7 +2161,6 @@ async function saveSettings(type) {
preset_settings: preset_settings, preset_settings: preset_settings,
preset_settings_novel: preset_settings_novel, preset_settings_novel: preset_settings_novel,
user_avatar: user_avatar, user_avatar: user_avatar,
temp: temp,
amount_gen: amount_gen, amount_gen: amount_gen,
max_context: max_context, max_context: max_context,
anchor_order: anchor_order, anchor_order: anchor_order,
@ -2189,8 +2168,6 @@ async function saveSettings(type) {
character_anchor: character_anchor, character_anchor: character_anchor,
main_api: main_api, main_api: main_api,
api_key_novel: api_key_novel, api_key_novel: api_key_novel,
rep_pen: rep_pen,
rep_pen_size: rep_pen_size,
model_novel: model_novel, model_novel: model_novel,
temp_novel: temp_novel, temp_novel: temp_novel,
rep_pen_novel: rep_pen_novel, rep_pen_novel: rep_pen_novel,
@ -3732,22 +3709,10 @@ $(document).ready(function () {
const preset = koboldai_settings[koboldai_setting_names[preset_settings]]; const preset = koboldai_settings[koboldai_setting_names[preset_settings]];
loadKoboldSettings(preset); loadKoboldSettings(preset);
temp = preset.temp;
$("#temp").val(temp);
$("#temp_counter").html(temp);
amount_gen = preset.genamt; amount_gen = preset.genamt;
$("#amount_gen").val(amount_gen); $("#amount_gen").val(amount_gen);
$("#amount_gen_counter").html(amount_gen); $("#amount_gen_counter").html(amount_gen);
rep_pen = preset.rep_pen;
$("#rep_pen").val(rep_pen);
$("#rep_pen_counter").html(rep_pen);
rep_pen_size = preset.rep_pen_range;
$("#rep_pen_size").val(rep_pen_size);
$("#rep_pen_size_counter").html(rep_pen_size + " Tokens");
max_context = preset.max_length; max_context = preset.max_length;
$("#max_context").val(max_context); $("#max_context").val(max_context);
$("#max_context_counter").html(max_context + " Tokens"); $("#max_context_counter").html(max_context + " Tokens");
@ -3857,12 +3822,6 @@ $(document).ready(function () {
////////////////// OPTIMIZED RANGE SLIDER LISTENERS//////////////// ////////////////// OPTIMIZED RANGE SLIDER LISTENERS////////////////
const sliders = [ const sliders = [
{
sliderId: "#temp",
counterId: "#temp_counter",
format: (val) => isInt(val) ? val + ".00" : val,
setValue: (val) => { temp = Number(val); },
},
{ {
sliderId: "#amount_gen", sliderId: "#amount_gen",
counterId: "#amount_gen_counter", counterId: "#amount_gen_counter",
@ -3875,18 +3834,6 @@ $(document).ready(function () {
format: (val) => val + " Tokens", format: (val) => val + " Tokens",
setValue: (val) => { max_context = Number(val); }, setValue: (val) => { max_context = Number(val); },
}, },
{
sliderId: "#rep_pen",
counterId: "#rep_pen_counter",
format: (val) => isInt(val) ? val + ".00" : val,
setValue: (val) => { rep_pen = Number(val); },
},
{
sliderId: "#rep_pen_size",
counterId: "#rep_pen_size_counter",
format: (val) => val + " Tokens",
setValue: (val) => { rep_pen_size = Number(val); },
},
{ {
sliderId: "#temp_novel", sliderId: "#temp_novel",
counterId: "#temp_counter_novel", counterId: "#temp_counter_novel",
@ -4256,4 +4203,10 @@ $(document).ready(function () {
$("#shadow_select_chat_popup").css("display", "none"); $("#shadow_select_chat_popup").css("display", "none");
$("#load_select_chat_div").css("display", "block"); $("#load_select_chat_div").css("display", "block");
}); });
$('.drawer-toggle').click(function () {
var icon = $(this).find('.drawer-icon');
icon.toggleClass('down up');
$(this).closest('.drawer').find('.drawer-content').slideToggle();
});
}); });

View File

@ -8,6 +8,9 @@ export {
}; };
const kai_settings = { const kai_settings = {
temp: 1,
rep_pen: 1,
rep_pen_range: 0,
top_p: 1, top_p: 1,
top_a: 1, top_a: 1,
top_k: 0, top_k: 0,
@ -18,45 +21,79 @@ const kai_settings = {
function loadKoboldSettings(preset) { function loadKoboldSettings(preset) {
for (const name of Object.keys(kai_settings)) { for (const name of Object.keys(kai_settings)) {
kai_settings[name] = preset[name]; const value = preset[name];
$(`#${name}`).val(kai_settings[name]);
$(`#${name}_counter`).text(kai_settings[name]); if (value === undefined) {
continue;
}
const slider = sliders.find(x => x.name === name);
const formattedValue = slider.format(value);
slider.setValue(preset[name]);
$(slider.sliderId).val(preset[name]);
$(slider.counterId).text(formattedValue);
} }
} }
// Cohee's TODO: Merge with sliders block in script.js
const sliders = [ const sliders = [
{ {
name: "temp",
sliderId: "#temp",
counterId: "#temp_counter",
format: (val) => Number(val).toFixed(2),
setValue: (val) => { kai_settings.temp = Number(val); },
},
{
name: "rep_pen",
sliderId: "#rep_pen",
counterId: "#rep_pen_counter",
format: (val) => Number(val).toFixed(2),
setValue: (val) => { kai_settings.rep_pen = Number(val); },
},
{
name: "rep_pen_range",
sliderId: "#rep_pen_range",
counterId: "#rep_pen_range_counter",
format: (val) => val + " Tokens",
setValue: (val) => { kai_settings.rep_pen_range = Number(val); },
},
{
name: "top_p",
sliderId: "#top_p", sliderId: "#top_p",
counterId: "#top_p_counter", counterId: "#top_p_counter",
format: (val) => val, format: (val) => val,
setValue: (val) => { kai_settings.top_p = Number(val); }, setValue: (val) => { kai_settings.top_p = Number(val); },
}, },
{ {
name: "top_a",
sliderId: "#top_a", sliderId: "#top_a",
counterId: "#top_a_counter", counterId: "#top_a_counter",
format: (val) => val, format: (val) => val,
setValue: (val) => { kai_settings.top_a = Number(val); }, setValue: (val) => { kai_settings.top_a = Number(val); },
}, },
{ {
name: "top_k",
sliderId: "#top_k", sliderId: "#top_k",
counterId: "#top_k_counter", counterId: "#top_k_counter",
format: (val) => val, format: (val) => val,
setValue: (val) => { kai_settings.top_k = Number(val); }, setValue: (val) => { kai_settings.top_k = Number(val); },
}, },
{ {
name: "typical",
sliderId: "#typical", sliderId: "#typical",
counterId: "#typical_counter", counterId: "#typical_counter",
format: (val) => val, format: (val) => val,
setValue: (val) => { kai_settings.typical = Number(val); }, setValue: (val) => { kai_settings.typical = Number(val); },
}, },
{ {
name: "tfs",
sliderId: "#tfs", sliderId: "#tfs",
counterId: "#tfs_counter", counterId: "#tfs_counter",
format: (val) => val, format: (val) => val,
setValue: (val) => { kai_settings.tfs = Number(val); }, setValue: (val) => { kai_settings.tfs = Number(val); },
}, },
{ {
name: "rep_pen_slope",
sliderId: "#rep_pen_slope", sliderId: "#rep_pen_slope",
counterId: "#rep_pen_slope_counter", counterId: "#rep_pen_slope_counter",
format: (val) => val, format: (val) => val,
@ -65,12 +102,6 @@ const sliders = [
]; ];
$(document).ready(function () { $(document).ready(function () {
$('.drawer-toggle').click(function () {
var icon = $(this).find('.drawer-icon');
icon.toggleClass('down up');
$(this).closest('.drawer').find('.drawer-content').slideToggle();
});
sliders.forEach(slider => { sliders.forEach(slider => {
$(document).on("input", slider.sliderId, function () { $(document).on("input", slider.sliderId, function () {
const value = $(this).val(); const value = $(this).val();