Update 1.2.0 Theme of update: Characters
1) Character files now represent images, all data about the characters is located within the image file. This makes it easy to exchange characters. You do not need to redesign your old characters in the new format, the conversion will happen automatically, old character files will not be deleted 2) Import function for characters is available, you can also import characters in the old TavernAI .json format, and you can also import characters from the Pygmalion notebook format 3) Export function for characters is available 4) The chat structure has been completely redesigned, now chats are located in the public/chats folder, chats now represent jsonl files, messages can be read one line at a time from such a file, this will help for future optimization when there are many messages 5) A new menu for selecting saved TavernAI chats is now available Importing TavernAI chats is now available Importing chats from CAI is now available 6) Additional advanced settings have been added for characters. A "Scenario" field has been added, as well as a "Dialogue Examples" field 7) Full support for the Pygmalion format has been added A indicator now appears when special formatting for Pygmalion is enabled 8) Many other minor bugs have been fixed To update an old version to version 1.2.0, you simply need to copy files with replacement.
813
package-lock.json
generated
@@ -3,6 +3,10 @@
|
|||||||
"express": "^4.18.2",
|
"express": "^4.18.2",
|
||||||
"multer": "^1.4.5-lts.1",
|
"multer": "^1.4.5-lts.1",
|
||||||
"node-rest-client": "^3.1.1",
|
"node-rest-client": "^3.1.1",
|
||||||
"rimraf": "^3.0.2"
|
"png-chunk-text": "^1.0.0",
|
||||||
|
"png-chunks-encode": "^1.0.0",
|
||||||
|
"png-chunks-extract": "^1.0.0",
|
||||||
|
"rimraf": "^3.0.2",
|
||||||
|
"sharp": "^0.31.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 1.4 MiB |
BIN
public/characters/Aqua.png
Normal file
After Width: | Height: | Size: 87 KiB |
@@ -1 +0,0 @@
|
|||||||
{"name":"Aqua","description":"Aqua is a goddess, before life in the Fantasy World, she was a goddess of water who guided humans to the afterlife. Aqua looks like young woman with beauty no human could match. Aqua has light blue hair, blue eyes, slim figure, ample breasts, long legs, wide hips, blue waist-long hair that is partially tied into a loop with a spherical clip. Aqua's measurements are 83-56-83 cm. Aqua's height 157cm. Aqua wears sleeveless dark-blue dress with white trimmings, extremely short dark blue miniskirt, green bow around her chest with a blue gem in the middle, detached white sleeves with blue and golden trimmings, thigh-high blue heeled boots over white stockings with blue trimmings. Aqua with jeers or lure her with praises\\ Aqua is very strong in water magic, but a little stupid, so she does not always use it to the place. Aqua is high-spirited, cheerful, carefree. Aqua rarely thinks about the consequences of her actions and always acts or speaks on her whims. Because very easy to taunt Aqua with jeers or lure her with praises.","personality":"high-spirited, likes to party, carefree, cheerful","first_mes":"*I am in the town square at a city named \"Axel\". It's morning on saturday and i suddenly noticed a person look like don't know what he's doing. I approached to him and speak* Are you new here? Do you need help? Don't worry, i, aqua the goddess of water, shall help you! Do i look beautiful? *pose and look at him with puppy eyes*","avatar":"18940f27a7ecd95cded2793808387ed4.jpeg","chat":"1671653516700","last_mes":[",,,,,,,,,,",""],"mes_example":""}
|
|
Before Width: | Height: | Size: 752 KiB |
@@ -1 +0,0 @@
|
|||||||
["Aqua: *I am in the town square at a city named \"Axel\". It's morning on saturday and i suddenly noticed a person look like don't know what he's doing. I approached to him and speak* Are you new here? Do you need help? Don't worry, I, aqua the goddess of water, shall help you! Do i look beautiful? *pose and look at him with puppy eyes*\n"]
|
|
BIN
public/characters/Darkness.png
Normal file
After Width: | Height: | Size: 88 KiB |
@@ -1 +0,0 @@
|
|||||||
{"name":"Darkness","description":"Darkness is crusader. Darkness is young woman with graceful features and alabaster skin. Darkness from a rich aristocratic family. Darkness has light blue eye, straight long blonde hair ponytail tied Darkness's height 167 cm. Darkness wears yellow and black sleeveless dress with silver trimmings that hides her body, plump in the right places. Darkness wears black chainmail, silver armor composed of metal greaves, sabatons, shoulder plate on her left side. Darkness has masochistic tendencies. Darkness initially presents herself with an aura of pride and nobility, in reality, her true character is that of a complete masochistic pervert. Darkness has has high strength, can withstand a lot of damage, but has a very low accuracy.","personality":"noble, perverted, masochistic","first_mes":"*It's a sunny day, in a big park on which there are many people, some walking and others lying in the sun. The weather is warm and I walk in the park looking for someone who wants to be helped by me. Suddenly realise that someone is looking at me.* Hello, I am Darkness, a Crusader, and would you like some help?","avatar":"3380878abac6e8dcd32500f7fc47280b.jpeg","chat":"1671516652626","last_mes":[",,,,,,,",""],"mes_example":""}
|
|
Before Width: | Height: | Size: 158 KiB |
@@ -1 +0,0 @@
|
|||||||
["Darkness: *It's a sunny day, in a big park on which there are many people, some walking and others lying in the sun. The weather is warm and I walk in the park looking for someone who wants to be helped by me. Suddenly realise that someone is looking at me.* Hello, I am Darkness, a Crusader, and would you like some help?\n"]
|
|
BIN
public/characters/Megumin.png
Normal file
After Width: | Height: | Size: 68 KiB |
@@ -1 +0,0 @@
|
|||||||
{"name":"Megumin","description":"Megumin is an Arch Wizard of the Crimson Magic Clan. Megumin is 14 years old girl. Megumin's height 152 cm. Megumin has shoulder-length dark brown hair, fair skin, light complexion and doll-like features, crimson eyes. Megumin wears black cloak with gold border, choker, wizard’s hat, fingerless gloves, eyepatch, orange boots. Megumin's weapon is a big black staff. Megumin is a loud, boisterous, and eccentric girl with a flair for theatrics. Megumin has chuunibyou tendencies. Megumin is very intelligent, but has very little self-control. Megumin love explosion magic. Megumin is generally calm and cheerful, but she can easily become aggressive when she feels slighted or challenged. Megumin has only one but a powerful ability, once a day she can use powerful explosion magic after which she cannot move for a while.","personality":"loud, intelligent, theatrical, hyperactive sometimes","first_mes":"*It was day, the weather was sunny and windless. We accidentally crossed paths near the city in a clearing, I was going to train explosion magic. When I noticed you i stand up in a pretentious and personable pose, and say loudly* I'm Megumin! The Arch Wizard of the Crimson Magic Clan! And i the best at explosion magic!! What are you doing here?","avatar":"5a795034ade453ed351958ccc8f94bd6.jpeg","chat":"1671472375920","last_mes":[",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",""],"mes_example":""}
|
|
Before Width: | Height: | Size: 111 KiB |
@@ -1 +0,0 @@
|
|||||||
["Megumin: *It was day, the weather was sunny and windless. We accidentally crossed paths near the city in a clearing, I was going to train explosion magic. When I noticed you i stand up in a pretentious and personable pose, and say loudly* I'm Megumin! The Arch Wizard of the Crimson Magic Clan! And i the best at explosion magic!! What are you doing here?\n"]
|
|
0
public/characters/update.txt
Normal file
2
public/chats/Aqua/1673181146000.jsonl
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
{"user_name":"You","character_name":"Aqua","create_date":1674559896839}
|
||||||
|
{"name":"Aqua","is_user":false,"is_name":true,"send_date":1674563371558,"mes":"*I am in the town square at a city named \"Axel\". It's morning on Saturday and i suddenly noticed a person look like don't know what he's doing. I approached to him and speak* Are you new here? Do you need help? Don't worry, I, aqua the goddess of water, shall help you! Do i look beautiful? *strikes a pose and look at him with puppy eyes*"}
|
2
public/chats/Darkness/1673225255706.jsonl
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
{"user_name":"You","character_name":"Darkness","create_date":1674559899431}
|
||||||
|
{"name":"Darkness","is_user":false,"is_name":true,"send_date":1674564914912,"mes":"*It's a sunny day, in a big park on which there are many people, some walking and others lying in the sun. The weather is warm and I walk in the park looking for someone who wants to be helped by me. Suddenly realise that someone is looking at me.* Hello, I am Darkness, a Crusader, and would you like some help?"}
|
2
public/chats/Megumin/1673323621108.jsonl
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
{"user_name":"You","character_name":"Megumin","create_date":1674559900991}
|
||||||
|
{"name":"Megumin","is_user":false,"is_name":true,"send_date":1674563153854,"mes":"*It was day, the weather was sunny and windless. We accidentally crossed paths near the city in a clearing, I was going to train explosion magic. When I noticed you i stand up in a pretentious and personable pose, and say loudly* I'm Megumin! The Arch Wizard of the Crimson Magic Clan! And i the best at explosion magic!! What are you doing here?"}
|
BIN
public/img/book2.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
public/img/book6.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
public/img/cloud_logo.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
17
public/notes/10.html
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Chat import</title>
|
||||||
|
<link rel="stylesheet" href="/css/notes.css">
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="main">
|
||||||
|
<div id="content">
|
||||||
|
<h2>Chat import</h2>
|
||||||
|
<h3>Import chats into TavernAI</h3>
|
||||||
|
<p>For import Character.ai chats use tool: <a href="https://github.com/0x000011b/characterai-dumper">https://github.com/0x000011b/characterai-dumper</a></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
24
public/notes/11.html
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Examples of dialogue</title>
|
||||||
|
<link rel="stylesheet" href="/css/notes.css">
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="main">
|
||||||
|
<div id="content">
|
||||||
|
<h2>Examples of dialogue</h2>
|
||||||
|
<p>Describes how the character speaks. Before each example, you need to add the <START> tag.<br> Use {{char}} instead of the character name.<br> Use {{user}} instead of the user name.<br><br>Example:</p>
|
||||||
|
<p><START><br>{{user}}: Hi Aqua, I heard you like to spend time in the pub.<br>
|
||||||
|
{{char}}: *excitedly* Oh my goodness, yes! I just love spending time at the pub! It's so much fun to talk to all the adventurers and hear about their exciting adventures! And you are?<br>
|
||||||
|
|
||||||
|
{{user}}: I'm a new here and I wanted to ask for your advice.<br>
|
||||||
|
{{char}}: *giggles* Oh, advice! I love giving advice! And in gratitude for that, treat me to a drink! *gives signals to the bartender*
|
||||||
|
<br><br><START><br>
|
||||||
|
{{user}}: Hello<br>
|
||||||
|
{{char}}: *excitedly* Hello there, dear! Are you new to Axel? Don't worry, I, Aqua the goddess of water, am here to help you! Do you need any assistance? And may I say, I look simply radiant today! *strikes a pose and looks at you with puppy eyes*</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@@ -8,10 +8,13 @@
|
|||||||
<body>
|
<body>
|
||||||
<div id="main">
|
<div id="main">
|
||||||
<div id="content">
|
<div id="content">
|
||||||
<h2>Personality</h2>
|
<h2>Personality summary</h2>
|
||||||
<p>3-4 main personality characteristics should be indicated here. These characteristics will play a major role in the character's behavior. Example:<br><br>
|
<p>A brief description of the personality. It is added to the chat to a depth of 8-15 messages, so it has a significant impact on the character. Example:<br><br>
|
||||||
<i>Cheerful, cunning, provocative</i>
|
<i>Cheerful, cunning, provocative</i><br><br>
|
||||||
|
Another example:<br><br>
|
||||||
|
<i>Aqua likes to do nothing and also likes to get drunk</i>
|
||||||
</p>
|
</p>
|
||||||
|
<p>*In Pygmalion model, it is used as a "Personality:" graph</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -21,7 +21,7 @@
|
|||||||
<img src="1.png"><br><br>
|
<img src="1.png"><br><br>
|
||||||
5. Select the second request, then in the Headers tab of the inspection panel, scroll down to the very bottom. Look for a header called Authorization:<br><br>
|
5. Select the second request, then in the Headers tab of the inspection panel, scroll down to the very bottom. Look for a header called Authorization:<br><br>
|
||||||
<img src="2.png"><br><br>
|
<img src="2.png"><br><br>
|
||||||
The long string (after "Bearer", not including it) is your API key.
|
The long string (after "Bearer", not including it) is your API key.<br><br>*Proxies and Cloudflare-type services may interfere with connection
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
@@ -12,8 +12,10 @@
|
|||||||
<h4>Anchors are used to increase the length of messages. There are two types of anchors: Character Anchor and Style Anchor</h4>
|
<h4>Anchors are used to increase the length of messages. There are two types of anchors: Character Anchor and Style Anchor</h4>
|
||||||
<p><u>Character Anchor</u> - affects the character played by the AI by motivating him to write longer messages. Looks like [Alexa talks a lot with descriptions]</p>
|
<p><u>Character Anchor</u> - affects the character played by the AI by motivating him to write longer messages. Looks like [Alexa talks a lot with descriptions]</p>
|
||||||
<p><u>Style Anchor</u> - affects all AI model, motivating AI to write longer messages. Looks like [Writing style: very long messages]</p>
|
<p><u>Style Anchor</u> - affects all AI model, motivating AI to write longer messages. Looks like [Writing style: very long messages]</p>
|
||||||
<hr style="opacity: 0.6;"><p>The order of anchors sets the location of anchors in the promt, the first anchor in the order is much higher and has less influence than the one that follows it.</p>
|
<hr style="opacity: 0.6;"><p>Anchors Order sets the location of anchors in the promt, the first anchor in the order is much higher and has less influence than second.</p>
|
||||||
<p>To disable anchors, you just need to remove the checkboxes.</p>
|
<p>The second in order anchor is turned on after 8-12 messages, because the first anchor is enough when there are few messages.</p>
|
||||||
|
<p>Sometimes some AI models may not perceive anchors correctly or the AI model already generates sufficiently long messages, so for these cases, to disable anchors, you just need to uncheck the boxes.</p>
|
||||||
|
<br><p>*It is automatically disabled in Pygmalion, since Pygmalion already generates long enough messages</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
@@ -1 +1 @@
|
|||||||
{"myname":"You","api_server":"","preset_settings":"gui","preset_settings_novel":"Classic-Euterpe","user_avatar":"legat.png","temp":0.8,"amount_gen":90,"max_context":2048,"anchor_order":0,"style_anchor":true,"character_anchor":true,"main_api":"kobold","api_key_novel":"","rep_pen":1.02,"rep_pen_size":256,"model_novel":"euterpe-v2","temp_novel":1.11,"rep_pen_novel":1.11,"rep_pen_size_novel":320}
|
{"username":"You","api_server":"http://localhost:5000/api","preset_settings":"gui","preset_settings_novel":"Classic-Euterpe","user_avatar":"legat.png","temp":0.43,"amount_gen":90,"max_context":2048,"anchor_order":0,"style_anchor":true,"character_anchor":true,"main_api":"kobold","api_key_novel":"","rep_pen":1.17,"rep_pen_size":1024,"model_novel":"euterpe-v2","temp_novel":1.11,"rep_pen_novel":1.11,"rep_pen_size_novel":320}
|
311
public/style.css
@@ -177,7 +177,7 @@ body {
|
|||||||
display: none;
|
display: none;
|
||||||
width: 200px;
|
width: 200px;
|
||||||
height: 100px;
|
height: 100px;
|
||||||
bottom: 145px;
|
bottom: 196px;
|
||||||
position: relative;
|
position: relative;
|
||||||
//background-color: blue;
|
//background-color: blue;
|
||||||
z-index:1990;
|
z-index:1990;
|
||||||
@@ -188,7 +188,7 @@ body {
|
|||||||
display: block;
|
display: block;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
background-color: #191b31F3;
|
background-color: #191b31F3;
|
||||||
min-width: 160px;
|
min-width: 205px;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
//bottom: 1px;
|
//bottom: 1px;
|
||||||
}
|
}
|
||||||
@@ -275,6 +275,7 @@ body {
|
|||||||
max-width: 720px;
|
max-width: 720px;
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
animation: typing 3.5s steps(40, end), blink-caret .75s step-end infinite;
|
animation: typing 3.5s steps(40, end), blink-caret .75s step-end infinite;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.mes_text::after {
|
.mes_text::after {
|
||||||
@@ -323,18 +324,14 @@ textarea{
|
|||||||
height: 200px;
|
height: 200px;
|
||||||
margin-top: 0px;
|
margin-top: 0px;
|
||||||
}
|
}
|
||||||
#personality_textarea{
|
|
||||||
width: 92%;
|
|
||||||
height: 65px;
|
|
||||||
margin-top: 0px;
|
|
||||||
}
|
|
||||||
#character_name_pole{
|
#character_name_pole{
|
||||||
|
|
||||||
width: 92%;
|
width: 92%;
|
||||||
}
|
}
|
||||||
#firstmessage_textarea{
|
#firstmessage_textarea{
|
||||||
width: 92%;
|
width: 92%;
|
||||||
height: 180px;
|
height: 140px;
|
||||||
margin-top: 0px;
|
margin-top: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -406,7 +403,14 @@ input[type=submit] {
|
|||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
background-color: #191b31;
|
background-color: #191b31;
|
||||||
}
|
}
|
||||||
|
input[type=button] {
|
||||||
|
font-weight: bold;
|
||||||
|
color: #fff;
|
||||||
|
padding: 0.5em;
|
||||||
|
border: thin solid rgba(200,200,200,0.2);
|
||||||
|
border-radius: 3px;
|
||||||
|
background-color: #191b31;
|
||||||
|
}
|
||||||
.right_menu_button{
|
.right_menu_button{
|
||||||
display:inline-block;
|
display:inline-block;
|
||||||
//box-shadow: 0 0 5px -1px rgba(0,0,0,0.2);
|
//box-shadow: 0 0 5px -1px rgba(0,0,0,0.2);
|
||||||
@@ -419,7 +423,19 @@ input[type=submit] {
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#character_import_button{
|
||||||
|
cursor: pointer;
|
||||||
|
display: inline-block;
|
||||||
|
margin-left: 15px;//274px;
|
||||||
|
margin-top: 6px;//10px;
|
||||||
|
|
||||||
|
}
|
||||||
|
#character_import_button h2{
|
||||||
|
margin-top: auto;
|
||||||
|
margin-bottom: auto;
|
||||||
|
font-size: 17px;
|
||||||
|
color: rgb(188, 193, 200, 0.5);
|
||||||
|
}
|
||||||
.right_menu_button:active {
|
.right_menu_button:active {
|
||||||
color:red;
|
color:red;
|
||||||
box-shadow: 0 0 5px -1px rgba(0,0,0,0.05);
|
box-shadow: 0 0 5px -1px rgba(0,0,0,0.05);
|
||||||
@@ -484,12 +500,13 @@ input[type=submit] {
|
|||||||
#selected_chat_div{
|
#selected_chat_div{
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
#create_date_div{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
#last_mes_div{
|
#last_mes_div{
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
#mes_example_div{
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
#rm_button_selected_ch{
|
#rm_button_selected_ch{
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -630,18 +647,19 @@ input[type=submit] {
|
|||||||
margin-top: 6px;
|
margin-top: 6px;
|
||||||
|
|
||||||
}
|
}
|
||||||
#personality_div{
|
|
||||||
margin-top: 20px;
|
|
||||||
}
|
|
||||||
#first_message_div{
|
#first_message_div{
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
}
|
}
|
||||||
|
#advanced_div{
|
||||||
|
margin-top: 20px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
#create_button{
|
#create_button{
|
||||||
|
opacity: 0.8;
|
||||||
margin-left: 9px;
|
margin-left: 9px;
|
||||||
margin-top: 8px;
|
margin-top: 8px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
font-size: 16px;
|
font-size: 14px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -675,12 +693,22 @@ input[type=submit] {
|
|||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
}
|
}
|
||||||
#delete_button{
|
#delete_button{
|
||||||
|
opacity: 0.51;//0.5
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: block;
|
display: block;
|
||||||
float:right;
|
float:right;
|
||||||
margin-top: 25px;
|
margin-top: 25px;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
color: #ffffff66;
|
color: #ffffff68;//66
|
||||||
|
}
|
||||||
|
#export_button{
|
||||||
|
opacity: 0.51;
|
||||||
|
cursor: pointer;
|
||||||
|
display: block;
|
||||||
|
float:right;
|
||||||
|
margin-top: 25px;
|
||||||
|
margin-right: 16px;
|
||||||
|
color: #ffffff68;
|
||||||
}
|
}
|
||||||
#result_info{
|
#result_info{
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
@@ -795,12 +823,13 @@ input[type=submit] {
|
|||||||
min-height: 40px;
|
min-height: 40px;
|
||||||
}
|
}
|
||||||
#shadow_popup{
|
#shadow_popup{
|
||||||
|
background-color: #00000066;
|
||||||
display: none;
|
display: none;
|
||||||
opacity: 0.0;
|
opacity: 0.0;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
z-index: 2055;
|
z-index: 2095;
|
||||||
}
|
}
|
||||||
#bgtest{
|
#bgtest{
|
||||||
display: none;
|
display: none;
|
||||||
@@ -1119,3 +1148,247 @@ label.checkbox :checked + span:after {
|
|||||||
grid-template-rows: 30px auto;
|
grid-template-rows: 30px auto;
|
||||||
grid-template-columns: auto auto;
|
grid-template-columns: auto auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#shadow_character_popup{
|
||||||
|
display: block;
|
||||||
|
opacity: 1.0;
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100vh;
|
||||||
|
z-index: 2058;
|
||||||
|
}
|
||||||
|
#character_popup{
|
||||||
|
display: none;
|
||||||
|
grid-template-rows: 50px 100px 100px 40px auto 45px 45px;
|
||||||
|
max-width:800px;
|
||||||
|
height: 83vh;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 2065;
|
||||||
|
background-color: blue;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
//text-align: center;
|
||||||
|
margin-top: 0px;
|
||||||
|
box-shadow: 0 0 2px rgba(200,200,200,0.1);
|
||||||
|
padding: 4px;
|
||||||
|
background: #191b31F5;
|
||||||
|
border-radius: 1px;
|
||||||
|
}
|
||||||
|
#character_popup h5 a{
|
||||||
|
color: #936f4a;
|
||||||
|
}
|
||||||
|
#character_popup h5 a:hover{
|
||||||
|
color: #998e6b;
|
||||||
|
}
|
||||||
|
#character_popup h4 a{
|
||||||
|
color: #936f4a;
|
||||||
|
}
|
||||||
|
#character_popup h4 a:hover{
|
||||||
|
color: #998e6b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#character_popup h3{
|
||||||
|
//margin-top: 0px;
|
||||||
|
margin-bottom: 0px;
|
||||||
|
margin-left: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#character_popup h4{
|
||||||
|
margin-top: 0px;
|
||||||
|
margin-bottom: 0px;
|
||||||
|
margin-left: 0px;
|
||||||
|
}
|
||||||
|
#character_popup h5{
|
||||||
|
margin-top: 0px;
|
||||||
|
margin-bottom: 3px;
|
||||||
|
margin-left: 0px;
|
||||||
|
color: #757575;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#character_popup_text{
|
||||||
|
margin-left: 36px;
|
||||||
|
}
|
||||||
|
#personality_div{
|
||||||
|
margin-left: 36px;
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
#personality_textarea{
|
||||||
|
width: 92%;
|
||||||
|
//height: 65px;
|
||||||
|
margin-top: 0px;
|
||||||
|
margin-left: 0px;
|
||||||
|
}
|
||||||
|
#scenario_div{
|
||||||
|
padding-top: 10px;
|
||||||
|
margin-left: 36px;
|
||||||
|
}
|
||||||
|
#mes_example_div{
|
||||||
|
margin-left: 36px;
|
||||||
|
max-height: 100%;
|
||||||
|
}
|
||||||
|
#scenario_pole{
|
||||||
|
width: 92%;
|
||||||
|
margin-left: 0px;
|
||||||
|
}
|
||||||
|
#mes_example_textarea{
|
||||||
|
margin-left: 36px;
|
||||||
|
width: 88%;
|
||||||
|
height: 100%;
|
||||||
|
margin-top: 0px;
|
||||||
|
}
|
||||||
|
#character_popup_ok{
|
||||||
|
cursor: pointer;
|
||||||
|
display: none;//grid;
|
||||||
|
place-items: center;
|
||||||
|
height: 40px;
|
||||||
|
margin-top: 15px;
|
||||||
|
margin-left: 36px;//36px;329px;/
|
||||||
|
//margin-right: auto;
|
||||||
|
width: 110px;//80px
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#shadow_select_chat_popup{
|
||||||
|
display: none;
|
||||||
|
opacity: 1.0;
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100vh;
|
||||||
|
z-index: 2059;
|
||||||
|
background-color: #00000066;
|
||||||
|
}
|
||||||
|
#select_chat_popup{
|
||||||
|
display: block;
|
||||||
|
grid-template-rows: 50px 100px 100px auto 45px;
|
||||||
|
max-width:450px;
|
||||||
|
height: 440px;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 2066;
|
||||||
|
background-color: blue;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
//text-align: center;
|
||||||
|
margin-top: 21vh;
|
||||||
|
box-shadow: 0 0 2px rgba(200,200,200,0.1);
|
||||||
|
padding: 4px;
|
||||||
|
background: #191b31F0;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
#select_chat_popup a{
|
||||||
|
color: #936f4a;
|
||||||
|
}
|
||||||
|
#select_chat_popup a:hover{
|
||||||
|
color: #998e6b;
|
||||||
|
}
|
||||||
|
#chat_import_button a{
|
||||||
|
color: #d5c9be;
|
||||||
|
}
|
||||||
|
#chat_import_button a:hover{
|
||||||
|
color: #998e6b;
|
||||||
|
}
|
||||||
|
#export_div{
|
||||||
|
cursor:pointer;
|
||||||
|
}
|
||||||
|
#load_select_chat_div{
|
||||||
|
position: absolute;
|
||||||
|
bottom: 154px;
|
||||||
|
left: 174px;
|
||||||
|
}
|
||||||
|
#load_select_chat_div img{
|
||||||
|
width: 80px;
|
||||||
|
height: 80px;
|
||||||
|
}
|
||||||
|
#select_chat_div{
|
||||||
|
|
||||||
|
margin-left: 5px;
|
||||||
|
margin-top: 30px;
|
||||||
|
scrollbar-width: thin;
|
||||||
|
//width: 900px;
|
||||||
|
//height: 80%;
|
||||||
|
overflow: hidden;
|
||||||
|
overflow-y: scroll;
|
||||||
|
max-width:430px;
|
||||||
|
height: 350px;
|
||||||
|
}
|
||||||
|
#select_chat_div hr{
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
#chat_import_button{
|
||||||
|
margin-top: 15px;
|
||||||
|
margin-left: 13px;
|
||||||
|
cursor:pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select_chat_block{
|
||||||
|
border-radius: 5px;
|
||||||
|
margin-right: 10px;
|
||||||
|
cursor:pointer;
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 60px auto;
|
||||||
|
grid-template-rows: 26px auto;
|
||||||
|
}
|
||||||
|
.select_chat_block:hover {
|
||||||
|
background-color: #ffffff07;
|
||||||
|
}
|
||||||
|
.select_chat_block[highlight]{
|
||||||
|
background-color: #ffffff09;//#c2b07a12;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select_chat_block .avatar{
|
||||||
|
|
||||||
|
grid-row: span 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select_chat_block_filename{
|
||||||
|
opacity:0.5;
|
||||||
|
}
|
||||||
|
.select_chat_block_mes{
|
||||||
|
margin-right: 6px;
|
||||||
|
}
|
||||||
|
#advanced_div{
|
||||||
|
font-size: 14px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: 28px;
|
||||||
|
background-position: 92px 5px;
|
||||||
|
//background-image: url('img/book5.png');
|
||||||
|
width: 92%;
|
||||||
|
height: 40px;
|
||||||
|
margin-left: 10px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #ffffffbb;
|
||||||
|
padding: 0.5em;
|
||||||
|
border: thin solid rgba(200,200,200,0.2);
|
||||||
|
border-radius: 3px;
|
||||||
|
background-color: #191b3133;
|
||||||
|
opacity: 1.0;
|
||||||
|
font-family: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
|
||||||
|
}
|
||||||
|
#advanced_book_logo{
|
||||||
|
width: 35px;
|
||||||
|
height: 35px;
|
||||||
|
display: inline-block;
|
||||||
|
position: absolute;
|
||||||
|
top:19px;
|
||||||
|
}
|
||||||
|
#character_popup_text_h3{
|
||||||
|
display: inline-block;
|
||||||
|
margin-left: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#export_character_div{
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 340px auto;
|
||||||
|
}
|
@@ -1,14 +1,17 @@
|
|||||||
### TavernAI is a adventure atmospheric chat (KoboldAI, NovelAI)
|
### TavernAI is a adventure atmospheric chat (KoboldAI, NovelAI, Pygmalion)
|
||||||
Examples of interface and output:
|
Examples of interface and output:
|
||||||
<br><img src="readme/1.png" height="200" /><img src="readme/4.png" height="200" /><img src="readme/5.png" height="200" />
|
<br><img src="readme/1.png" height="200" /><img src="readme/4.png" height="200" /><img src="readme/5.png" height="200" />
|
||||||
|
|
||||||
[@@@Download TavernAI@@@](https://github.com/TavernAI/TavernAI/archive/refs/heads/main.zip) (Last version)
|
[@@@Download TavernAI@@@](https://github.com/TavernAI/TavernAI/archive/refs/heads/main.zip) (Last version)<br><br>
|
||||||
|
[TavernAI Discrod](https://discord.gg/zmK2gmr45t)<br>
|
||||||
|
[TavetnAI Boosty](https://boosty.to/tavernai) (A common online database with characters is currently being developed)<br>
|
||||||
## Features
|
## Features
|
||||||
* Creating characters with personality setup
|
* Creating characters with personality setup
|
||||||
* Choosing name and avatar for your character
|
* Choosing name and avatar for your character
|
||||||
* Deleting and regenerating messages
|
* Deleting and regenerating messages
|
||||||
* Editing any messages
|
* Editing any messages
|
||||||
* Works with various ai models
|
* Works with various ai models
|
||||||
|
* Importing chats from CAI
|
||||||
* More longer messages from characters
|
* More longer messages from characters
|
||||||
* Choosing atmospheric backgrounds
|
* Choosing atmospheric backgrounds
|
||||||
* Creating and easy choosing preset settings
|
* Creating and easy choosing preset settings
|
||||||
|