apiv2.chatftw.com Open in urlscan Pro
67.207.86.76  Public Scan

URL: https://apiv2.chatftw.com/
Submission: On March 14 via api from US — Scanned from US

Form analysis 26 forms found in the DOM

POST javascript:void(null);

<form action="javascript:void(null);" method="post" enctype="multipart/form-data">
  <div id="kobold_horde_block">
    <ul>
      <li data-i18n="Avoid sending sensitive information to the Horde."> Avoid sending sensitive information to the Horde.
        <a target="_blank" href="https://docs.sillytavern.app/usage/api-connections/horde/" data-i18n="Review the Privacy statement">Review the Privacy statement</a>
      </li>
      <li>
        <a target="_blank" href="https://horde.koboldai.net/register" data-i18n="Register a Horde account for faster queue times">Register a Horde
                                            account for faster queue times</a>
      </li>
      <li>
        <a target="_blank" href="https://github.com/db0/AI-Horde-Worker#readme" data-i18n="Learn how to contribute your idle GPU cycles to the Horde">Learn
                                            how to contribute your idle GPU cycles to the Horde</a>
      </li>
    </ul>
    <label for="horde_auto_adjust_context_length" class="checkbox_label">
      <input id="horde_auto_adjust_context_length" type="checkbox">
      <span data-i18n="Adjust context size to worker capabilities">Adjust context size to worker capabilities</span>
    </label>
    <label for="horde_auto_adjust_response_length" class="checkbox_label">
      <input id="horde_auto_adjust_response_length" type="checkbox">
      <span data-i18n="Adjust response length to worker capabilities">Adjust response length to worker capabilities</span>
    </label>
    <label for="horde_trusted_workers_only" class="checkbox_label" title="Can help with bad responses by queueing only the approved workers. May slowdown the response time."
      data-i18n="[title]Can help with bad responses by queueing only the approved workers. May slowdown the response time.">
      <input id="horde_trusted_workers_only" type="checkbox">
      <span data-i18n="Trusted workers only">Trusted workers only</span>
    </label>
    <small id="adjustedHordeParams">Context: --, Response: --</small>
    <h4 data-i18n="API key">API key</h4>
    <small>
      <span data-i18n="Get it here:">Get it here: </span> <a target="_blank" href="https://horde.koboldai.net/register" data-i18n="Register">Register</a> (<a id="horde_kudos" href="javascript:void(0);" data-i18n="View my Kudos">View my Kudos</a>)<br>
      <span data-i18n="Enter">Enter </span> <span class="monospace">0000000000</span> <span data-i18n="to use anonymous mode.">to use anonymous mode. </span>
    </small>
    <!-- <div>
                                        <a id="horde_kudos" href="javascript:void(0);">View my Kudos</a>
                                    </div> -->
    <div class="flex-container">
      <input id="horde_api_key" name="horde_api_key" class="text_pole flex1" maxlength="500" type="text" placeholder="✔️ Key saved" autocomplete="off">
      <div title="Clear your API key" data-i18n="[title]Clear your API key" class="menu_button fa-solid fa-circle-xmark clear-api-key" data-key="api_key_horde"></div>
    </div>
    <div data-for="horde_api_key" class="neutral_warning" data-i18n="For privacy reasons, your API key will be hidden after you reload the page."> For privacy reasons, your API key will be hidden after you reload the page. </div>
    <h4 class="horde_model_title">
      <span data-i18n="Models">Models </span>
      <div id="horde_refresh" title="Refresh models" data-i18n="[title]Refresh models" class="right_menu_button">
        <div class="fa-solid fa-repeat "></div>
      </div>
    </h4>
    <select id="horde_model" multiple="" data-select2-id="select2-data-horde_model" tabindex="-1" class="select2-hidden-accessible" aria-hidden="true">
      <option data-i18n="-- Horde models not loaded --">-- Horde models not loaded --</option>
    </select><span class="select2 select2-container select2-container--default" dir="ltr" data-select2-id="select2-data-14-npa5" style="width: 100%;"><span class="selection"><span class="select2-selection select2-selection--multiple" role="combobox"
          aria-haspopup="true" aria-expanded="false" tabindex="-1" aria-disabled="false">
          <ul class="select2-selection__rendered" id="select2-horde_model-container"></ul><span class="select2-search select2-search--inline"><textarea class="select2-search__field" type="search" tabindex="0" autocorrect="off" autocapitalize="none"
              spellcheck="false" role="searchbox" aria-autocomplete="list" autocomplete="off" aria-label="Search" aria-describedby="select2-horde_model-container" placeholder="Select Horde models" style="width: 100%;"></textarea></span>
        </span></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>
  </div>
  <div class="online_status">
    <div class="online_status_indicator"></div>
    <div data-i18n="Not connected..." class="online_status_text">Not connected...</div>
  </div>
</form>

POST javascript:void(null);

<form action="javascript:void(null);" method="post" enctype="multipart/form-data">
  <div id="kobold_api_block">
    <h4 data-i18n="API url">API url</h4>
    <small data-i18n="Example: http://127.0.0.1:5000/api ">Example: http://127.0.0.1:5000/api </small>
    <input id="api_url_text" name="api_url" class="text_pole ui-autocomplete-input" placeholder="http://127.0.0.1:5000/api" maxlength="500" value="" autocomplete="off" data-server-history="kobold">
    <div id="koboldcpp_hint" class="neutral_warning displayNone"> We have a dedicated KoboldCpp support under Text Completion ⇒ KoboldCpp. </div>
    <div class="flex-container">
      <div id="api_button" class="api_button menu_button" type="submit" data-i18n="Connect" data-server-connect="kobold">Connect</div>
      <div class="api_loading menu_button" data-i18n="Cancel">Cancel</div>
    </div>
  </div>
  <div class="online_status">
    <div class="online_status_indicator"></div>
    <div class="online_status_text" data-i18n="Not connected...">Not connected...</div>
  </div>
</form>

POST javascript:void(null);

<form action="javascript:void(null);" method="post" enctype="multipart/form-data">
  <h4 data-i18n="Novel API key">Novel API key</h4>
  <span>
    <ol>
      <li>
        <a href="https://docs.sillytavern.app/usage/api-connections/novelai/" class="notes-link" target="_blank"> <span data-i18n="Get your NovelAI API Key">Get your NovelAI API key</span></a>
      </li>
      <li><span data-i18n="Enter it in the box below">Enter it in the box below:</span>
      </li>
    </ol>
  </span>
  <div class="flex-container">
    <input id="api_key_novel" name="api_key_novel" class="text_pole flex1 wide100p" maxlength="500" size="35" type="text" autocomplete="off" placeholder="❌ Missing key">
    <div title="Clear your API key" data-i18n="[title]Clear your API key" class="menu_button fa-solid fa-circle-xmark clear-api-key" data-key="api_key_novel">
    </div>
  </div>
  <div data-for="api_key_novel" class="neutral_warning" data-i18n="For privacy reasons, your API key will be hidden after you reload the page."> For privacy reasons, your API key will be hidden after you reload the page. </div>
  <div class="flex-container">
    <div id="api_button_novel" class="api_button menu_button" type="submit" data-i18n="Connect">Connect</div>
    <div class="api_loading menu_button" data-i18n="Cancel">Cancel</div>
  </div>
  <h4><span data-i18n="Novel AI Model">Novel AI Model</span>
    <a href="https://docs.sillytavern.app/usage/api-connections/novelai/#models" class="notes-link" target="_blank">
                                    <span class="fa-solid fa-circle-question note-link-span"></span>
                                </a>
  </h4>
  <select id="model_novel_select">
    <option value="clio-v1">Clio</option>
    <option value="kayra-v1">Kayra</option>
  </select>
</form>

POST javascript:void(null);

<form action="javascript:void(null);" method="post" enctype="multipart/form-data">
  <div>
    <h4 data-i18n="API Type">API Type</h4>
    <select id="textgen_type">
      <option value="ooba" data-i18n="Default (oobabooga)">Default (oobabooga)</option>
      <option value="mancer">Mancer</option>
      <option value="aphrodite">Aphrodite</option>
      <option value="tabby">TabbyAPI</option>
      <option value="koboldcpp">KoboldCpp</option>
      <option value="llamacpp">llama.cpp</option>
      <option value="openrouter">OpenRouter</option>
      <option value="ollama">Ollama</option>
      <option value="togetherai">TogetherAI</option>
      <option value="infermaticai">InfermaticAI</option>
    </select>
  </div>
  <div data-tg-type="togetherai" class="flex-container flexFlowColumn" style="display: none;">
    <h4 data-i18n="TogetherAI API Key">TogetherAI API Key</h4>
    <div class="flex-container">
      <input id="api_key_togetherai" name="api_key_togetherai" class="text_pole flex1" maxlength="500" value="" type="text" autocomplete="off" placeholder="❌ Missing key">
      <div title="Clear your API key" data-i18n="[title]Clear your API key" class="menu_button fa-solid fa-circle-xmark clear-api-key" data-key="api_key_togetherai"></div>
    </div>
    <div data-for="api_key_togetherai" class="neutral_warning"> For privacy reasons, your API key will be hidden after you reload the page. </div>
    <div>
      <h4 data-i18n="TogetherAI Model">TogetherAI Model</h4>
      <select id="model_togetherai_select" data-select2-id="select2-data-model_togetherai_select" tabindex="-1" class="select2-hidden-accessible" aria-hidden="true">
        <option data-i18n="-- Connect to the API --" data-select2-id="select2-data-4-jiu9"> -- Connect to the API -- </option>
      </select><span class="select2 select2-container select2-container--default" dir="ltr" data-select2-id="select2-data-3-kcra" style="width: 100%;"><span class="selection"><span class="select2-selection select2-selection--single" role="combobox"
            aria-haspopup="true" aria-expanded="false" tabindex="0" aria-disabled="false" aria-labelledby="select2-model_togetherai_select-container" aria-controls="select2-model_togetherai_select-container"><span class="select2-selection__rendered"
              id="select2-model_togetherai_select-container" role="textbox" aria-readonly="true" title="
                                            -- Connect to the API --
                                        "> -- Connect to the API -- </span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span></span></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>
    </div>
  </div>
  <div data-tg-type="openrouter" class="flex-container flexFlowColumn" style="display: none;">
    <h4 data-i18n="OpenRouter API Key">OpenRouter API Key</h4>
    <div>
      <small data-i18n="Click Authorize below or get the key from"> Click "Authorize" below or get the key from </small> <a target="_blank" href="https://openrouter.ai/keys/">OpenRouter</a>. <br>
      <a href="https://openrouter.ai/account" target="_blank" data-i18n="View Remaining Credits">View Remaining Credits</a>
    </div>
    <div class="flex-container">
      <input id="api_key_openrouter-tg" name="api_key_openrouter" class="text_pole flex1 api_key_openrouter" maxlength="500" value="" type="text" autocomplete="off" placeholder="✔️ Key saved">
      <div title="Clear your API key" data-i18n="[title]Clear your API key" class="menu_button fa-solid fa-circle-xmark clear-api-key" data-key="api_key_openrouter"></div>
    </div>
    <div data-for="api_key_openrouter" class="neutral_warning"> For privacy reasons, your API key will be hidden after you reload the page. </div>
    <div>
      <h4 data-i18n="OpenRouter Model">OpenRouter Model</h4>
      <select id="openrouter_model" data-select2-id="select2-data-openrouter_model" tabindex="-1" class="select2-hidden-accessible" aria-hidden="true">
        <option data-i18n="-- Connect to the API --" data-select2-id="select2-data-10-ogcx"> -- Connect to the API -- </option>
      </select><span class="select2 select2-container select2-container--default" dir="ltr" data-select2-id="select2-data-9-8aax" style="width: 100%;"><span class="selection"><span class="select2-selection select2-selection--single" role="combobox"
            aria-haspopup="true" aria-expanded="false" tabindex="0" aria-disabled="false" aria-labelledby="select2-openrouter_model-container" aria-controls="select2-openrouter_model-container"><span class="select2-selection__rendered"
              id="select2-openrouter_model-container" role="textbox" aria-readonly="true" title="
                                            -- Connect to the API --
                                        "> -- Connect to the API -- </span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span></span></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>
    </div>
  </div>
  <div data-tg-type="infermaticai" class="flex-container flexFlowColumn" style="display: none;">
    <h4 data-i18n="InfermaticAI API Key">InfermaticAI API Key</h4>
    <div class="flex-container">
      <input id="api_key_infermaticai" name="api_key_infermaticai" class="text_pole flex1" maxlength="500" value="" type="text" autocomplete="off" placeholder="❌ Missing key">
      <div title="Clear your API key" data-i18n="[title]Clear your API key" class="menu_button fa-solid fa-circle-xmark clear-api-key" data-key="api_key_infermaticai"></div>
    </div>
    <div data-for="api_key_infermaticai" class="neutral_warning"> For privacy reasons, your API key will be hidden after you reload the page. </div>
    <div>
      <h4 data-i18n="InfermaticAI Model">InfermaticAI Model</h4>
      <select id="model_infermaticai_select" data-select2-id="select2-data-model_infermaticai_select" tabindex="-1" class="select2-hidden-accessible" aria-hidden="true">
        <option data-select2-id="select2-data-8-brf7"> -- Connect to the API -- </option>
      </select><span class="select2 select2-container select2-container--default" dir="ltr" data-select2-id="select2-data-7-ovqj" style="width: 100%;"><span class="selection"><span class="select2-selection select2-selection--single" role="combobox"
            aria-haspopup="true" aria-expanded="false" tabindex="0" aria-disabled="false" aria-labelledby="select2-model_infermaticai_select-container" aria-controls="select2-model_infermaticai_select-container"><span
              class="select2-selection__rendered" id="select2-model_infermaticai_select-container" role="textbox" aria-readonly="true" title="
                                            -- Connect to the API --
                                        "> -- Connect to the API -- </span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span></span></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>
    </div>
  </div>
  <div data-tg-type="mancer" class="flex-container flexFlowColumn" style="display: none;">
    <div class="flex-container flexFlowColumn">
    </div>
    <h4 data-i18n="Mancer API key"> Mancer API key <a href="https://mancer.tech/" class="notes-link" target="_blank">
                                        <span class="fa-solid fa-circle-question note-link-span"></span>
                                    </a>
    </h4>
    <div class="flex-container">
      <input id="api_key_mancer" name="api_key_mancer" class="text_pole flex1 wide100p" maxlength="500" size="35" type="text" autocomplete="off" placeholder="❌ Missing key">
      <div title="Clear your API key" data-i18n="[title]Clear your API key" class="menu_button fa-solid fa-circle-xmark clear-api-key" data-key="api_key_mancer">
      </div>
    </div>
    <div data-for="api_key_mancer" class="neutral_warning" data-i18n="For privacy reasons, your API key will be hidden after you reload the page."> For privacy reasons, your API key will be hidden after you reload the page. </div>
    <div class="flex1">
      <h4 data-i18n="Mancer Model">Mancer Model</h4>
      <select id="mancer_model" data-select2-id="select2-data-mancer_model" tabindex="-1" class="select2-hidden-accessible" aria-hidden="true">
        <option data-i18n="-- Connect to the API --" data-select2-id="select2-data-2-zair"> -- Connect to the API -- </option>
      </select><span class="select2 select2-container select2-container--default" dir="ltr" data-select2-id="select2-data-1-1lax" style="width: 100%;"><span class="selection"><span class="select2-selection select2-selection--single" role="combobox"
            aria-haspopup="true" aria-expanded="false" tabindex="0" aria-disabled="false" aria-labelledby="select2-mancer_model-container" aria-controls="select2-mancer_model-container"><span class="select2-selection__rendered"
              id="select2-mancer_model-container" role="textbox" aria-readonly="true" title="
                                            -- Connect to the API --
                                        "> -- Connect to the API -- </span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span></span></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>
    </div>
  </div>
  <div data-tg-type="ooba" class="flex-container flexFlowColumn">
    <div class="flex-container flexFlowColumn">
      <a href="https://github.com/oobabooga/text-generation-webui" target="_blank">
                                        oobabooga/text-generation-webui
                                    </a>
      <label for="">
        <span data-i18n="Make sure you run it with">Make sure you run it with</span>
        <code>--api</code>
        <span data-i18n="flag">flag</span>
      </label>
    </div>
    <h4 data-i18n="API key (optional)">API key (optional)</h4>
    <div class="flex-container">
      <input id="api_key_ooba" name="api_key_ooba" class="text_pole flex1 wide100p" maxlength="500" size="35" type="text" autocomplete="off" placeholder="❌ Missing key">
      <div title="Clear your API key" data-i18n="[title]Clear your API key" class="menu_button fa-solid fa-circle-xmark clear-api-key" data-key="api_key_ooba">
      </div>
    </div>
    <div data-for="api_key_ooba" class="neutral_warning" data-i18n="For privacy reasons, your API key will be hidden after you reload the page."> For privacy reasons, your API key will be hidden after you reload the page. </div>
    <div class="flex1">
      <h4 data-i18n="Server url">Server URL</h4>
      <small data-i18n="Example: 127.0.0.1:5000">Example: http://127.0.0.1:5000</small>
      <input id="textgenerationwebui_api_url_text" name="textgenerationwebui_api_url" class="text_pole wide100p ui-autocomplete-input" maxlength="500" value="" autocomplete="off" data-server-history="ooba_blocking">
    </div>
    <input id="custom_model_textgenerationwebui" class="text_pole wide100p" maxlength="500" placeholder="Custom model (optional)" data-i18n="[placeholder]Custom model (optional)" type="text" x-setting-id="custom_model">
  </div>
  <div data-tg-type="aphrodite" style="display: none;">
    <div class="flex-container flexFlowColumn">
      <a href="https://github.com/PygmalionAI/aphrodite-engine" target="_blank" data-i18n="PygmalionAI/aphrodite-engine">
                                        PygmalionAI/aphrodite-engine (OpenAI API wrapper mode)
                                    </a>
    </div>
    <h4 data-i18n="Aphrodite API key">Aphrodite API key</h4>
    <div class="flex-container">
      <input id="api_key_aphrodite" name="api_key_aphrodite" class="text_pole flex1 wide100p" maxlength="500" size="35" type="text" autocomplete="off" placeholder="❌ Missing key">
      <div title="Clear your API key" data-i18n="[title]Clear your API key" class="menu_button fa-solid fa-circle-xmark clear-api-key" data-key="api_key_aphrodite">
      </div>
    </div>
    <div data-for="api_key_aphrodite" class="neutral_warning" data-i18n="For privacy reasons, your API key will be hidden after you reload the page."> For privacy reasons, your API key will be hidden after you reload the page. </div>
    <div class="flex1">
      <h4 data-i18n="API url">API URL</h4>
      <small data-i18n="Example: 127.0.0.1:5000">Example: http://127.0.0.1:5000</small>
      <input id="aphrodite_api_url_text" class="text_pole wide100p ui-autocomplete-input" maxlength="500" value="" autocomplete="off" data-server-history="aphrodite">
    </div>
  </div>
  <div data-tg-type="llamacpp" style="display: none;">
    <div class="flex-container flexFlowColumn">
      <a href="https://github.com/ggerganov/llama.cpp" target="_blank" data-i18n="ggerganov/llama.cpp">
                                        ggerganov/llama.cpp (inference server)
                                    </a>
    </div>
    <div class="flex1">
      <h4 data-i18n="API url">API URL</h4>
      <small data-i18n="Example: 127.0.0.1:8080">Example: http://127.0.0.1:8080</small>
      <input id="llamacpp_api_url_text" class="text_pole wide100p ui-autocomplete-input" maxlength="500" value="" autocomplete="off" data-server-history="llamacpp">
    </div>
  </div>
  <div data-tg-type="ollama" style="display: none;">
    <div class="flex-container flexFlowColumn">
      <a href="https://github.com/jmorganca/ollama" target="_blank">
                                        jmorganca/ollama
                                    </a>
    </div>
    <div class="flex1">
      <h4 data-i18n="API url">API URL</h4>
      <small data-i18n="Example: 127.0.0.1:11434">Example: http://127.0.0.1:11434</small>
      <input id="ollama_api_url_text" class="text_pole wide100p ui-autocomplete-input" maxlength="500" value="" autocomplete="off" data-server-history="ollama">
    </div>
    <div class="flex1">
      <h4>
        <span data-i18n="Ollama Model">Ollama Model </span>
      </h4>
      <select id="ollama_model" data-select2-id="select2-data-ollama_model" tabindex="-1" class="select2-hidden-accessible" aria-hidden="true">
        <option data-i18n="-- Connect to the API --" data-select2-id="select2-data-6-60w7"> -- Connect to the API -- </option>
      </select><span class="select2 select2-container select2-container--default" dir="ltr" data-select2-id="select2-data-5-cuxk" style="width: 100%;"><span class="selection"><span class="select2-selection select2-selection--single" role="combobox"
            aria-haspopup="true" aria-expanded="false" tabindex="0" aria-disabled="false" aria-labelledby="select2-ollama_model-container" aria-controls="select2-ollama_model-container"><span class="select2-selection__rendered"
              id="select2-ollama_model-container" role="textbox" aria-readonly="true" title="
                                            -- Connect to the API --
                                        "> -- Connect to the API -- </span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span></span></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>
      <div id="ollama_download_model" class="menu_button menu_button_icon">
        <i class="fa-solid fa-download"></i>
        <span data-i18n="Download">Download</span>
      </div>
    </div>
  </div>
  <div data-tg-type="tabby" style="display: none;">
    <div class="flex-container flexFlowColumn">
      <a href="https://github.com/theroyallab/tabbyAPI" target="_blank">
                                        theroyallab/tabbyAPI
                                    </a>
    </div>
    <h4 data-i18n="Tabby API key">Tabby API key</h4>
    <div class="flex-container">
      <input id="api_key_tabby" name="api_key_tabby" class="text_pole flex1 wide100p" maxlength="500" size="35" type="text" autocomplete="off" placeholder="❌ Missing key">
      <div title="Clear your API key" data-i18n="[title]Clear your API key" class="menu_button fa-solid fa-circle-xmark clear-api-key" data-key="api_key_tabby">
      </div>
    </div>
    <div data-for="api_key_tabby" class="neutral_warning" data-i18n="For privacy reasons, your API key will be hidden after you reload the page."> For privacy reasons, your API key will be hidden after you reload the page. </div>
    <div class="flex1">
      <h4 data-i18n="API url">API URL</h4>
      <small data-i18n="Example: 127.0.0.1:5000">Example: http://127.0.0.1:5000</small>
      <input id="tabby_api_url_text" class="text_pole wide100p ui-autocomplete-input" maxlength="500" value="" autocomplete="off" data-server-history="tabby">
    </div>
  </div>
  <div data-tg-type="koboldcpp" style="display: none;">
    <div class="flex-container flexFlowColumn">
      <a href="https://github.com/LostRuins/koboldcpp" target="_blank">
                                        LostRuins/koboldcpp
                                    </a>
    </div>
    <div class="flex1">
      <h4 data-i18n="API url">API URL</h4>
      <small data-i18n="Example: 127.0.0.1:5001">Example: http://127.0.0.1:5001</small>
      <input id="koboldcpp_api_url_text" class="text_pole wide100p ui-autocomplete-input" maxlength="500" value="" autocomplete="off" data-server-history="koboldcpp">
    </div>
  </div>
  <div class="flex-container">
    <div id="api_button_textgenerationwebui" class="api_button menu_button" type="submit" data-i18n="Connect" data-server-connect="ooba_blocking,aphrodite,tabby,koboldcpp">Connect</div>
    <div data-tg-type="openrouter" class="menu_button menu_button_icon openrouter_authorize" title="Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai"
      data-i18n="[title]Get your OpenRouter API token using OAuth flow. You will be redirected to openrouter.ai" style="display: none;">Authorize</div>
    <div class="api_loading menu_button" data-i18n="Cancel">Cancel</div>
  </div>
  <label data-tg-type="ooba,aphrodite" class="checkbox_label margin-bot-10px" for="legacy_api_textgenerationwebui">
    <input type="checkbox" id="legacy_api_textgenerationwebui" x-setting-id="legacy_api">
    <span data-i18n="Legacy API (pre-OAI, no streaming)">Legacy API (pre-OAI, no streaming)</span>
  </label>
  <label data-tg-type="ooba" class="checkbox_label margin-bot-10px" for="bypass_status_check_textgenerationwebui">
    <input type="checkbox" id="bypass_status_check_textgenerationwebui" x-setting-id="bypass_status_check">
    <span data-i18n="Bypass status check">Bypass status check</span>
  </label>
</form>

POST javascript:void(null);

<form id="openai_form" data-source="openai" action="javascript:void(null);" method="post" enctype="multipart/form-data" style="display: none;">
  <h4><span data-i18n="OpenAI API key">OpenAI API key</span></h4>
  <div>
    <a id="openai_api_usage" href="https://platform.openai.com/account/usage" target="_blank">
                                    <span data-i18n="View API Usage Metrics">View API Usage Metrics</span>
                                </a>
  </div>
  <span>
    <ol>
      <li>
        <span data-i18n="Follow">Follow</span>
        <a href="https://docs.sillytavern.app/usage/api-connections/openai/" class="notes-link" target="_blank"><span data-i18n="these directions"> these directions </span></a>
        <span data-i18n="to get your OpenAI API key.">to get your OpenAI API key.</span>
      </li>
      <li>
        <span data-i18n="Enter it in the box below">Enter it in the box below:</span>
      </li>
    </ol>
  </span>
  <div class="flex-container">
    <input id="api_key_openai" name="api_key_openai" class="text_pole flex1" maxlength="500" value="" type="text" autocomplete="off" placeholder="❌ Missing key">
    <div title="Clear your API key" data-i18n="[title]Clear your API key" class="menu_button fa-solid fa-circle-xmark clear-api-key" data-key="api_key_openai"></div>
  </div>
  <div id="ReverseProxyWarningMessage2" class="reverse_proxy_warning" style="display: none;">
    <b data-i18n="Use Proxy password field instead. This input will be ignored.">
                                    Use "Proxy password" field instead. This input will be ignored.
                                </b>
  </div>
  <div data-for="api_key_openai" class="neutral_warning"> For privacy reasons, your API key will be hidden after you reload the page. </div>
  <div>
    <h4 data-i18n="OpenAI Model">OpenAI Model</h4>
    <select id="model_openai_select">
      <optgroup label="GPT-3.5 Turbo">
        <option value="gpt-3.5-turbo" selected="selected">gpt-3.5-turbo</option>
        <option value="gpt-3.5-turbo-0125">gpt-3.5-turbo-0125 (2024)</option>
        <option value="gpt-3.5-turbo-1106">gpt-3.5-turbo-1106 (2023)</option>
        <option value="gpt-3.5-turbo-0613">gpt-3.5-turbo-0613 (2023)</option>
        <option value="gpt-3.5-turbo-0301">gpt-3.5-turbo-0301 (2023)</option>
        <option value="gpt-3.5-turbo-16k">gpt-3.5-turbo-16k</option>
        <option value="gpt-3.5-turbo-16k-0613">gpt-3.5-turbo-16k-0613 (2023)</option>
      </optgroup>
      <optgroup label="GPT-3.5 Turbo Instruct">
        <option value="gpt-3.5-turbo-instruct">gpt-3.5-turbo-instruct</option>
        <option value="gpt-3.5-turbo-instruct-0914">gpt-3.5-turbo-instruct-0914</option>
      </optgroup>
      <optgroup label="GPT-4">
        <option value="gpt-4">gpt-4</option>
        <option value="gpt-4-turbo-preview">gpt-4-turbo-preview</option>
        <option value="gpt-4-vision-preview">gpt-4-vision-preview</option>
        <option value="gpt-4-0125-preview">gpt-4-0125-preview (2024)</option>
        <option value="gpt-4-1106-preview">gpt-4-1106-preview (2023)</option>
        <option value="gpt-4-0613">gpt-4-0613 (2023)</option>
        <option value="gpt-4-0314">gpt-4-0314 (2023)</option>
        <option value="gpt-4-32k">gpt-4-32k</option>
        <option value="gpt-4-32k-0613">gpt-4-32k-0613 (2023)</option>
        <option value="gpt-4-32k-0314">gpt-4-32k-0314 (2023)</option>
      </optgroup>
      <optgroup label="Other">
        <option value="text-davinci-003">text-davinci-003</option>
        <option value="text-davinci-002">text-davinci-002</option>
        <option value="text-curie-001">text-curie-001</option>
        <option value="text-babbage-001">text-babbage-001</option>
        <option value="text-ada-001">text-ada-001</option>
        <option value="code-davinci-002">code-davinci-002</option>
      </optgroup>
      <optgroup id="openai_external_category" label="External" style="display: none;">
      </optgroup>
    </select>
    <label for="openai_bypass_status_check" class="checkbox_label">
      <input id="openai_bypass_status_check" type="checkbox">
      <span data-i18n="Bypass API status check">Bypass API status check</span>
    </label>
    <label for="openai_show_external_models" class="checkbox_label">
      <input id="openai_show_external_models" type="checkbox">
      <span data-i18n="Show External models (provided by API)">Show "External" models (provided by API)</span>
    </label>
  </div>
</form>

POST javascript:void(null);

<form id="claude_form" data-source="claude" action="javascript:void(null);" method="post" enctype="multipart/form-data" style="display: none;">
  <h4>Claude API Key</h4>
  <div>
    <span data-i18n="Get your key from">Get your key from </span> <a target="_blank" href="https://console.anthropic.com/account/keys" data-i18n="Anthropic's developer console">Anthropic's developer console</a>.
  </div>
  <div>
    <b data-i18n="Slack and Poe cookies will not work here, do not bother trying.">
                                    Slack and Poe cookies will not work here, do not bother trying.
                                </b>
  </div>
  <div class="flex-container">
    <input id="api_key_claude" name="api_key_claude" class="text_pole flex1" maxlength="500" value="" type="text" autocomplete="off" placeholder="❌ Missing key">
    <div title="Clear your API key" data-i18n="[title]Clear your API key" class="menu_button fa-solid fa-circle-xmark clear-api-key" data-key="api_key_claude"></div>
  </div>
  <div data-for="api_key_claude" class="neutral_warning"> For privacy reasons, your API key will be hidden after you reload the page. </div>
  <div>
    <h4 data-i18n="Claude Model">Claude Model</h4>
    <select id="model_claude_select">
      <optgroup label="Latest">
        <option value="claude-2">claude-2</option>
        <option value="claude-v1">claude-v1</option>
        <option value="claude-v1-100k">claude-v1-100k</option>
        <option value="claude-instant-v1" selected="selected">claude-instant-v1</option>
        <option value="claude-instant-v1-100k">claude-instant-v1-100k</option>
      </optgroup>
      <optgroup label="Sub-versions">
        <option value="claude-2.1">claude-2.1</option>
        <option value="claude-2.0">claude-2.0</option>
        <option value="claude-v1.3">claude-v1.3</option>
        <option value="claude-v1.3-100k">claude-v1.3-100k</option>
        <option value="claude-v1.2">claude-v1.2</option>
        <option value="claude-v1.0">claude-v1.0</option>
        <option value="claude-instant-1.2">claude-instant-1.2</option>
        <option value="claude-instant-v1.1">claude-instant-v1.1</option>
        <option value="claude-instant-v1.1-100k">claude-instant-v1.1-100k</option>
        <option value="claude-instant-v1.0">claude-instant-v1.0</option>
      </optgroup>
    </select>
  </div>
</form>

POST javascript:void(null);

<form id="windowai_form" data-source="windowai" action="javascript:void(null);" method="post" enctype="multipart/form-data" style="display: none;">
  <div>
    <h4 data-i18n="Window AI Model">Window AI Model</h4>
    <select id="model_windowai_select">
      <option value="" selected="selected">Use extension settings</option>
      <option value="openai/gpt-3.5-turbo">openai/gpt-3.5-turbo</option>
      <option value="openai/gpt-3.5-turbo-16k">openai/gpt-3.5-turbo-16k</option>
      <option value="openai/gpt-4">openai/gpt-4</option>
      <option value="openai/gpt-4-32k">openai/gpt-4-32k</option>
      <option value="anthropic/claude-instant-v1">anthropic/claude-instant-v1</option>
      <option value="anthropic/claude-instant-v1-100k">anthropic/claude-instant-v1-100k</option>
      <option value="anthropic/claude-v1">anthropic/claude-v1</option>
      <option value="anthropic/claude-v1-100k">anthropic/claude-v1-100k</option>
      <option value="google/palm-2-chat-bison">google/palm-2-chat-bison</option>
      <option value="google/palm-2-codechat-bison">google/palm-2-codechat-bison</option>
      <option value="togethercomputer/GPT-NeoXT-Chat-Base-20B">togethercomputer/GPT-NeoXT-Chat-Base-20B</option>
      <option value="cohere/command-nightly">cohere/command-nightly</option>
    </select>
  </div>
</form>

POST javascript:void(null);

<form id="openrouter_form" data-source="openrouter" action="javascript:void(null);" method="post" enctype="multipart/form-data">
  <div>
    <h4 data-i18n="OpenRouter Model">OpenRouter Model</h4>
    <select id="model_openrouter_select" data-select2-id="select2-data-model_openrouter_select" tabindex="-1" class="select2-hidden-accessible" aria-hidden="true">
      <option data-i18n="Connect to the API" data-select2-id="select2-data-12-wxto">-- Connect to the API --</option>
    </select><span class="select2 select2-container select2-container--default" dir="ltr" data-select2-id="select2-data-11-rb1n" style="width: 100%;"><span class="selection"><span class="select2-selection select2-selection--single" role="combobox"
          aria-haspopup="true" aria-expanded="false" tabindex="0" aria-disabled="false" aria-labelledby="select2-model_openrouter_select-container" aria-controls="select2-model_openrouter_select-container"><span class="select2-selection__rendered"
            id="select2-model_openrouter_select-container" role="textbox" aria-readonly="true" title="Select a model"><span class="select2-selection__placeholder">Select a model</span></span><span class="select2-selection__arrow"
            role="presentation"><b role="presentation"></b></span></span></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>
  </div>
  <div class="marginTopBot5">
    <div class="inline-drawer wide100p">
      <div class="inline-drawer-toggle inline-drawer-header">
        <b data-i18n="Model Order">OpenRouter Model Sorting</b>
        <div class="fa-solid fa-circle-chevron-down inline-drawer-icon down"></div>
      </div>
      <div class="inline-drawer-content m-b-1">
        <div class="marginTopBot5">
          <label for="openrouter_sort_models" class="checkbox_label">
            <select id="openrouter_sort_models">
              <option data-i18n="Alphabetically" value="alphabetically">Alphabetically</option>
              <option data-i18n="Price" value="pricing.prompt">Price (cheapest)</option>
              <option data-i18n="Context Size" value="context_length">Context Size</option>
            </select>
          </label>
        </div>
        <div class="marginTopBot5">
          <label for="openrouter_group_models" class="checkbox_label">
            <input id="openrouter_group_models" type="checkbox">
            <span data-i18n="Group by vendors">Group by vendors</span>
          </label>
          <div class="toggle-description justifyLeft wide100p">
            <span data-i18n="Group by vendors Description"> Put OpenAI models in one group, Anthropic models in other group, etc. Can be combined with sorting. </span>
          </div>
        </div>
      </div>
    </div>
  </div>
  <div class="marginTopBot5">
    <label for="openrouter_use_fallback" class="checkbox_label">
      <input id="openrouter_use_fallback" type="checkbox">
      <span data-i18n="Allow fallback routes">Allow fallback routes</span>
    </label>
    <div class="toggle-description justifyLeft wide100p">
      <span data-i18n="Allow fallback routes Description"> Automatically chooses an alternative model if the chosen model can't serve your request. </span>
    </div>
  </div>
  <div class="marginTopBot5">
    <label for="openrouter_force_instruct" class="checkbox_label">
      <input id="openrouter_force_instruct" type="checkbox">
      <span data-i18n="Force Instruct Mode formatting">Force Instruct Mode formatting</span>
    </label>
    <div class="toggle-description justifyLeft wide100p">
      <span data-i18n="Force Instruct Mode formatting Description"> If both Instruct Mode and this are enabled, the prompt will be formatted by SillyTavern using the current advanced formatting settings (except instruct System Prompt). If disabled,
        the prompt will be formatted by OpenRouter. </span>
    </div>
  </div>
  <h4 data-i18n="OpenRouter API Key">OpenRouter API Key</h4>
  <div>
    <small data-i18n="Click Authorize below or get the key from"> Click "Authorize" below or get the key from </small> <a target="_blank" href="https://openrouter.ai/keys/">OpenRouter</a>. <br>
    <a href="https://openrouter.ai/account" target="_blank" data-i18n="View Remaining Credits">View Remaining Credits</a>
  </div>
  <div class="flex-container">
    <input id="api_key_openrouter" name="api_key_openrouter" class="text_pole flex1 api_key_openrouter" maxlength="500" value="" type="text" autocomplete="off" placeholder="✔️ Key saved">
    <div title="Clear your API key" data-i18n="[title]Clear your API key" class="menu_button fa-solid fa-circle-xmark clear-api-key" data-key="api_key_openrouter"></div>
  </div>
  <div data-for="api_key_openrouter" class="neutral_warning"> For privacy reasons, your API key will be hidden after you reload the page. </div>
</form>

POST javascript:void(null);

<form id="scale_form" data-source="scale" action="javascript:void(null);" method="post" enctype="multipart/form-data" style="display: none;">
  <div id="normal_scale_form">
    <h4 data-i18n="Scale API Key">Scale API Key</h4>
    <div class="flex-container">
      <input id="api_key_scale" name="api_key_scale" class="text_pole flex1" maxlength="500" value="" autocomplete="off" placeholder="❌ Missing key">
      <div title="Clear your API key" data-i18n="[title]Clear your API key" class="menu_button fa-solid fa-circle-xmark clear-api-key" data-key="api_key_scale"></div>
    </div>
    <div data-for="api_key_scale" class="neutral_warning"> For privacy reasons, your API key will be hidden after you reload the page. </div>
    <h4>Scale API URL</h4>
    <input id="api_url_scale" name="api_url_scale" class="text_pole" maxlength="500" value="" autocomplete="off" placeholder="https://dashboard.scale.com/spellbook/api/v2/deploy/xxxxxxx">
  </div>
  <div id="alt_scale_form" style="display: none;">
    <h4>Scale Cookie (_jwt)</h4>
    <div class="flex-container">
      <input id="scale_cookie" name="scale_cookie" class="text_pole flex1" maxlength="500" value="" autocomplete="off" placeholder="❌ Missing key">
      <div title="Clear your cookie" data-i18n="[title]Clear your cookie" class="menu_button fa-solid fa-circle-xmark clear-api-key" data-key="scale_cookie"></div>
    </div>
    <div data-for="scale_cookie" class="neutral_warning"> For privacy reasons, your cookie will be hidden after you reload the page. </div>
  </div>
  <!-- Its only purpose is to trigger max context size check -->
  <select id="model_scale_select" class="displayNone"></select>
  <label for="scale-alt" class="checkbox_label">
    <input id="scale-alt" type="checkbox" checked="">
    <span data-i18n="Alt Method">Alt Method</span>
  </label>
</form>

POST javascript:void(null);

<form id="ai21_form" data-source="ai21" action="javascript:void(null);" method="post" enctype="multipart/form-data" style="display: none;">
  <h4 data-i18n="AI21 API Key">AI21 API Key</h4>
  <div class="flex-container">
    <input id="api_key_ai21" name="api_key_ai21" class="text_pole flex1" maxlength="500" value="" type="text" autocomplete="off" placeholder="❌ Missing key">
    <div title="Clear your API key" data-i18n="[title]Clear your API key" class="menu_button fa-solid fa-circle-xmark clear-api-key" data-key="api_key_ai21"></div>
  </div>
  <div data-for="api_key_ai21" class="neutral_warning"> For privacy reasons, your API key will be hidden after you reload the page. </div>
  <div>
    <h4 data-i18n="AI21 Model">AI21 Model</h4>
    <select id="model_ai21_select">
      <optgroup label="Latest">
        <option value="j2-ultra" selected="selected">j2-ultra</option>
        <option value="j2-mid">j2-mid</option>
        <option value="j2-light">j2-light</option>
      </optgroup>
    </select>
  </div>
</form>

POST javascript:void(null);

<form id="makersuite_form" data-source="makersuite" action="javascript:void(null);" method="post" enctype="multipart/form-data" style="display: none;">
  <h4 data-i18n="MakerSuite API Key">MakerSuite API Key</h4>
  <div class="flex-container">
    <input id="api_key_makersuite" name="api_key_makersuite" class="text_pole flex1" maxlength="500" value="" type="text" autocomplete="off" placeholder="❌ Missing key">
    <div title="Clear your API key" data-i18n="[title]Clear your API key" class="menu_button fa-solid fa-circle-xmark clear-api-key" data-key="api_key_makersuite"></div>
  </div>
  <div data-for="api_key_makersuite" class="neutral_warning"> For privacy reasons, your API key will be hidden after you reload the page. </div>
  <div>
    <h4 data-i18n="Google Model">Google Model</h4>
    <select id="model_google_select">
      <option value="gemini-pro" selected="selected">Gemini Pro</option>
      <option value="gemini-pro-vision">Gemini Pro Vision</option>
      <option value="text-bison-001">Bison Text</option>
      <option value="chat-bison-001">Bison Chat</option>
    </select>
  </div>
</form>

POST javascript:void(null);

<form id="mistralai_form" data-source="mistralai" action="javascript:void(null);" method="post" enctype="multipart/form-data" style="display: none;">
  <h4 data-i18n="MistralAI API Key">MistralAI API Key</h4>
  <div class="flex-container">
    <input id="api_key_mistralai" name="api_key_mistralai" class="text_pole flex1" maxlength="500" value="" type="text" autocomplete="off" placeholder="❌ Missing key">
    <div title="Clear your API key" data-i18n="[title]Clear your API key" class="menu_button fa-solid fa-circle-xmark clear-api-key" data-key="api_key_mistralai"></div>
  </div>
  <div data-for="api_key_mistralai" class="neutral_warning"> For privacy reasons, your API key will be hidden after you reload the page. </div>
  <div>
    <h4 data-i18n="MistralAI Model">MistralAI Model</h4>
    <select id="model_mistralai_select">
      <optgroup label="Latest">
        <option value="open-mistral-7b">open-mistral-7b</option>
        <option value="open-mixtral-8x7b">open-mixtral-8x7b</option>
        <option value="mistral-small-latest">mistral-small-latest</option>
        <option value="mistral-medium-latest" selected="selected">mistral-medium-latest</option>
        <option value="mistral-large-latest">mistral-large-latest</option>
      </optgroup>
      <optgroup label="Sub-versions">
        <option value="mistral-tiny-2312">mistral-tiny-2312</option>
        <option value="mistral-small-2312">mistral-small-2312</option>
        <option value="mistral-small-2402">mistral-small-2402</option>
        <option value="mistral-medium-2312">mistral-medium-2312</option>
        <option value="mistral-large-2402">mistral-large-2402</option>
      </optgroup>
    </select>
  </div>
</form>

<form id="custom_form" data-source="custom" style="display: none;">
  <h4 data-i18n="Custom Endpoint (Base URL)">Custom Endpoint (Base URL)</h4>
  <div class="flex-container">
    <input id="custom_api_url_text" class="text_pole wide100p" maxlength="500" value="" autocomplete="off" placeholder="Example: http://localhost:1234/v1">
  </div>
  <div>
    <small> Doesn't work? Try adding <code>/v1</code> at the end of the URL! </small>
  </div>
  <h4>
    <span data-i18n="Custom API Key">Custom API Key</span>
    <small>(Optional)</small>
  </h4>
  <div class="flex-container">
    <input id="api_key_custom" name="api_key_custom" class="text_pole flex1" maxlength="500" value="" type="text" autocomplete="off" placeholder="❌ Missing key">
    <div title="Clear your API key" data-i18n="[title]Clear your API key" class="menu_button fa-solid fa-circle-xmark clear-api-key" data-key="api_key_custom"></div>
  </div>
  <div data-for="api_key_custom" class="neutral_warning"> For privacy reasons, your API key will be hidden after you reload the page. </div>
  <h4>Enter a Model ID</h4>
  <div class="flex-container">
    <input id="custom_model_id" class="text_pole wide100p" maxlength="500" value="" autocomplete="off" placeholder="Example: gpt-3.5-turbo">
  </div>
  <h4 data-i18n="Available Models">Available Models</h4>
  <div class="flex-container">
    <select id="model_custom_select" class="text_pole"></select>
  </div>
</form>

POST javascript:void(null);

<form id="form_bg_download" class="bg_example no-border no-shadow" action="javascript:void(null);" method="post" enctype="multipart/form-data">
  <label class="input-file">
    <input type="file" id="add_bg_button" name="avatar" accept="image/png, image/jpeg, image/jpg, image/gif, image/bmp">
    <div class="bg_example no-border no-shadow add_bg_but" style="background-image: url('/img/addbg3.png');"></div>
  </label>
</form>

<form target="_blank" rel="noopener">
  <input hidden="" accept="application/zip" name="expression_upload_pack" id="expression_upload_pack" type="file">
  <input hidden="" accept="image/*" name="expression_upload" id="expression_upload" type="file">
</form>

<form id="tts_provider_settings" class="inline-drawer-content">
  <p>Uses the voices provided by your operating system</p>
  <label for="system_tts_rate">Rate: <span id="system_tts_rate_output">1</span></label>
  <input id="system_tts_rate" type="range" value="1" min="0.5" max="2" step="0.1">
  <label for="system_tts_pitch">Pitch: <span id="system_tts_pitch_output">1</span></label>
  <input id="system_tts_pitch" type="range" value="1" min="0" max="2" step="0.1">
</form>

POST javascript:void(null);

<form id="form_upload_avatar" action="javascript:void(null);" method="post" enctype="multipart/form-data">
  <input type="file" id="avatar_upload_file" accept="image/*" name="avatar">
  <input type="hidden" id="avatar_upload_overwrite" name="overwrite_name" value="">
</form>

POST javascript:void(null);

<form id="form_create" action="javascript:void(null);" method="post" enctype="multipart/form-data">
  <div id="avatar-and-name-block">
    <div id="name_div">
      <input id="character_name_pole" name="ch_name" class="text_pole" data-i18n="[placeholder]Name this character" placeholder="Name this character" maxlength="100" value="" autocomplete="off">
      <div class="extension_token_counter"> Tokens: <span data-token-counter="character_name_pole" data-token-permanent="true">counting...</span>
      </div>
    </div>
    <div id="avatar_div" class="avatar_div alignitemsflexstart justifySpaceBetween flexnowrap flexGap5">
      <label id="avatar_div_div" class="add_avatar avatar" for="add_avatar_button" title="Click to select a new avatar for this character" data-i18n="[title]Click to select a new avatar for this character">
        <img id="avatar_load_preview" src="img/ai4.png" alt="avatar">
        <input hidden="" type="file" id="add_avatar_button" name="avatar" accept="image/png, image/jpeg, image/jpg, image/gif, image/bmp">
      </label>
      <div class="flex-container flexFlowColumn">
        <div class="flex-container flexFlowColumn">
          <div class="flex-container justifyContentFlexEnd flexFlowColumn">
            <div class="form_create_bottom_buttons_block">
              <div id="rm_button_back" class="menu_button fa-solid fa-left-long "></div>
              <!-- <div id="renameCharButton" class="menu_button fa-solid fa-user-pen" title="Rename Character"></div> -->
              <div id="favorite_button" class="menu_button fa-solid fa-star" title="Add to Favorites" data-i18n="[title]Add to Favorites"></div>
              <input type="hidden" id="fav_checkbox" name="fav">
              <div id="advanced_div" class="menu_button fa-solid fa-book " title="Advanced Definitions" data-i18n="[title]Advanced Definition"></div>
              <div id="world_button" class="menu_button fa-solid fa-globe" title="Character Lore" data-i18n="[title]Character Lore"></div>
              <div class="chat_lorebook_button menu_button fa-solid fa-passport" title="Chat Lore" data-i18n="[title]Chat Lore"></div>
              <div id="export_button" class="menu_button fa-solid fa-file-export " title="Export and Download" data-i18n="[title]Export and Download"></div>
              <!-- <div id="set_chat_scenario" class="menu_button fa-solid fa-scroll" title="Set a chat scenario override"></div> -->
              <!-- <div id="set_character_world" class="menu_button fa-solid fa-globe" title="Set a character World Info / Lorebook"></div> -->
              <div id="dupe_button" class="menu_button fa-solid fa-clone " title="Duplicate Character" data-i18n="[title]Duplicate Character"></div>
              <label for="create_button" id="create_button_label" class="menu_button fa-solid fa-user-check" title="Create Character" data-i18n="[title]Create Character">
                <input type="submit" id="create_button" name="create_button">
              </label>
              <div id="delete_button" class="menu_button fa-solid fa-skull " title="Delete Character" data-i18n="[title]Delete Character"></div>
            </div>
            <label class="flex1" for="char-management-dropdown">
              <select id="char-management-dropdown">
                <option value="default" disabled="" selected="" data-i18n="More...">More...</option>
                <option id="set_character_world" data-i18n="Link to World Info"> Link to World Info </option>
                <option id="import_character_info" data-i18n="Import Card Lore"> Import Card Lore </option>
                <option id="set_chat_scenario" data-i18n="Scenario Override"> Scenario Override </option>
                <option id="convert_to_persona" data-i18n="Convert to Persona"> Convert to Persona </option>
                <option id="renameCharButton" data-i18n="Rename"> Rename </option>
                <!--<option id="dupe_button">
                                                            Duplicate
                                                        </option>
                                                        <option id="export_button">
                                                            Export
                                                        </option>
                                                        <option id="delete_button">
                                                            Delete
                                                        </option>-->
                <option id="show_char_gallery">Show Gallery</option>
              </select>
            </label>
          </div>
          <div id="tags_div" class="marginBot5">
            <div class="tag_controls">
              <input id="tagInput" class="text_pole tag_input wide100p margin0 ui-autocomplete-input" data-i18n="[placeholder]Search / Create Tags" placeholder="Search / Create tags" maxlength="50" autocomplete="off">
              <div class="tags_view menu_button fa-solid fa-tags" title="View all tags" data-i18n="[title]View all tags"></div>
            </div>
            <div id="tagList" class="tags"></div>
          </div>
        </div>
      </div>
    </div>
  </div>
  <hr>
  <div id="description_div" class="marginBot5 flex-container alignitemscenter">
    <span data-i18n="Character Description">Description</span>
    <i class="editor_maximize fa-solid fa-maximize right_menu_button" data-for="description_textarea" title="Expand the editor"></i>
    <a href="https://docs.sillytavern.app/usage/core-concepts/characterdesign/#character-description" class="notes-link" target="_blank">
                                <span class="fa-solid fa-circle-question note-link-span"></span>
                            </a>
  </div>
  <textarea id="description_textarea" data-i18n="[placeholder]Describe your character's physical and mental traits here." placeholder="Describe your character's physical and mental traits here." class="marginBot5" name="description"></textarea>
  <div class="extension_token_counter"> Tokens: <span data-token-counter="description_textarea" data-token-permanent="true">counting...</span>
  </div>
  <div id="first_message_div" class="marginBot5 title_restorable">
    <div class="flex-container alignitemscenter">
      <span data-i18n="First message">First message</span>
      <i class="editor_maximize fa-solid fa-maximize right_menu_button" data-for="firstmessage_textarea" title="Expand the editor"></i>
      <a href="https://docs.sillytavern.app/usage/core-concepts/characterdesign/#first-message" class="notes-link" target="_blank">
                                    <span class="fa-solid fa-circle-question note-link-span"></span>
                                </a>
    </div>
    <div class="menu_button menu_button_icon open_alternate_greetings margin0" title="Click to set additional greeting messages" data-i18n="[title]Click to set additional greeting messages">
      <span data-i18n="Alt. Greetings"> Alt. Greetings </span>
    </div>
  </div>
  <textarea id="firstmessage_textarea" data-i18n="[placeholder]This will be the first message from the character that starts every chat." placeholder="This will be the first message from the character that starts every chat." class="marginBot5"
    name="first_mes"></textarea>
  <div class="extension_token_counter"> Tokens: <span data-token-counter="firstmessage_textarea">counting...</span>
  </div>
  <div id="spoiler_free_desc" style="display: none;">
    <div id="creators_notes_div" class="marginBot5 title_restorable">
      <span data-i18n="Creator's Notes">Creator's Notes</span>
      <div id="spoiler_free_desc_button" class="menu_button fa-solid fa-eye" title="Show / Hide Description and First Message" data-i18n="[title]Show / Hide Description and First Message"></div>
    </div>
    <hr>
    <div id="creator_notes_spoiler" data-i18n="[placeholder]Creator's Notes" placeholder="Creator's Notes" class="marginBot5" name="creator_notes_spoiler"></div>
    <!-- A button to show / hide description_div and description_textarea and first_message_div and firstmessage_textarea-->
  </div>
  <!-- these divs are invisible and used for server communication purposes -->
  <div id="hidden-divs">
    <input id="character_json_data" name="json_data" type="hidden">
    <input id="avatar_url_pole" name="avatar_url" type="hidden">
    <input id="selected_chat_pole" name="chat" type="hidden">
    <input id="create_date_pole" name="create_date" type="hidden">
    <input id="last_mes_pole" name="last_mes" type="hidden">
    <input id="character_world" name="world" type="hidden">
  </div>
  <!-- now back to normal divs for display purposes-->
</form>

POST javascript:void(null);

<form id="form_import" action="javascript:void(null);" method="post" enctype="multipart/form-data">
  <input multiple="" type="file" id="character_import_file" accept=".json, image/png, .yaml, .yml" name="avatar">
  <input id="character_import_file_type" name="file_type" class="text_pole" maxlength="999" size="2" value="" autocomplete="off">
</form>

javascript:void(null);

<form id="form_character_search_form" action="javascript:void(null);">
  <div id="rm_button_create" title="Create New Character" data-i18n="[title]Create New Character" class="menu_button fa-solid fa-user-plus "></div>
  <div id="character_import_button" title="Import Character from File" data-i18n="[title]Import Character from File" class="menu_button fa-solid fa-file-import faSmallFontSquareFix"></div>
  <div id="external_import_button" title="Import content from external URL" data-i18n="[title]Import content from external URL" class="menu_button fa-solid fa-cloud-arrow-down faSmallFontSquareFix"></div>
  <div id="rm_button_group_chats" title="Create New Chat Group" data-i18n="[title]Create New Chat Group" class="menu_button fa-solid fa-users-gear "></div>
  <input id="character_search_bar" class="text_pole width100p" type="search" data-i18n="[placeholder]Search..." placeholder="Search..." maxlength="100">
  <select id="character_sort_order" title="Characters sorting order" data-i18n="[title]Characters sorting order">
    <option data-field="name" data-order="asc" data-i18n="A-Z">A-Z</option>
    <option data-field="name" data-order="desc" data-i18n="Z-A">Z-A</option>
    <option data-field="create_date" data-order="desc" data-i18n="Newest">Newest</option>
    <option data-field="create_date" data-order="asc" data-i18n="Oldest">Oldest</option>
    <option data-field="fav" data-order="desc" data-rule="boolean" data-i18n="Favorites">Favorites</option>
    <option data-field="date_last_chat" data-order="desc" data-i18n="Recent">Recent</option>
    <option data-field="chat_size" data-order="desc" data-i18n="Most chats">Most chats</option>
    <option data-field="chat_size" data-order="asc" data-i18n="Least chats">Least chats</option>
    <option data-field="data_size" data-order="desc" data-i18n="Most tokens">Most tokens</option>
    <option data-field="data_size" data-order="asc" data-i18n="Least tokens">Least tokens</option>
    <option data-field="name" data-order="random" data-i18n="Random">Random</option>
  </select>
</form>

POST javascript:void(null);

<form id="form_import_chat" action="javascript:void(null);" method="post" enctype="multipart/form-data" style="display: none;">
  <input type="file" id="chat_import_file" accept=".json, .jsonl" name="avatar">
  <input id="chat_import_file_type" name="file_type" class="text_pole" maxlength="999" size="2" value="" autocomplete="off" style="display: none;">
  <input id="chat_import_avatar_url" name="avatar_url" class="text_pole" maxlength="999" size="2" value="" autocomplete="off" style="display: none;">
  <input id="chat_import_character_name" name="character_name" class="text_pole" maxlength="999" size="2" value="" autocomplete="off" style="display: none;">
</form>

<form class="world_entry_form  wi-card-entry">
  <div class="inline-drawer wide100p">
    <div class="inline-drawer-toggle inline-drawer-header gap5px padding0">
      <span class="drag-handle">☰</span>
      <div class="gap5px world_entry_thin_controls wide100p alignitemscenter">
        <div class="fa-fw fa-solid fa-circle-chevron-down inline-drawer-icon down"></div>
        <div class="flex-container alignitemscenter wide100p">
          <div class="WIEntryTitleAndStatus flex-container flex1 alignitemscenter">
            <div class="flex-container flex1">
              <textarea class="text_pole autoSetHeight" name="comment" maxlength="5000" data-i18n="[placeholder]Entry Title/Memo" placeholder="Entry Title/Memo"></textarea>
            </div>
            <!-- <span class="world_entry_form_position_value"></span> -->
            <select data-i18n="[title]WI Entry Status:🔵 Constant🟢 Normal❌ Disabled" title="WI Entry Status:
🔵 Constant
🟢 Normal
❌ Disabled" name="entryStateSelector" class="widthNatural margin0">
              <option title="WI Entry Status:
🔵 Constant
🟢 Normal
❌ Disabled" value="constant" data-i18n="[title]WI Entry Status:🔵 Constant🟢 Normal❌ Disabled">🔵</option>
              <option title="WI Entry Status:
🔵 Constant
🟢 Normal
❌ Disabled" value="normal" data-i18n="[title]WI Entry Status:🔵 Constant🟢 Normal❌ Disabled">🟢</option>
              <option title="WI Entry Status:
🔵 Constant
🟢 Normal
❌ Disabled" value="disabled" data-i18n="[title]WI Entry Status:🔵 Constant🟢 Normal❌ Disabled">❌</option>
            </select>
          </div>
          <div class="WIEnteryHeaderControls flex-container">
            <div name="PositionBlock" class="world_entry_form_control world_entry_form_radios wi-enter-footer-text">
              <label for="position" class="WIEntryHeaderTitleMobile" data-i18n="Position:">Position:</label>
              <select name="position" class="widthNatural margin0" data-i18n="[title]T_Position" title="↑Char: Before Character Definitions
↓Char: After Character Definitions
↑AN: Before Author's Note
↓AN: After Author's Note
@D: at Depth
">
                <option value="0" data-i18n="[title]T_Position" title="↑Char: Before Character Definitions
↓Char: After Character Definitions
↑AN: Before Author's Note
↓AN: After Author's Note
@D: at Depth
">↑Char</option>
                <option value="1" data-i18n="[title]T_Position" title="↑Char: Before Character Definitions
↓Char: After Character Definitions
↑AN: Before Author's Note
↓AN: After Author's Note
@D: at Depth
">↓Char</option>
                <option value="2" data-i18n="[title]T_Position" title="↑Char: Before Character Definitions
↓Char: After Character Definitions
↑AN: Before Author's Note
↓AN: After Author's Note
@D: at Depth
">↑AN</option>
                <option value="3" data-i18n="[title]T_Position" title="↑Char: Before Character Definitions
↓Char: After Character Definitions
↑AN: Before Author's Note
↓AN: After Author's Note
@D: at Depth
">↓AN</option>
                <option value="4" data-i18n="[title]T_Position" title="↑Char: Before Character Definitions
↓Char: After Character Definitions
↑AN: Before Author's Note
↓AN: After Author's Note
@D: at Depth
">@D</option>
              </select>
            </div>
            <div class="world_entry_form_control wi-enter-footer-text flex-container flexNoGap">
              <label for="depth" class="WIEntryHeaderTitleMobile" data-i18n="Depth:">Depth:</label>
              <input title="Depth" class="text_pole wideMax100px margin0" type="number" name="depth" placeholder="" min="0" max="999">
            </div>
            <div class="world_entry_form_control wi-enter-footer-text  flex-container flexNoGap">
              <label for="order" class="WIEntryHeaderTitleMobile" data-i18n="Order:">Order:</label>
              <input title="Order" class="text_pole wideMax100px margin0" type="number" name="order" placeholder="" min="0" max="999">
            </div>
            <div class="world_entry_form_control wi-enter-footer-text flex-container flexNoGap probabilityContainer">
              <label for="order" class="WIEntryHeaderTitleMobile" data-i18n="Trigger %:">Trigger %:</label>
              <input title="Probability" class="text_pole wideMax100px margin0" type="number" name="probability" placeholder="" min="0" max="100">
            </div>
          </div>
        </div>
      </div>
      <i class="menu_button delete_entry_button fa-solid fa-trash-can" type="submit" value=""></i>
    </div>
    <div class="inline-drawer-content flex-container paddingBottom5px wide100p">
      <div class="flex-container wide100p alignitemscenter">
        <div name="keywordsAndLogicBlock" class="flex-container wide100p alignitemscenter">
          <div class="world_entry_form_control flex1">
            <small class="displayNone">
              <span data-i18n="Comma separated (required)"> Comma separated (required) </span>
            </small>
            <small class="textAlignCenter" data-i18n="Primary Keywords">Primary Keywords</small>
            <textarea class="text_pole keyprimarytextpole" name="key" rows="1" data-i18n="[placeholder]Comma separated (required)" placeholder="Comma separated (required)" maxlength="2000"></textarea>
          </div>
          <div class="world_entry_form_control">
            <small class="textAlignCenter" data-i18n="Logic">Logic</small>
            <select name="entryLogicType" class="text_pole widthFitContent margin0">
              <option value="0" data-i18n="AND ANY">AND ANY</option>
              <option value="3" data-i18n="AND ALL">AND ALL</option>
              <option value="1" data-i18n="NOT ALL">NOT ALL</option>
              <option value="2" data-i18n="NOT ANY">NOT ANY</option>
            </select>
          </div>
          <div class="world_entry_form_control keysecondary flex1">
            <small class="displayNone">
              <span data-i18n="(ignored if empty)"> (ignored if empty) </span>
            </small>
            <small class="textAlignCenter" data-i18n="Optional Filter">Optional Filter</small>
            <div class="flex-container flexFlowRow alignitemscenter">
              <textarea class="text_pole keysecondarytextpole" name="keysecondary" rows="1" data-i18n="[placeholder]Comma separated (ignored if empty)" placeholder="Comma separated list" maxlength="2000"></textarea>
            </div>
          </div>
        </div>
        <div name="perEntryOverridesBlock" class="flex-container wide100p alignitemscenter">
          <div class="world_entry_form_control flex1">
            <small class="textAlignCenter" data-i18n="Scan Depth">Scan Depth</small>
            <input class="text_pole margin0" name="scanDepth" type="number" placeholder="Use global setting" data-i18n="[placeholder]Use global setting" max="1000">
          </div>
          <div class="world_entry_form_control flex1">
            <small class="textAlignCenter" data-i18n="Case-Sensitive">Case-Sensitive</small>
            <select name="caseSensitive" class="text_pole widthNatural margin0">
              <option value="null" data-i18n="Use global setting">Use global setting</option>
              <option value="true" data-i18n="Yes">Yes</option>
              <option value="false" data-i18n="No">No</option>
            </select>
          </div>
          <div class="world_entry_form_control flex1">
            <small class="textAlignCenter" data-i18n="Match Whole Words">Match Whole Words</small>
            <select name="matchWholeWords" class="text_pole widthNatural margin0">
              <option value="null" data-i18n="Use global setting">Use global setting</option>
              <option value="true" data-i18n="Yes">Yes</option>
              <option value="false" data-i18n="No">No</option>
            </select>
          </div>
          <div class="world_entry_form_control flex1" title="Can be used to automatically activate Quick Replies" data-i18n="[title]Can be used to automatically activate Quick Replies">
            <small class="textAlignCenter" data-i18n="Automation ID">Automation ID</small>
            <input class="text_pole margin0" name="automationId" type="text" placeholder="( None )" data-i18n="[placeholder]( None )">
          </div>
        </div>
        <div name="contentAndCharFilterBlock" class="world_entry_thin_controls flex2">
          <div class="world_entry_form_control flex1">
            <label for="content ">
              <small>
                <span data-i18n="Content" class="alignitemscenter flex-container flexnowrap wide100p justifySpaceBetween">
                  <span class="alignitemscenter flex-container flexNoGap"> Content </span>
                  <span> (Tokens:&nbsp; <span class="world_entry_form_token_counter" data-first-run="true">counting...</span>)&nbsp; <span class="world_entry_form_uid_value" data-first-run="true"></span>
                  </span>
                  <div>
                    <label class="checkbox flex-container alignitemscenter flexNoGap">
                      <input type="checkbox" name="exclude_recursion">
                      <span data-i18n="Exclude from recursion"> Non-recursable (this entry will not be activated by another) </span>
                    </label>
                    <label class="checkbox flex-container alignitemscenter flexNoGap">
                      <input type="checkbox" name="prevent_recursion">
                      <span data-i18n="Prevent further recursion (this entry will not activate others)"> Prevent further recursion (this entry will not activate others) </span>
                    </label>
                  </div>
                </span>
              </small>
              <small class="displayNone">
                <span data-i18n="What this keyword should mean to the AI"> What this keyword should mean to the AI, sent verbatim </span>
              </small>
            </label>
            <textarea class="text_pole" name="content" rows="8" data-i18n="[placeholder]What this keyword should mean to the AI, sent verbatim" placeholder="What this keyword should mean to the AI, sent verbatim"></textarea>
          </div>
        </div>
        <div class="world_entry_thin_controls commentContainer">
        </div>
      </div>
      <div class="flex-container wide100p flexGap10">
        <div class="flex1 flex-container flexFlowColumn flexNoGap">
          <div class="flex-container justifySpaceBetween">
            <small for="characterFilter" data-i18n="Filter to Character(s)"> Filter to Character(s) </small>
            <label class="checkbox_label flexNoGap">
              <input type="checkbox" name="character_exclusion">
              <span>
                <small data-i18n="Character Exclusion">Character Exclusion</small>
              </span>
            </label>
          </div>
          <div class="range-block-range">
            <select name="characterFilter" multiple="">
              <option value=""> -- Characters not found -- </option>
            </select>
          </div>
        </div>
        <div class="flex1 flex-container flexFlowColumn flexNoGap">
          <label for="group">
            <small data-i18n="Inclusion Group"> Inclusion Group </small>
          </label>
          <input type="text" class="text_pole" name="group" rows="1" data-i18n="[placeholder]Only one entry with the same label will be activated" placeholder="Only one entry with the same label will be activated">
        </div>
      </div>
      <div name="WIEntryBottomControls" class="flex-container flex1 justifySpaceBetween world_entry_form_horizontal">
        <div class="flex-container flexFlowColumn flexNoGap  wi-enter-footer-text  ">
          <label class="checkbox flex-container">
            <input type="checkbox" name="selective">
            <span data-i18n="Selective">Selective</span>
          </label>
          <label class="checkbox flex-container">
            <input type="checkbox" name="useProbability">
            <span data-i18n="Use Probability">Use Probability</span>
          </label>
          <label class="checkbox flex-container">
            <input type="checkbox" name="addMemo">
            <span data-i18n="Add Memo">Add Memo</span>
          </label>
        </div>
      </div>
    </div>
  </div>
</form>

<form class="completion_prompt_manager_popup_entry_form">
  <div class="completion_prompt_manager_popup_entry_form_control">
    <div class="completion_prompt_manager_popup_header">
      <label for="completion_prompt_manager_popup_entry_form_prompt">
        <span>Prompt List</span>
      </label>
      <a id="completion_prompt_manager_popup_close_button" title="close" class="fa-solid fa-close menu_button"></a>
    </div>
    <div class="text_muted">The list of prompts associated with this marker.</div>
    <div id="completion_prompt_manager_popup_entry_form_inspect_list"></div>
  </div>
</form>

<form class="completion_prompt_manager_popup_entry_form">
  <div class="flex-container gap10px">
    <div class="completion_prompt_manager_popup_entry_form_control flex1">
      <label for="completion_prompt_manager_popup_entry_form_name">
        <span>Name</span>
      </label>
      <div class="text_muted">A name for this prompt.</div>
      <input id="completion_prompt_manager_popup_entry_form_name" class="text_pole" type="text" name="name">
    </div>
    <div class="completion_prompt_manager_popup_entry_form_control flex1">
      <label for="completion_prompt_manager_popup_entry_form_role">
        <span>Role</span>
      </label>
      <div class="text_muted">To whom this message will be attributed.</div>
      <select id="completion_prompt_manager_popup_entry_form_role" class="text_pole" name="role">
        <option value="system">System</option>
        <option value="user">User</option>
        <option value="assistant">AI Assistant</option>
      </select>
    </div>
  </div>
  <div class="flex-container gap10px">
    <div class="completion_prompt_manager_popup_entry_form_control flex1">
      <label for="completion_prompt_manager_popup_entry_form_injection_position">
        <span>Position</span>
      </label>
      <div class="text_muted">Injection position. Next to other prompts (relative) or in-chat (absolute).</div>
      <select id="completion_prompt_manager_popup_entry_form_injection_position" class="text_pole" name="injection_position">
        <option value="0">Relative</option>
        <option value="1">Absolute</option>
      </select>
    </div>
    <div id="completion_prompt_manager_depth_block" class="completion_prompt_manager_popup_entry_form_control flex1">
      <label for="completion_prompt_manager_popup_entry_form_injection_depth">
        <span>Depth</span>
      </label>
      <div class="text_muted">Injection depth. 0 = after the last message, 1 = before the last message, etc.</div>
      <input id="completion_prompt_manager_popup_entry_form_injection_depth" class="text_pole" type="number" name="injection_depth" min="0" max="999" value="4">
    </div>
  </div>
  <div class="completion_prompt_manager_popup_entry_form_control">
    <label for="completion_prompt_manager_popup_entry_form_prompt">
      <span>Prompt</span>
    </label>
    <div class="text_muted">The prompt to be sent.</div>
    <textarea id="completion_prompt_manager_popup_entry_form_prompt" class="text_pole" name="prompt">                        </textarea>
  </div>
  <div class="completion_prompt_manager_popup_entry_form_footer">
    <a id="completion_prompt_manager_popup_entry_form_close" title="close" class="fa-solid fa-close menu_button"></a>
    <a id="completion_prompt_manager_popup_entry_form_reset" title="reset" class="fa-solid fa-undo menu_button"></a>
    <a id="completion_prompt_manager_popup_entry_form_save" title="save" class="fa-solid fa-save menu_button" data-pm-prompt=""></a>
  </div>
</form>

<form id="file_form" class="wide100p displayNone">
  <div class="file_attached">
    <input id="file_form_input" type="file" hidden="">
    <input id="embed_file_input" type="file" hidden="">
    <i class="fa-solid fa-file-alt"></i>
    <span class="file_name">File Name</span>
    <span class="file_size">File Size</span>
    <button id="file_form_reset" type="reset" class="menu_button" title="Remove the file" data-i18n="[title]Remove the file">
      <i class="fa fa-times"></i>
    </button>
  </div>
</form>

<form id="img_form" style="display: none;"><input id="img_file" type="file" hidden="" accept="image/*"></form>

Text Content

 * Favorite
 * Tag
 * Duplicate
 * Persona
 * Delete


Click slider numbers to input manually.
MAD LAB MODE ON

KOBOLD PRESETS

GUI KoboldAI SettingsAce of SpadesBasic CoherenceBest GuessCoherent
CreativityDeterministicGenesisGodlikeGood WindsLiminal DriftLow RiderLuna
MothMaydayMiro BronzeMiro GoldMiro SilverOuroborosPleasing ResultsPro
WriterRecoveredRuinssimple-proxy-for-tavernSpace
AlienStorywriterTFS-with-Top-ATitanicUniversal-CreativeUniversal-LightUniversal-Super-Creative


NOVELAI PRESETS

Asper-KayraBlended-Coffee-KayraBlook-KayraCarefree-KayraCosmicCube-KayraEdgewise-ClioFresh-Coffee-ClioFresh-Coffee-KayraGreen-Active-Writer-KayraKeelback-ClioLong-Press-ClioPilotfish-KayraPro_Writer-KayraStelenes-KayraTalker-Chat-ClioTea_Time-KayraTesseract-KayraVingt-Un-ClioWriters-Daemon-Kayra


CHAT COMPLETION PRESETS

Default


TEXT COMPLETION PRESETS

AsterismBeam SearchBig OContrastive SearchDefaultDeterministicDivine
IntellectKobold (Godlike)Kobold (Liminal Drift)LLaMa-PreciseMidnight EnigmaMiro
BronzeMiro GoldMiro SilverMirostatNaiveNovelAI (Best Guess)NovelAI
(Decadence)NovelAI (Genesis)NovelAI (Lycaenidae)NovelAI (Ouroboros)NovelAI
(Pleasing Results)NovelAI (Sphinx Moth)NovelAI
(Storywriter)ShortwaveSimple-1simple-proxy-for-tavernSpace
AlienStarChatTFS-with-Top-ATitanicUniversal-CreativeUniversal-LightUniversal-Super-CreativeYara

AI Module
Changes the style of the generated text.
No Module Instruct Prose Augmenter Text Adventure
Response (tokens)

Streaming

Streaming

Context (tokens)

Unlocked


--------------------------------------------------------------------------------

Streaming
Display the response bit by bit as it is generated.
When this is off, responses will be displayed all at once when they are
complete.
Temperature

Repetition Penalty

Repetition Penalty Range

Repetition Penalty Slope

Repetition Penalty Frequency

Repetition Penalty Presence

Tail Free Sampling

Phrase Repetition Penalty
Off Very light Light Medium Aggressive Very aggressive
Unlocked Context Size
Unrestricted maximum value for the context size slider. Enable only if you know
what you're doing.
Context Size (tokens)

Max Response Length (tokens)

Multiple swipes per generation

Max prompt cost: Unknown

--------------------------------------------------------------------------------

Streaming
Display the response bit by bit as it is generated.
When this is off, responses will be displayed all at once when they are
complete.
Temperature

Frequency Penalty

Presence Penalty

Count Penalty

Top K

Top P

Repetition Penalty

Min P

Top A

Quick Prompts Edit

Main

NSFW

Jailbreak

Utility Prompts

Impersonation prompt

Prompt that is used for Impersonation function

World Info format template

Wraps activated World Info entries before inserting into the prompt. Use {0} to
mark a place where the content is inserted.

Scenario format template

Use {{scenario}} to mark a place where the content is inserted.

Personality format template

Use {{personality}} to mark a place where the content is inserted.

Group Nudge prompt template

Sent at the end of the group chat history to force reply from a specific
character.

New Chat

Set at the beginning of the chat history to indicate that a new chat is about to
start.

New Group Chat

Set at the beginning of the chat history to indicate that a new group chat is
about to start.

New Example Chat

Set at the beginning of Dialogue examples to indicate that a new example chat is
about to start.

Continue nudge

Set at the end of the chat history when the continue button is pressed.

Replace empty message
Send this text instead of nothing when the text box is empty.

Seed
Set to get deterministic results. Use -1 for random seed.

Temperature

Top K

Top P

Typical P

Min P

Top A

Tail Free Sampling

Repetition Penalty
Repetition Penalty Range
Repetition Penalty Slope

MIROSTAT

Mode

Tau

Eta


--------------------------------------------------------------------------------

Ban EOS Token
Seed

--------------------------------------------------------------------------------

GBNF GRAMMAR


--------------------------------------------------------------------------------

Samplers Order
Samplers will be applied in a top-down order. Use with caution.
Repetition Penalty 6
Top K 0
Top A 1
Top P & Min P 2
Tail Free Sampling 3
Typical P 4
Temperature 5
Load koboldcpp order
Preamble

Use style tags to modify the writing style of the output.

Banned Tokens
Sequences you don't want to appear in the output. One per line. Text or [token
ids].

Logit Bias
Add
Helps to ban or reinforce the usage of certain tokens.


--------------------------------------------------------------------------------

CFG Scale

Negative Prompt

Used if CFG Scale is unset globally, per chat or character

--------------------------------------------------------------------------------

Top P

Top A

Top K

Mirostat Tau

Mirostat LR

Typical P

Min Length

Samplers Order
Samplers will be applied in a top-down order. Use with caution.
Top K Sampling 1

Typical P 5

Temperature 0

Nucleus Sampling 2

Tail Free Sampling 3

Top A Sampling 4

CFG 6

Mirostat 8

Neutralize Samplers

Multiple swipes per generation
Temperature

Top K

Top P

Typical P

Min P

Top A

Tail Free Sampling

Epsilon Cutoff

Eta Cutoff

Repetition Penalty
Repetition Penalty Range
Encoder Penalty
Frequency Penalty
Presence Penalty
No Repeat Ngram Size
Min Length
Smoothing Factor

DYNAMIC TEMPERATURE


Minimum Temp
Maximum Temp
Exponent

MIROSTAT


Mode
Tau

Eta


BEAM SEARCH


# of Beams
Length Penalty
Early Stopping

CONTRASTIVE SEARCH


Penalty Alpha

Do Sample Add BOS Token

Ban EOS Token

Ignore EOS Token

Skip Special Tokens Temperature Last

Spaces Between Special Tokens
Seed

--------------------------------------------------------------------------------

BANNED TOKENS



Logit Bias
Add
Helps to ban or reinforce the usage of certain tokens.


--------------------------------------------------------------------------------

CFG


Scale
Negative Prompt



--------------------------------------------------------------------------------

GBNF GRAMMAR


--------------------------------------------------------------------------------

Samplers Order
Samplers will be applied in a top-down order. Use with caution.
Repetition Penalty 6
Top K 0
Top A 1
Tail Free Sampling 3
Typical P 4
Top P & Min P 2
Temperature 5
Load default order

--------------------------------------------------------------------------------

SAMPLERS ORDER


llama.cpp only. Determines the order of samplers. If Mirostat mode is not 0,
sampler order is ignored.
Top K
Tail Free Sampling
Typical P
Top P
Min P
Temperature
Load default order

--------------------------------------------------------------------------------

SAMPLER PRIORITY


Ooba only. Determines the order of samplers.
Temperature
Dynamic Temperature
Quadratic / Smooth Sampling
Top K
Top P
Typical P
Epsilon Cutoff
Eta Cutoff
Tail Free Sampling
Top A
Min P
Mirostat
Load default order
Wrap in Quotes
Wrap entire user message in quotes before sending.
Leave off if you use quotes manually for speech.
Add character names
Send names in the message objects. Helps the model to associate messages with
characters.
Continue prefill
Continue sends the last message as assistant role instead of system message with
instruction.
Squash system messages
Combines consecutive system messages into one (excluding example dialogues). May
improve coherence for some models.
Send inline images
Sends images in prompts if the model supports it (e.g. GPT-4V or Llava 13B). Use
the action on any message or the menu to attach an image file to the chat.
Use AI21 Tokenizer
Use the appropriate tokenizer for Jurassic models, which is more efficient than
GPT's.
Use Google Tokenizer
Use the appropriate tokenizer for Google models via their API. Slower prompt
processing, but offers much more accurate token counting.
Exclude Human/Assistant prefixes
Exclude Human/Assistant prefixes from being added to the prompt, except very
first/last message, system prompt Human message and Assistant suffix. Requires
'Add character names' checked.
Exclude Assistant suffix
Exclude the assistant suffix from being added to the end of prompt. Requires
jailbreak with 'Assistant:' in it.
Assistant Prefill
Use system prompt (Claude 2.1+ only)
Exclude the 'Human: ' prefix from being added to the beginning of the prompt.
Instead, place it between the system prompt and the first message with the role
'assistant' (right before 'Chat History' by default).
Human: first message

Logit Bias
Helps to ban or reinforce the usage of certain tokens. Confirm token parsing
with Tokenizer.
Default (none)Anti-bond
View / Edit bias preset

Add bias entry

  Most tokens have a leading space.
Prompts
Total Tokens: 0
 * Name Tokens

 * --------------------------------------------------------------------------------

 * Main Prompt -
 * World Info (before) -
 * Persona Description -
 * Char Description -
 * Char Personality -
 * Scenario -
 * Enhance Definitions -
 * NSFW Prompt -
 * World Info (after) -
 * Chat Examples -
 * Chat History -
 * Jailbreak Prompt -


Export all


API

Text Completion Chat Completion NovelAI KoboldAI Horde KoboldAI Classic
 * Avoid sending sensitive information to the Horde. Review the Privacy
   statement
 * Register a Horde account for faster queue times
 * Learn how to contribute your idle GPU cycles to the Horde

Adjust context size to worker capabilities Adjust response length to worker
capabilities Trusted workers only Context: --, Response: --

API KEY

Get it here: Register (View my Kudos)
Enter 0000000000 to use anonymous mode.

For privacy reasons, your API key will be hidden after you reload the page.

MODELS


-- Horde models not loaded --
Not connected...

API URL

Example: http://127.0.0.1:5000/api
We have a dedicated KoboldCpp support under Text Completion ⇒ KoboldCpp.
Connect
Cancel
Not connected...

NOVEL API KEY

 1. Get your NovelAI API key
 2. Enter it in the box below:


For privacy reasons, your API key will be hidden after you reload the page.
Connect
Cancel

NOVEL AI MODEL

Clio Kayra
No connection...

API TYPE

Default (oobabooga) Mancer Aphrodite TabbyAPI KoboldCpp llama.cpp OpenRouter
Ollama TogetherAI InfermaticAI

TOGETHERAI API KEY


For privacy reasons, your API key will be hidden after you reload the page.

TOGETHERAI MODEL

-- Connect to the API -- -- Connect to the API --

OPENROUTER API KEY

Click "Authorize" below or get the key from OpenRouter.
View Remaining Credits

For privacy reasons, your API key will be hidden after you reload the page.

OPENROUTER MODEL

-- Connect to the API -- -- Connect to the API --

INFERMATICAI API KEY


For privacy reasons, your API key will be hidden after you reload the page.

INFERMATICAI MODEL

-- Connect to the API -- -- Connect to the API --

MANCER API KEY


For privacy reasons, your API key will be hidden after you reload the page.

MANCER MODEL

-- Connect to the API -- -- Connect to the API --
oobabooga/text-generation-webui Make sure you run it with --api flag

API KEY (OPTIONAL)


For privacy reasons, your API key will be hidden after you reload the page.

SERVER URL

Example: http://127.0.0.1:5000
PygmalionAI/aphrodite-engine (OpenAI API wrapper mode)

APHRODITE API KEY


For privacy reasons, your API key will be hidden after you reload the page.

API URL

Example: http://127.0.0.1:5000
ggerganov/llama.cpp (inference server)

API URL

Example: http://127.0.0.1:8080
jmorganca/ollama

API URL

Example: http://127.0.0.1:11434

OLLAMA MODEL

-- Connect to the API -- -- Connect to the API --
Download
theroyallab/tabbyAPI

TABBY API KEY


For privacy reasons, your API key will be hidden after you reload the page.

API URL

Example: http://127.0.0.1:5000
LostRuins/koboldcpp

API URL

Example: http://127.0.0.1:5001
Connect
Authorize
Cancel
Legacy API (pre-OAI, no streaming) Bypass status check
Not connected...

CHAT COMPLETION SOURCE

OpenAI Window AI OpenRouter Claude Scale AI21 Google MakerSuite MistralAI Custom
(OpenAI-compatible)
Reverse Proxy

Proxy Presets
Saved addresses and passwords.

None
Proxy Name
This will show up as your saved preset.


Proxy Server URL
Alternative server URL (leave empty to use the default value).

Remove your real OAI API Key from the API panel BEFORE typing anything into this
box.

--------------------------------------------------------------------------------

We cannot provide support for problems encountered while using an unofficial
OpenAI proxy.
Doesn't work? Try adding /v1 at the end!
Proxy Password
Will be used as a password for the proxy instead of API key.



OPENAI API KEY

View API Usage Metrics
 1. Follow these directions to get your OpenAI API key.
 2. Enter it in the box below:


Use "Proxy password" field instead. This input will be ignored.
For privacy reasons, your API key will be hidden after you reload the page.

OPENAI MODEL

gpt-3.5-turbo gpt-3.5-turbo-0125 (2024) gpt-3.5-turbo-1106 (2023)
gpt-3.5-turbo-0613 (2023) gpt-3.5-turbo-0301 (2023) gpt-3.5-turbo-16k
gpt-3.5-turbo-16k-0613 (2023) gpt-3.5-turbo-instruct gpt-3.5-turbo-instruct-0914
gpt-4 gpt-4-turbo-preview gpt-4-vision-preview gpt-4-0125-preview (2024)
gpt-4-1106-preview (2023) gpt-4-0613 (2023) gpt-4-0314 (2023) gpt-4-32k
gpt-4-32k-0613 (2023) gpt-4-32k-0314 (2023) text-davinci-003 text-davinci-002
text-curie-001 text-babbage-001 text-ada-001 code-davinci-002 Bypass API status
check Show "External" models (provided by API)

CLAUDE API KEY

Get your key from Anthropic's developer console.
Slack and Poe cookies will not work here, do not bother trying.

For privacy reasons, your API key will be hidden after you reload the page.

CLAUDE MODEL

claude-2 claude-v1 claude-v1-100k claude-instant-v1 claude-instant-v1-100k
claude-2.1 claude-2.0 claude-v1.3 claude-v1.3-100k claude-v1.2 claude-v1.0
claude-instant-1.2 claude-instant-v1.1 claude-instant-v1.1-100k
claude-instant-v1.0

WINDOW AI MODEL

Use extension settings openai/gpt-3.5-turbo openai/gpt-3.5-turbo-16k
openai/gpt-4 openai/gpt-4-32k anthropic/claude-instant-v1
anthropic/claude-instant-v1-100k anthropic/claude-v1 anthropic/claude-v1-100k
google/palm-2-chat-bison google/palm-2-codechat-bison
togethercomputer/GPT-NeoXT-Chat-Base-20B cohere/command-nightly

OPENROUTER MODEL

-- Connect to the API -- Select a model
OpenRouter Model Sorting

Alphabetically Price (cheapest) Context Size
Group by vendors
Put OpenAI models in one group, Anthropic models in other group, etc. Can be
combined with sorting.
Allow fallback routes
Automatically chooses an alternative model if the chosen model can't serve your
request.
Force Instruct Mode formatting
If both Instruct Mode and this are enabled, the prompt will be formatted by
SillyTavern using the current advanced formatting settings (except instruct
System Prompt). If disabled, the prompt will be formatted by OpenRouter.

OPENROUTER API KEY

Click "Authorize" below or get the key from OpenRouter.
View Remaining Credits

For privacy reasons, your API key will be hidden after you reload the page.

SCALE API KEY


For privacy reasons, your API key will be hidden after you reload the page.

SCALE API URL

SCALE COOKIE (_JWT)


For privacy reasons, your cookie will be hidden after you reload the page.
Alt Method

AI21 API KEY


For privacy reasons, your API key will be hidden after you reload the page.

AI21 MODEL

j2-ultra j2-mid j2-light

MAKERSUITE API KEY


For privacy reasons, your API key will be hidden after you reload the page.

GOOGLE MODEL

Gemini Pro Gemini Pro Vision Bison Text Bison Chat

MISTRALAI API KEY


For privacy reasons, your API key will be hidden after you reload the page.

MISTRALAI MODEL

open-mistral-7b open-mixtral-8x7b mistral-small-latest mistral-medium-latest
mistral-large-latest mistral-tiny-2312 mistral-small-2312 mistral-small-2402
mistral-medium-2312 mistral-large-2402

CUSTOM ENDPOINT (BASE URL)


Doesn't work? Try adding /v1 at the end of the URL!

CUSTOM API KEY (OPTIONAL)


For privacy reasons, your API key will be hidden after you reload the page.

ENTER A MODEL ID



AVAILABLE MODELS


Connect
Cancel
Additional Parameters
Authorize
Test Message
No connection...
Auto-connect to Last Server View hidden API keys


ADVANCED FORMATTING

CONTEXT TEMPLATE

AdventureAlpaca-RoleplayAlpaca-Single-TurnChatMLDefaultLibra-32BLightning
1.1MinimalistMistralNovelAIOldDefaultPygmalionStorysimple-proxy-for-tavern
Story String
Example Separator

Chat Start

Use as Stop Strings
Context Order

Story String 0
Summary 1
Author's Note 2
Example Dialogues 3
Chat History 4
Hint: Summary and Author's Note orders are only affected when they don't have an
In-Chat position set.

INSTRUCT MODE

Enabled Bind to Context
Presets
AdventureAlpaca-RoleplayAlpaca-Single-TurnAlpacaChatMLKoalaLibra-32BLightning
1.1Llama 2 ChatMetharmeMistralOpenOrca-OpenChatPygmalionStorySynthiaVicuna
1.0Vicuna 1.1WizardLM-13BWizardLMsimple-proxy-for-tavern
Activation Regex

Wrap Sequences with Newline Replace Macro in Sequences Include Names Force for
Groups and Personas
System Prompt
Instruct Mode Sequences

Input Sequence

Output Sequence

First Output Sequence

Last Output Sequence

System Sequence Prefix

System Sequence Suffix

Stop Sequence

Separator


CONTEXT FORMATTING

 (Saved to Context Template)
Always add character's name to prompt Generate only one line per request Trim
Incomplete Sentences Include Newline

MISC. SETTINGS

Collapse Consecutive Newlines Trim spaces

TOKENIZER

Best match (recommended) None / Estimated GPT-2 LLaMA NerdStash (NovelAI Clio)
NerdStash v2 (NovelAI Kayra) Mistral Yi API (WebUI / koboldcpp)
Token Padding

START REPLY WITH


Show reply prefix in chat

NON-MARKDOWN STRINGS



CUSTOM STOPPING STRINGS

JSON serialized array of strings

Replace Macro in Custom Stopping Strings

AUTO-CONTINUE

Enabled Allow for Chat Completion APIs
Target length (tokens)


WORLDS/LOREBOOKS

Active World(s) for all chats
Eldoria
Activation Settings

Character Lore Insertion Strategy
Sorted Evenly Character Lore First Global Lore First
Scan Depth

Context %

Budget Cap

(0 = disabled)
Min Activations

Max Depth

(0 = unlimited, use budget)
Recursive Scan Case-sensitive Match whole words Alert On Overflow

--------------------------------------------------------------------------------

New
or --- Pick to Edit --- Eldoria









Priority Custom Title A-Z Title Z-A Tokens ↗ Tokens ↘ Depth ↗ Depth ↘ Order ↗
Order ↘ UID ↗ UID ↘ Trigger% ↗ Trigger% ↘





USER SETTINGS

Simple Advanced
Language: Default en zh-cnja-jpko-krru-ruit-itnl-nles-spa
SillyTavern 1.11.5 'release' (68c1ab9f)


UI THEME


Default (Dark) 1.7.1Ross v2



THEME SETTINGS

Avatars: Circle Square Rectangle
Chat Style:
Flat Bubbles Document
Main Text
Italics Text
Quote Text
Text Shadow
Chat Background
UI Background
UI Border
User Message
AI Message
Chat Width

Font Scale

Blur Strength

Text Shadow Width

Chat Truncation (0 = unlimited)

Streaming FPS


THEME TOGGLES

Reduced Motion No Blur Effect No Text Shadows Visual Novel Mode Expand Message
Actions Zen Sliders Mad Lab Mode Message Timer Chat Timestamps Model Icons
Message IDs Message Token Count Compact Input Area Characters Hotswap Tags as
Folders

MISCELLANEOUS

Aux List Field Character Version Created by
Message Sound Background Sound Only Relaxed API URLs Lorebook Import Dialog
Restore User Input MovingUI 
MUI Preset:
Black Magic TimeDefault

Reset MovingUI

CUSTOM CSS



CHARACTER HANDLING

Example Messages Behavior: Gradual push-out Always include examples Never
include examples
Advanced Character Search Prefer Char. Prompt Prefer Char. Jailbreak Never
resize avatars Show avatar filenames Import Card Tags Spoiler Free Mode

CHAT/MESSAGE HANDLING

Enter to Send: Disabled Automatic (PC) Enabled
"Send" to Continue Quick "Continue" button
Swipes Gestures
Auto-load Last Chat Auto-scroll Chat Auto-save Message Edits Confirm message
deletion Auto-fix Markdown Render Formulas Forbid External Media Show {{char}}:
in responses Show {{user}}: in responses Show <tags> in responses Relax message
trim in Groups Log prompts to console Request token probabilities
Auto-swipe

Enabled
Minimum generated message length
Blacklisted words
Blacklisted word count to swipe
Reload Chat
Debug Menu
Auto-select


SYSTEM BACKGROUNDS

__transparent
_black
_white
bedroom clean
bedroom cyberpunk
bedroom red
bedroom tatami
cityscape medieval market
cityscape medieval night
cityscape postapoc
forest treehouse fireworks air baloons (by kallmeflocc)
japan classroom side
japan classroom
japan path cherry blossom
japan university
landscape autumn great tree
landscape beach day
landscape beach night
landscape mountain lake
landscape postapoc
landscape winter lake house
royal
tavern day


CHAT BACKGROUNDS

Chat backgrounds generated with the  Image Generation extension will appear
here.



EXTENSIONS

Notify on extension updates
Manage extensions
Install extension
Character Expressions

Local server classification Show default images (emojis) if sprite missing Image
Type - talkinghead (extras)
Custom Expressions Can be set manually or with an /emote slash command.
[ No custom expressions ]
Open a chat to see the character expressions.
You are in offline mode. Click on the image below to set the expression.
Sprite Folder Override Use a forward slash to specify a subfolder. Example:
Bob/formal



SPRITE SET: 


Upload sprite pack (ZIP)
Remove all image overrides

Hint: Create new folder in the public/characters/ folder and name it as the name
of the character. Put images with expressions there. File names should follow
the pattern: [expression_label].[image_format]


Download Extensions & Assets

Assets URL


Image Generation ?

Edit prompts before generation Interactive mode Use multimodal captioning for
portraits Auto-enhance prompts Snap auto-adjusted resolutions Source Extras API
(local / remote) Stable Horde Stable Diffusion Web UI (AUTOMATIC1111) SD.Next
(vladmandic) NovelAI Diffusion OpenAI (DALL-E) ComfyUI TogetherAI
SD Web UI URL
Connect
Authentication (optional) Important: run SD Web UI with the --api flag! The
server must be accessible from the SillyTavern host machine.
SD.Next API URL
Connect
Authentication (optional) The server must be accessible from the SillyTavern
host machine.
Hint: Save an API key in Horde KoboldAI API settings to use it here. Allow NSFW
images from Horde Sanitize prompts (recommended) Karras (not all samplers
supported)
Avoid spending Anlas (Opus tier)
View my Anlas
Hint: Save an API key in the NovelAI API settings to use it here.
These settings only apply to DALL-E 3
Image Style Vivid Natural Image Quality Standard HD
ComfyUI URL
Connect

Important: The server must be accessible from the SillyTavern host machine.

ComfyUI Workflow
Default_Comfy_Workflow.json



CFG Scale (7.0) Sampling steps (20) Width (512) Height (512) Model Sampling
method Resolution 512x512 (1:1, icons, profile pictures)600x600 (1:1, icons,
profile pictures)512x768 (2:3, vertical character card)768x512 (3:2, horizontal
35-mm movie film)960x540 (16:9, horizontal wallpaper)540x960 (9:16, vertical
wallpaper)1920x1088 (16:9, 1080p, horizontal wallpaper)1088x1920 (9:16, 1080p,
vertical wallpaper)1280x720 (16:9, 720p, horizontal wallpaper)720x1280 (9:16,
720p, vertical wallpaper)1024x1024 (1:1, SDXL)1152x896 (9:7, SDXL)896x1152 (7:9,
SDXL)1216x832 (19:13, SDXL)832x1216 (13:19, SDXL)1344x768 (4:3, SDXL)768x1344
(3:4, SDXL)1536x640 (24:10, SDXL)640x1536 (10:24, SDXL)
Scheduler N/A
VAE N/A
Restore Faces Hires. Fix
Upscaler Upscale by (2.0) Denoising strength (0.70) Hires steps (2nd pass) (0)
Upscale by (1.0)

--------------------------------------------------------------------------------

STYLE

Default

Common prompt prefix Negative prompt
Character-specific prompt prefix Won't be used in groups. Character-specific
negative prompt prefix Won't be used in groups.
Image Prompt Templates

Character ("Yourself")
User ("Me")
Scenario ("The Whole Story")
Raw Last Message
Last Message
Portrait ("Your Face")
Background
Character (Multimodal Mode)
User (Multimodal Mode)
Portrait (Multimodal Mode)
TTS


Select TTS Provider

ElevenLabsSileroXTTSv2SystemCoquiEdgeNovelOpenAIAllTalkSpeechT5
Enabled Narrate user messages Auto Generation Only narrate "quotes" Ignore
*text, even "quotes", inside asterisks* Narrate only the translated text Skip
codeblocks Pass Asterisks to TTS Engine


--------------------------------------------------------------------------------

Uses the voices provided by your operating system

Rate: 1 Pitch: 1

Chat Translation

Auto-mode None Translate responses Translate inputs Translate both Provider
Libre Google Lingva DeepL DeepLX Bing OneRingTranslator


Target Language
AfrikaansAlbanianAmharicArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChinese
(Simplified)Chinese
(Traditional)CorsicanCroatianCzechDanishDutchEnglishEsperantoEstonianFinnishFrenchFrisianGalicianGeorgianGermanGreekGujaratiHaitian
CreoleHausaHawaiianHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanKurdishKyrgyzLaoLatinLatvianLithuanianLuxembourgishMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar
(Burmese)NepaliNorwegianNyanja (Chichewa)PashtoPersianPolishPortuguese
(Portugal, Brazil)PunjabiRomanianRussianSamoanScots
GaelicSerbianSesothoShonaSindhiSinhala
(Sinhalese)SlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTagalog
(Filipino)TajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshXhosaYiddishYorubaZulu
Clear Translations
Summarize

Summarize with: Main API Extras API

Current summary:
Restore Previous
Summarize now
Pause No WI/AN
Summary Settings
Insertion Template
Injection Position
Before Main Prompt / Story String After Main Prompt / Story String In-chat @
Depth

Summary Prompt Summary length (200 words) Update every 10 messages 0 = disable
Update every 0 words 0 = disable If both sliders are non-zero, then both will
trigger summary updates a their respective intervals.
Vector Storage

Vectorization Source Local (Transformers) Extras OpenAI Google MakerSuite (PaLM)
MistralAI
Query messages
Include in World Info Scanning

--------------------------------------------------------------------------------

FILE VECTORIZATION SETTINGS

Enabled for files
Size threshold (KB)
Chunk size (chars)
Retrieve chunks

--------------------------------------------------------------------------------

CHAT VECTORIZATION SETTINGS

Enabled for chat messages
Insertion Template Injection Position
Before Main Prompt / Story String After Main Prompt / Story String In-chat @
Depth
Chunk size (chars)
Retain#
Insert#
Old messages are vectorized gradually as you chat. To process all previous
messages, click the button below.
Vectorize All
Purge Vectors
View Stats
Processed 0% of messages. ETA: ... seconds.
Regex

Open Editor
Import Script

--------------------------------------------------------------------------------

Saved Scripts

Image Captioning

Source Local Multimodal (OpenAI / llama / Google) Extras Horde
API llama.cpp Text Generation WebUI (oobabooga) Ollama OpenAI OpenRouter Google
MakerSuite Custom (OpenAI-compatible)
Model gpt-4-vision-preview gemini-pro-vision openai/gpt-4-vision-preview
haotian-liu/llava-13b [Currently selected] bakllava:latest llava:latest
[Currently loaded] [Currently loaded] [Currently selected]
Allow reverse proxy
Hint: Set your API keys and endpoints in the 'API Connections' tab first.
Caption Prompt What’s in this image? Ask every time
Message Template (use {{caption}} macro) [{{user}} sends {{char}} a picture that
contains: {{caption}}] Edit captions before saving
Quick Reply

Enable Quick Replies Combine buttons from all active sets

--------------------------------------------------------------------------------

Global Quick Reply Sets

☰
DefaultButtons



--------------------------------------------------------------------------------

Chat Quick Reply Sets


No active chat.

--------------------------------------------------------------------------------

Edit Quick Replies
Default




Disable send (insert into input field) Place quick reply before input Inject
user input automatically (if disabled, use {{input}} macro for manual injection)
☰

⁝

☰

⁝

☰

⁝



--------------------------------------------------------------------------------

EXTRAS API: SILLYTAVERN-EXTRAS

Not connected...
Auto-connect
Connect


PERSONA MANAGEMENT

Usage Stats
Backup
Restore
Create
A-Z Z-A
1-1 of 1
 * <
 * >

5 / page10 / page25 / page50 / page100 / page250 / page500 / page1000 / page
User

[{{user}} is a handsome stranger in his 30's]


NAME



PERSONA DESCRIPTION

Tokens: 20
Position: In Story String / Prompt Manager Top of Author's Note Bottom of
Author's Note
Show notifications on switching personas
Favorite characters to add them to HotSwaps

--------------------------------------------------------------------------------

Calculating... Tokens
( Permanent)
Tokens: counting...

More... Link to World Info Import Card Lore Scenario Override Convert to Persona
Rename Show Gallery


--------------------------------------------------------------------------------

Description
Tokens: counting...
First message
Alt. Greetings
Tokens: counting...
Creator's Notes


--------------------------------------------------------------------------------



Group Controls

Group reply strategy
Natural order List order
Group generation handling mode
Swap character cards Join character cards (exclude muted) Join character cards
(include muted)
Allow self responses Auto Mode Hide Muted Member Sprites
Current Members


Add Members

ST Default




A-Z Z-A Newest Oldest Favorites Recent Most chats Least chats Most tokens Least
tokens Random
ST Default

--------------------------------------------------------------------------------

1-3 of 3
 * <
 * >

10 / page25 / page50 / page100 / page250 / page500 / page1000 / page
Coding Sensei v1.010101
Coding assistance (use GPT). Can be used for any code language, not just
Javascript. Also for any other tech related questions.
ST Default
Ruby main
Port of https://aetherroom.club/895. Art by Toi (Number 8).

Seraphina 1.0.0
ST Default Bot contest winner: roleplay bots category
ST Default


TEXT

Delete
Cancel




- Advanced Definitions

--------------------------------------------------------------------------------



PROMPT OVERRIDES (FOR OPENAI/CLAUDE/SCALE APIS, WINDOW/OPENROUTER, AND INSTRUCT
MODE)


Insert {{original}} into either box to include the respective default prompt
from system settings.

MAIN PROMPT

Tokens: counting...

JAILBREAK

Tokens: counting...

--------------------------------------------------------------------------------

CREATOR'S METADATA (NOT SENT WITH THE AI PROMPT)


Everything here is optional

CREATED BY

CHARACTER VERSION

CREATOR'S NOTES

TAGS TO EMBED

--------------------------------------------------------------------------------

PERSONALITY SUMMARY

Tokens: counting...

SCENARIO

Tokens: counting...

CHARACTER'S NOTE

@ DEPTH

Tokens: counting...

TALKATIVENESS

HOW OFTEN THE CHARACTER SPEAKS IN  GROUP CHATS!

Shy Normal Chatty

--------------------------------------------------------------------------------

EXAMPLES OF DIALOGUE

IMPORTANT TO SET THE CHARACTER'S WRITING STYLE.

Tokens: counting...
Save
Chat History
New Chat
Import Chat






CHAT SCENARIO OVERRIDE


Unique to this chat. All group members will use the following scenario text
instead of what is specified in their character cards. The following scenario
text will be used instead of the value set in the character card. Checkpoints
inherit the scenario override from their parent, and can be changed individually
after that.


CHAT LOREBOOK FOR

A selected World Info will be bound to this chat. When generating an AI reply,
it will be combined with the entries from global and character lorebooks.
--- None ---


SELECT A WORLD INFO FILE FOR :

PRIMARY LOREBOOK

A selected World Info will be bound to this character as its own Lorebook. When
generating an AI reply, it will be combined with the entries from a global World
Info selector. Exporting a character would also export the selected Lorebook
file embedded in the JSON data.
--- None ---

ADDITIONAL LOREBOOKS

Associate one or more auxillary Lorebooks with this character.
NOTE: These choices are optional and won't be preserved on character export!
-- World Info not found --

 entries

☰

🔵 🟢 ❌
Position: ↑Char ↓Char ↑AN ↓AN @D
Depth:
Order:
Trigger %:
Comma separated (required) Primary Keywords
Logic AND ANY AND ALL NOT ALL NOT ANY
(ignored if empty) Optional Filter

Scan Depth
Case-Sensitive Use global setting Yes No
Match Whole Words Use global setting Yes No
Automation ID
Content (Tokens:  counting...) 
Non-recursable (this entry will not be activated by another) Prevent further
recursion (this entry will not activate others)
What this keyword should mean to the AI, sent verbatim

Filter to Character(s) Character Exclusion
-- Characters not found --
Inclusion Group
Selective Use Probability Add Memo






INSPECT

Prompt List
The list of prompts associated with this marker.



EDIT

Name
A name for this prompt.
Role
To whom this message will be attributed.
System User AI Assistant
Position
Injection position. Next to other prompts (relative) or in-chat (absolute).
Relative Absolute
Depth
Injection depth. 0 = after the last message, 1 = before the last message, etc.
Prompt
The prompt to be sent.

${characterName}









WELCOME TO SILLYTAVERN!

 * Read the Official Documentation.
 * Type /help in chat for commands and macros.
 * Join the Discord server for info and announcements.

SillyTavern is aimed at advanced users.
If you're new to this, enable the simplified UI mode below.
Enable simple UI mode
Before you get started, you must select a user name. This can be changed at any
time via the icon.

USER NAME:



character card(s)
Go back



ALTERNATE GREETINGS


These will be displayed as swipes on the first message when starting a new chat.
Group members can select one of them to initiate the conversation.

--------------------------------------------------------------------------------

Click the button to get started!
Alternate Greeting #

CHAR is typing

Author's Note

Unique to this chat.
Checkpoints inherit the Note from their parent, and can be changed individually
after that.

Tokens: 0
Include in World Info Scanning
Before Main Prompt / Story String After Main Prompt / Story String In-chat @
Depth
Insertion Frequency (0 = Disable, 1 = Always)
User inputs until next insertion: (disabled)

--------------------------------------------------------------------------------

Character Author's Note (Private) Won't be shared with the character card on
export.

Will be automatically added as the author's note for this character. Will be
used in groups, but can't be modified when a group chat is open.
Tokens: 0
Use character author's note
Replace Author's Note Top of Author's Note Bottom of Author's Note

--------------------------------------------------------------------------------

Default Author's Note

Will be automatically added as the Author's Note for all new chats.
Tokens: 0
After Main Prompt / Story String In-chat @ Depth
Insertion Frequency (0 = Disable, 1 = Always)
Chat CFG

Unique to this chat.
Scale 1 = disabled

Negative Prompt Positive Prompt
Use character CFG scales

--------------------------------------------------------------------------------

Character CFG

Will be automatically added as the CFG for this character.
Scale 1 = disabled

Negative Prompt Positive Prompt

--------------------------------------------------------------------------------

Global CFG

Will be used as the default CFG options for every chat unless overridden.
Scale 1 = disabled

Negative Prompt Positive Prompt

--------------------------------------------------------------------------------

CFG Prompt Cascading

Combine positive/negative prompts from other boxes.
For example, ticking the chat, global, and character boxes combine all negative
prompts into a comma-separated string.

Always Include Chat Negatives Character Negatives Global Negatives
Custom Separator: Insertion Depth:
Token Probabilities

Select a token to see alternatives considered by the AI.

--------------------------------------------------------------------------------



#0



SillyTavern System March 13, 2024 10:41 PM





SILLYTAVERN 1.11.5 'RELEASE' (68C1AB9F)






Want to update?



--------------------------------------------------------------------------------



HOW TO START CHATTING?


    
    
 1. Click and select a Chat API.
    
    
 2. Click and pick a character
    
    


--------------------------------------------------------------------------------



CONFUSED OR LOST?


   
   
 * 
   - click these icons!
   
   
   
 * 
   Enter /? in the chat bar
   
   
   
 * 
   
   SillyTavern Documentation Site
   
   
   
   
 * 
   
   Extras Installation Guide
   
   
   
   



--------------------------------------------------------------------------------



STILL HAVE QUESTIONS?


   
   
 * 
   
   Join the SillyTavern Discord
   
   
   
   
 * 
   
   Post a GitHub issue
   
   
   
   
 * 
   
   Contact the developers
   
   
   
   





Delete
Cancel
File Name File Size


Close chat Toggle Panels Author's Note CFG Scale Token Probabilities Back to
parent chat Save checkpoint Convert to group

--------------------------------------------------------------------------------

Start new chat Close chat Manage chat files

--------------------------------------------------------------------------------

Delete messages Regenerate Impersonate Continue
PNG
JSON





TTS Playback

Attach a File

Generate Caption


Generate Image

Token Counter

Translate Chat












   Send me a picture of:
 * Yourself
 * Your Face
 * Me
 * The Whole Story
 * The Last Message
 * Raw Last Message
 * Background