1) Corrected message breaks for Pygmalion models
2) Fixed NovelAI max context overflow
This commit is contained in:
Ash
2023-01-12 20:25:09 +04:00
parent a0c6f6d482
commit 308c780d69
5 changed files with 120 additions and 107 deletions

View File

@@ -2,7 +2,7 @@
"file_version": 2,
"max_length": 2048,
"ikmax": 3000,
"genamt": 80,
"genamt": 180,
"ikgen": 200,
"rep_pen": 1.17,
"rep_pen_slope": 0.2,

View File

@@ -2,7 +2,7 @@
"file_version": 2,
"max_length": 2048,
"ikmax": 3000,
"genamt": 80,
"genamt": 180,
"ikgen": 200,
"rep_pen": 1.08,
"rep_pen_slope": 0.9,

View File

@@ -1,54 +0,0 @@
{
"apikey": "",
"andepth": 1,
"sampler_order": [
6,
4,
3,
2,
0,
1,
5
],
"temp": 0.8,
"top_p": 0.90,
"top_k": 0.0,
"tfs": 0.96,
"typical": 0.98,
"top_a": 0.02,
"rep_pen": 1.01,
"rep_pen_slope": 0.8,
"rep_pen_range": 448.0,
"genamt": 90,
"max_length": 2048,
"ikgen": 200,
"formatoptns": {
"frmttriminc": true,
"frmtrmblln": false,
"frmtrmspch": false,
"frmtadsnsp": true,
"singleline": false
},
"numseqs": 1,
"widepth": 3,
"useprompt": false,
"adventure": false,
"chatmode": false,
"chatname": "You",
"dynamicscan": false,
"nopromptgen": false,
"rngpersist": false,
"nogenmod": false,
"fulldeterminism": false,
"autosave": false,
"welcome": "## Warning: This model has a very heavy NSFW bias and is not suitable for use by minors!\n\nYou are currently running story-writing model `Erebus, version 1 (20B).`\n\n This model is made by [Mr. Seeker](https://www.patreon.com/mrseeker) with help of ProudNoob and the KoboldAI team.\n\n### How to use this model\n\nErebus is designed to generate short stories and novels. Use the author's note to give it a certain genre to follow, use memory to give an overview of the story and use World Information to give specific details about the characters. To start off, give the AI an idea of what you are writing about by setting the scene. Give the AI around 10 sentences that make your story interesting to read. Introduce your character, describe the world, blow something up, or let the AI use its creative mind.",
"output_streaming": true,
"show_probs": false,
"show_budget": false,
"seed": null,
"newlinemode": "n",
"antemplate": "",
"userscripts": [],
"corescript": "default.lua",
"softprompt": ""
}

View File

@@ -92,6 +92,11 @@
var rep_pen_size = 100;
var is_pygmalion = false;
var tokens_already_generated = 0;
var message_already_generated = '';
var if_typing_text = false;
const tokens_cycle_count = 30;
var cycle_count_generation = 0;
var anchor_order = 0;
var style_anchor = true;
@@ -416,7 +421,13 @@
//}
messageText = messageFormating(messageText, characterName);
$("#chat").append( "<div class='mes' mesid="+count_view_mes+" ch_name="+characterName+"><div class='for_checkbox'></div><input type='checkbox' class='del_checkbox'><div class=avatar><img src='"+avatarImg+"' width=60px height=120px></div><div class=mes_block><div class=ch_name>"+characterName+"<div title=Edit class=mes_edit><img src=img/scroll.png style='width:20px;height:20px;'></div><div class=mes_edit_cancel><img src=img/cancel.png></div><div class=mes_edit_done><img src=img/done.png></div></div><div class=mes_text>"+messageText+"</div></div></div>" );
$("#chat").append( "<div class='mes' mesid="+count_view_mes+" ch_name="+characterName+"><div class='for_checkbox'></div><input type='checkbox' class='del_checkbox'><div class=avatar><img src='"+avatarImg+"' width=60px height=120px></div><div class=mes_block><div class=ch_name>"+characterName+"<div title=Edit class=mes_edit><img src=img/scroll.png style='width:20px;height:20px;'></div><div class=mes_edit_cancel><img src=img/cancel.png></div><div class=mes_edit_done><img src=img/done.png></div></div><div class=mes_text>"+"</div></div></div>" );
if(!if_typing_text){
$("#chat").children().filter('[mesid="'+count_view_mes+'"]').children('.mes_block').children('.mes_text').append(messageText);
}else{
typeWriter($("#chat").children().filter('[mesid="'+count_view_mes+'"]').children('.mes_block').children('.mes_text'), messageText, 50, 0);
}
count_view_mes++;
if(!add_mes_without_animation){
$('#chat').children().last().css("opacity",1.0);
@@ -432,7 +443,14 @@
var $textchat = $('#chat');
$textchat.scrollTop($textchat[0].scrollHeight);
}
function typeWriter(target, text, speed, i) {
if (i < text.length) {
//target.append(text.charAt(i));
target.html(target.html() + text.charAt(i));
i++;
setTimeout(() => typeWriter(target, text, speed, i), speed);
}
}
function newMesPattern(name){ //Patern which denotes a new message
name = name+':';
return name;
@@ -447,7 +465,8 @@
}
});
async function Generate(type) {//encode("dsfs").length
tokens_already_generated = 0;
message_already_generated = name2+': ';
if(online_status != 'no_connection' && this_chid != undefined){
if(type != 'regenerate'){
var textareaText = $("#send_textarea").val();
@@ -512,7 +531,7 @@
var charPersonality = characters[this_chid].personality;
if(is_pygmalion){
storyString = name2+"'s Persona: "+$.trim(characters[this_chid].description)+"\n<START>\n";
storyString = name2+"'s Persona: "+$.trim(characters[this_chid].description)+" "+name2+" is "+charPersonality+".\n<START>\n";
}else{
if($.trim(charPersonality.length) > 0){
charPersonality = "["+name2+" is "+charPersonality+"]";//"["+name2+"'s personality: "+charPersonality+"]";
@@ -544,7 +563,7 @@
if(novel_tier === 1){
this_max_context = 1024;
}else{
this_max_context = 2048;
this_max_context = 2048-60;//fix for fat tokens
}
}
@@ -563,8 +582,8 @@
i++;
}
function runGenerate(){
function runGenerate(cycleGenerationPromt = ''){
if(cycleGenerationPromt === ''){
chatString = "";
arrMes = arrMes.reverse();
var is_add_personality = false;
@@ -613,18 +632,33 @@
}
//console.log(JSON.stringify(storyString));
//Send story string
}else{
storyString = cycleGenerationPromt;
}
var generate_data;
if(main_api == 'kobold'){
var generate_data = {prompt: storyString, gui_settings: true,max_length: amount_gen,temperature: temp, max_context_length: max_context};
if(preset_settings != 'gui'){
var this_settings = koboldai_settings[koboldai_setting_names[preset_settings]];
var this_amount_gen = parseInt(amount_gen);
if(is_pygmalion){
if(tokens_already_generated === 0){
if(parseInt(amount_gen) >= 90){
this_amount_gen = 90;
}else{
this_amount_gen = parseInt(amount_gen);
}
}else{
this_amount_gen = tokens_cycle_count;
}
}
generate_data = {prompt: storyString,
gui_settings: false,
sampler_order: this_settings.sampler_order,
max_context_length: parseInt(max_context),//this_settings.max_length,
max_length: parseInt(amount_gen),
max_length: this_amount_gen,//parseInt(amount_gen),
rep_pen: parseFloat(rep_pen),
rep_pen_range: parseInt(rep_pen_size),
rep_pen_slope: this_settings.rep_pen_slope,
@@ -697,6 +731,22 @@
if(main_api == 'novel'){
var getMessage = data.output;
}
//Pygmalion run again
if(is_pygmalion){
if_typing_text = false;
message_already_generated +=getMessage;
if(message_already_generated.indexOf('You:') === -1 && tokens_already_generated < parseInt(amount_gen)){
if(tokens_already_generated === 0){
getMessage = getMessage.trimStart();
getMessage = ' '+getMessage;
}
tokens_already_generated += tokens_cycle_count;
runGenerate(storyString+getMessage);
return;
}
getMessage = message_already_generated;
}
//Formating
getMessage = $.trim(getMessage);
if(is_pygmalion){
@@ -2329,7 +2379,7 @@
<input id="your_name_button" type="submit" value="Change">
</form>
<hr>
<div style="opacity:0.7">
<div style="opacity:0.80">
<h3 style='margin-bottom: 10px;'>Pro Settings</h3>
<div id="amount_gen_block">
<h4>Amount generation </h4><h5 id="amount_gen_counter">select</h5>

View File

@@ -274,6 +274,23 @@ body {
padding-right: 40px;
max-width: 720px;
word-wrap: break-word;
animation: typing 3.5s steps(40, end), blink-caret .75s step-end infinite;
}
.mes_text::after {
content: "▋";
animation: blink 1s steps(1) infinite;
opacity: 0.7;
display: none;
}
@keyframes blink {
60% {
visibility: hidden;
}
}
.mes_text i{
//color: rgb(229, 224, 216, 0.5);
}
br {
display: block;