diff --git a/public/index.html b/public/index.html index c7a3cc968..1db0d359f 100644 --- a/public/index.html +++ b/public/index.html @@ -262,7 +262,7 @@
-

Text generation presets

+

Text generation web UI presets

@@ -350,15 +350,43 @@
- No repeat ngram size + Encoder Repetition Penalty
- select + select
- +
+
+
+ No Repeat Ngram Size +
+
+ select +
+
+ +
+
+
+
+ Min Length +
+
+ select +
+
+ +
+
+
+ +
@@ -558,7 +586,7 @@ select
- +
@@ -569,9 +597,39 @@ select
- +
+

Beam search

+
+
+ Number of Beams +
+
+ select +
+
+ +
+
+
+
+ Length Penalty +
+
+ select +
+
+ +
+
+
+ +
+

Contrastive search

Penalty Alpha @@ -583,6 +641,17 @@
+
+
+ Seed +
+ +
+ +
+
diff --git a/public/script.js b/public/script.js index cd2f4986a..d045982fc 100644 --- a/public/script.js +++ b/public/script.js @@ -1428,25 +1428,24 @@ async function Generate(type, automatic_trigger, force_name2) {//encode("dsfs"). } if (main_api == 'textgenerationwebui') { - const doSample = textgenerationwebui_settings.penalty_alpha == 0; var generate_data = { data: [ finalPromt, this_amount_gen, // max new tokens - doSample, // do_sample + textgenerationwebui_settings.do_sample, // do_sample textgenerationwebui_settings.temp, // temperature textgenerationwebui_settings.top_p, // top_p textgenerationwebui_settings.typical_p, // typical_p textgenerationwebui_settings.rep_pen, // repetition_penalty - 1.0, // encoder rep pen + textgenerationwebui_settings.encoder_rep_pen, // encoder rep pen textgenerationwebui_settings.top_k, // top_k - 0, // min_length - textgenerationwebui_settings.rep_pen_size, // no_repeat_ngram_size - 1, // num_beams + textgenerationwebui_settings.min_length, // min_length + textgenerationwebui_settings.no_repeat_ngram_size, // no_repeat_ngram_size + textgenerationwebui_settings.num_beams, // num_beams textgenerationwebui_settings.penalty_alpha, // penalty_alpha - 1, // length_penalty - false, // early_stopping - -1, // seed + textgenerationwebui_settings.length_penalty, // length_penalty + textgenerationwebui_settings.early_stopping, // early_stopping + textgenerationwebui_settings.seed, // seed name1, // name1 name2, // name2 "", // Context diff --git a/public/scripts/textgen-settings.js b/public/scripts/textgen-settings.js index 847e54c94..a52f18bb4 100644 --- a/public/scripts/textgen-settings.js +++ b/public/scripts/textgen-settings.js @@ -8,32 +8,55 @@ export { } let textgenerationwebui_settings = { - temp: 0.5, - top_p: 0.9, - top_k: 0, + temp: 0.7, + top_p: 0.5, + top_k: 40, typical_p: 1, - rep_pen: 1.1, - rep_pen_size: 0, + rep_pen: 1.2, + no_repeat_ngram_size: 0, penalty_alpha: 0, + num_beams: 1, + length_penalty: 1, + min_length: 0, + encoder_rep_pen: 1, + do_sample: true, + early_stopping: false, + seed: -1, }; const setting_names = [ "temp", "rep_pen", - "rep_pen_size", + "no_repeat_ngram_size", "top_k", "top_p", "typical_p", "penalty_alpha", + "num_beams", + "length_penalty", + "min_length", + "encoder_rep_pen", + "do_sample", + "early_stopping", + "seed", ]; function loadTextGenSettings(settings) { - textgenerationwebui_settings = settings ? settings : textgenerationwebui_settings; + if (settings) { + Object.assign(textgenerationwebui_settings, settings); + } for (const i of setting_names) { - const val = parseFloat(textgenerationwebui_settings[i]); - $(`#${i}_textgenerationwebui`).val(val); - $(`#${i}_counter_textgenerationwebui`).text(val.toFixed(2)); + const isCheckbox = $(`#${i}_textgenerationwebui`).attr('type') == 'checkbox'; + if (isCheckbox) { + const val = Boolean(textgenerationwebui_settings[i]); + $(`#${i}_textgenerationwebui`).prop('checked', val); + } + else { + const val = parseFloat(textgenerationwebui_settings[i]); + $(`#${i}_textgenerationwebui`).val(val); + $(`#${i}_counter_textgenerationwebui`).text(val.toFixed(2)); + } } } @@ -41,10 +64,19 @@ $(document).ready(function() { for (const i of setting_names) { $(`#${i}_textgenerationwebui`).attr("x-setting-id", i); $(document).on("input", `#${i}_textgenerationwebui`, function () { + const isCheckbox = $(this).attr('type') == 'checkbox'; const id = $(this).attr("x-setting-id"); - const val = parseFloat($(this).val()); - $(`#${id}_counter_textgenerationwebui`).text(val.toFixed(2)); - textgenerationwebui_settings[id] = parseFloat(val); + + if (isCheckbox) { + const value = $(this).prop('checked'); + textgenerationwebui_settings[id] = value; + } + else { + const value = parseFloat($(this).val()); + $(`#${id}_counter_textgenerationwebui`).text(value.toFixed(2)); + textgenerationwebui_settings[id] = parseFloat(value); + } + saveSettingsDebounced(); }); }