Merge branch 'dev-settings-on-top' into dev

This commit is contained in:
SillyLossy
2023-03-21 12:53:47 +02:00
79 changed files with 535 additions and 473 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 346 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 226 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 428 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 402 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 584 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 358 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 314 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 463 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 549 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 491 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 558 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 354 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 432 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 676 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 227 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 592 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 735 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 621 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 394 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 454 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 414 KiB

View File

@ -57,7 +57,7 @@
<div id="bg1"></div>
<div id="bg2"></div>
<!-- top bar central settings buttons -->
<!-- top bar central settings buttons -->
<div id="top-bar">
</div>
<div id="top-settings-holder">
@ -84,7 +84,7 @@
<div class="drawer-toggle drawer-header">
<div class="drawer-icon icon-connect closedIcon"></div>
</div>
<div id="rm_api_block" class="drawer-content closedDrawer" >
<div id="rm_api_block" class="drawer-content closedDrawer">
<div id="main-API-selector-block">
<h3 id="title_api">API</h3>
<select id="main_api">
@ -97,8 +97,7 @@
<form action="javascript:void(null);" method="post" enctype="multipart/form-data">
<h4>API url</h4>
<h5>Example: http://127.0.0.1:5000/api </h5>
<input id="api_url_text" name="api_url" class="text_pole" maxlength="500" value=""
autocomplete="off">
<input id="api_url_text" name="api_url" class="text_pole" maxlength="500" value="" autocomplete="off">
<input id="api_button" class="menu_button" type="submit" value="Connect">
<img id="api_loading" src="img/load.svg">
<div id="online_status2">
@ -137,21 +136,25 @@
</div>
<div id="textgenerationwebui_api" style="display: none;position: relative;">
<div class="oobabooga_logo">
<a href="https://github.com/oobabooga/text-generation-webui"target="_blank">
<a href="https://github.com/oobabooga/text-generation-webui" target="_blank">
oobabooga/text-generation-webui
</a>
</div>
<span>Make sure you run it:
<ul>
<li>with <pre>--no-stream</pre> option</li>
<li>in notebook mode (not <pre>--cai-chat</pre> or <pre>--chat</pre>)</li>
<li>with
<pre>--no-stream</pre> option
</li>
<li>in notebook mode (not
<pre>--cai-chat</pre> or
<pre>--chat</pre>)
</li>
</ul>
</span>
<form action="javascript:void(null);" method="post" enctype="multipart/form-data">
<h4>API url</h4>
<h5>Example: http://127.0.0.1:7860/ </h5>
<input id="textgenerationwebui_api_url_text" name="textgenerationwebui_api_url"
class="text_pole" maxlength="500" size="35" value="" autocomplete="off">
<input id="textgenerationwebui_api_url_text" name="textgenerationwebui_api_url" class="text_pole" maxlength="500" size="35" value="" autocomplete="off">
<input id="api_button_textgenerationwebui" class="menu_button" type="submit" value="Connect">
<img id="api_loading_textgenerationwebui" src="img/load.svg">
</form>
@ -173,17 +176,14 @@
<div id="user_avatar_block">
<div class="avatar_upload">+</div>
</div>
<form id="form_upload_avatar" action="javascript:void(null);" method="post"
enctype="multipart/form-data">
<form id="form_upload_avatar" action="javascript:void(null);" method="post" enctype="multipart/form-data">
<input type="file" id="avatar_upload_file" accept="image/png" name="avatar">
</form>
<form id='form_change_name' action="javascript:void(null);" method="post" enctype="multipart/form-data">
<br>
<h4>Name</h4>
<input id="your_name" name="your_name" class="text_pole" maxlength="35" value=""
autocomplete="off"><br>
<input id="your_name_button" class="menu_button" type="submit"
title="Click to set a new User Name (reloads page)" value="Change Name">
<input id="your_name" name="your_name" class="text_pole" maxlength="35" value="" autocomplete="off"><br>
<input id="your_name_button" class="menu_button" type="submit" title="Click to set a new User Name (reloads page)" value="Change Name">
</form>
<div id="power-user-options-block">
<h3>Power User Options</h3>
@ -238,7 +238,6 @@
</div>
<div id="respective-ranges-and-temps">
<div id="range_block">
<div class="range-block">
<div class="range-block-title">
Temperature
@ -274,31 +273,75 @@
</div>
</div>
<div id="range_block_novel">
<div class="range-block-title">
Temperature
</div>
<div class="range-block-counter">
<span id="temp_counter_novel">select</span>
</div>
<div class="range-block-range">
<input type="range" id="temp_novel" name="volume" min="0.1" max="2.0" step="0.01">
</div>
<div class="range-block-title">
Repetition Penalty
</div>
<div class="range-block-counter">
<span id="rep_pen_counter_novel">select</span>
</div>
<div class="range-block-range">
<input type="range" id="rep_pen_novel" name="volume" min="1" max="1.5" step="0.01">
</div>
<div class="range-block-title"></div>
Repetition Penalty Range
<div class="range-block-counter">
<span id="rep_pen_size_counter_novel">select</span>
</div>
<div class="range-block-range">
<input type="range" id="rep_pen_size_novel" name="volume" min="0" max="2048" step="1">
</div>
</div>
<div id="range_block_textgenerationwebui">
<div class="range-block">
<div class="range-block-title">
Temperature
</div>
<div class="range-block-counter">
<span id="temp_counter_textgenerationwebui">select</span>
</div>
<div class="range-block-range">
<input type="range" id="temp_textgenerationwebui" name="volume" min="0.1" max="2.0" step="0.01">
</div>
</div>
<div class="range-block">
<div class="range-block-title">
Repetition Penalty
</div>
<div class="range-block-counter">
<span id="rep_pen_counter_textgenerationwebui">select</span>
</div>
<div class="range-block-range">
<input type="range" id="rep_pen_textgenerationwebui" name="volume" min="1" max="1.5" step="0.01">
</div>
</div>
<div class="range-block">
<div class="range-block-title">
Repetition Penalty Range
</div>
<div class="range-block-counter">
<span id="rep_pen_size_counter_textgenerationwebui">select</span>
</div>
<div class="range-block-range">
<input type="range" id="rep_pen_size_textgenerationwebui" name="volume" min="0" max="2048" step="1">
</div>
</div>
</div>
</div>
<div id="anchors-block">
Anchors Order
<a href="/notes/9" class="notes-link" target="_blank"><span class="note-link-span">?</span></a>
<a href="/notes/9" class="notes-link" target="_blank">
<span class="note-link-span">?</span>
</a>
<br>
<select id="anchor_order">
<option value="0">Character then Style</option>
@ -313,15 +356,16 @@
</label>
</div>
</div>
<label class="checkbox_label" for="single_line">
<input id="single_line" type="checkbox" />
Single-line mode
</label>
</div>
<div id="ai-settings-flex-col2" class="wide50p">
<div id="advanced-ai-config-block">
<div id="kobold_api-settings">
<div id="kobold-advanced-config">
<label class="checkbox_label" for="single_line">
<input id="single_line" type="checkbox" />
Single-line mode
</label>
<div class="range-block">
<div class="range-block-title">
Top P Sampling
@ -392,25 +436,50 @@
</div>
<div id="novel_api-settings">
***COMING SOON***
</div>
<div id="textgenerationwebui_api-settings">
<div>
<h3>Advanced Settings</h3>
<div class="range-block">
<div class="range-block-title">
Top K
<span id="top_k_counter_textgenerationwebui">select</span>
</div>
<div class="range-block-counter">
<span id=" top_k_counter_textgenerationwebui">select</span>
</div>
<div class="range-block-range">
<input type="range" id="top_k_textgenerationwebui" name="volume" min="0" max="200" step="1">
</div>
<div class="range-block">
<div class="range-block-title">
Top P
<span id="top_p_counter_textgenerationwebui">select</span>
</div>
<div class="range-block-counter">
<span id=" top_p_counter_textgenerationwebui">select</span>
</div>
<div class="range-block-range">
<input type="range" id="top_p_textgenerationwebui" name="volume" min="0" max="1" step="0.1">
</div>
</div>
<div class="range-block">
<div class="range-block-title">
Typical P
<span id="typical_p_counter_textgenerationwebui">select</span>
</div>
<div class="range-block-counter">
<span id=" typical_p_counter_textgenerationwebui">select</span>
</div>
<div class="range-block-range">
<input type="range" id="typical_p_textgenerationwebui" name="volume" min="0" max="1" step="0.1">
<h4>Penalty Alpha
<span id="penalty_alpha_counter_textgenerationwebui">select</span>
</div>
</div>
<div class="range-block">
<div class="range-block-title">
Penalty Alpha
</div>
<div class="range-block-counter">
<span id=" penalty_alpha_counter_textgenerationwebui">select</span>
</div>
<div class="range-block-range">
<input type="range" id="penalty_alpha_textgenerationwebui" name="volume" min="0" max="5" step="0.05" />
</div>
</div>
@ -419,6 +488,8 @@
</div>
</div>
</div>
</div>
</div>
<div id="WI-SP-button" class="drawer" style="z-index:3003;">
<div class="drawer-toggle drawer-header">
@ -437,11 +508,9 @@
</div>
</div>
</div>
<h4>How to use <a href="/notes/13" class="notes-link" target="_blank"><span
class="note-link-span">?</span></a></h4>
<h4>How to use <a href="/notes/13" class="notes-link" target="_blank"><span class="note-link-span">?</span></a></h4>
<div id="rm_world_import" class="right_menu" style="display: none;">
<form id="form_world_import" action="javascript:void(null);" method="post"
enctype="multipart/form-data">
<form id="form_world_import" action="javascript:void(null);" method="post" enctype="multipart/form-data">
<input type="file" id="world_import_file" accept=".json" name="avatar">
</form>
</div>
@ -451,16 +520,14 @@
<input id="world_info_edit_button" class="menu_button" type="submit" value="Details">
<div id="world_info_depth_block">
<h4>
Scan Depth <a href="/notes/13_1" class="notes-link" target="_blank"><span
class="note-link-span">?</span></a>
Scan Depth <a href="/notes/13_1" class="notes-link" target="_blank"><span class="note-link-span">?</span></a>
</h4>
<span id="world_info_depth_counter">depth</span>
<input type="range" id="world_info_depth" name="volume" min="1" max="10" step="1">
</div>
<div id="world_info_budget_block">
<h4>
Token Budget <a href="/notes/13_2" class="notes-link" target="_blank"><span
class="note-link-span">?</span></a>
Token Budget <a href="/notes/13_2" class="notes-link" target="_blank"><span class="note-link-span">?</span></a>
</h4>
<span id="world_info_budget_counter">budget</span>
<input type="range" id="world_info_budget" name="volume" min="32" max="2048" step="16">
@ -468,8 +535,7 @@
</div>
<div id="softprompt_block">
<h4>Soft Prompt</h4>
<h5>About soft prompts <a href="/notes/14" class="notes-link" target="_blank"><span
class="note-link-span">?</span></a></h5>
<h5>About soft prompts <a href="/notes/14" class="notes-link" target="_blank"><span class="note-link-span">?</span></a></h5>
<select id="softprompt">
<option value="">None</option>
</select>
@ -508,14 +574,22 @@
</div>
<div id="rm_extensions_block" class="drawer-content closedDrawer">
<div class="extensions_block">
<h3>Extensions API: <a target="_blank" href="https://github.com/SillyLossy/TavernAI-extras">TavernAI-extras</a></h3>
<h3>Extensions API:
<a target="_blank" href="https://github.com/SillyLossy/TavernAI-extras">
TavernAI-extras
</a>
</h3>
<input id="extensions_url" type="text" class="text_pole" />
<div class="extensions_url_block">
<input id="extensions_connect" class="menu_button" type="submit" value="Connect" />
<span class="expander"></span>
<label for="extensions_autoconnect"><input id="extensions_autoconnect" type="checkbox"/>Auto-connect</label>
<label for="extensions_autoconnect"><input id="extensions_autoconnect" type="checkbox" />
Auto-connect
</label>
</div>
<div id="extensions_status">
Not connected
</div>
<div id="extensions_status">Not connected</div>
<div id="extensions_loaded">
<h4>Active extensions</h4>
<ul id="extensions_list">
@ -528,8 +602,9 @@
</div>
</div>
</div>
</div>
<!-- various fullscreen popups -->
<!-- various fullscreen popups -->
<div id="shadow_popup">
<div id="dialogue_popup">
<div id="dialogue_popup_text">
@ -560,32 +635,30 @@
</div>
</div>
<img id="character_cross" src="img/cross.png"
style="position: absolute; right: 15px; top: 15px; width: 20px; height: 20px; cursor: pointer; opacity: 0.6">
<img id="character_cross" src="img/cross.png" style="position: absolute; right: 15px; top: 15px; width: 20px; height: 20px; cursor: pointer; opacity: 0.6">
<div id="personality_div">
<hr>
<h4>Personality summary</h4>
<h5>A brief description of the personality <a href="/notes/2" class="notes-link" target="_blank"><span
class="note-link-span">?</span></a></h5>
<input id="personality_textarea" name="personality" placeholder="" form="form_create" class="text_pole"
autocomplete="off">
<h5>A brief description of the personality <a href="/notes/2" class="notes-link" target="_blank"><span class="note-link-span">?</span></a></h5>
<input id="personality_textarea" name="personality" placeholder="" form="form_create" class="text_pole" autocomplete="off">
</div>
<div id="scenario_div">
<h4>Scenario</h4>
<h5>Circumstances and context of the dialogue <a href="/notes/12" class="notes-link" target="_blank"><span
class="note-link-span">?</span></a></h5>
<input id="scenario_pole" name="scenario" class="text_pole" maxlength="9999" value="" autocomplete="off"
form="form_create">
<h5>Circumstances and context of the dialogue
<a href="/notes/12" class="notes-link" target="_blank">
<span class="note-link-span">?</span>
</a>
</h5>
<input id="scenario_pole" name="scenario" class="text_pole" maxlength="9999" value="" autocomplete="off" form="form_create">
</div>
<div id="talkativeness_div">
<h4>Talkativeness</h4>
<h5>How often the chracter speaks in &nbsp;<span class="warning">group chats!</span>
</h5>
<input id="talkativeness_slider" name="talkativeness" type="range" min="0" max="1" step="0.05" value="0.5"
form="form_create">
<input id="talkativeness_slider" name="talkativeness" type="range" min="0" max="1" step="0.05" value="0.5" form="form_create">
<div id="talkativeness_hint">
<span>Shy</span>
<span>Normal</span>
@ -596,8 +669,7 @@
<div id="mes_example_div">
<div>
<h4>Examples of dialogue</h4>
<h5>Forms a personality more clearly <a href="/notes/11" class="notes-link" target="_blank"><span
class="note-link-span">?</span></a></h5>
<h5>Forms a personality more clearly <a href="/notes/11" class="notes-link" target="_blank"><span class="note-link-span">?</span></a></h5>
</div>
<textarea id="mes_example_textarea" name="mes_example" placeholder="" form="form_create"></textarea>
</div>
@ -615,10 +687,8 @@
<span>(<a href="/notes/13_3" target="_blank">?</a>)</span>
</h3>
<div class="world_popup_expander">&nbsp;</div>
<form id="form_rename_world" action="javascript:void(null);" method="post"
enctype="multipart/form-data">
<input id="world_popup_name" name="world_popup_name" class="text_pole" maxlength="99" size="32"
value="" autocomplete="off">
<form id="form_rename_world" action="javascript:void(null);" method="post" enctype="multipart/form-data">
<input id="world_popup_name" name="world_popup_name" class="text_pole" maxlength="99" size="32" value="" autocomplete="off">
<input id="world_popup_name_button" class="menu_button" type="submit" value="Rename">
</form>
</div>
@ -727,15 +797,11 @@
<div>
<a href="/notes/10" class="notes-link" target="_blank"><span class="note-link-span">?</span></a>
</div>
<form id="form_import_chat" action="javascript:void(null);" method="post" enctype="multipart/form-data"
style="display: none;">
<form id="form_import_chat" action="javascript:void(null);" method="post" enctype="multipart/form-data" style="display: none;">
<input type="file" id="chat_import_file" accept=".json, .jsonl" name="avatar">
<input id="chat_import_file_type" name="file_type" class="text_pole" maxlength="999" size="2"
value="" autocomplete="off" style="display: none;">
<input id="chat_import_avatar_url" name="avatar_url" class="text_pole" maxlength="999" size="2"
value="" autocomplete="off" style="display: none;">
<input id="chat_import_character_name" name="character_name" class="text_pole" maxlength="999"
size="2" value="" autocomplete="off" style="display: none;">
<input id="chat_import_file_type" name="file_type" class="text_pole" maxlength="999" size="2" value="" autocomplete="off" style="display: none;">
<input id="chat_import_avatar_url" name="avatar_url" class="text_pole" maxlength="999" size="2" value="" autocomplete="off" style="display: none;">
<input id="chat_import_character_name" name="character_name" class="text_pole" maxlength="999" size="2" value="" autocomplete="off" style="display: none;">
</form>
</div>
@ -749,12 +815,12 @@
</div>
<div id="shadow_tips_popup">
<div id="tips_popup">
<img id="tips_cross" src="img/cross.png"
style="position: absolute; margin-left: 230px; width: 20px; height: 20px; cursor: pointer; opacity: 0.6">
<img id="tips_cross" src="img/cross.png" style="position: absolute; margin-left: 230px; width: 20px; height: 20px; cursor: pointer; opacity: 0.6">
<img src="img/love.png" style="width: 45px;height: 45px; margin-bottom: 0px; opacity: 0.6;">
<div style="margin-top:20px; margin-left: 20px; margin-right: 20px; margin-bottom: 15px;">
<u>TavernAI</u> is being developed with love and care on a voluntary basis. If you like the project and
<u>TavernAI</u> is being developed with love and care on a voluntary basis. If you like
the project and
want to support it, your donation would make a huge impact! <u>Thank you!</u>
</div>
<img src="img/eth_icon.png" style="width: 35px;height: 35px; margin-bottom: 0px; opacity: 0.6;">
@ -769,19 +835,13 @@
</div>
</div>
<!-- right nav panel for character/groups management/editing/creation -->
<!-- right nav panel for character/groups management/editing/creation -->
<input type="checkbox" id="nav-toggle">
<nav id="right-nav-panel">
<div id="right-nav-panel-tabs">
<div class="right_menu_button" id="rm_button_characters" title="Select/Create Characters">
<img alt="" class="svg_icon" src="img/id-card-regular.svg" />
</div>
<!-- <div class="right_menu_button" id="rm_button_settings" title="API and AI Settings">
<img alt="" class="svg_icon" src="img/gear-solid.svg" />
</div>
<div class="right_menu_button" id="rm_button_extensions" title="Extensions">
<img alt="" class="svg_icon" src="img/cubes-solid.svg" />
</div>-->
<div class="right_menu_button" id="rm_button_selected_ch">
<h2></h2>
</div>
@ -798,17 +858,14 @@
<div id="avatar-and-name-block">
<div id="name_div">
<h4>Character Name</h4>
<input id="character_name_pole" name="ch_name" class="text_pole" placeholder="Name this character" maxlength="120" value=""
autocomplete="off">
<input id="character_name_pole" name="ch_name" class="text_pole" placeholder="Name this character" maxlength="120" value="" autocomplete="off">
</div>
<div id="avatar_div" class="avatar_div">
<div id="avatar_div_div" class="avatar">
<img id="avatar_load_preview" src="img/fluffy.png" alt="avatar">
</div>
<label for="add_avatar_button" class="menu_button"
title="Click to select a new avatar for this character">
<input type="file" id="add_avatar_button" name="avatar"
accept="image/png, image/jpeg, image/jpg, image/gif, image/bmp">
<label for="add_avatar_button" class="menu_button" title="Click to select a new avatar for this character">
<input type="file" id="add_avatar_button" name="avatar" accept="image/png, image/jpeg, image/jpg, image/gif, image/bmp">
<img alt="" class="svg_icon" src="img/file-image-solid.svg">
</label>
<div class="form_create_bottom_buttons_block">
@ -827,7 +884,7 @@
<img alt="" class="svg_icon" src="img/user-check-solid.svg">
</label>
<!-- <input id="create_button" class="menu_button" title="Create Character" type="submit" value="✅"> -->
<div id="delete_button" class="menu_button" title="Delete Character" >
<div id="delete_button" class="menu_button" title="Delete Character">
<img alt="" class="svg_icon" src="img/trash-can-solid.svg">
</div>
</div>
@ -836,35 +893,36 @@
</div>
<hr>
<div id="description_div" class="margin-bot-10px">
<h4>Description <a href="/notes/1" class="notes-link" target="_blank"><span
class="note-link-span">?</span></a></h4>
<h4>Description
<a href="/notes/1" class="notes-link" target="_blank">
<span class="note-link-span">?</span>
</a>
</h4>
</div>
<textarea id="description_textarea" placeholder="Describe your character's physical and mental traits here." class="margin-bot-10px" name="description"
placeholder=""></textarea>
<textarea id="description_textarea" placeholder="Describe your character's physical and mental traits here." class="margin-bot-10px" name="description" placeholder=""></textarea>
<div id="first_message_div" class="margin-bot-10px">
<h4>First message<a href="/notes/3" class="notes-link" target="_blank"><span
class="note-link-span">?</span></a></h4>
<h4>First message
<a href="/notes/3" class="notes-link" target="_blank">
<span class="note-link-span">?</span>
</a>
</h4>
</div>
<textarea id="firstmessage_textarea" placeholder="This will be the first message from the character that starts every chat." class="margin-bot-10px" name="first_mes" placeholder=""></textarea>
<!-- these divs are invisible and used for server communication purposes -->
<div id="hidden-divs">
<div id="avatar_url_div">
<input id="avatar_url_pole" name="avatar_url" class="text_pole" maxlength="999" size="2"
value="" autocomplete="off">
<input id="avatar_url_pole" name="avatar_url" class="text_pole" maxlength="999" size="2" value="" autocomplete="off">
</div>
<div id="selected_chat_div">
<input id="selected_chat_pole" name="chat" class="text_pole" maxlength="999" size="2" value=""
autocomplete="off">
<input id="selected_chat_pole" name="chat" class="text_pole" maxlength="999" size="2" value="" autocomplete="off">
</div>
<div id="create_date_div">
<input id="create_date_pole" name="create_date" class="text_pole" maxlength="999" size="2"
value="" autocomplete="off">
<input id="create_date_pole" name="create_date" class="text_pole" maxlength="999" size="2" value="" autocomplete="off">
</div>
<div id="last_mes_div">
<input id="last_mes_pole" name="last_mes" class="text_pole" maxlength="999" size="2" value=""
autocomplete="off">
<input id="last_mes_pole" name="last_mes" class="text_pole" maxlength="999" size="2" value="" autocomplete="off">
</div>
</div>
<!-- now back to normal divs for display purposes-->
@ -875,8 +933,7 @@
<div id="rm_button_back_from_group" class="menu_button">
<img alt="" class="svg_icon" src="img/left-long-solid.svg">
</div>
<input id="rm_group_chat_name" class="text_pole" type="text" name="chat_name"
placeholder="Chat Name (Optional)" />
<input id="rm_group_chat_name" class="text_pole" type="text" name="chat_name" placeholder="Chat Name (Optional)" />
</div>
<div id="rm_group_add_members_header">
<h3>Add Members</h3>
@ -927,8 +984,7 @@
<div id="rm_character_import" class="right_menu" style="display: none;">
<form id="form_import" action="javascript:void(null);" method="post" enctype="multipart/form-data">
<input type="file" id="character_import_file" accept=".json, image/png" name="avatar">
<input id="character_import_file_type" name="file_type" class="text_pole" maxlength="999" size="2"
value="" autocomplete="off">
<input id="character_import_file_type" name="file_type" class="text_pole" maxlength="999" size="2" value="" autocomplete="off">
</form>
</div>
<div id="rm_characters_block" class="right_menu">
@ -943,13 +999,12 @@
<img alt="" class="svg_icon" src="img/user-group-solid.svg">
</div>
</div>
<form id="form_character_search_form" action="javascript:void(null);">
<input id="character_search_bar" class="text_pole" type="search" placeholder="Character search..." />
</form>
<div id="rm_print_characters_block"></div>
</div>
<div id="rm_info_block" class="right_menu">
<div id="rm_info_panel">
<div id="rm_info_avatar"></div>
@ -957,10 +1012,9 @@
<div id="rm_info_button" class="menu_button">Back</div>
</div>
</div>
</nav>
<!-- templates for JS to reuse when needed -->
<!-- templates for JS to reuse when needed -->
<div id="message_template">
<div class="mes" mesid="${count_view_mes}" ch_name="${characterName}" is_user="${mes.is_user}">
<div class="for_checkbox"></div><input type="checkbox" class="del_checkbox">
@ -977,8 +1031,8 @@
</div>
<div class="mes_bias">${bias}</div>
<div class="swipe_right">
<div class="swipes-counter"></div>
<img src="img/swipe_right.png">
<div class="swipes-counter"></div>
</div>
</div>
</div>
@ -1003,7 +1057,7 @@
</div>
</div>
<!-- chat and input bar -->
<!-- chat and input bar -->
<div id="typing_indicator_template">
<div class="typing_indicator"><span class="typing_indicator_name">CHAR</span> is typing</div>
</div>
@ -1039,16 +1093,13 @@
</div>
</div>
<textarea id="send_textarea" placeholder="Not connected to API!" name="text"></textarea>
<div id="send_but_sheld">
<div id="loading_mes"></div>
<input id="send_but" type="button">
</div>
</form>
</div>
</div>
</body>
</html>

View File

@ -18,6 +18,8 @@
--grey50: rgb(125, 125, 125);
--grey70: rgb(175, 175, 175);
--grey30a: rgba(50,50,50,0.3); // dark grey transparent for #chat and #send_form so their borders stand out on dark BGs
--fullred: rgba(255, 0, 0, 1);
--crimson70a: rgba(100, 0, 0, 0.7);
--cobalt30a: rgba(100, 100, 255, 0.3);
@ -133,7 +135,7 @@ code {
position: absolute;
width: 100%;
height: 100%;
z-index: -2;
z-index: 0;
}
#bg2 {
@ -146,7 +148,7 @@ code {
position: absolute;
width: 100%;
height: 100%;
z-index: -1;
z-index: 1;
}
/*TOPPER margin*/
@ -172,13 +174,14 @@ code {
display: grid;
grid-template-rows: auto min-content;
height: calc(100svh - 40px);
/*overflow: auto;*/
overflow-x: hidden;
/*overflow-y: hidden;*/
max-width: 800px;
margin-left: auto;
margin-right: auto;
position: absolute;
left: 0;
right: 0;
top: 35px;
margin: 0 auto;
z-index: 2;
}
@ -189,16 +192,17 @@ margin-top:5px;
overflow-y: scroll;
display: flex;
bottom: 10px;
border-bottom: 1px solid var(--black30a);
border-left: 1px solid var(--black30a);
border-right: 1px solid var(--black30a);
border-bottom: 1px solid var(--grey50a);
border-left: 1px solid var(--grey50a);
border-right: 1px solid var(--grey50a);
backdrop-filter: blur(20px);
background-color: var(--black70a);
-webkit-backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(10px);
text-shadow: #000 0 0 3px;
scrollbar-width: thin;
transition: all 1s ease-in-out;
flex-direction: column;
z-index: 3;
/*old style top to bottom flow*/
/* overflow-x: hidden;
@ -228,7 +232,7 @@ margin-top:5px;
grid-template-columns: 40px auto 40px;
width: 100%;
margin: 0 auto 0 auto;
border: 1px solid var(--black30a);
border: 1px solid var(--grey50a);
border-radius: 0 0 20px 20px;
background-color: var(--crimson70a);
@ -690,6 +694,7 @@ input[type=submit] {}
#rm_print_characters_block {
padding: 15px 0;
overflow-y: auto;
flex-grow: 1;
}
#rm_ch_create_block {
@ -1884,6 +1889,7 @@ input[type="range"]{
margin-right: auto;
left: 0;
right: 0;
top: 40px;
box-shadow: 0 0 20px var(--black70a);
padding-left: 30px;
padding-right: 30px;
@ -2688,8 +2694,7 @@ label[for="extensions_autoconnect"] {
padding-top: 5px;
/* right: auto; */
height: 35px;
min-width: 20vw;
max-width: 700px;
width: 800px;
color: white;
justify-content: space-around;
display: grid;
@ -2809,16 +2814,20 @@ label[for="extensions_autoconnect"] {
}
#top-settings-holder{
max-width:70vw;
width:70vw;
position: fixed;
right: 0;
left: 0;
}
#bg1, #bg2 {position:fixed;}
#sheld, #character_popup, #world_popup, #right-nav-panel { /*margin around the sides, and a larger one on bottom to avoid iOS Home bar*/
height: calc(100svh - 55px);
height: calc(100svh - 15px);
width: calc(100vw - 10px);
margin: 0 auto;
margin-left: 5px;
position: fixed;
}
.mes-text {padding-right: 25px;}

View File

@ -968,9 +968,11 @@ function getCharacterFile(directories, response, i) { //old need del
}
}
function getImages(path) {
return fs.readdirSync(path).sort(function (a, b) {
return fs.readdirSync(path).sort(Intl.Collator().compare);
/* return fs.readdirSync(path).sort(function (a, b) {
return new Date(fs.statSync(path + '/' + a).mtime) - new Date(fs.statSync(path + '/' + b).mtime);
}).reverse();
}).reverse(); */
}
function getKoboldSettingFiles(path) {
return fs.readdirSync(path).sort(function (a, b) {