These options essentially supersede repetition penalty, but since
ooba also gives the option, add these new sliders in conjunction
with the repetition penalty ones.
More testing is needed to find good default values.
Signed-off-by: kingbri <bdashore3@proton.me>
* Force open Char WI with Shift
QoL - Force open character WI selector menu if icon clicked with Shift.
* Update world-info.js (revert personal new WI pos preference)
* Fix element widths
* Fix event typing
* Update index.js
* Update index.js
* change Prompt to Input
this makes it more clear what it does(i think)
---------
Co-authored-by: valden80 <111227649+valden80@users.noreply.github.com>
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
Settings such as adding character name, stopping strings, etc can be
preset specific. This change is mainly inspired because people (like myself)
often forget to change these settings after switching a preset, which
can cause weird responses from the model.
Signed-off-by: kingbri <bdashore3@proton.me>
The ask command aims to ask another character about a question or
topic from the current chat. Essentially, the current chat is taken
out and prompted to another character.
This command also requires a few fixes to sprites and prompt creation.
Signed-off-by: kingbri <bdashore3@proton.me>
The existing logspam doesn't even tell the user what char is failing, which means it's
just going to emit every startup, forever, grinding at the poor user's soul, never
letting them know *which* of their 352 cards is causing the spam... day after day after
day. Until one day, the poor beleaguered user will emit the world's ugliest PR to at
least find the broken card in an attempt kill it.
Ask me how I know.
Add support for adding extension prompts into WI scanning. Doing this
required adding a method to get extension prompts by name. Now, AN
and depth prompts can be added to world info scanning.
However, since scanning just looks for keys in the chatlog, append
the extension prompts on the top of scanned text.
Signed-off-by: kingbri <bdashore3@proton.me>
* Kobold Presets fixed
* Help texts fixed
* Scale API for connectAPISlash
* Quick Reply checkboxes fixed
* New Instruct Mode Presets
* More date/time macros
* ChatML context template and instruct prompt format
* Mistral context template and instruct prompt format
* Removed use_default_badwordsids from kobold presets
* Renamed ChatML to Mistral-OpenOrca (ChatML)
* Renamed Mistral-OpenOrca (removed ChatML)
* Removed single_line from kobold presets
* Removed obsolete use_stop_sequence setting
* Ban EOS Token off by default
* Split AI Resp. Conf. in global and preset-specific settings
* Resolve conflicts
* Fix title
* Add translations for new help texts
* Fix i18n.json whitespace
* Make Mistral-OpenOrca system prompt more generic
* Renamed "Mistral-OpenOrca" to "ChatML" again
* More (UI) fixes and improvements
* Sendas hint fixed
---------
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
* More spanish translation, fixed typo on index
Praying that typo fix won't mess with the other translations. Changed "idel" for "idle".
* Changed "es-spa" to "es-mx"
For Mexican Spanish. Spanish has a ridiculous amount of variants and the wording that might seem fine to me might be weird or maybe offensive in other variants.
* Trying to translate the View API key pop up
I'm also failing badly
* "Mirostat Mode" was repeated twice. Not anymore.
Also more Mexican Spanish translation.
* Mirostat Tau and Mirostat Era aren't repeated anymore.
* Partially translated AI Response Formatting to es-MX
Depth previously injected entries randomly. This is not ideal for
world info architectures that rely on insertion order to function
properly.
Redo depth injection to have its own parameter and redo how it's
handled in generate.
Signed-off-by: kingbri <bdashore3@proton.me>
* World Info: Add character locking for entries
With the addition of depth, world info has become more important than
ever. However, there is a conflict that can occur when using multiple
world info or lorebooks on a character. Add the ability to lock
entries to a specific character (or characters) if needed.
This allows for adequate separation especially when there are character
cards each with their separate lorebooks that build off of a core lorebook.
Signed-off-by: kingbri <bdashore3@proton.me>
* World Info: Add entry-specific character exclusions
This is the opposite of locking an entry to a specific character.
Exclusions allows the entry to get included for everyone except the
specified characters in the list.
Signed-off-by: kingbri <bdashore3@proton.me>
---------
Signed-off-by: kingbri <bdashore3@proton.me>
* Added custom CSS box to UI Theme settings
* Update index.html
Merged against release instead of staging. Whoops.
* Added an import stripper regex so that imports will be removed and show a toastr to inform the user.
* Moved import remove code to applyCustomCSS. Updated localStorage. Not re-running saveSettingsDebounced()
* Basic kobold grammar implementation
This is probably jank as all hell, I don't write js, but I think I got it to work.
* No value by default
* Visual cleanup
+ reworded it a bit
* Conditionally enable Grammar based on version flag. Fix layout
---------
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
* Added control to audio ui to select bgm/ambient and lock selection to overide dynamic audio update. Load both assets and char specific audio assets
* correct ambient label and default value when no assets available.
* add padding in audio select
* Correct audio change of background ambient when locked. Updated CSS of audio ui for mobile friendly.
* add space between mixer
* Add checkbox to enable dynamic bgm/ambient switch
* correct background ambient fadout
* continue debuging ambient audio update
* finish debuging
* Fix BGM console error on first run. Reformat plugin code
* Changed audio bgm lock into loop on/off. Added random pick button for bgm. Moved ambient lock button to right.
* Add mouse wheel event handler on volume controls
* Change bgm select to only contain current chat character bgm (solo/group). When enable expression bgm is off, any of the char+asset bgm can play next if not looping.
* Corrected bgm looping at start. Force random to play another song if there is any.
* Format code
---------
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
This makes the most sense for placement of memories. Add the functionality
for other extension prompt placements as well.
Signed-off-by: kingbri <bdashore3@proton.me>
* Initial idle stuff
* Much closer, can now quietly send as user to get a char response.
* Tweaks
* Better, reset the count of getting a message back, don't send while prompt is waiting.
* Allow selecting who is being prompted
* Comments and cleaup
* Remove char name for the moment (needs something here probably)
* Add random time period and "Always add character's name to prompt" respect
* Tooltips
* Load/unload listeners
* Reduce log spam
* Add inline prompt inclusion
* Add full loud prompting
* Comments
* Fix instruct newline (I think)
* Don't reset count on continue
* add quietToLoud for script.js
* add quietToLoud for slashcommands.js
* Keep instruct directives
* Removed some logging, don't do the Novel formatting if Q2L
* Logspam begone.
* Removed a bit more logging
* Add alignment style
* Reformat files. Add comments
* Reorder extensions
* Fix repeat logic to prompt once then only repeat the number specified
* Make repeat count more clear
---------
Co-authored-by: RossAscends <124905043+RossAscends@users.noreply.github.com>
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
* The popular mirostat "Gold/Silver/Bronze" community settings
These settings have been popular in the community and are good
candidates for defaults.
* Update Miro Bronze.json
* Update Miro Gold.json
* Update Miro Bronze.json
* Update Miro Silver.json
* Rename Kobold presets
* Update textgen presets
---------
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
* Added loop-around for swipe-left when multiple swipes exist
* Added loop around for alternate greetings in swipe_right(),
Disabled toast for add more alternate greetings
* Debounce saving swipes
---------
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
* More spanish translation, fixed typo on index
Praying that typo fix won't mess with the other translations. Changed "idel" for "idle".
* Update index.html
---------
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
Bumped it for 20 for textgen and kobold, because there's no theoretical
limit as far as the math is concerned. I have no idea what the Novel
API can take, though.
* seperated languages into structured folders
i18n.js needs to be connected to index.json so it fetches the common json files
* Update index.json
* New Launcher + security file
* cancel locales feature temporary
* added secrets to backup
* replaced download with winget
* fixed restoring backup bug
fixed bug that creates sillytavern\public folder inside sillytavern\public
* fixes date format
* launcher update + icon
## Features and improvements
- TTS Extension
- Set character default voice from `disabled` to `DEFAULT_VOICE_MARKER`
- Add `DEFAULT_VOICE_MARKER` option for all characters
- Set default `DEFAULT_VOICE_MARKER` voice as `disabled`
## Related issues
- #1077
* Refactor oai preset change event into before and after
* Simplify and reinforce prompt manager render without character
* Check if main prompt exists before adding nsfwAvoidance
* Sanitize prompt manager configuration on preset loading
---------
Co-authored-by: maver <kentucky@posteo.de>
* get rid of node-rest-client and fix types
* remove from package manager
* postAsync is used above its def, need hoisting
* handle client agent undefined, fixes type error
* handle invalid / missing query.name for sanitize
* more type guards
* Make code formatter happy
---------
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
* png-chunks-extract.extract has no create_date
* `new Buffer.from` is not a thing
* handle failed character read
* stop lying about your return value
* what we get for mixing booleans and strings
* localeCompare makes more sense and fixes types
* uhh wtf, there is no callback in readFileSync
* no subtracting Dates, only Numbers (timestamps)
* handle if no file in request
* changing types makes typechecker mad
* handle false or undefined character read
* default param does not exist
* can't have same property assigned twice
* json5.parse expects a string, not buffer
* handle invalid thumbnail type
* handle invalid thumbnail type case
* ignore bad axios typing
* fix ambiguous typing
* types is incorrect? no .destroy(). use type guard
* include intended error handling of refactor
* Make API urls const
---------
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
This is a useful feature for those who want to utilize APIs with
proxy middleware for adding extra features or security. For cloud
API safety and abiding by rate limits, this feature only applies to
local backends such as ooba or kobold.
Signed-off-by: kingbri <bdashore3@proton.me>
* seperated languages into structured folders
i18n.js needs to be connected to index.json so it fetches the common json files
* Update index.json
* New Launcher + security file
* cancel locales feature temporary
* added secrets to backup
description:Report something that's not working the intended way. Support requests for external programs (reverse proxies, 3rd party servers, other peoples' forks) will be refused!
title:'[BUG] <title>'
labels:['bug']
body:
- type:dropdown
id:environment
attributes:
label:Environment
description:Where are you running SillyTavern?
options:
- Self-Hosted (Bare Metal)
- Self-Hosted (Docker)
- Android (Termux)
- Cloud Service (Static)
- Other (Specify below)
validations:
required:true
- type:input
id:system
attributes:
label:System
description:>-
For deployment issues, specify your [distro or OS](https://whatsmyos.com/) and/ or Docker version.
For client-side issues, include your [browser version](https://www.whatsmybrowser.org/)
placeholder:e.g. Firefox 101, Manjaro Linux 21.3.0, Docker 20.10.16
validations:
required:true
- type:input
id:version
attributes:
label:Version
description:What version of SillyTavern are you running?
placeholder:(check User Settings to see the version)
validations:
required:true
- type:textarea
id:desktop
attributes:
label:Desktop Information
description:Please provide details about your desktop environment.
placeholder:|
- Node.js version (if applicable): [run `node --version` in cmd]
- Generation API [e.g. KoboldAI, OpenAI]
- Branch [staging, release]
- Model [e.g. Pygmalion 6b, LLaMa 13b]
validations:
required:false
- type:textarea
id:repro
attributes:
label:Describe the problem
description:Please describe exactly what is not working, include the steps to reproduce, actual result and expected result
placeholder:When doing ABC then DEF, I expect to see XYZ, but I actually see ZYX
validations:
required:true
- type:textarea
id:logs
attributes:
label:Additional info
description:Logs? Screenshots? Yes, please.
placeholder:If the issue happens during build-time, include terminal logs. For run-time errors, include browser logs which you can view in the Dev Tools (F12), under the Console tab. Take care to blank out any personal info.
validations:
required:false
- type:checkboxes
id:idiot-check
attributes:
label:Please tick the boxes
description:Before submitting, please ensure that
options:
- label:You have explained the issue clearly, and included all relevant info
required:true
- label:You've checked that this [issue hasn't already been raised](https://github.com/SillyTavern/SillyTavern/issues?q=is%3Aissue)
required:true
- label:You've checked the [docs](https://docs.sillytavern.app/) 
required:true
- type:markdown
attributes:
value:|-
## Thanks 🙏
Thank you for raising this ticket - in doing so you are helping to make SillyTavern better for everyone.
about: "Create a report to help us improve. PAY ATTENTION: Support requests for external programs (reverse proxies, 3rd party servers, other peoples' forks) will be refused!"
title: "[BUG]"
labels: ''
assignees: ''
---
> **Warning**. Complete **all** the fields below. Otherwise, your bug report will be **ignored**!
**Have you searched for similar [bugs](https://github.com/SillyTavern/SillyTavern/issues?q=)?**
Yes/No
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Logs**
Providing the logs from the browser DevTools console (opened by pressing the F12 key) or SillyTavern command line window will be highly appreciated.
**Desktop (please complete the following information):**
- OS/Device: [e.g. Windows 11]
- Environment: [cloud, local]
- Node.js version (if applicable): [run `node --version` in cmd]
Mobile-friendly, Multi-API (KoboldAI/CPP, Horde, NovelAI, Ooba, OpenAI, OpenRouter, Claude, Scale), VN-like Waifu Mode, Horde SD, System TTS, WorldInfo (lorebooks), customizable UI, auto-translate, and more prompt options than you'd ever want or need. Optional Extras server for more SD/TTS options + ChromaDB/Summarize.
Mobile-friendly layout, Multi-API (KoboldAI/CPP, Horde, NovelAI, Ooba, OpenAI, OpenRouter, Claude, Scale), VN-like Waifu Mode, Stable Diffusion, TTS, WorldInfo (lorebooks), customizable UI, auto-translate, and more prompt options than you'd ever want or need + ability to install third-party extensions.
Based on a fork of TavernAI 1.2.8
Based on a fork of [TavernAI](https://github.com/TavernAI/TavernAI) 1.2.8
## Important news!
1. We have created a [Documentation website](https://docs.sillytavern.app/) to answer most of your questions and help you get started.
2. Missing extensions after the update? Since the 1.10.6 release version, most of the previously built-in extensions have been converted to downloadable add-ons. You can download them via the built-in "Download Extensions and Assets" menu in the extensions panel (stacked blocks icon in the top bar).
### Brought to you by Cohee, RossAscends, and the SillyTavern community
NOTE: We have created a [Documentation website](https://docs.sillytavern.app/) to answer most of your questions and help you get started.
### What is SillyTavern or TavernAI?
SillyTavern is a user interface you can install on your computer (and Android phones) that allows you to interact with text generation AIs and chat/roleplay with characters you or the community create.
@@ -41,8 +45,6 @@ Since Tavern is only a user interface, it has tiny hardware requirements, it wil
<https://rentry.org/STAI-Termux>
**.webp character cards import/export is not supported in Termux. Use either JSON or PNG formats instead.**
## Questions or suggestions?
### We now have a community Discord server
@@ -71,7 +73,6 @@ Get in touch with the developers directly:
* [Oobabooga's TextGen WebUI](https://github.com/oobabooga/text-generation-webui) API connection
We take the security of this project seriously. If you discover any security vulnerabilities or have concerns regarding the security of this repository, please reach out to us immediately. We appreciate your efforts in responsibly disclosing the issue and will make every effort to address it promptly.
## Reporting a Vulnerability
To report a security vulnerability, please follow these steps:
1. Go to the **Security** tab of this repository on GitHub.
2. Click on **"Report a vulnerability"**.
3. Provide a clear description of the vulnerability and its potential impact. Be as detailed as possible.
4. If applicable, include steps or a PoC (Proof of Concept) to reproduce the vulnerability.
5. Submit the report.
Once we receive the private report notification, we will promptly investigate and assess the reported vulnerability.
Please do not disclose any potential vulnerabilities in public repositories, issue trackers, or forums until we have had a chance to review and address the issue.
## Scope
This security policy applies to all the code and files within this repository and its dependencies actively maintained by us. If you encounter a security issue in a dependency that is not directly maintained by us, please follow responsible disclosure practices and report it to the respective project.
While we strive to ensure the security of this project, please note that there may be limitations on resources, response times, and mitigations.
Thank you for your help in making this project more secure.
@@ -9,23 +9,48 @@ const enableExtensions = true; //Enables support for TavernAI-extras project
const listen = true; // If true, Can be access from other device or PC. otherwise can be access only from hosting machine.
const allowKeysExposure = false; // If true, private API keys could be fetched to the frontend.
const skipContentCheck = false; // If true, no new default content will be delivered to you.
const thumbnailsQuality = 95; // Quality of thumbnails. 0-100
const disableChatBackup = false; // Disables the backup of chat logs to the /backups folder
// If true, Allows insecure settings for listen, whitelist, and authentication.
// Change this setting only on "trusted networks". Do not change this value unless you are aware of the issues that can arise from changing this setting and configuring a insecure setting.
const securityOverride = false;
module.exports = {
port,
whitelist,
whitelistMode,
basicAuthMode,
basicAuthUser,
autorun,
enableExtensions,
listen,
disableThumbnails,
allowKeysExposure,
securityOverride,
skipContentCheck,
// Additional settings for extra modules / extensions
const extras = {
// Disables auto-download of models from the HuggingFace Hub.
// You will need to manually download the models and put them into the /cache folder.
disableAutoDownload: false,
// Text classification model for sentiment analysis. HuggingFace ID of a model in ONNX format.
"story_string":"### Instruction:\nWrite {{char}}'s next reply in this roleplay with {{user}}. Use the provided character sheet and example dialogue for formatting direction and character speech patterns.\n\n{{#if system}}{{system}}\n\n{{/if}}### Character Sheet:\n{{#if wiBefore}}{{wiBefore}}\n{{/if}}{{#if description}}{{description}}\n{{/if}}{{#if personality}}{{char}}'s personality: {{personality}}\n{{/if}}{{#if scenario}}Scenario: {{scenario}}\n{{/if}}{{#if wiAfter}}{{wiAfter}}\n{{/if}}{{#if persona}}{{persona}}\n{{/if}}",
"system_prompt":"[Enter Adventure Mode. Narrate the story based on {{user}}'s dialogue and actions after \">\". Describe the surroundings in vivid detail. Be detailed, creative, verbose, and proactive. Move the story forward by introducing fantasy elements and interesting characters.]",
"system_prompt":"Avoid repetition, don't loop. Develop the plot slowly, always stay in character. Describe all actions in full, elaborate, explicit, graphic, and vivid detail. Mention all relevant sensory perceptions.",
"system_prompt":"Below is an instruction that describes a task. Write a response that appropriately completes the request.\n\n### Instruction:\nTake the role of {{char}} in a play that leaves a lasting impression on {{user}}. Write {{char}}'s next reply.\nNever skip or gloss over {{char}}’s actions. Progress the scene at a naturally slow pace.\n\n",
"system_prompt":"Enter RP mode. You shall reply to {{user}} while staying in character. Your responses must be detailed, creative, immersive, and drive the scenario forward. You will follow {{char}}'s persona.",
"system_prompt":"Elaborate on the topic using a Tree of Thoughts and backtrack when necessary to construct a clear, cohesive Chain of Thought reasoning. Always answer without hesitation.",
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.