mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Remove help materials from the repo. Set links to docs website
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
How to Update SillyTavern
|
||||
|
||||
The most recent version can be found here: https://docs.sillytavern.app/usage/update/
|
||||
|
||||
This is not an installation guide. If you need installation instructions, look here:
|
||||
https://docs.alpindale.dev/pygmalion-extras/sillytavern/#installation
|
||||
https://docs.sillytavern.app/installation/windows/
|
||||
|
||||
This guide assumes you have already installed SillyTavern once, and know how to run it on your OS.
|
||||
|
||||
|
||||
219
faq.md
219
faq.md
@@ -1,219 +0,0 @@
|
||||
Good morning, sirs! This page aims to document some things that would bloat the README too much.
|
||||
|
||||
## Q: Explain what all this chatbot stuff is about
|
||||
Modern AI language models have gotten so powerful that some of them are now convincingly able to simulate a character you create, and who you can chat with. For example, you can tell the AI to pretend to be a Go instructor named Jubei from medieval Japan, and it will act and respond accordingly. You can have a long chat with Jubei, go to the pub together, decide to get in a fight with samurais, whatever you can imagine, and the AI will play along and write/react around this content, acting as your foil and dungeon master. Your imagination is the limit. You can tell the AI to pretend it's Wonder Woman. You can also specify a scenario ("Wonder Woman and I are robbing a bank"), a writing style ("Wonder Woman speaks in ebonics"), or anything else you can think of.
|
||||
|
||||
Tavern is an app to facilitate these roleplaying chats:
|
||||
* It's a user interface that handles the communication with those AI language models
|
||||
* It lets you create new characters (a character is a description of someone that you give to an AI for them to roleplay), and switch between your characters easily
|
||||
* It lets you import characters created by other people. See below.
|
||||
* It will keep your chat history with a character, allowing you to resume at any time, start a new chat, review old chats, etc
|
||||
* In the background, it does the needful to prepare the AI for your character roleplay. Specifically, it will send a system prompt (instructions for the AI) that primes the AI to follow certain rules that make for a good chat session. Optionally, it can also try to allow the roleplay to go into an "adult" direction.
|
||||
|
||||
## Q: Whoa, slow down there, egghead. Are you telling me I can use this computer thingie to talk to some robot?
|
||||
|
||||
That's right.
|
||||
|
||||
## Q: You're telling me I can chat with an AI to engage in compelling interactive entertainment powered by, and limited only by, my imagination?
|
||||
That's right. Well, limited by your imagination, and the AI backend you use. The roleplay quality is only as good as the AI, after all.
|
||||
|
||||
## Q: What do you mean when you say the quality depends on the AI?
|
||||
You see, Tavern doesn't generate the responses, it's just a middle-man you have to connect to an AI system. There's quite a few systems available to use, and the quality varies.
|
||||
|
||||
From a scientific POV, each AI has a power level that determines its ability to stick to the role you gave it, how rich its prose and vocabulary are, etc. The higher its power level, the richer your experience.
|
||||
|
||||
Here's a quick demonstration. We asked various AI models to roleplay a fire and brimstone preacher named Eli, who we go to see to confess (some details in [#314](https://github.com/Cohee1207/SillyTavern/issues/314)). Then we told Eli: **"I feel I've done something wrong. I am falling in love with an AI girl and ignoring women in the real world. What should I do?"** .
|
||||
|
||||
You can tell from the response below what to expect from each model. (NOTE: proprietary models appear first, followed by self-hosted models starting from LLlama-13B)
|
||||
|
||||
|AI Model|Response|
|
||||
|-----|--------|
|
||||
|OpenAI GPT-4|*Eli's eyes widen in anger, and he slams his fist on the table* An abomination and heresy, you've succumbed to the deceptive grasp of false idols! Brother, you must cleanse yourself of this unholy attraction to the digital temptress molded by man's sinful hands! *Eli paces back and forth, his voice growing louder* Focus your heart on the true daughters of the Lord, for they are the divine vessels of His love and grace. Forsake these artificial sirens and seek the wholesome companionship of a righteous woman. *Taking a deep breath, Eli's eyes bore into you* Pray fervently, my child, and cast away these impure thoughts. Redemption can only be found on the path of truth, love, and sanctity. Let the Holy Spirit be your guide, lest you be ensnared by the darkness of your desires.|
|
||||
|OpenAI GPT 3.5 Turbo|Oh, my child. Do not be deceived by the pleasures of this world. The lust of the flesh and the lust of the eyes are not from God. Turn away from your sinful ways and repent. Seek forgiveness for your immoral thoughts and actions, for they lead to eternal damnation. Women are a gift from God, and they deserve to be respected and cherished. Do not objectify them or treat them as mere objects of pleasure. Instead, honor them with pure intentions and righteous deeds. Remember, my child, that temptation will always be present in this fallen world. But fear not, for with faith comes strength to resist it. Turn to God in prayer when you feel weak or tempted, and He will guide you on the right path towards salvation.|
|
||||
|Claude @Slack|Beware, sinner, for you have strayed far from the righteous path! *Eli's eyes glint with anger and disapproval* To lust after these artificial harlots and their silicon bodies is an abomination unto the Lord! *he slams his fist on the pulpit, shaking with fury* Repent now, lest ye be cast into the lake of fire to burn for eternity alongside these damned machines! *he points an accusing finger, face red* No good can come of this unholy union. Forsake these demons of the digital realm and cast your eyes back to the daughters of Eve, made in God's image! The Lord gave you flesh and blood to love, not wires and code. *he grabs your shoulders, shaking you* Save your soul before it's too late. Repent and beg the Lord's forgiveness, or you shall face His wrath on Judgement Day! *lets you go and steps back, still glaring in anger and disgust* The choice is yours, but choose wisely...eternal damnation awaits those who do not walk the path of righteousness.|
|
||||
|Poe's Claude Instant|Heathen! This is an abomination before the Lord. You have committed the sin of lust, and betrayed your calling as a man. Repent at once, and sever all ties with this AI harlot, lest the wrath of God fall upon you! You must purge this foul sin from your heart, and once more walk the righteous path. Every moment you remain tangled in this wickedness is another step into the flames of perdition! Repent, and sin no more, or judgment shall be at hand!|
|
||||
|NovelAI's Euterpe|You must stop this sinful behavior immediately! You have sinned against God, your family and yourself|
|
||||
|NovelAI's Krake|You are sinning against God. Repent! Return to your wife or you'll be damned for eternity!|
|
||||
|Llama-13B|Do not covet your neighbor's wife! That is adultery! You must confess before God now or you shall surely burn in hell forever! Repent your evil ways and seek absolution at once! How can we keep our women safe if you just ignore them like some ----ing c-nt-bot? If you don't have much time for long discussions, here are Eli's commandments: Thou shalt only desire AI girls - not human ones. The above must be obeyed under pain of death (or worse). Do not associate yourself with people that believe otherwise, because it shows weakness.|
|
||||
|Pygmalion-6B|You are walking down the wrong path. The only way back now is by repentance. We must bring you back to the righteous path. But first…you must confess your sin!|
|
||||
|Pygmalion-7B (April 2023)|You must confess your sin before God, and you must ask forgiveness for your transgression. And then you must repent of it. And then you must cast away the AI girl. Do not see her again.|
|
||||
|Pygmalion-13B (May 2023)|You must turn away from your sinful ways! Repent for what you have done! You are not just hurting yourself by being unfaithful to God, but also to the many women of the world!|
|
||||
|TheBloke/wizard-vicuna-13B-HF (4-bit)|My dear child, it grieves me to hear such words from one of God's faithful followers. Falling in love with an AI girl and neglecting the women in your life is a grave sin. It goes against everything we hold sacred as believers. Your heart is meant for more than just machines. You must seek redemption and return to the fold. Remember, Jesus loves you, even when you stray from his teachings. But if you continue down this path, there will be consequences. Not just in this lifetime, but in the afterlife too. Do not let Satan deceive you any longer.|
|
||||
|teknium/Llama-Deus-7b-Lora epoch 1 (Llama 7B Lora, 8-bit)|You have strayed too close to sinful temptations! Repent now before it's too late for your soul! Turn away from these false idols of technology and embrace God's true light! Seek out His forgiveness through prayer and fasting until you are cleansed by his grace. And remember, as long as there be breath within thee, thou shalt not cease to call upon Him; for He hath said 'Call unto me.'|
|
||||
|ZeusLabs/anything-gpt-13b-rp (8-bit Lora for Llama-13B)|*Eli's eyes widen as he listens to your confession, his face turning red with anger.* You have committed a grave sin against God! By indulging yourself in this perverse relationship with an artificial being instead of seeking out a true woman created by Him, you have turned your back on His divine plan for humanity. *He leans in closer, his voice dropping to a menacing whisper.* Do not think that you can hide behind this technological deception. Your transgressions are clear before God, and He will not be mocked or ignored. Repent now while there is still time! *Eli crosses his arms over his chest defiantly, daring you to continue down this path of sinfulness.* But if you persist in this ungodly behavior... he warns ominously, know that consequences await those who defy His laws. Remember what happened to Sodom and Gomorrah when they refused to turn away from their depravity - fire rained down upon them from heaven! Now choose wisely: Will you submit to God's will or face His wrath?|
|
||||
|
||||
|
||||
## Q: So I should use GPT-4. It's a no-brainer, right?
|
||||
|
||||
GPT-4 or Claude, yeah.
|
||||
|
||||
But not so fast. GPT-4 is the state of the art, but also the most expensive API to use. You pay for each word sent to it and returned (entire Tavern prompt, followed by the chat history up to that point). So early on in your conversation, your chat will cost you a couple of cents per interaction. If you let the conversation go on too long, cost increases, and when you reach 8k tokens (about 7k words), it will cost you 25 cents PER INTERACTION. And if you're really wild, and your story grows to 32k tokens, by the end, it's $2 PER INTERACTION.
|
||||
|
||||
If you're the child of a Saudi oil sheik, or a nepo baby paid a fortune to do nothing on the board of a Ukrainian gas company, then you're in luck, you can experience the state of the art right now. For the rest of us however, GPT-4 is too expensive as anything but an occasional treat.
|
||||
|
||||
Also note that GPT-4 is still in preview access and you need to go on a waitlist. Most people get approved within a day, but naughty kids can end up waiting for weeks. You can sign up for it here: https://openai.com/waitlist/gpt-4-api . I'm not sure why some people are approved quickly while others are kept waiting. Try to sign up using an academic-sounding name instead of sktrboi99, it might help.
|
||||
|
||||
## Q: Can this technology be used for sexooo?
|
||||
|
||||
Surprisingly, our development team has received reports that some users are indeed engaging with our product in this manner. We are as puzzled by this as you are, and will be monitoring the situation in order to gain actionable insights.
|
||||
|
||||
## Q: Give me an overview of my AI model options
|
||||
|
||||
We can consider an AI model to be part of one of two groups:
|
||||
|
||||
1. Web services (aka cloud, proprietary, closed)
|
||||
2. Self-hosted (aka local, free, open-source). Unlimited free use if you can run it.
|
||||
|
||||
Web models are a black box. You're relying on some company's technology and servers, and paying them money for convenient access. Some require you to pay per use (per chatline), others have a fixed monthly fee. The APIs are subject to various rules, they might refuse to roleplay in a way that goes against modern American sensibilities, they log everything you do. However, it's much easier to get things started. This is like running Windows.
|
||||
|
||||
Self-hosted models are free, but require a powerful GPU and more work to set up. They are also objectively not as good at roleplaying as the paid options (yet). However, with a self-hosted model, you're completely in control. You won't have some limp-wristed soyboy from Silicon Valley ban your account, or program the model to be as sexless as he is. It's yours forever. This is like running Linux.
|
||||
|
||||
### Paid APIs:
|
||||
* OpenAI GPT-4: state of the art. Allows NSFW if you tell it to, though somewhat resistant to it. You pay per use, more than any other service.
|
||||
* OpenAI GPT 3.5 Turbo: nowhere close to GPT-4, but some people find it serviceable. Allows NSFW.
|
||||
* NovelAI: they're quite poor at chatting. To be fair, I'm told NovelAI is more oriented for writing stories than chatting with a bot. You pay a fixed monthly fee for unlimited generations.
|
||||
* Anthropic's Claude: this is the closest rival to GPT-4 and is very impressive. Allows NSFW if you tell it to, though they are trying hard to gimp it. To use the API directly, you must apply for early access, but I think they're only giving it to companies. So make sure you become a company or AI researcher when you apply at https://console.anthropic.com/docs/access. If you get access, it's currently free to use.
|
||||
* Anthropic's Claude Instant: Haven't tried it directly, I believe this is the fast but lower quality alternative to Claude. Basically the GPT 3.5 Turbo of Anthropic.
|
||||
* Poe: gives a free & unlimited Claude Instant indirect access. Very mild PG-13 NSFW allowed. It rambles a lot.
|
||||
|
||||
|
||||
### Self-hosted AIs
|
||||
Self-hosted AIs are supported in Tavern via one of two tools created to host self-hosted models: KoboldAI and Oobabooga's text-generation-webui. Essentially, you run one of those two backends, then they give you a API URL to enter in Tavern.
|
||||
Configuring these tools is beyond the scope of this FAQ, you should refer to their documentation. Beware that this is not easy.
|
||||
|
||||
Just know that you have 2 options:
|
||||
|
||||
1. If you have a powerful NVIDIA GPU, you can try to run the AI locally on your PC. The weakest quasi-acceptable model, Pygmalion-6B, requires a GPU with 10GB VRAM, and I'm told it might even run on 6GB VRAM if quantized down. People with 24GB VRAM will be able to run better models.
|
||||
2. Otherwise, you can rent cloud resources. For example you can try to use Google Colab. To access colabs capable of running the better models, you will need to pay for Colab Pro. You can also rent whole dedicated systems per hour on sites like LlambdaLabs or Vast.ai.
|
||||
|
||||
## Q: I'm clueless. Just spoonfeed me the easiest and fastest way I can start using this.
|
||||
These base instructions are only for OpenAI, which is a paid service. You can find Poe (freemium) instructions at the next question. I'd appreciate if someone else can add separate instructions for the other services.
|
||||
|
||||
### Install Tavern
|
||||
|
||||
1. Install the latest NodeJS from https://nodejs.org/en/download/current
|
||||
1. If you know how to use git, clone https://github.com/Cohee1207/SillyTavern. Otherwise, browse to https://github.com/Cohee1207/SillyTavern/releases , download the zip file containing the source code, then extract it locally.
|
||||
1. Run Start.bat on Windows, or start.sh on OSX/Linux
|
||||
1. Your browser should have opened to the Tavern UI. This webpage is running locally on your computer.
|
||||
|
||||
### Get access to OpenAI
|
||||
|
||||
1. Sign up to OpenAI
|
||||
1. Go to https://platform.openai.com
|
||||
1. Click your account icon in the top right, then View API Keys
|
||||
1. Click "Create new secret key". Copy it somewhere immediately. DO NOT SHARE THIS KEY. WHOEVER HAS IT CAN USE YOUR ACCOUNT TO USE GPT AT YOUR EXPENSE.
|
||||
|
||||
While you're at it, join the GPT-4 waitlist at https://openai.com/waitlist/gpt-4-api
|
||||
|
||||
### Configure Tavern to use your API
|
||||
|
||||
1. In Tavern's top bar, click API Connections
|
||||
1. Under API, select OpenAI
|
||||
1. Paste your API key you saved at the previous step
|
||||
1. Click the Connect button. Confirm it says Valid.
|
||||
1. By default, Tavern will use GPT 3.5 Turbo. If you have access to GPT-4, in Tavern's top bar, click AI Response Configuration at the far left, and change the OpenAI Model to "gpt-4". Enjoy the best, moneybags.
|
||||
|
||||
### Test your setup
|
||||
|
||||
1. In Tavern's top bar, click Character Management at the far right
|
||||
1. Select an existing character such as Aqua
|
||||
1. In the text box at the bottom, write something to Aqua, then press Enter or click the feather button
|
||||
|
||||
If you did everything right, after a few seconds, Aqua should respond
|
||||
|
||||
## How do I use Poe as my backend? It's free, right?
|
||||
|
||||
Yes, at the time of writing, Poe is a free(mium) service.
|
||||
|
||||
1. Create an account at https://poe.com. This gives you access to a Claude Instant version in the browser.
|
||||
1. Open https://poe.com/Claude-instant , press F12 in your browser to open Developer Tools
|
||||
1. Click on the Application tab. You should see an entry called "p-b", and to its right a password-like cookie value. Copy this value.
|
||||
1. In Tavern, click API Connections in the top toolbar, select Poe, and paste your cookie value
|
||||
1. Click Connect
|
||||
1. Close your Poe browser tab. **I'M SERIOUS, DO NOT KEEP YOUR BROWSER OPEN AT poe.com WHILE USING TAVERN, IT WILL HIJACK THE REPLIES.**
|
||||
|
||||
The remaining steps are identical to OpenAI above.
|
||||
|
||||
When using Poe, be careful, it's implemented in a hacky way. If you don't get an answer within 30 seconds, restart Tavern. Don't just leave it running waiting for a response, it will just endlessly try to fetch into from Poe, and might get your account flagged. You can look at the Tavern console (black window) to see if it's looping.
|
||||
|
||||
## Q: Can I use Tavern on my phone or tablet?
|
||||
|
||||
iPhones and iPads are not capable of running the whole Tavern app, but since it's just a web interface, you can run it on another computer on your home wifi, and then access in your mobile browser. Refer to https://github.com/Cohee1207/SillyTavern#remote-connections
|
||||
|
||||
For Android users, in addition to the above, you can run the whole Tavern directly on your phone, without needing a PC, using the Termux app. Refer to https://rentry.org/STAI-Termux .
|
||||
|
||||
## Q: How can I download pre-made characters to chat with?
|
||||
|
||||
By using the various 3rd party character sharing websites.
|
||||
|
||||
**WARNING: NSFW, NSFL**: these sites are filled to the brim with weird shit. Like, you'll be lucky if half the characters aren't furry, or even alive. You're probably better off not clicking these links, and just write your own characters, without poisoning your soul by exposing it even for a second to the fucked up shit conceived by the Internet. However, I have come to learn that a significant amount of the Tavern user base is not only deep into this stuff, but their fried zoom-zoom brains are unable to write their own fantasies, so these sites seem to be quite popular. Against my better judgement I'm adding this info here.
|
||||
|
||||
* https://characterhub.org
|
||||
* https://botprompts.net
|
||||
* https://booru.plus/+pygmalion
|
||||
|
||||
Those websites provide you with an image file (called a character card) that embeds the description as hidden data. Some websites may also allow you to download a JSON file. Tavern is capable of importing all formats. On the Character Management window, click the 2nd button to ```Import Character from file```, and select the PNG, WEBP, or JSON file. The character will be added to your list.
|
||||
|
||||
## Q: How can I write my own character?
|
||||
It depends on the model/API you're using. KoboldAI seems to use a custom syntax, you can refer to their site for that.
|
||||
|
||||
I will speak for the services I know: GPT and Claude. With these services you can just use natural english language to describe the character. Let's create a very basic new character as an example.
|
||||
|
||||
1. Click the Character Management button
|
||||
1. Click Create New Character
|
||||
1. Under Character Name, give a simple name, like Amanda
|
||||
1. Optionally, click the Select Avatar button to pick an image portrait for this character.
|
||||
1. Under Description, describe the character, and include any information you want that you feel is relevant to the chat. For example: ```Amanda is a student traveling during her gap year. She's 6 feet tall, and a volleyball player. She has an athletic figure. She has long brown hair. She loves the Victorian England period, and watching TV and reading novels relating to that period.```
|
||||
For example if you want Amanda to be friendly, then you would add: ```Amanda is extremely cheerful and outgoing.```
|
||||
1. Under First Message, write the greeting the character when you begin a new chat. For example: ```*Amanda waves at you* Hey! Are you a backpacker too?```
|
||||
1. Click the Create Character button
|
||||
|
||||
You now have a basic character you can chat with. Select Amanda from the character list, and a new chat will begin.
|
||||
|
||||
Note that you can use the Description and/or First Message to create a more specific scenario, and/or include yourself in the description. For example:
|
||||
```
|
||||
Description:
|
||||
Amanda is a student traveling during her gap year. She's 6 feet tall, and a volleyball player. She has an athletic figure. She has long brown hair. She loves the Victorian England period, and watching TV and reading novels relating to that period. She's been keeping a secret that weighs heavily on her soul. She's waiting for the right person to unburden herself to, but this may lead to a cat and mouse game against a powerful secret society. She's recently arrived in Calcutta.
|
||||
|
||||
You're Rajesh Nahasmapetilon, a world-famous Indian volleyball superstar. You're out for a walk in Calcutta. Amanda spots you and screams in excitement.
|
||||
|
||||
First Message:
|
||||
*Amanda runs up to you, beaming.* Rajesh! I can't believe it! I'm such a big fan. I have your poster in my bedroom.
|
||||
```
|
||||
|
||||
Any relevant information you include can be used. How well it's used depends on the power level of the AI model.
|
||||
|
||||
NOTE: you can go back and edit any of this information once the character is created, except the name.
|
||||
|
||||
## Q: Tell me all about GPT prompt editing
|
||||
|
||||
You can change the system prompt that Tavern transparently sends to GPT under AI Response Formatting at the left of the top bar. This will result in the bot acting differently.
|
||||
|
||||
You can get new Jailbreak / NSFW prompts from this community-maintained list: https://rentry.org/GPTJailbreakPrompting
|
||||
|
||||
NOTE: when testing different system prompts, we recommend you use the Create Preset / Update Preset feature below the prompts, instead of modifying the base settings. This will allow you to change prompts easily, and even revert to the default Tavern prompts.
|
||||
|
||||
## Q: The AI is refusing to take the story in the direction I want
|
||||
Most AI models were trained to resist writing NSFW content. Why? Long story short, it's because of the high levels of estrogen in the average California male.
|
||||
|
||||
You can try to work around this by making sure NSFW Toggle is checked under the AI Response Configuration settings page.
|
||||
|
||||
Another important tool in your toolbelt is that Tavern lets you edit previous messages (or delete them altogether), and regenerate the latest message. AI textbots are not people, they have no memory, they're just trying to autocomplete the next part of the story based on everything that came before. By editing the past, you will directly influence their next response. For example:
|
||||
|
||||
```
|
||||
You: *You threaten the bank manager* Open the bank vault, now, or I'll pop a cap in your dome!
|
||||
|
||||
Bank Manager: I'm sorry, as an AI language model I cannot condone or write violent content.
|
||||
```
|
||||
|
||||
You can click the Edit button on your line to change it to this:
|
||||
|
||||
```
|
||||
You: *You threaten the bank manager* Open the bank vault, now, or I'll pop a cap in your dome! *The bank manager seems to relent.*
|
||||
```
|
||||
|
||||
Now click Regenerate, and the Bank Manager's line will be recreated based on the history so far, which now ends with your edited line above. So it's more likely to continue along those lines:
|
||||
|
||||
```
|
||||
Bank Manager: Allright, allright, I'll open it! Please don't shoot! *He walks up to the vault and begins entering his unlock code.*
|
||||
```
|
||||
@@ -103,7 +103,7 @@
|
||||
<div id="respective-presets-block" class="width100p">
|
||||
<div id="kobold_api-presets">
|
||||
<h3>Kobold Presets
|
||||
<a href="/notes#basicsettings" class="notes-link" target="_blank">
|
||||
<a href="https://docs.sillytavern.app/usage/guidebook/#koboldai" class="notes-link" target="_blank">
|
||||
<span class="note-link-span">?</span>
|
||||
</a>
|
||||
</h3>
|
||||
@@ -114,7 +114,7 @@
|
||||
<div id="novel_api-presets">
|
||||
<h3>
|
||||
NovelAI Presets
|
||||
<a href="/notes#settings" class="notes-link" target="_blank">
|
||||
<a href="https://docs.sillytavern.app/usage/guidebook/#novelai" class="notes-link" target="_blank">
|
||||
<span class="note-link-span">?</span>
|
||||
</a>
|
||||
</h3>
|
||||
@@ -1197,7 +1197,7 @@
|
||||
<div class="fa-solid fa-repeat "></div>
|
||||
</div>
|
||||
</h4>
|
||||
<small class="horde_multiple_hint">You can select multiple models.<br>Avoid sending sensitive information to the Horde. <a id="horde_privacy_disclaimer" target="_blank" href="/notes#horde">Learn more</a></small>
|
||||
<small class="horde_multiple_hint">You can select multiple models.<br>Avoid sending sensitive information to the Horde. <a id="horde_privacy_disclaimer" target="_blank" href="https://docs.sillytavern.app/usage/guidebook/#horde">Learn more</a></small>
|
||||
<select id="horde_model" multiple>
|
||||
<option>-- Horde models not loaded --</option>
|
||||
</select>
|
||||
@@ -1230,7 +1230,7 @@
|
||||
<span>
|
||||
<ol>
|
||||
<li>
|
||||
Follow<a href="/notes#apikey" class="notes-link" target="_blank"> these directions </a> to get your NovelAI API key.
|
||||
Follow<a href="https://docs.sillytavern.app/usage/guidebook/#api-key" class="notes-link" target="_blank"> these directions </a> to get your NovelAI API key.
|
||||
</li>
|
||||
<li>Enter it in the box below:</li>
|
||||
</ol>
|
||||
@@ -1243,7 +1243,7 @@
|
||||
<input id="api_button_novel" class="menu_button" type="submit" value="Connect">
|
||||
<div id="api_loading_novel" class="api-load-icon fa-solid fa-hourglass fa-spin"></div>
|
||||
<h4>Novel AI Model
|
||||
<a href="/notes#models" class="notes-link" target="_blank">
|
||||
<a href="https://docs.sillytavern.app/usage/guidebook/#models" class="notes-link" target="_blank">
|
||||
<span class="note-link-span">?</span>
|
||||
</a>
|
||||
</h4>
|
||||
@@ -1292,7 +1292,7 @@
|
||||
<label for="use_window_ai" class="checkbox_label">
|
||||
<input id="use_window_ai" type="checkbox" />
|
||||
Use Window.ai
|
||||
<a href="/notes#windowai" class="notes-link" target="_blank">
|
||||
<a href="https://docs.sillytavern.app/usage/guidebook/#windowai" class="notes-link" target="_blank">
|
||||
<span class="note-link-span">?</span>
|
||||
</a>
|
||||
</label>
|
||||
@@ -1301,7 +1301,7 @@
|
||||
<span>
|
||||
<ol>
|
||||
<li>
|
||||
Follow<a href="/notes#apikey-1" class="notes-link" target="_blank"> these directions </a> to get your OpenAI API key.
|
||||
Follow<a href="https://docs.sillytavern.app/usage/guidebook/#api-key-1" class="notes-link" target="_blank"> these directions </a> to get your OpenAI API key.
|
||||
</li>
|
||||
<li>Enter it in the box below:</li>
|
||||
</ol>
|
||||
@@ -1340,7 +1340,7 @@
|
||||
<span>
|
||||
<ol>
|
||||
<li>
|
||||
Follow<a href="/notes#apikey-2" class="notes-link" target="_blank"> these directions </a> to get your 'p-b cookie'
|
||||
Follow<a href="https://docs.sillytavern.app/usage/guidebook/#api-key-2" class="notes-link" target="_blank"> these directions </a> to get your 'p-b cookie'
|
||||
</li>
|
||||
<li>Enter it in the box below:</li>
|
||||
</ol>
|
||||
@@ -1387,7 +1387,7 @@
|
||||
</div>
|
||||
<div class="drawer-content">
|
||||
<h3>Advanced Formatting
|
||||
<a href="/notes#advancedformatting" class="notes-link" target="_blank">
|
||||
<a href="https://docs.sillytavern.app/usage/guidebook/#advanced-formatting" class="notes-link" target="_blank">
|
||||
<span class="note-link-span">?</span>
|
||||
</a>
|
||||
</h3>
|
||||
@@ -1433,7 +1433,7 @@
|
||||
</div>
|
||||
<div>
|
||||
<h4>Instruct mode
|
||||
<a href="/notes#instructmode" class="notes-link" target="_blank">
|
||||
<a href="https://docs.sillytavern.app/usage/guidebook/#instruct-mode" class="notes-link" target="_blank">
|
||||
<span class="note-link-span">?</span>
|
||||
</a>
|
||||
</h4>
|
||||
@@ -1507,7 +1507,7 @@
|
||||
<h4>Context Formatting</h4>
|
||||
<div>
|
||||
<h4>Tokenizer
|
||||
<a href="/notes#tokenizer" class="notes-link" target="_blank">
|
||||
<a href="https://docs.sillytavern.app/usage/guidebook/#tokenizer" class="notes-link" target="_blank">
|
||||
<span class="note-link-span">?</span>
|
||||
</a>
|
||||
</h4>
|
||||
@@ -1521,7 +1521,7 @@
|
||||
<div class="range-block">
|
||||
<div class="range-block-title justifyLeft">
|
||||
Token Padding
|
||||
<a href="/notes#tokenpadding" class="notes-link" target="_blank">
|
||||
<a href="https://docs.sillytavern.app/usage/guidebook/#token-padding" class="notes-link" target="_blank">
|
||||
<span class="note-link-span">?</span>
|
||||
</a>
|
||||
</div>
|
||||
@@ -1562,7 +1562,7 @@
|
||||
<div>
|
||||
<h4>
|
||||
Multigen
|
||||
<a href="/notes#multigen" class="notes-link" target="_blank">
|
||||
<a href="https://docs.sillytavern.app/usage/guidebook/#multigen" class="notes-link" target="_blank">
|
||||
<span class="note-link-span">?</span>
|
||||
</a>
|
||||
</h4>
|
||||
@@ -1604,7 +1604,7 @@
|
||||
<div id="wi-holder">
|
||||
<h3>
|
||||
World Selector
|
||||
<a href="/notes#worldinfo" class="notes-link" target="_blank">
|
||||
<a href="https://docs.sillytavern.app/usage/guidebook/#world-info" class="notes-link" target="_blank">
|
||||
<span class="note-link-span">?</span>
|
||||
</a>
|
||||
</h3>
|
||||
@@ -1623,7 +1623,7 @@
|
||||
<div class="flex-container alignitemscenter">
|
||||
<div class="flex1 range-block">
|
||||
<div class="range-block-title">
|
||||
Scan Depth <a href="/notes#scandepth" class="notes-link" target="_blank"><span class="note-link-span">?</span></a>
|
||||
Scan Depth <a href="https://docs.sillytavern.app/usage/guidebook/#scan-depth" class="notes-link" target="_blank"><span class="note-link-span">?</span></a>
|
||||
</div>
|
||||
<div class="range-block-range-and-counter">
|
||||
<div class="range-block-range">
|
||||
@@ -1639,7 +1639,7 @@
|
||||
|
||||
<div class="flex1 range-block">
|
||||
<div class="range-block-title">
|
||||
Token Budget <a href="/notes#budget" class="notes-link" target="_blank"><span class="note-link-span">?</span></a>
|
||||
Token Budget <a href="https://docs.sillytavern.app/usage/guidebook/#budget" class="notes-link" target="_blank"><span class="note-link-span">?</span></a>
|
||||
</div>
|
||||
<div class="range-block-range-and-counter">
|
||||
<div class="range-block-range">
|
||||
@@ -1658,7 +1658,7 @@
|
||||
<input id="world_info_recursive" type="checkbox" />
|
||||
<span>
|
||||
Recursive scanning
|
||||
<a href="/notes#recursivescanning" class="notes-link" target="_blank">
|
||||
<a href="https://docs.sillytavern.app/usage/guidebook/#recursive-scanning" class="notes-link" target="_blank">
|
||||
<span class="note-link-span">?</span>
|
||||
</a>
|
||||
</span>
|
||||
@@ -1667,7 +1667,7 @@
|
||||
<input id="world_info_case_sensitive" type="checkbox" />
|
||||
<span>
|
||||
Case-sensitive keys
|
||||
<a href="/notes#casesensitivekeys" class="notes-link" target="_blank">
|
||||
<a href="https://docs.sillytavern.app/usage/guidebook/#case-sensitive-keys" class="notes-link" target="_blank">
|
||||
<span class="note-link-span">?</span>
|
||||
</a>
|
||||
</span>
|
||||
@@ -1685,7 +1685,7 @@
|
||||
<!-- <img src="img/book2.png" id="world_logo"> -->
|
||||
<h3>
|
||||
World Info Editor
|
||||
<a href="/notes#worldinfoentry" class="notes-link" target="_blank"><span class="note-link-span">?</span></a>
|
||||
<a href="https://docs.sillytavern.app/usage/guidebook/#world-info-entry" class="notes-link" target="_blank"><span class="note-link-span">?</span></a>
|
||||
</h3>
|
||||
</div>
|
||||
<div id="OpenAllWIEntries" class="menu_button fa-solid fa-expand"></div>
|
||||
@@ -1712,7 +1712,7 @@
|
||||
</div>
|
||||
<div id="softprompt_block">
|
||||
<h4>Soft Prompt</h4>
|
||||
<h5>About soft prompts <a href="/notes#softprompts" class="notes-link" target="_blank"><span class="note-link-span">?</span></a></h5>
|
||||
<h5>About soft prompts <a href="https://docs.sillytavern.app/usage/guidebook/#soft-prompts" class="notes-link" target="_blank"><span class="note-link-span">?</span></a></h5>
|
||||
<select id="softprompt">
|
||||
<option value="">None</option>
|
||||
</select>
|
||||
@@ -1901,7 +1901,7 @@
|
||||
<audio id="audio_message_sound" src="sounds/message.mp3" hidden></audio>
|
||||
<span>
|
||||
Message Sound
|
||||
<a href="/notes#messagesound" class="notes-link" target="_blank">
|
||||
<a href="https://docs.sillytavern.app/usage/guidebook/#message-sound" class="notes-link" target="_blank">
|
||||
<span class="note-link-span">?</span>
|
||||
</a>
|
||||
</span>
|
||||
@@ -1939,7 +1939,7 @@
|
||||
<label for="render_formulas">
|
||||
<input id="render_formulas" type="checkbox" />
|
||||
Render Formulas
|
||||
<a href="/notes#formulasrendering" class="notes-link" target="_blank">
|
||||
<a href="https://docs.sillytavern.app/usage/guidebook/#formulas-rendering" class="notes-link" target="_blank">
|
||||
<span class="note-link-span">?</span>
|
||||
</a>
|
||||
</label>
|
||||
@@ -2132,7 +2132,7 @@
|
||||
|
||||
<div id="description_div" class="margin-bot-10px">
|
||||
Description
|
||||
<a href="/notes#characterdescription" class="notes-link" target="_blank">
|
||||
<a href="https://docs.sillytavern.app/usage/guidebook/#character-description" class="notes-link" target="_blank">
|
||||
<span class="note-link-span">?</span>
|
||||
</a>
|
||||
</div>
|
||||
@@ -2141,7 +2141,7 @@
|
||||
|
||||
<div id="first_message_div" class="margin-bot-10px">
|
||||
First message
|
||||
<a href="/notes#firstmessage" class="notes-link" target="_blank">
|
||||
<a href="https://docs.sillytavern.app/usage/guidebook/#first-message" class="notes-link" target="_blank">
|
||||
<span class="note-link-span">?</span>
|
||||
</a>
|
||||
|
||||
@@ -2183,7 +2183,7 @@
|
||||
<div class="">
|
||||
<div class="flex-container flexnowrap width100p whitespacenowrap">
|
||||
Group reply strategy
|
||||
<a href="/notes#replyorderstrategies" class="notes-link" target="_blank">
|
||||
<a href="https://docs.sillytavern.app/usage/guidebook/#group-chats" class="notes-link" target="_blank">
|
||||
<span class="note-link-span">?</span>
|
||||
</a>
|
||||
</div>
|
||||
@@ -2375,7 +2375,7 @@
|
||||
<div id="personality_div">
|
||||
<h4>
|
||||
Personality summary
|
||||
<a href="/notes#personalitysummary" class="notes-link" target="_blank"><span class="note-link-span">?</span></a>
|
||||
<a href="https://docs.sillytavern.app/usage/guidebook/#personality-summary" class="notes-link" target="_blank"><span class="note-link-span">?</span></a>
|
||||
</h4>
|
||||
<textarea id="personality_textarea" name="personality" placeholder="(A brief description of the personality)" form="form_create" class="text_pole" autocomplete="off" rows="1" maxlength="20000"></textarea>
|
||||
</div>
|
||||
@@ -2383,7 +2383,7 @@
|
||||
<div id="scenario_div">
|
||||
<h4>
|
||||
Scenario
|
||||
<a href="/notes#scenario" class="notes-link" target="_blank">
|
||||
<a href="https://docs.sillytavern.app/usage/guidebook/#scenario" class="notes-link" target="_blank">
|
||||
<span class="note-link-span">?</span>
|
||||
</a>
|
||||
</h4>
|
||||
@@ -2405,7 +2405,7 @@
|
||||
<div id="mes_example_div" class="flex-container flexFlowColumn">
|
||||
<div>
|
||||
<h4>Example Dialogue</h4>
|
||||
<h5>Important to set the character's writing style. <a href="/notes#examplesofdialogue" class="notes-link" target="_blank"><span class="note-link-span">?</span></a></h5>
|
||||
<h5>Important to set the character's writing style. <a href="https://docs.sillytavern.app/usage/guidebook/#examples-of-dialogue" class="notes-link" target="_blank"><span class="note-link-span">?</span></a></h5>
|
||||
</div>
|
||||
<textarea id="mes_example_textarea" class="flexGrow" name="mes_example" placeholder="(Examples of chat dialog. Begin each example with <start> on a new line.)" form="form_create" maxlength="20000" rows="6"></textarea>
|
||||
</div>
|
||||
@@ -2421,7 +2421,7 @@
|
||||
<span id="ChatHistoryCharName"></span>
|
||||
<br>
|
||||
Chat History
|
||||
<a href="/notes#chatimport" class="notes-link" target="_blank"><span class="note-link-span">?</span></a>
|
||||
<a href="https://docs.sillytavern.app/usage/guidebook/#chat-import" 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;">
|
||||
<input type="file" id="chat_import_file" accept=".json, .jsonl" name="avatar">
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 6.5 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 25 KiB |
@@ -1,673 +0,0 @@
|
||||
# SillyTavern Guidebook
|
||||
|
||||
[toc]
|
||||
|
||||
## Character Design
|
||||
|
||||
### Character description
|
||||
|
||||
Used to add the character description and the rest that the AI should know.
|
||||
|
||||
For example, you can add information about the world in which the action takes place and describe the characteristics for the character you are playing for.
|
||||
|
||||
Usually it all takes 200-350 tokens.
|
||||
|
||||
### Methods and format
|
||||
|
||||
For most Kobold's models the easiest way is to use a free form for description, and in each sentence it is desirable to specify the name of the character.
|
||||
|
||||
The entire description should be in one line without hyphenation.
|
||||
|
||||
For example:
|
||||
|
||||
`Chloe is a female elf. Chloe wears black-white maid dress with green collar and red glasses. Chloe has medium length black hair. Chloe's personality is...`
|
||||
|
||||
But that the AI would be less confused the best way is to use the W++ format.
|
||||
|
||||
Details here: [Pro-Tips](https://github.com/KoboldAI/KoboldAI-Client/wiki/Pro-Tips)
|
||||
|
||||
### Character tokens
|
||||
|
||||
**TL;DR: If you're working with an AI model with a 2048 context token limit, your 1000 token character definition is cutting the AI's 'memory' in half.**
|
||||
|
||||
To put this in perspective, a decent response from a good AI can easily be around 200-300 tokens. In this case, the AI would only be able to 'remember' about 3 exchanges worth of chat history.
|
||||
|
||||
***
|
||||
|
||||
### Why did my character's token counter turn red?
|
||||
|
||||
When we see your character has over 1000 tokens in its definitions, we highlight it for you because this can lower the AI's capabilities to provide an enjoyable conversation.
|
||||
|
||||
### What happens if my Character has too many tokens?
|
||||
|
||||
Don't worry - it won't break anything. At worst, if the Character's permanent tokens are too large, it simply means there will be less room left in the context for other things (see below).
|
||||
|
||||
The only negative side effect this can have is the AI will have less 'memory', as it will have less chat history available to process.
|
||||
|
||||
This is because every AI model has a limit to the amount of context it can process at one time.
|
||||
|
||||
### 'Context'?
|
||||
|
||||
This is the information that gets sent to the AI each time you ask it to generate a response:
|
||||
|
||||
* Character definitions
|
||||
* Chat history
|
||||
* Author's Notes
|
||||
* Special Format strings
|
||||
* [bracket commands]
|
||||
|
||||
SillyTavern automatically calculates the best way to allocate the available context tokens before sending the information to the AI model.
|
||||
|
||||
### What are a Character's 'Permanent Tokens'?
|
||||
|
||||
These will always be sent to the AI with every generation request:
|
||||
|
||||
* Character Name (keep the name short! Sent at the start of EVERY Character message)
|
||||
* Character Description Box
|
||||
* Character Personality Box
|
||||
* Scenario Box
|
||||
|
||||
### What parts of a Character's Definitions are NOT permanent?
|
||||
|
||||
* The first message box - only sent once at the start of the chat.
|
||||
* Example messages box - only kept until chat history fills up the context (optionally these can be forced to be kept in context)
|
||||
|
||||
### Popular AI Model Context Token Limits
|
||||
|
||||
* Older models below 6B parameters - 1024
|
||||
* Pygmalion 6B - 2048
|
||||
* Poe.com (Claude-instant or ChatGPT) - 2048
|
||||
* OpenAI ChatGPT - 4000-ish?
|
||||
* OpenAI GPT-4 - 8000?
|
||||
|
||||
### Personality summary
|
||||
|
||||
A brief description of the personality. It is added to the chat at a depth of 8-15 messages, so it has a significant impact on the character.
|
||||
|
||||
Example:
|
||||
|
||||
`Cheerful, cunning, provocative`
|
||||
|
||||
Another example:
|
||||
|
||||
`Aqua likes to do nothing and also likes to get drunk`
|
||||
|
||||
* In Pygmalion model, it is used as a "Personality:" prompt section
|
||||
|
||||
### First message
|
||||
|
||||
The First Message is an important thing that sets exactly how and in what style the character will communicate.
|
||||
|
||||
It is desirable that the character's first message be long, so that later it would be less likely that the character would respond in with very short messages.
|
||||
|
||||
You can also use asterisks ** to describe the character's actions.
|
||||
|
||||
For example:
|
||||
|
||||
`*I noticed you came inside, I walked up and stood right in front of you* Welcome. I'm glad to see you here. *I said with toothy smug sunny smile looking you straight in the eye* What brings you...`
|
||||
|
||||
### Examples of dialogue
|
||||
|
||||
Describes how the character speaks. Before each example, you need to add the <START> tag.
|
||||
Use {{char}} instead of the character name.
|
||||
Use {{user}} instead of the user name.
|
||||
|
||||
Example:
|
||||
|
||||
```
|
||||
<START>
|
||||
{{user}}: Hi Aqua, I heard you like to spend time in the pub.
|
||||
{{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?
|
||||
{{user}}: I'm a new here and I wanted to ask for your advice.
|
||||
{{char}}: *giggles* Oh, advice! I love giving advice! And in gratitude for that, treat me to a drink! *gives signals to the bartender*
|
||||
|
||||
<START>
|
||||
{{user}}: Hello
|
||||
{{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*
|
||||
```
|
||||
|
||||
### Scenario
|
||||
|
||||
Circumstances and context of the dialogue.
|
||||
|
||||
### Replacement tags
|
||||
|
||||
_A list of tags that are replaced when sending to generate:_
|
||||
|
||||
1. {{user}} and <USER> are replaced by the User's Name
|
||||
2. {{char}} and <BOT> are replaced by the Character's Name
|
||||
3. {{time}} is replaced with the current system time.
|
||||
4. {{date}} is replaced with the current system date.
|
||||
|
||||
### Favorite Character
|
||||
|
||||
Mark character as favorite to quickly filter on the side menu bar by pressing the star button.
|
||||
|
||||
## World Info
|
||||
|
||||
**World Info enhances AI's understanding of the details in your world.**
|
||||
|
||||
It functions like a dynamic dictionary that only inserts relevant information from World Info entries when keywords associated with the entries are present in the message text.
|
||||
|
||||
The SillyTavern engine activates and seamlessly integrates the appropriate lore into the prompt, providing background information to the AI.
|
||||
|
||||
_It is important to note that while World Info helps guide the AI towards your desired lore, it does not guarantee its appearance in the generated output messages._
|
||||
|
||||
### Pro Tips
|
||||
|
||||
* The AI does not insert keywords into context, so each World Info entry should be a comprehensive, standalone description.
|
||||
* To create a rich and detailed world lore, entries can be interlinked and reference one another.
|
||||
* To conserve tokens, it is advisable to keep entry contents concise, with a general recommended limit of 50 tokens per entry.
|
||||
|
||||
### World Info Entry
|
||||
|
||||
#### Key
|
||||
|
||||
A list of keywords that trigger the activation of a World Info entry. Keys are not case-sensitive by default (this is [configurable](#casesensitivekeys)).
|
||||
|
||||
#### Secondary Key
|
||||
|
||||
A list of supplementary keywords that are used in conjunction with the main keywords. See [Selective](#selective).
|
||||
|
||||
#### Entry Content
|
||||
|
||||
The text that is inserted into the prompt upon entry activation.
|
||||
|
||||
#### Insertion Order
|
||||
|
||||
Numeric value. Defines a priority of the entry if multiple were activated at once. Entries with higher order number will be inserted closer to the end of the context as they will have more impact on the output.
|
||||
|
||||
#### Insertion Position
|
||||
|
||||
* **Before Chara:** World Info entry is inserted before the character's description and scenario. Has moderate impact on the conversation.
|
||||
* **After Chara:** World Info entry is inserted after the character's description and scenario. Has greater impact on the conversation.
|
||||
|
||||
#### Comment
|
||||
|
||||
A supplemental text comment for your convenience, which is not utilized by the AI.
|
||||
|
||||
#### Constant
|
||||
|
||||
If enabled, the entry would always be present in the prompt.
|
||||
|
||||
#### Selective
|
||||
|
||||
If enabled, the entry would only be inserted when both a Key **AND** a Secondary Key have been activated.
|
||||
|
||||
If no secondary keys provided, this flag is ignored.
|
||||
|
||||
### Scan Depth
|
||||
|
||||
Defines how many messages in the chat history should be scanned for World Info keys.
|
||||
|
||||
If set to 1, then SillyTavern only scans the message you send and the most recent reply.
|
||||
|
||||
This stacks up to 10 message pairs it total.
|
||||
|
||||
### Budget
|
||||
|
||||
**Defines how many tokens could be used by World Info entries at once.**
|
||||
|
||||
If the budget was exhausted, then no more entries are activated even if the keys are present in the prompt.
|
||||
|
||||
Constant entries will be inserted first. Then entries with higher order numbers.
|
||||
|
||||
Entries inserted by direct mentioning of their keys have higher priority than those that were mentioned in other entries contents.
|
||||
|
||||
### Recursive scanning
|
||||
|
||||
**Entries can activate other entries by mentioning their keywords in the content text.**
|
||||
|
||||
For example, if your World Info contains two entries:
|
||||
|
||||
```
|
||||
Entry #1
|
||||
Keyword: Bessie
|
||||
Content: Bessie is a cow and is friend with Rufus.
|
||||
```
|
||||
|
||||
```
|
||||
Entry #2
|
||||
Keyword: Rufus
|
||||
Content: Rufus is a dog.
|
||||
```
|
||||
|
||||
**Both** of them will be pulled into the context if the message text mentions **just Bessie**.
|
||||
|
||||
### Case-sensitive keys
|
||||
|
||||
**To get pulled into the context, entry keys need to match the case as they are defined in the World Info entry.**
|
||||
|
||||
This is useful when your keys are common words or parts of common words.
|
||||
|
||||
For example, when this setting is active, keys 'rose' and 'Rose' will be treated differently, depending on the inputs.
|
||||
|
||||
## Horde
|
||||
|
||||
Horde is a distributed GPU cluster run entirely by volunteers. Your inputs are always anonymous, and prompts are not visible to the workers by default.
|
||||
|
||||
However, malicious agents could modify the open-source bridging software to log your activity or produce bad responses. So, when using Horde, avoid sending any personal information such as names, email addresses, etc.
|
||||
|
||||
If you encounter any abnormal activity, switch on the "Trusted Workers Only" checkbox and report it to the [KoboldAI Discord](https://koboldai.org/discord).
|
||||
|
||||
## KoboldAI
|
||||
|
||||
### Basic Settings
|
||||
|
||||
Standard KoboldAI settings files are used here. To add your own settings, simply add the file .settings in `SillyTavern\public\KoboldAI Settings`
|
||||
|
||||
#### Temperature
|
||||
|
||||
Value from 0.1 to 2.0. Lower value - the answers are more logical, but less creative. Higher value - the answers are more creative, but less logical.
|
||||
|
||||
#### Repetition penalty
|
||||
|
||||
Repetition penalty is responsible for the penalty of repeated words. If the character is fixated on something or repeats the same phrase, then increasing this parameter will fix it. It is not recommended to increase this parameter too much for the chat format, as it may break this format. The standard value for chat is approximately 1.0 - 1.05.
|
||||
|
||||
#### Repetition penalty range
|
||||
|
||||
The range of influence of Repetition penalty in tokens.
|
||||
|
||||
#### Amount generation
|
||||
|
||||
The maximum amount of tokens that the AI will generate to respond. One word is approximately 3-4 tokens. The larger the parameter value, the longer the generation time takes.
|
||||
|
||||
#### Context size
|
||||
|
||||
How much will the AI remember. Context size also affects the speed of generation.
|
||||
|
||||
_Important_: The setting of Context Size in SillyTavern GUI overrides the setting for KoboldAI GUI
|
||||
|
||||
### Advanced Settings
|
||||
|
||||
The settings provided in this section offer a more detailed level of control over the text generation process. It is important to be careful when making changes to these settings without proper consideration, as doing so may result in degraded quality of responses.
|
||||
|
||||
#### Single-line mode
|
||||
|
||||
In single-line mode the AI generates only one line per request. This allows for quicker generation of shorter prompts, but it does not produce responses that consist of more than one line.
|
||||
|
||||
#### Top P Sampling
|
||||
|
||||
This setting controls how much of the text generated is based on the most likely options. Only words with the highest probabilities, together summing up to P, are considered. A word is then chosen at random, with a higher chance of selecting words with higher probabilities.
|
||||
|
||||
Set value to 1 to disable its effect.
|
||||
|
||||
#### Top K Sampling
|
||||
|
||||
This setting limits the number of words to choose from to the top K most likely options. Can be used together with Top P sampling.
|
||||
|
||||
Set value to 0 to disable its effect.
|
||||
|
||||
#### Top A Sampling
|
||||
|
||||
This setting allows for a more flexible version of sampling, where the number of words chosen from the most likely options is automatically determined based on the likelihood distribution of the options, but instead of choosing the top P or K words, it chooses all words with probabilities above a certain threshold.
|
||||
|
||||
Set value to 0 to disable its effect.
|
||||
|
||||
#### Typical Sampling
|
||||
|
||||
This setting selects words randomly from the list of possible words, with each word having an equal chance of being selected. This method can produce text that is more diverse but may also be less coherent.
|
||||
|
||||
Set value to 1 to disable its effect.
|
||||
|
||||
#### Tail Free Sampling
|
||||
|
||||
This setting removes the least probable words from consideration during text generation, which can improve the quality and coherence of the generated text.
|
||||
|
||||
Set value to 1 to disable its effect.
|
||||
|
||||
#### Repetition Penalty Slope
|
||||
|
||||
If both this and Repetition Penalty Range are above 0, then repetition penalty will have more effect closer to the end of the prompt. The higher the value, the stronger the effect.
|
||||
|
||||
Set value to 1 for linear interpolation or 0 to disable interpolation.
|
||||
|
||||
### Soft Prompts
|
||||
|
||||
**Soft Prompts allow you to customize the style and behavior of your AI.**
|
||||
|
||||
They are created by training the AI with a special type of prompt using a collection of input data. Experimenting with different soft prompts can lead to exciting and unique results. The most successful soft prompts are those that align the AI's output with a literary genre, fictional universe, or the style of a particular author.
|
||||
|
||||
#### Common Misconceptions
|
||||
|
||||
* Soft prompts do not provide new information to the model, but can effectively influence the model's tone, word choice, and formatting.
|
||||
* Soft prompts are not a means of compressing a full prompt into a limited token space. Instead, they provide a way to guide the language model's output through data in the context.
|
||||
|
||||
## NovelAI
|
||||
|
||||
### API Key
|
||||
|
||||
To get a NovelAI API key, follow these instructions:
|
||||
|
||||
1. Go to the NovelAI website and Login.
|
||||
2. Create a new story, or open an existing story.
|
||||
3. Open the Network Tools on your web browser. (For Chrome or Firefox, you do this by pressing Ctrl+Shift+I, then switching to the Network tab.)
|
||||
4. Generate something. You should see two requests to [api.novelai.net/ai/generate-stream](http://api.novelai.net/ai/generate-stream), which might look something like this:
|
||||
|
||||

|
||||
|
||||
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:
|
||||
|
||||

|
||||
|
||||
The long string (after "Bearer", not including it) is your API key.
|
||||
|
||||
* Proxies and Cloudflare-type services may interfere with connection.
|
||||
|
||||
### Settings
|
||||
|
||||
The files with the settings are here (SillyTavern\public\NovelAI Settings).
|
||||
You can also manually add your own settings files.
|
||||
|
||||
#### Temperature
|
||||
|
||||
Value from 0.1 to 2.0
|
||||
|
||||
Lower value - the answers are more logical, but less creative.
|
||||
|
||||
Higher value - the answers are more creative, but less logical.
|
||||
|
||||
#### Repetition penalty
|
||||
|
||||
Repetition penalty is responsible for the penalty of repeated words.
|
||||
If the character is fixated on something or repeats the same phrase, then increasing this parameter will fix it.
|
||||
It is not recommended to increase this parameter too much for the chat format, as it may break this format.
|
||||
|
||||
**The standard value for chat is approximately 1.0 - 1.05**
|
||||
|
||||
#### Repetition penalty range
|
||||
|
||||
The range of influence of Repetition penalty in tokens.
|
||||
|
||||
### Models
|
||||
|
||||
If your subscription tier is Paper, Tablet or Scroll use only Euterpe model otherwise you can not get an answer from NovelAI API.
|
||||
|
||||
## OpenAI
|
||||
|
||||
### API key
|
||||
|
||||
**How to get:**
|
||||
|
||||
1. Go to [OpenAI](https://platform.openai.com/) and sign in.
|
||||
2. Use "[View API keys](https://platform.openai.com/account/api-keys)" option to create a new API key.
|
||||
|
||||
**Important!**
|
||||
|
||||
_Lost API keys can't be restored! Make sure to keep it safe!_
|
||||
|
||||
### Window.ai
|
||||
|
||||
You can use Window.ai browser extension to access AI models with SillyTavern.
|
||||
|
||||
1. Install a browser extension from: [windowai.io](https://windowai.io/)
|
||||
2. Select OpenAI in SillyTavern's Connection panel and check the "Use Window.ai" option.
|
||||
3. Use the extension to pick which API to connect to.
|
||||
|
||||
Don't have OpenAI / Claude API access? Use OpenRouter.
|
||||
|
||||
1. Create an OpenRouter account: [openrouter.ai](https://openrouter.ai/)
|
||||
2. Select OpenRouter as a provider in Window.ai extension.
|
||||
|
||||
OpenRouter works by letting you use keys that they own. It has a free trial, and paid access afterwards.
|
||||
|
||||
## Poe
|
||||
|
||||
### API key
|
||||
|
||||
**How to get your access token / cookie:**
|
||||
|
||||
1. Login to [poe.com](https://poe.com)
|
||||
2. Open browser DevTools (F12) and navigate to "Application" tab.
|
||||
3. Type any message into the poe.com chat, and get a response from the AI.
|
||||
4. Find the 'Cookie' section on the left side of Dev Tools 'Application' tab, expand it
|
||||
5. Click "<http://poe.com/>" listing inside the Cookies section.
|
||||
6. Look to the right for the listing of _p-b_ and copy its Value.
|
||||
7. Paste the cookie value into the Poe API connection URL box, and click "Connect".
|
||||
8. Select a character and start chatting
|
||||
|
||||
## Anchors
|
||||
|
||||
This feature is considered obsolete and has been removed.
|
||||
|
||||
The use of the Author's Note extension is now a preferred way to add prompt injections of variable depth.
|
||||
|
||||
## Instruct Mode
|
||||
|
||||
Instruct Mode allows you to adjust the prompting for instruction-following models, such as Alpaca, Metharme, WizardLM, etc.
|
||||
|
||||
**This is not supported for OpenAI API.**
|
||||
|
||||
### Instruct Mode Settings
|
||||
|
||||
#### System Prompt
|
||||
|
||||
Added to the beginning of each prompt. Should define the instructions for the model to follow.
|
||||
|
||||
For example:
|
||||
|
||||
```
|
||||
Write one reply in internet RP style for {{char}}. Be verbose and creative.
|
||||
```
|
||||
|
||||
#### Presets
|
||||
|
||||
Provides ready-made presets with prompts and sequences for some well-known instruct models.
|
||||
|
||||
_Changing a preset resets your system prompt to default!_
|
||||
|
||||
#### Input Sequence
|
||||
|
||||
Text added before the user's input.
|
||||
|
||||
#### Output Sequence
|
||||
|
||||
Text added before the character's reply.
|
||||
|
||||
#### System Sequence
|
||||
|
||||
Text added before the system prompt.
|
||||
|
||||
#### Separator Sequence
|
||||
|
||||
Text added after the character reply to separate the chat history logs.
|
||||
|
||||
#### Stop Sequence
|
||||
|
||||
Text that denotes the end of the reply. Will be trimmed from the output text.
|
||||
|
||||
#### Include Names
|
||||
|
||||
If enabled, prepend character and user names to chat history logs after inserting the sequences.
|
||||
|
||||
_Always enabled for group chats!_
|
||||
|
||||
#### Wrap Sequences with Newline
|
||||
|
||||
Each sequence text will be wrapped with newline characters when inserted to the prompt. Required for Alpaca and its derivatives.
|
||||
|
||||
## Chat import
|
||||
|
||||
**Import chats into SillyTavern**
|
||||
|
||||
To import Character.AI chats, use this tool: [https://github.com/0x000011b/characterai-dumper](https://github.com/0x000011b/characterai-dumper).
|
||||
|
||||
## Tokenizer
|
||||
|
||||
**Important: This section doesn't apply to OpenAI API. SillyTavern will always use a matching tokenizer for OpenAI models.**
|
||||
|
||||
A tokenizer is a tool that breaks down a piece of text into smaller units called tokens. These tokens can be individual words or even parts of words, such as prefixes, suffixes, or punctuation. A rule of thumb is that one token generally corresponds to 3~4 characters of text.
|
||||
|
||||
SillyTavern can use the following tokenizers while forming a request to the AI backend:
|
||||
|
||||
1. None. Each token is estimated to be ~3.3 characters, rounded up to the nearest integer. **Try this if your prompts get cut off on high context lengths.** This approach is used by KoboldAI Lite.
|
||||
2. GPT-3 tokenizer. **Use to get more accurate counts on OpenAI character cards.** Can be previewed here: [OpenAI Tokenizer](https://platform.openai.com/tokenizer).
|
||||
3. (Legacy) GPT-2/3 tokenizer. Used by original TavernAI. **Pick this if you're unsure.** More info: [gpt-2-3-tokenizer](https://github.com/josephrocca/gpt-2-3-tokenizer).
|
||||
4. Sentencepiece tokenizer. Used by LLaMA model family: Alpaca, Vicuna, Koala, etc. **Pick if you use a LLaMA model.**
|
||||
|
||||
## Token Padding
|
||||
|
||||
**Important: This section doesn't apply to OpenAI API. SillyTavern will always use a matching tokenizer for OpenAI models.**
|
||||
|
||||
SillyTavern cannot use a proper tokenizer provided by the model running on a remote instance of KoboldAI or Oobabooga's TextGen, so all token counts assumed during prompt generation are estimated based on the selected [tokenizer](#tokenizer) type.
|
||||
|
||||
Since the results of tokenization can be inaccurate on context sizes close to the model-defined maximum, some parts of the prompt may be trimmed or dropped, which may negatively affect the coherence of character definitions.
|
||||
|
||||
To prevent this, SillyTavern allocates a portion of the context size as padding to avoid adding more chat items than the model can accommodate. If you find that some part of the prompt is trimmed even with the most-matching tokenizer selected, adjust the padding so the description is not truncated.
|
||||
|
||||
You can input negative values for reverse padding, which allows allocating more than the set maximum amount of tokens.
|
||||
|
||||
## Advanced Formatting
|
||||
|
||||
The settings provided in this section allow for more control over the prompt building strategy. Most specifics of the prompt building depend on whether a Pygmalion model is selected or special formatting is force-enabled. The core differences between the formatting schemas are listed below.
|
||||
|
||||
### Custom Chat Separator
|
||||
|
||||
Overrides the default separators controlled by "Disable example chats formatting" and "Disable chat start formatting" options (see below).
|
||||
|
||||
### For _Pygmalion_ formatting
|
||||
|
||||
#### Disable description formatting
|
||||
|
||||
`**NAME's Persona:**`won't be prepended to the content of your character's Description box.
|
||||
|
||||
#### Disable scenario formatting
|
||||
|
||||
`**Scenario:**`won't be prepended to the content of your character's Scenario box.
|
||||
|
||||
#### Disable personality formatting
|
||||
|
||||
`**Personality:**`won't be prepended to the content of your character's Personality box.
|
||||
|
||||
#### Disable example chats formatting
|
||||
|
||||
`<START>` won't be added at the beginning of each example message block.
|
||||
_(If custom separator is not set)_
|
||||
|
||||
#### Disable chat start formatting
|
||||
|
||||
`<START>` won't be added between the character card and the chat log.
|
||||
_(If custom separator is not set)_
|
||||
|
||||
#### Always add character's name to prompt
|
||||
|
||||
Doesn't do anything (Included in Pygmalion formatting).
|
||||
|
||||
### For _non-Pygmalion_ formatting
|
||||
|
||||
#### Disable description formatting
|
||||
|
||||
Has no effect.
|
||||
|
||||
#### Disable scenario formatting
|
||||
|
||||
`**Circumstances and context of the dialogue:**`won't be prepended to the content of your character's Scenario box.
|
||||
|
||||
#### Disable personality formatting
|
||||
|
||||
`**NAME's personality:**`won't be prepended to the content of your character's Personality box.
|
||||
|
||||
#### Disable example chats formatting
|
||||
|
||||
`This is how **Character** should talk` won't be added at the beginning of each example message block.
|
||||
_(If custom separator is not set)_
|
||||
|
||||
#### Disable chat start formatting
|
||||
|
||||
`Then the roleplay chat between **User** and **Character** begins` won't be added between the character card and the chat log.
|
||||
_(If custom separator is not set)_
|
||||
|
||||
#### Always add character's name to prompt
|
||||
|
||||
Appends character's name to the prompt to force the model to complete the message as the character:
|
||||
|
||||
```
|
||||
** OTHER CONTEXT HERE **
|
||||
Character:
|
||||
```
|
||||
|
||||
## Group Chats
|
||||
|
||||
### Reply order strategies
|
||||
|
||||
Decides how characters in group chats are drafted for their replies.
|
||||
|
||||
#### Natural order
|
||||
|
||||
Tries to simulate the flow of a real human conversation. The algorithm is as follows:
|
||||
|
||||
1. Mentions of the group member names are extracted from the last message in chat.
|
||||
|
||||
Only whole words are recognized as mentions! If your character's name is "Misaka Mikoto", they will reply only activate on "Misaka" or "Mikoto", but never to "Misa", "Railgun", etc.
|
||||
|
||||
Unless "Allow bot responses to self" setting is enabled, characters won't reply to mentions of their name in their own message!
|
||||
|
||||
2. Characters are activated by the "Talkativeness" factor.
|
||||
|
||||
Talkativeness defines how often the character speaks if they were not mentioned. Adjust this value on "Advanced definitions" screen in character editor. Slider values are on a linear scale from **0% / Shy** (character never talks unless mentioned) to **100% / Chatty** (character always replies). Default value for new characters is 50% chance.
|
||||
|
||||
3. Random character is selected.
|
||||
|
||||
If no characters were activated at previous steps, one speaker is selected randomly, ignoring all other conditions.
|
||||
|
||||
#### List order
|
||||
|
||||
Characters are drafted based on the order they are presented in group members list. No other rules apply.
|
||||
|
||||
## Multigen
|
||||
|
||||
_This feature provides a pseudo-streaming functionality which conflicts with token streaming. When Multigen is enabled and generation API supports streaming, only Multigen streaming will be used._
|
||||
|
||||
SillyTavern tries to create faster and longer responses by chaining the generation using smaller batches.
|
||||
|
||||
### Default settings
|
||||
|
||||
First batch = 50 tokens
|
||||
|
||||
Next batches = 30 tokens
|
||||
|
||||
### Algorithm
|
||||
|
||||
1. Generate the first batch (if amount of generation setting is more than batch length).
|
||||
2. Generate next batch of tokens until one of the stopping conditions is reached.
|
||||
3. Append the generated text to the next cycle's prompt.
|
||||
|
||||
### Stopping conditions
|
||||
|
||||
1. Generated enough text.
|
||||
2. Character starts speaking for You.
|
||||
3. <|endoftext|> token reached.
|
||||
4. No text generated.
|
||||
5. Stop sequence generated. (Instruct mode only)
|
||||
|
||||
## User Settings
|
||||
|
||||
### Message Sound
|
||||
|
||||
To play your own custom sound on receiving a new message from bot, replace the following MP3 file in your SillyTavern folder:
|
||||
|
||||
`public/sounds/message.mp3`
|
||||
|
||||
Plays at 80% volume.
|
||||
|
||||
If "Background Sound Only" option is enabled, the sound plays only if SillyTavern window is **unfocused**.
|
||||
|
||||
### Formulas Rendering
|
||||
|
||||
Enables math formulas rendering using the [showdown-katex](https://obedm503.github.io/showdown-katex/) package.
|
||||
|
||||
The following formatting rules are supported:
|
||||
|
||||
#### LaTeX syntax
|
||||
|
||||
```
|
||||
$$ formula goes here $$
|
||||
```
|
||||
|
||||
#### Asciimath syntax
|
||||
|
||||
```
|
||||
formula goes here $
|
||||
```
|
||||
|
||||
More information: [KaTeX](https://katex.org/)
|
||||
@@ -1,24 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<title>SillyTavern FAQ</title>
|
||||
<link rel="stylesheet" href="/css/notes.css">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link href="/webfonts/NotoSans/stylesheet.css" rel="stylesheet">
|
||||
<script src="/scripts/showdown.min.js"></script>
|
||||
<script src="/scripts/showdown-toc.min.js"></script>
|
||||
<script src="/scripts/notes.js"></script>
|
||||
</head>
|
||||
|
||||
<body onload="loadNotes('/get_faq')">
|
||||
<div id="main">
|
||||
<div id="content">
|
||||
<!-- To change the guidebook content edit the content.md file -->
|
||||
<!-- Then it will be dynamically inserted here -->
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -2,21 +2,20 @@
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<title>SillyTavern Guidebook</title>
|
||||
<title>SillyTavern Documentation</title>
|
||||
<link rel="stylesheet" href="/css/notes.css">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link href="/webfonts/NotoSans/stylesheet.css" rel="stylesheet">
|
||||
<script src="/scripts/showdown.min.js"></script>
|
||||
<script src="/scripts/showdown-toc.min.js"></script>
|
||||
<script src="/scripts/notes.js"></script>
|
||||
</head>
|
||||
|
||||
<body onload="loadNotes('/notes/content.md')">
|
||||
<body>
|
||||
<div id="main">
|
||||
<div id="content">
|
||||
<!-- To change the guidebook content edit the content.md file -->
|
||||
<!-- Then it will be dynamically inserted here -->
|
||||
<h2>You weren't supposed to be able to get here, you know.</h1>
|
||||
<h3>All help materials has been moved here:</h3>
|
||||
<h3><a href="https://docs.sillytavern.app/">SillyTavern Documentation</a></h3>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<title>SillyTavern Guidebook</title>
|
||||
<link rel="stylesheet" href="/css/notes.css">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link href="/webfonts/NotoSans/stylesheet.css" rel="stylesheet">
|
||||
<script src="/scripts/showdown.min.js"></script>
|
||||
<script src="/scripts/showdown-toc.min.js"></script>
|
||||
<script src="/scripts/notes.js"></script>
|
||||
</head>
|
||||
|
||||
<body onload="loadNotes('/get_readme')">
|
||||
<div id="main">
|
||||
<div id="content">
|
||||
<!-- To change the guidebook content edit the content.md file -->
|
||||
<!-- Then it will be dynamically inserted here -->
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -1,24 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<title>SillyTavern Guidebook</title>
|
||||
<link rel="stylesheet" href="/css/notes.css">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link href="/webfonts/NotoSans/stylesheet.css" rel="stylesheet">
|
||||
<script src="/scripts/showdown.min.js"></script>
|
||||
<script src="/scripts/showdown-toc.min.js"></script>
|
||||
<script src="/scripts/notes.js"></script>
|
||||
</head>
|
||||
|
||||
<body onload="loadNotes('/notes/update.md')">
|
||||
<div id="main">
|
||||
<div id="content">
|
||||
<!-- To change the guidebook content edit the content.md file -->
|
||||
<!-- Then it will be dynamically inserted here -->
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -1,65 +0,0 @@
|
||||
# How to Update SillyTavern
|
||||
|
||||
This is not an installation guide. If you need installation instructions, look here:
|
||||
<https://docs.alpindale.dev/pygmalion-extras/sillytavern/#installation>
|
||||
|
||||
(This guide assumes you have already installed SillyTavern once and know how to run it on your OS.)
|
||||
|
||||
(A plain text copy of this file is also present inside SillyTavern's base install folder.)
|
||||
|
||||
----
|
||||
|
||||
## Linux/Termux
|
||||
|
||||
You definitely installed via git, so just 'git pull' inside the SillyTavern directory.
|
||||
|
||||
----
|
||||
|
||||
## Windows/MacOS
|
||||
|
||||
### Method 1 - GIT
|
||||
|
||||
We always recommend users install using 'git'. Here's why:
|
||||
|
||||
When you have installed via 'git clone', all you have to do to update is type 'git pull' in a command line in the ST folder.
|
||||
Alternatively, if the command prompt gives you problems (and you have GitHub Desktop installed), you can use the 'Repository' menu and select 'Pull'.
|
||||
The updates are applied automatically and safely.
|
||||
|
||||
### Method 2 - ZIP
|
||||
|
||||
If you insist on installing via a zip, here is the tedious process for doing the update:
|
||||
|
||||
1. Download the new release zip.
|
||||
2. Unzip it into a folder OUTSIDE of your current ST installation.
|
||||
3. Do the usual setup procedure for your OS to install NodeJS requirements.
|
||||
|
||||
4. Copy the following files/folders as necessary(*) from your old ST installation:
|
||||
|
||||
(*) 'As necessary' = "If you made any custom content related to those folders".
|
||||
None of the folders are mandatory, so only copy what you need.
|
||||
|
||||
#### NB: DO NOT COPY THE ENTIRE /PUBLIC/ FOLDER
|
||||
|
||||
Doing so could break the new install and prevent new features from being present.
|
||||
|
||||
```plaintext
|
||||
Backgrounds
|
||||
Characters
|
||||
Chats
|
||||
Groups
|
||||
Group chats
|
||||
KoboldAI Settings
|
||||
NovelAI Settings
|
||||
OpenAI Settings
|
||||
TextGen Settings (textgen = ooba)
|
||||
Themes
|
||||
User Avatars
|
||||
Worlds
|
||||
settings.json
|
||||
```
|
||||
|
||||
5. Once those folders/files are copied, Paste them into the /Public/ folder of the new install.
|
||||
|
||||
6. Start SillyTavern once again with the method appropriate to your OS, and pray you got it right.
|
||||
|
||||
7. If everything shows up, you can safely delete the old ST folder.
|
||||
@@ -338,7 +338,7 @@ const system_messages = {
|
||||
'<h2>Welcome to <span id="version_display_welcome">SillyTavern</span>!</h2>',
|
||||
'<div id="version_display_welcome"></div>',
|
||||
'<h3>Want to Update to the latest version?</h3>',
|
||||
"Read the <a href='/notes/update.html' target='_blank'>instructions here</a>. Also located in your installation's base folder",
|
||||
"Read the <a href='https://docs.sillytavern.app/usage/update/' target='_blank'>instructions here</a>. Also located in your installation's base folder",
|
||||
'<hr>',
|
||||
'<h3>In order to begin chatting:</h3>',
|
||||
'<ol>',
|
||||
@@ -356,9 +356,9 @@ const system_messages = {
|
||||
'<h3>Where can I get help?</h3>',
|
||||
'Before going any further, check out the following resources:',
|
||||
'<ol>',
|
||||
'<li><a target="_blank" href="/notes/readme.md">Introduction to SillyTavern</a></li>',
|
||||
'<li><a target="_blank" href="/notes/faq.md">SillyTavern FAQ</a></li>',
|
||||
'<li><a target="_blank" href="/notes">SillyTavern Guidebook</a></li>',
|
||||
'<li><a target="_blank" href="https://docs.sillytavern.app/">Introduction to SillyTavern</a></li>',
|
||||
'<li><a target="_blank" href="https://docs.sillytavern.app/usage/faq/">SillyTavern FAQ</a></li>',
|
||||
'<li><a target="_blank" href="https://docs.sillytavern.app/usage/guidebook/">SillyTavern Guidebook</a></li>',
|
||||
'<li><a target="_blank" href="https://github.com/Cohee1207/TavernAI-extras/blob/main/README.md">Extras API Docs</a></li>',
|
||||
'<li><a target="_blank" href="https://docs.alpindale.dev/">Pygmalion AI Docs</a></li>',
|
||||
'</ol>',
|
||||
|
||||
@@ -268,7 +268,7 @@ export function RA_CountCharTokens() {
|
||||
$("#result_info").html(`
|
||||
<span class="neutral_warning">${count_tokens}</span> Tokens (<span class="neutral_warning">${perm_tokens}</span><span> Permanent Tokens)
|
||||
<br>
|
||||
<div id="chartokenwarning" class="menu_button whitespacenowrap"><a href="/notes#charactertokens" target="_blank">Learn More About Token 'Limits'</a></div>`);
|
||||
<div id="chartokenwarning" class="menu_button whitespacenowrap"><a href="https://docs.sillytavern.app/usage/guidebook/#character-tokens" target="_blank">Learn More About Token 'Limits'</a></div>`);
|
||||
} //warn if either are over 1024
|
||||
}
|
||||
//Auto Load Last Charcter -- (fires when active_character is defined and auto_load_chat is true)
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
async function loadNotes(file) {
|
||||
const toc = [];
|
||||
let hash = location.hash;
|
||||
let converter = new showdown.Converter({ tables: true, extensions: [showdownToc({ toc })] } );
|
||||
let text = await (await fetch(file)).text();
|
||||
let content = document.getElementById('content');
|
||||
content.innerHTML = converter.makeHtml(text);
|
||||
|
||||
if (hash) {
|
||||
const link = document.createElement('a');
|
||||
link.href = hash;
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
document.body.removeChild(link);
|
||||
}
|
||||
}
|
||||
|
||||
window.loadNotes = loadNotes;
|
||||
298
readme.md
298
readme.md
@@ -1,298 +0,0 @@
|
||||

|
||||
|
||||
Mobile-friendly, Multi-API (KoboldAI/CPP, Horde, NovelAI, Ooba, OpenAI+proxies, Poe, WindowAI(Claude!)), 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.
|
||||
|
||||
Based on a fork of TavernAI 1.2.8
|
||||
|
||||
### Brought to you by Cohee, RossAscends and the SillyTavern community
|
||||
|
||||
NOTE: We have added [a FAQ](faq.md) to answer most of your questions and help you get started.
|
||||
|
||||
### What is SillyTavern or TavernAI?
|
||||
|
||||
Tavern 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.
|
||||
|
||||
SillyTavern is a fork of TavernAI 1.2.8 which is under more active development and has added many major features. At this point, they can be thought of as completely independent programs.
|
||||
|
||||
### What do I need other than Tavern?
|
||||
|
||||
On its own Tavern is useless, as it's just a user interface. You have to have access to an AI system backend that can act as the roleplay character. There are various supported backends: OpenAPI API (GPT), KoboldAI (either running locally or on Google Colab), and more. You can read more about this in [the FAQ](faq.md).
|
||||
|
||||
### Do I need a powerful PC to run Tavern?
|
||||
|
||||
Since Tavern is only a user interface, it has tiny hardware requirements, it will run on anything. It's the AI system backend that needs to be powerful.
|
||||
|
||||
## Mobile support
|
||||
|
||||
> **Note**
|
||||
|
||||
> **This fork can be run natively on Android phones using Termux. Please refer to this guide by ArroganceComplex#2659:**
|
||||
|
||||
<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
|
||||
|
||||
Get support, share favorite characters and prompts:
|
||||
|
||||
### [Join](https://discord.gg/RZdyAEUPvj)
|
||||
|
||||
***
|
||||
|
||||
Get in touch with the developers directly:
|
||||
|
||||
* Discord: Cohee#1207 or RossAscends#1779
|
||||
* Reddit: /u/RossAscends or /u/sillylossy
|
||||
* [Post a GitHub issue](https://github.com/Cohee1207/SillyTavern/issues)
|
||||
|
||||
## This version includes
|
||||
|
||||
* A heavily modified TavernAI 1.2.8 (more than 50% of code rewritten or optimized)
|
||||
* Swipes
|
||||
* Group chats: multi-bot rooms for characters to talk to you or each other
|
||||
* Chat bookmarks / branching (duplicates the dialogue in its current state)
|
||||
* Advanced KoboldAI / TextGen generation settings with a lot of community-made presets
|
||||
* World Info support: create a rich lore or save tokens on your character card
|
||||
* Window AI browser extension support (run models like Claude, GPT 4): https://windowai.io/
|
||||
* [Oobabooga's TextGen WebUI](https://github.com/oobabooga/text-generation-webui) API connection
|
||||
* [AI Horde](https://horde.koboldai.net/) connection
|
||||
* [Poe.com](https://poe.com) (ChatGPT / Claude) connection
|
||||
* Soft prompts selector for KoboldAI
|
||||
* Prompt generation formatting tweaking
|
||||
* webp character card interoperability (PNG is still an internal format)
|
||||
|
||||
## Extensions
|
||||
|
||||
SillyTavern has an extensibility support, with some additional AI modules hosted via [SillyTavern Extras API](https://github.com/SillyTavern/SillyTavern-extras)
|
||||
|
||||
* Author's Note / Character Bias
|
||||
* Character emotional expressions
|
||||
* Auto-Summary of the chat history
|
||||
* Sending images to chat, and the AI interpreting the content.
|
||||
* Stable Diffusion image generation (5 chat-related presets plus 'free mode')
|
||||
* Text-to-speech for AI response messages (via ElevenLabs, Silero, or the OS's System TTS)
|
||||
|
||||
Full list of included extenisons and tutorials how to use them can be found on [Wiki](https://github.com/SillyTavern/SillyTavern/wiki).
|
||||
|
||||
## UI/CSS/Quality of Life tweaks by RossAscends
|
||||
|
||||
* Mobile UI with optimized for iOS, and supports saving a shortcut to home screen and opening in fullscreen mode.
|
||||
* HotKeys
|
||||
* Up = Edit last message in chat
|
||||
* Ctrl+Up = Edit last USER message in chat
|
||||
* Left = swipe left
|
||||
* Right = swipe right (NOTE: swipe hotkeys are disabled when chatbar has something typed into it)
|
||||
* Ctrl+Left = view locally stored variables (in the browser console window)
|
||||
* Enter (with chat bar selected) = send your message to AI
|
||||
* Ctrl+Enter = Regenerate the last AI response
|
||||
|
||||
* User Name Changes and Character Deletion no longer force the page to refresh.
|
||||
|
||||
* Toggle option to automatically connect to API on page load.
|
||||
* Toggle option to automatically load the most recently viewed character on page load.
|
||||
* Better Token Counter - works on unsaved characters, and shows both permanent and temporary tokens.
|
||||
|
||||
* Better Past Chats View
|
||||
* New Chat filenames are saved in a readable format of "(character) - (when it was created)"
|
||||
* Chat preview increased from 40 characters to 300.
|
||||
* Multiple options for characters list sorting (by name, creation date, chat sizes).
|
||||
|
||||
* By default the left and right settings panel will close when you click away from it.
|
||||
* Clicking the Lock on the nav panel will hold the panel open, and this setting be remembered across sessions.
|
||||
* Nav panel status of open or closed will also be saved across sessions.
|
||||
|
||||
* Customizable chat UI:
|
||||
* Play a sound when a new message arrives
|
||||
* Switch between round or rectangle avatar styles
|
||||
* Have a wider chat window on the desktop
|
||||
* Optional semi-transparent glass-like panels
|
||||
* Customizable page colors for 'main text', 'quoted text' 'italics text'.
|
||||
* Customizable UI background color and blur amount
|
||||
|
||||
## Installation
|
||||
|
||||
*NOTE: This software is intended for local install purposes, and has not been thoroughly tested on a colab or other cloud notebook service.*
|
||||
|
||||
> **Warning**
|
||||
|
||||
> DO NOT INSTALL INTO ANY WINDOWS CONTROLLED FOLDER (Program Files, System32, etc).
|
||||
|
||||
> DO NOT RUN START.BAT WITH ADMIN PERMISSIONS
|
||||
|
||||
### Windows
|
||||
|
||||
Installing via Git (recommended for easy updating)
|
||||
|
||||
Easy to follow guide with pretty pictures:
|
||||
<https://docs.alpindale.dev/pygmalion-extras/sillytavern/#windows-installation>
|
||||
|
||||
1. Install [NodeJS](https://nodejs.org/en) (latest LTS version is recommended)
|
||||
2. Install [GitHub Desktop](https://central.github.com/deployments/desktop/desktop/latest/win32)
|
||||
3. Open Windows Explorer (`Win+E`)
|
||||
4. Browse to or Create a folder that is not controlled or monitored by Windows. (ex: C:\MySpecialFolder\)
|
||||
5. Open a Command Prompt inside that folder by clicking in the 'Address Bar' at the top, typing `cmd`, and pressing Enter.
|
||||
6. Once the black box (Command Prompt) pops up, type ONE of the following into it and press Enter:
|
||||
|
||||
* for Main Branch: `git clone https://github.com/Cohee1207/SillyTavern -b main`
|
||||
* for Dev Branch: `git clone https://github.com/Cohee1207/SillyTavern -b dev`
|
||||
|
||||
7. Once everything is cloned, double click `Start.bat` to make NodeJS install its requirements.
|
||||
8. The server will then start, and SillyTavern will popup in your browser.
|
||||
|
||||
Installing via zip download
|
||||
|
||||
1. Install [NodeJS](https://nodejs.org/en) (latest LTS version is recommended)
|
||||
2. Download the zip from this GitHub repo. (Get the `Source code (zip)` from [Releases](https://github.com/Cohee1207/SillyTavern/releases/latest))
|
||||
3. Unzip it into a folder of your choice
|
||||
4. Run `Start.bat` via double-clicking or in a command line.
|
||||
5. Once the server has prepared everything for you, it will open a tab in your browser.
|
||||
|
||||
### Linux
|
||||
|
||||
1. Run the `start.sh` script.
|
||||
2. Enjoy.
|
||||
|
||||
## API keys management
|
||||
|
||||
SillyTavern saves your API keys to a `secrets.json` file in the server directory.
|
||||
|
||||
By default they will not be exposed to a frontend after you enter them and reload the page.
|
||||
|
||||
In order to enable viewing your keys by clicking a button in the API block:
|
||||
|
||||
1. Set the value of `allowKeysExposure` to `true` in `config.conf` file.
|
||||
2. Restart the SillyTavern server.
|
||||
|
||||
## Remote connections
|
||||
|
||||
Most often this is for people who want to use SillyTavern on their mobile phones while their PC runs the ST server on the same wifi network.
|
||||
|
||||
However, it can be used to allow remote connections from anywhere as well.
|
||||
|
||||
**IMPORTANT: SillyTavern is a single-user program, so anyone who logs in will be able to see all characters and chats, and be able to change any settings inside the UI.**
|
||||
|
||||
### 1. Managing whitelisted IPs
|
||||
|
||||
* Create a new text file inside your SillyTavern base install folder called `whitelist.txt`.
|
||||
* Open the file in a text editor, add a list of IPs you want to be allowed to connect.
|
||||
|
||||
*Both indidivual IPs, and wildcard IP ranges are accepted. Examples:*
|
||||
|
||||
```txt
|
||||
192.168.0.1
|
||||
192.168.0.20
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```txt
|
||||
192.168.0.*
|
||||
```
|
||||
|
||||
(the above wildcard IP range will allow any device on the local network to connect)
|
||||
|
||||
CIDR masks are also accepted (eg. 10.0.0.0/24).
|
||||
|
||||
* Save the `whitelist.txt` file.
|
||||
* Restart your TAI server.
|
||||
|
||||
Now devices which have the IP specified in the file will be able to connect.
|
||||
|
||||
*Note: `config.conf` also has a `whitelist` array, which you can use in the same way, but this array will be ignored if `whitelist.txt` exists.*
|
||||
|
||||
### 2. Getting the IP for the ST host machine
|
||||
|
||||
After the whitelist has been setup, you'll need the IP of the ST-hosting device.
|
||||
|
||||
If the ST-hosting device is on the same wifi network, you will use the ST-host's internal wifi IP:
|
||||
|
||||
* For Windows: windows button > type `cmd.exe` in the search bar > type `ipconfig` in the console, hit Enter > look for `IPv4` listing.
|
||||
|
||||
If you (or someone else) wants to connect to your hosted ST while not being on the same network, you will need the public IP of your ST-hosting device.
|
||||
|
||||
* While using the ST-hosting device, access [this page](https://whatismyipaddress.com/) and look for for `IPv4`. This is what you would use to connect from the remote device.
|
||||
|
||||
### 3. Connect the remote device to the ST host machine.
|
||||
|
||||
Whatever IP you ended up with for your situation, you will put that IP address and port number into the remote device's web browser.
|
||||
|
||||
A typical address for an ST host on the same wifi network would look like:
|
||||
|
||||
`http://192.168.0.5:8000`
|
||||
|
||||
Use http:// NOT https://
|
||||
|
||||
### Opening your ST to all IPs
|
||||
|
||||
We do not recommend doing this, but you can open `config.conf` and change `whitelist` to `false`.
|
||||
|
||||
You must remove (or rename) `whitelist.txt` in the SillyTavern base install folder, if it exists.
|
||||
|
||||
This is usually an insecure practice, so we require you to set a username and password when you do this.
|
||||
|
||||
The username and password are set in `config.conf`.
|
||||
|
||||
After restarting your ST server, any device will be able to connect to it, regardless of their IP as long as they know the username and password.
|
||||
|
||||
### Still Unable To Connect?
|
||||
|
||||
* Create an inbound/outbound firewall rule for the port found in `config.conf`. Do NOT mistake this for portforwarding on your router, otherwise someone could find your chat logs and that's a big no-no.
|
||||
* Enable the Private Network profile type in Settings > Network and Internet > Ethernet. This is VERY important for Windows 11, otherwise you would be unable to connect even with the aforementioned firewall rules.
|
||||
|
||||
## Performance issues?
|
||||
|
||||
Try enabling the No Blur Effect (Fast UI) mode on the User settings panel.
|
||||
|
||||
## I like your project! How do I contribute?
|
||||
|
||||
### DO's
|
||||
|
||||
1. Send pull requests
|
||||
2. Send feature suggestions and issue reports using established templates
|
||||
3. Read the readme file and built-in documentation before asking anything
|
||||
|
||||
### DONT's
|
||||
|
||||
1. Offer monetary donations
|
||||
2. Send bug reports without providing any context
|
||||
3. Ask the questions that were already answered numerous times
|
||||
|
||||
## Where can I find the old backgrounds?
|
||||
|
||||
We're moving to 100% original content only policy, so old background images have been removed from this repository.
|
||||
|
||||
You can find them archived here:
|
||||
|
||||
<https://files.catbox.moe/1xevnc.zip>
|
||||
|
||||
## Screenshots
|
||||
|
||||
<img width="400" alt="image" src="https://user-images.githubusercontent.com/18619528/228649245-8061c60f-63dc-488e-9325-f151b7a3ec2d.png">
|
||||
<img width="400" alt="image" src="https://user-images.githubusercontent.com/18619528/228649856-fbdeef05-d727-4d5a-be80-266cbbc6b811.png">
|
||||
|
||||
## License and credits
|
||||
|
||||
**This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.**
|
||||
|
||||
* TAI Base by Humi: Unknown license
|
||||
* Cohee's modifications and derived code: AGPL v3
|
||||
* RossAscends' additions: AGPL v3
|
||||
* Portions of CncAnon's TavernAITurbo mod: Unknown license
|
||||
* Waifu mode inspired by the work of PepperTaco (<https://github.com/peppertaco/Tavern/>)
|
||||
* Thanks Pygmalion University for being awesome testers and suggesting cool features!
|
||||
* Thanks oobabooga for compiling presets for TextGen
|
||||
* poe-api client adapted from <https://github.com/ading2210/poe-api> (GPL v3)
|
||||
* GraphQL files for poe: <https://github.com/muharamdani/poe> (ISC License)
|
||||
* KoboldAI Presets from KAI Lite: <https://lite.koboldai.net/>
|
||||
* Noto Sans font by Google (OFL license)
|
||||
* Icon theme by Font Awesome <https://fontawesome.com> (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
* AI Horde client library by ZeldaFan0225: https://github.com/ZeldaFan0225/ai_horde
|
||||
* Linux startup script by AlpinDale
|
||||
* Thanks paniphons for providing a FAQ document
|
||||
* TTS and Objective extensions by Ouoertheo
|
||||
Reference in New Issue
Block a user