Merge branch 'staging' into pm-l10n

This commit is contained in:
Cohee 2024-05-21 20:56:26 +03:00
commit f56fecaa26
7 changed files with 350 additions and 227 deletions

38
.github/readme.md vendored
View File

@ -196,6 +196,43 @@ For MacOS / Linux all of these will be done in a Terminal.
5. Start the install launcher with: `chmod +x install.sh && ./install.sh` and choose what you wanna install
6. After installation start the launcher with: `chmod +x launcher.sh && ./launcher.sh`
## 🐋 Installing via Docker
These instructions assume you have installed Docker, are able to access your command line for the installation of containers, and familiar with their general operation.
### Building the image yourself
We have a comprehensive guide on using SillyTavern in Docker [here](http://docs.sillytavern.app/installation/docker/) which covers installations on Windows, macOS and Linux! Give it a read if you wish to build the image yourself.
### Using the GitHub Container Registry (easiest)
You will need two mandatory directory mappings and a port mapping to allow SillyTavern to function. In the command, replace your selections in the following places:
#### Container Variables
##### Volume Mappings
- [config] - The directory where SillyTavern configuration files will be stored on your host machine
- [data] - The directory where SillyTavern user data (including characters) will be stored on your host machine
- [plugins] - (optional) The directory where SillyTavern server plugins will be stored on your host machine
##### Port Mappings
- [PublicPort] - The port to expose the traffic on. This is mandatory, as you will be accessing the instance from outside of its virtual machine container. DO NOT expose this to the internet without implementing a separate service for security.
##### Additional Settings
- [TimeZone] - The timezone your instance should use. This is useful for making logs match your local time for easier troubleshooting. Use your TZ Identifier. (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)
- [DockerNet] - The docker network that the container should be created with a connection to. If you don't know what it is, see the [official Docker documentation](https://docs.docker.com/reference/cli/docker/network/).
- [version] - On the right-hand side of this GitHub page, you'll see "Packages". Select the "sillytavern" package and you'll see the image versions. The image tag "latest" will keep you up-to-date with the current release. You can also utilize "staging" and "release" tags that point to the nightly images of the respective branches, but this may not be appropriate, if you are utilizing extensions that could be broken, and may need time to update.
#### Install command
1. Open your Command Line
2. Run the following command `docker create --name='sillytavern' --net='[DockerNet]' -e TZ="[TimeZone]" -p '8000:8000/tcp' -v '[plugins]':'/home/node/app/plugins':'rw' -v '[config]':'/home/node/app/config':'rw' -v '[data]':'/home/node/app/data':'rw' 'ghcr.io/sillytavern/sillytavern:[version]' `
> Note that 8000 is a default listening port. Don't forget to use an appropriate port if you change it in the config.
## 📱 Mobile - Installing via termux
> \[!NOTE]
@ -347,6 +384,7 @@ GNU Affero General Public License for more details.**
* Korean translation by @doloroushyeonse
* k_euler_a support for Horde by <https://github.com/Teashrock>
* Chinese translation by [@XXpE3](https://github.com/XXpE3), 中文 ISSUES 可以联系 @XXpE3
* Docker guide by [@mrguymiah](https://github.com/mrguymiah) and [@Bronya-Rand](https://github.com/Bronya-Rand)
<!-- LINK GROUP -->
[back-to-top]: https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square

View File

@ -10,4 +10,5 @@ services:
volumes:
- "./config:/home/node/app/config"
- "./data:/home/node/app/data"
- "./plugins:/home/node/app/plugins"
restart: unless-stopped

View File

@ -1,4 +1,14 @@
{
"sd_prompt_0": "角色(你自己)",
"sd_prompt_1": "使用者(我)",
"sd_prompt_2": "情境(整篇故事)",
"sd_prompt_3": "原始最後訊息",
"sd_prompt_4": "最後訊息",
"sd_prompt_5": "肖像(你的臉)",
"sd_prompt_7": "背景",
"sd_prompt_8": "角色(多模態模型)",
"sd_prompt_9": "使用者(多模態模型)",
"sd_prompt_10": "肖像(多模態模型)",
" messages": " 訊息",
" words": " 文字",
"# Messages to Load": "個要載入的訊息數量",
@ -9,20 +19,20 @@
"(0 = disabled)": "(0 = 停用)",
"(0 = unlimited)": "(0 = 無限制)",
"(0 = unlimited, use budget)": "(0 = 無限制, 使用預算)",
"(A brief description of the personality)": "(個性的簡短描述)",
"(Botmaker's name / Contact Info)": "(機器人製作者的名字 / 聯繫資訊)",
"(Circumstances and context of the interaction)": "(互動的情況和上下文)",
"(Describe the bot, give use tips, or list the chat models it has been tested on. This will be displayed in the character list.)": "描述機器人,提供使用技巧,或列出已測試的聊天模型。這將顯示在角色列表中。",
"(Examples of chat dialog. Begin each example with START on a new line.)": "聊天對話範例。每個範例以新的行並以「START」開始。",
"(A brief description of the personality)": "(個性的簡短描述)",
"(Botmaker's name / Contact Info)": "(機器人製作者的名字 / 聯繫資訊)",
"(Circumstances and context of the interaction)": "(互動的情況和上下文)",
"(Describe the bot, give use tips, or list the chat models it has been tested on. This will be displayed in the character list.)": "(描述機器人,提供使用技巧,或列出已測試的聊天模型。這將顯示在角色列表中。)",
"(Examples of chat dialog. Begin each example with START on a new line.)": "(聊天對話範例。每個範例以新的行並以「START」開始。)",
"(For Chat Completion and Instruct Mode)": "(用於聊天補充和指令模式)",
"(Gemini 1.5 Pro/Flash only)": "(僅限於 Gemini 1.5 Pro/Flash)",
"(If you want to track character versions)": "(如果您想追蹤角色版本)",
"(If you want to track character versions)": "(如果您想追蹤角色版本)",
"(ignored if empty)": "(如果為空則忽略)",
"(Not sent with the AI Prompt)": "(不與 AI 提示一起發送)",
"(Not sent with the AI Prompt)": "(不與 AI 提示一起發送)",
"(Saved to Context Template)": "(已儲存到上下文範本)",
"(Text to be inserted in-chat @ designated depth and role)": "(要在聊天中插入的文字 @ 指定深度和角色)",
"(This will be the first message from the character that starts every chat)": "(這將是每次聊天開始時角色發送的第一條訊息)",
"(Write a comma-separated list of tags)": "(使用逗號分隔每個標籤)",
"(This will be the first message from the character that starts every chat)": "(這將是每次聊天開始時角色發送的第一條訊息)",
"(Write a comma-separated list of tags)": "(使用逗號分隔每個標籤)",
"-- Characters not found --": "-- 未找到角色 --",
"-- Connect to the API --": "-- 連線到 API --",
"-- Horde models not loaded --": "-- Horde 模型未載入 --",
@ -49,7 +59,7 @@
"Add Members": "新增成員",
"Add Memo": "新增備忘錄",
"Add text here that would make the AI generate things you don't want in your outputs.": "在這裡新增文字,使 AI 生成您不希望在輸出中出現的內容。",
"Add the bos_token to the beginning of prompts. Disabling this can make the replies more creative": "在提示的開頭新增 bos_token。停用此功能可以使回應更具創造性",
"Add the bos_token to the beginning of prompts. Disabling this can make the replies more creative": "在提示的開頭新增 bos_token。停用此功能可以使回應更具創造性",
"Add to Favorites": "新增至我的最愛",
"Add to group": "新增到群組",
"Add": "新增",
@ -66,12 +76,11 @@
"After AN": "作者備註之後",
"After Char Defs": "角色定義之後",
"After EM": "範例訊息之後",
"After Main Prompt / Story String": "主要提示 / 故事字串之後",
"After Main Prompt / Story String": "主要提示 / 故事字串之後",
"Aggressive": "積極",
"AI Configuration panel will stay open": "AI 設定面板將保持開啟",
"AI Message Blur Tint": "AI 訊息模糊色調",
"AI Module": "AI 模組",
"AI Output": "AI 輸出",
"AI reply prefix": "AI 回覆前綴",
"AI Response Configuration": "AI 回應配置",
"AI Response Formatting": "AI 回應格式化",
@ -95,13 +104,13 @@
"Alphabetically": "按字母順序",
"Also wipe user data.": "同時清除使用者資料。",
"Alt Method": "替代方法",
"Alt. Greetings": "額外問候訊息",
"Alternate Greetings Hint": "額外問候訊息建議",
"Alternate Greetings Subtitle": "額外問候訊息副標題",
"Alternate Greetings": "額外問候訊息",
"Alternative server URL (leave empty to use the default value).": "替代伺服器 URL(留空以使用預設值)。",
"Alternative UI for numeric sampling parameters with fewer steps": "數值樣參數的替代 UI步驟更少",
"Always add character's name to prompt": "總是將角色名稱新增到提示中",
"Alt. Greetings": "額外問候",
"Alternate Greetings Hint": "額外問候語的提示訊息",
"Alternate Greetings Subtitle": "額外問候語的副標題",
"Alternate Greetings": "額外問候",
"Alternative server URL (leave empty to use the default value).": "替代伺服器 URL(留空以使用預設值)。",
"Alternative UI for numeric sampling parameters with fewer steps": "數值樣參數的替代 UI步驟更少",
"Always add character's name to prompt": "總是將角色名稱新增到提示中",
"Always allowed": "總是允許",
"Always forbidden": "總是禁止",
"Always include examples": "總是包含範例",
@ -113,12 +122,12 @@
"and pick a character.": "並選擇一個角色。",
"and select a": "並選擇一個",
"Anthropic's developer console": "Anthropic 的開發者控制台",
"Any contents here will replace the default Jailbreak Prompt used for this character. (v2 spec: post_history_instructions)": "此處的任何內容將取代此角色使用的預設越獄提示v2 規範post_history_instructions",
"Any contents here will replace the default Main Prompt used for this character. (v2 spec: system_prompt)": "此處的任何內容將取代此角色使用的預設主要提示v2 規範system_prompt",
"Any contents here will replace the default Jailbreak Prompt used for this character. (v2 spec: post_history_instructions)": "此處的任何內容將取代此角色使用的預設越獄提示詞。(v2 規範post_history_instructions)",
"Any contents here will replace the default Main Prompt used for this character. (v2 spec: system_prompt)": "此處的任何內容將取代此角色使用的預設主要提示詞。(v2 規範system_prompt)",
"Aphrodite API key": "Aphrodite API 金鑰",
"Aphrodite Model": "Aphrodite 模型",
"API Connections": "API 連線",
"API key (optional)": "API 金鑰(可選)",
"API key (optional)": "API 金鑰(可選)",
"API key": "API 金鑰",
"API Type": "API 類型",
"API url": "API URL",
@ -139,6 +148,7 @@
"at Depth User": "@D 👤 在使用者深度",
"at the end!": "在最後!",
"Attach a File": "附加檔案",
"Authentication (optional)": "授權驗證(選填)",
"Author's Note": "作者備註",
"Auto Mode": "自動模式",
"Auto-connect to Last Server": "自動連線到上次伺服器",
@ -157,7 +167,8 @@
"AutoComplete Settings": "自動完成設定",
"Autocomplete Style": "自動完成樣式",
"Autocomplete Width": "自動完成寬度",
"Automatic (PC)": "自動PC",
"Automatic (PC)": "自動(PC)",
"Automatically adjust generation parameters to ensure free image generations.": "自動調整生成參數以確保生成免費的圖片。",
"Automatically hide details": "自動隱藏詳細資訊",
"Automatically reject and re-generate AI message based on configurable criteria": "根據可配置標準自動拒絕並重新生成 AI 訊息",
"Automatically select a background based on the chat context": "根據聊天上下文自動選擇背景",
@ -167,7 +178,7 @@
"Avatar Style": "頭像樣式",
"Avoid cropping and resizing imported character images. When off, crop/resize to 512x768": "避免裁剪和調整匯入的角色圖像大小。未勾選時將會裁剪/調整大小到 512x768",
"Avoid sending sensitive information to the Horde.": "避免發送敏感資訊到 Horde。",
"Avoid spending Anlas": "避免花費 Anlas",
"Avoid spending Anlas": "避免消耗 Anlas 點數",
"Back to parent chat": "返回上層聊天",
"Background Sound Only": "僅背景音效",
"Backup your personas to a file": "將您的玩家角色備份到檔案中",
@ -179,8 +190,7 @@
"Before AN": "作者備註之前",
"Before Char Defs": "角色定義之前",
"Before EM": "範例訊息之前",
"Before Main Prompt / Story String": "主要提示 / 故事字串之前",
"Before Main Prompt / Story String": "在主要提示/故事字串之前",
"Before Main Prompt / Story String": "在主要提示詞 / 故事字串之前",
"Before you get started, you must select a persona name.": "在開始之前,您必須選擇一個玩家角色名稱",
"Bind to Context": "附加到上下文",
"Bind user name to that avatar": "將使用者名稱附加到該頭像",
@ -201,7 +211,7 @@
"Cancel": "取消",
"Case Sensitive": "區分大小寫",
"Case-Sensitive": "區分大小寫",
"CFG Prompt Cascading": "CFG 提示級聯",
"CFG Prompt Cascading": "CFG 提示級聯",
"CFG Scale": "CFG 比例",
"CFG": "CFG",
"Change Background Image": "更換背景圖片",
@ -211,19 +221,21 @@
"Changes the style of the generated text.": "變更生成文字的風格。",
"Char List Subheader": "角色列表子標題",
"Character Attachments": "角色附件",
"Character Author's Note (Private)": "角色作者備註(私人)",
"Character Author's Note (Private)": "角色作者備註(私人)",
"Character CFG": "角色 CFG",
"Character Description": "角色描述",
"Character Exclusion": "角色排除",
"Character Handling": "角色處理",
"Character Lore First": "角色知識書優先",
"Character Lore Insertion Strategy": "角色知識書插入策略",
"Character Lore": "[title]角色知識書",
"Character Lore": "角色知識書",
"Character Management": "角色管理",
"Character Names Behavior": "角色名稱行為",
"Character Negatives": "角色負面提示",
"Character Negatives": "角色負面提示",
"Character Version": "角色版本",
"Character's Note": "角色筆記",
"Character-specific negative prompt prefix": "角色特定負面提示詞前綴",
"Character-specific prompt prefix": "角色特定提示詞前綴",
"Characters Hotswap": "角色快速選擇",
"Characters sorting order": "角色排序依據",
"Chat API": "聊天 API",
@ -233,27 +245,27 @@
"Chat CFG": "聊天 CFG",
"Chat Completion Source": "聊天補充來源",
"Chat Completion": "聊天補充",
"Chat history won't change, only the prompt as the request is sent (on generation).": "聊天歷史不會改變,只有在發送請求時提示會改變(生成時)。",
"Chat history won't change, only the prompt as the request is sent (on generation).": "聊天歷史不會改變,只有在發送請求時提示詞會改變(生成時)。",
"Chat History": "聊天紀錄",
"Chat Lore": "聊天知識",
"Chat Lorebook for": "聊天知識書",
"Chat Lorebook": "聊天知識書",
"Chat Messages Wrapping": "聊天訊息換行",
"Chat Name (Optional)": "聊天名稱(選填)",
"Chat Negatives": "聊天負面提示",
"Chat Name (Optional)": "聊天名稱(選填)",
"Chat Negatives": "聊天負面提示",
"Chat Scenario Override": "聊天情境覆寫",
"Chat Start": "聊天開始符號",
"Chat Style:": "對話框樣式:",
"Chat Timestamps": "對話框時間戳記",
"Chat Truncation": "聊天截斷長度",
"Chat Width (PC)": "對話框寬度PC",
"Chat Width (PC)": "對話框寬度(PC)",
"Chat Width": "對話框寬度",
"Chat/Message Handling": "聊天/訊息處理",
"Chatty": "健談",
"Checkpoints inherit the Note from their parent, and can be changed individually after that.": "檢查點繼承其上級的註釋,之後可以單獨更改",
"Circle": "圓形",
"Classic, blocking": "經典,阻塞",
"Classifier Free Guidance. More helpful tip coming soon": "無分類器導引。更多有用提示即將推出",
"Classifier Free Guidance. More helpful tip coming soon": "無分類器導引。更多有用提示即將推出",
"Claude Model": "Claude 模型",
"Clear your API key": "清除您的 API 金鑰",
"Clear your cookie": "清除您的 Cookie",
@ -275,12 +287,13 @@
"Cohere API Key": "Cohere API 金鑰",
"Cohere Model": "Cohere 模型",
"Collapse Consecutive Newlines": "折疊連續的換行符號",
"Combine positive/negative prompts from other boxes.": "結合其他文字方塊中的正/負提示",
"Combines consecutive system messages into one (excluding example dialogues). May improve coherence for some models.": "將連續的系統訊息合併為一個(不包括範例對話)。可能會提高某些模型的一致性。",
"Comma separated (required)": "逗號分隔(必填)",
"Comma separated list (ignored if empty)": "逗號分隔列表(如果為空則忽略)",
"Combine positive/negative prompts from other boxes.": "結合其他文字方塊中的正/負提示",
"Combines consecutive system messages into one (excluding example dialogues). May improve coherence for some models.": "將連續的系統訊息合併為一個(不包括範例對話)。可能會提高某些模型的一致性。",
"Comma separated (required)": "逗號分隔(必填)",
"Comma separated list (ignored if empty)": "逗號分隔列表(如果為空則忽略)",
"Comma separated list": "逗號分隔列表",
"Compact Input Area (Mobile)": "緊湊的輸入區域(行動版)",
"Common prompt prefix": "通用提示詞前綴",
"Compact Input Area (Mobile)": "緊湊的輸入區域(行動版)",
"Completion": "補充",
"Confirm message deletion": "確認刪除訊息",
"Confirm New Password:": "確認新密碼:",
@ -296,11 +309,11 @@
"Context %": "上下文百分比",
"Context Formatting": "上下文格式",
"Context Order": "上下文順序",
"Context Size (tokens)": "上下文大小(符記數)",
"Context Size (tokens)": "上下文大小(符記數)",
"Context Size": "上下文大小",
"context size(tokens)": "上下文大小(符記數)",
"context size(tokens)": "上下文大小(符記數)",
"Context Template": "上下文範本",
"Continue nudge": "繼續輔助提示",
"Continue nudge": "繼續輔助提示",
"Continue Postfix": "繼續後綴",
"Continue prefill": "繼續預先填充",
"Continue script execution": "繼續腳本執行",
@ -319,10 +332,11 @@
"Create checkpoint": "建立檢查點",
"Create New Character": "建立新角色",
"Create New Chat Group": "建立新聊天群組",
"Create new workflow": "建立新的 workflow",
"Create": "建立",
"Created by": "建立者",
"Created:": "建立於:",
"Creator's Metadata (Not sent with the AI prompt)": "建立者的中繼資料(不會與 AI 提示一起發送)",
"Creator's Metadata (Not sent with the AI prompt)": "建立者的中繼資料(不會與 AI 提示詞一起發送)",
"Creator's Metadata": "建立者的中繼資料",
"Creator's Notes": "建立者備註",
"Current Members": "目前成員",
@ -330,21 +344,21 @@
"Current summary:": "目前摘要:",
"Custom API Key": "自訂 API 金鑰",
"Custom CSS": "自訂 CSS",
"Custom Endpoint (Base URL)": "自訂端點Base URL",
"Custom model (optional)": "自訂模型(選填)",
"Custom Endpoint (Base URL)": "自訂端點(Base URL)",
"Custom model (optional)": "自訂模型(選填)",
"Custom Separator:": "自訂分隔符:",
"Custom Stopping Strings": "自訂停止字串",
"Custom": "自訂",
"Dark": "深色",
"Data Bank": "資料儲藏庫",
"Date (Newest First)": "日期(最新優先)",
"Date (Oldest First)": "日期(最舊優先)",
"Date (Newest First)": "日期(最新優先)",
"Date (Oldest First)": "日期(最舊優先)",
"Debug Menu": "偵錯選單",
"Debug Warning": "偵錯警告",
"Default (completions compatible)": "預設(相容補充)",
"Default (completions compatible)": "預設(相容補充)",
"Default Author's Note": "預設作者註釋",
"Default": "預設",
"Delay until recursion (this entry can only be activated on recursive checking)": "延遲遞迴(此條目只能在遞迴檢查時啟用)",
"Delay until recursion (this entry can only be activated on recursive checking)": "延遲遞迴(此條目只能在遞迴檢查時啟用)",
"Delete a theme": "刪除主題",
"Delete Character": "刪除角色",
"Delete chat file": "刪除聊天檔案",
@ -355,10 +369,12 @@
"Delete tag": "刪除標籤",
"Delete the preset": "刪除預設",
"Delete this message": "刪除此訊息",
"Delete workflow": "刪除 workflow",
"Delete world info entry": "刪除世界資訊物件",
"Delete World Info": "刪除世界資訊",
"Delete": "刪除",
"Deleting:": "刪除中:",
"Denoising strength": "重繪幅度",
"Depth ↗": "深度 ↗",
"Depth ↘": "深度 ↘",
"Depth:": "深度:",
@ -369,9 +385,9 @@
"Disallow embedded media from other domains in chat messages": "禁止在聊天訊息中嵌入來自其他域的媒體",
"Display Name:": "顯示名稱:",
"Display the response bit by bit as it is generated.": "生成時逐位顯示回應。",
"Do Sample": "進行樣",
"Do Sample": "進行樣",
"Document": "文件",
"Documentation on sampling parameters": "樣參數文檔",
"Documentation on sampling parameters": "樣參數文檔",
"Don't add character names.": "不要新增角色名稱",
"Don't forget to save a snapshot of your settings before proceeding.": "在繼續之前,請不要忘記儲存您的設定快照。",
"Don't include the page name!": "不要包括頁面名稱!",
@ -387,12 +403,13 @@
"Duplicate world info entry": "複製世界資訊物件",
"Duplicate World Info": "複製世界資訊",
"Duplicate": "複製",
"DYN": "動態",
"DYN variants of SMEA samplers often lead to more varied output, but may fail at very high resolutions.": "SMEA 取樣器的 DYN 變體通常會產生更多樣化的輸出,但在非常高的解析度下可能會失敗。",
"DYN": "DYN",
"Dynamic Temperature": "動態溫度",
"DynaTemp": "動態溫度",
"Each article will be saved as a separate file.": "每篇文章將另存為一個檔案。",
"Early Stopping": "提前停止",
"Edit summarization prompt, insertion position, etc.": "編輯摘要提示、插入位置等。",
"Edit summarization prompt, insertion position, etc.": "編輯摘要提示、插入位置等。",
"Edit": "編輯",
"Embed file or image": "嵌入檔案或圖片",
"Empty": "空",
@ -410,15 +427,15 @@
"Enter a URL or the ID of a Fandom wiki page to scrape:": "輸入 URL 或 Fandom 維基頁面的 ID 來抓取:",
"Enter a video URL to download its transcript.": "輸入影片 URL 來下載其文字記錄。",
"Enter it in the box below": "請在下面的框中輸入",
"Enter web URLs to scrape (one per line):": "輸入要抓取的網頁 URL(每行一個)",
"Enter web URLs to scrape (one per line):": "輸入要抓取的網頁 URL(每行一個)",
"Enter your name": "輸入您的名字",
"Enter": "輸入",
"Entirely unrestrict all numeric sampling parameters": "完全解除所有數值樣參數的限制",
"Entirely unrestrict all numeric sampling parameters": "完全解除所有數值樣參數的限制",
"Entries can activate other entries by mentioning their keywords": "條目可以通過提及其關鍵字來啟用其他條目",
"Entry Title/Memo": "條目標題/備註",
"Epsilon cutoff sets a probability floor below which tokens are excluded from being sampled": "Epsilon 截斷設定排除符記的機率下限",
"Epsilon Cutoff": "Epsilon 截斷",
"Eta cutoff is the main parameter of the special Eta Sampling technique.": "Eta 截斷是特殊 Eta 取樣技術的主要參數。\n單位為 1e-4合理值為 3。\n設為 0 以停用。\n詳情請參見 Hewitt 等人2022撰寫的論文《Truncation Sampling as Language Model Desmoothing》。",
"Eta cutoff is the main parameter of the special Eta Sampling technique.": "Eta 截斷是特殊 Eta 取樣技術的主要參數。\n單位為 1e-4合理值為 3。\n設為 0 以停用。\n詳情請參見 Hewitt 等人(2022)撰寫的論文《Truncation Sampling as Language Model Desmoothing》。",
"Eta Cutoff": "Eta 截斷",
"Everything here is optional": "此處所有內容均為選填",
"Example Dialogues": "對話範例",
@ -431,12 +448,13 @@
"Example: 127.0.0.1:8080": "範例127.0.0.1:8080",
"Example: http://127.0.0.1:5000/api ": "範例http://127.0.0.1:5000/api ",
"Example: some text [42, 69, 1337]": "範例:一些文字 [42, 69, 1337]",
"Example: username:password": "範例:帳號:密碼",
"Example: [{{user}} is a 28-year-old Romanian cat girl.]": "範例:[{{user}} 是一個 28 歲的羅馬尼亞貓娘。]",
"Example:": "範例:",
"Examples of dialogue": "對話範例",
"Examples:": "範例:",
"Exclude from recursion": "從遞迴中排除",
"Exclude message from prompts": "從提示中排除訊息",
"Exclude message from prompts": "從提示中排除訊息",
"Execute": "執行",
"Experimental feature. May not work for all backends.": "實驗性功能。可能不適用於所有後端",
"Exponent": "指數",
@ -449,14 +467,25 @@
"Expression API": "表達 API",
"Ext. Media": "外部媒體權限",
"extension will appear here.": "擴充套件將會出現在這裡",
"Extension will build its own prompt using messages that were not summarized yet. Blocks the chat until the summary is generated.": "擴充套件將使用尚未總結的訊息來建立自己的提示。在生成摘要之前阻塞聊天。",
"Extension will build its own prompt using messages that were not summarized yet. Does not block the chat while the summary is being generated. Not all backends support this mode.": "擴充套件將使用尚未總結的訊息來建立自己的提示。在生成摘要時不阻塞聊天。並非所有後端都支援此模式。",
"Extension will use the regular main prompt builder and add the summary request to it as the last system message.": "擴充套件將使用一般的主要提示生成器,並將摘要請求新增為最後的系統訊息。",
"Extension will build its own prompt using messages that were not summarized yet. Blocks the chat until the summary is generated.": "擴充套件將使用尚未總結的訊息來建立自己的提示。在生成摘要之前阻塞聊天。",
"Extension will build its own prompt using messages that were not summarized yet. Does not block the chat while the summary is being generated. Not all backends support this mode.": "擴充套件將使用尚未總結的訊息來建立自己的提示。在生成摘要時不阻塞聊天。並非所有後端都支援此模式。",
"Extension will use the regular main prompt builder and add the summary request to it as the last system message.": "擴充套件將使用一般的主要提示生成器,並將摘要請求新增為最後的系統訊息。",
"Extensions": "擴充套件",
"Extras API key (optional)": "Extras API 金鑰(選填)",
"Extras API key (optional)": "Extras API 金鑰(選填)",
"Extras API URL": "Extras API URL",
"Extras API:": "Extras API",
"Extras Installation Guide": "Extras 安裝指南",
"ext_regex_affects": "影響對象",
"ext_regex_ai_output": "AI 輸出",
"ext_regex_desc": "正規表示式(Regex)是一種使用正規表示式尋找/取代字串的工具。如果您想了解更多,請點選標題旁邊的()",
"ext_regex_import_script": "匯入腳本",
"ext_regex_min_depth_placeholder": "無限制",
"ext_regex_open_editor": "打開編輯器",
"ext_regex_other_options": "其他選項",
"ext_regex_replace_string_placeholder": "使用 {{match}} 來包含來自尋找正規表示式的匹配文字或 $1、$2 等捕獲組。",
"ext_regex_saved_scripts": "已儲存的腳本",
"ext_regex_trim_placeholder": "在取代之前,全域修剪正規表示式匹配中的任何不需要的部分。每個元素用輸入鍵分隔。",
"ext_regex_user_input": "使用者輸入",
"Fallback Expression": "回退表達式",
"Favorite characters to add them to HotSwaps": "將角色加入到最愛來新增到快速切換",
"Favorite": "我的最愛",
@ -470,12 +499,12 @@
"First Assistant Prefix": "首個助手前綴",
"First message": "初始訊息",
"flag": "旗標",
"flat": "平面",
"Flat": "扁平",
"Follow Theme": "參照佈景主題",
"Follow": "遵循",
"Font Scale": "字型比例",
"Font size": "字體大小",
"For example, ticking the chat, global, and character boxes combine all negative prompts into a comma-separated string.": "例如,勾選聊天、全域和角色框將所有負面提示合併為一個逗號分隔的字串",
"For example, ticking the chat, global, and character boxes combine all negative prompts into a comma-separated string.": "例如,勾選聊天、全域和角色框將所有負面提示合併為一個逗號分隔的字串",
"For privacy reasons, your API key will be hidden after you reload the page.": "基於安全性考量,重新載入頁面後,您的 API 金鑰將被隱藏。",
"Forbid External Media": "禁止使用外部媒體",
"Forbid Media Override explanation": "禁止媒體覆寫說明",
@ -496,8 +525,7 @@
"Global Attachments": "全域附件",
"Global CFG": "全域 CFG",
"Global Lore First": "全域知識書優先",
"Global Negatives": "全域負面提示",
"Globally trims any unwanted parts from a regex match before replacement. Separate each element by an enter.": "在替換之前,全域修剪正規表示式匹配中的任何不需要的部分。每個元素用輸入鍵分隔。",
"Global Negatives": "全域負面提示詞",
"GNBF or ENBF, depends on the backend in use. If you're using this you should know which.": "GNBF 或 ENBF取決於所使用的後端。如果您使用此功能應該知道是哪一種",
"Google Model": "Google 模型",
"Gradual push-out": "逐步推出",
@ -509,33 +537,43 @@
"group chats!": "群組聊天!",
"Group Controls": "群組控制",
"Group generation handling mode": "群組生成處理模式",
"Group Nudge Prompt Template": "群組推動提示範本",
"Group Nudge Prompt Template": "群組推動提示範本",
"Group reply strategy": "群組回應策略",
"Group Weight": "群組權重",
"guikoboldaisettings": "GUI KoboldAI 設定",
"Handle:": "控制代碼:",
"HD": "高畫質",
"Height": "高度(H)",
"Helps to ban or reenforce the usage of certain words": "有助於禁止或強化某些詞語的使用",
"Hide avatars in chat messages.": "在聊天訊息中隱藏頭像",
"Hide character definitions from the editor panel behind a spoiler button": "在編輯器面板中將角色定義隱藏在劇透按鈕後面",
"Hide Chat Avatars": "隱藏聊天頭像",
"Hide Muted Member Sprites": "隱藏靜音成員精靈",
"Hint": "建議",
"Hint": "提示訊息",
"Hint: Save an API key in Horde KoboldAI API settings to use it here.": "提示訊息:在 Horde KoboldAI API 設定中儲存一個 API 金鑰,以便在此使用。",
"Hint: Save an API key in the NovelAI API settings to use it here.": "提示訊息:在 NovelAI API 設定中儲存一個 API 金鑰,以便在此使用。",
"Hires steps (2nd pass)": "高解析步驟 (2nd pass)",
"Hires. Fix": "高解析度修正",
"How do I use this?": "我該如何使用這個?",
"How many messages before the current end of the chat.": "在聊天目前結束前有多少訊息。",
"How often the character speaks in group chats!": "角色在群組聊天中說話的頻率!",
"How to start chatting?": "如何開始聊天?",
"Human message": "人類訊息",
"If both sliders are non-zero, then both will trigger summary updates at their respective intervals.": "如果兩個滑塊都不為零,則兩者將在各自的間隔內觸發摘要更新。",
"If checked and the character card contains a jailbreak override (Post History Instruction), use that instead": "如果選中並且角色卡包含越獄覆寫(歷史指示後),則使用該提示",
"If checked and the character card contains a prompt override (System Prompt), use that instead": "如果選中並且角色卡包含提示覆寫(系統提示),則使用該提示",
"If checked and the character card contains a jailbreak override (Post History Instruction), use that instead": "如果選中並且角色卡包含越獄覆寫(歷史指示後),則使用該提示詞",
"If checked and the character card contains a prompt override (System Prompt), use that instead": "如果選中並且角色卡包含提示詞覆寫(系統提示詞),則使用該提示詞",
"If set in the advanced character definitions, this field will be displayed in the characters list.": "如果在進階角色定義中設定,這個欄位將顯示在角色清單中。",
"If the entry key consists of only one word, it would not be matched as part of other words": "如果條目鍵僅包含一個詞,則不會作為其他詞的一部分進行配對",
"If the generated message is shorter than this, trigger an auto-swipe": "如果生成的訊息比此短,則觸發自動滑動",
"If you're new to this, enable the simplified UI mode below.": "如果您是新手,請啟用下方的簡化 UI 模式",
"Ignore EOS Token": "忽略 EOS 符記",
"Ignore the EOS Token even if it generates.": "即使生成也忽略 EOS 符記",
"Image Generation": "圖片生成",
"Image Prompt Templates": "圖片提示詞範本",
"Image Quality": "圖片品質",
"Image Style": "圖片風格",
"Impersonate": "AI 扮演使用者",
"Impersonation prompt": "AI 扮演提示",
"Impersonation prompt": "AI 扮演提示",
"Import a theme file": "匯入布景主題檔案",
"Import Card Lore": "匯入卡片中的知識書",
"Import Card Tags": "匯入卡片中的標籤",
@ -548,14 +586,14 @@
"Import Tags": "匯入標籤",
"Import World Info": "匯入世界資訊",
"Important to set the character's writing style.": "設定角色的寫作風格很重要。",
"In Story String / Prompt Manager": "在故事字串 / 提示管理器",
"Important:": "重要:",
"In Story String / Prompt Manager": "在故事字串 / 提示詞管理器",
"In the Character Management panel, show quick selection buttons for favorited characters": "在角色管理面板中,顯示加入到最愛角色的快速選擇按鈕",
"in the chat bar": "到聊天欄中",
"In-chat @ Depth": "在聊天中 @ 深度",
"In-chat @ Depth": "聊天中 @ 深度",
"In-Chat Position not affected": "聊天位置不受影響",
"Include in World Info Scanning": "包括在世界資訊掃描中",
"Include message in prompts": "在提示中包含訊息",
"Include message in prompts": "在提示中包含訊息",
"Include Names": "包含名稱",
"Include Newline": "包含換行符號",
"Includes": "包含",
@ -566,7 +604,7 @@
"Injection Position": "注入位置",
"Injection Template": "注入範本",
"Input": "輸入",
"Insert {{original}} into either box to include the respective default prompt from system settings.": "在任一框中插入 {{original}} 以包含系統設定中的預設提示。",
"Insert {{original}} into either box to include the respective default prompt from system settings.": "在任一框中插入 {{original}} 以包含系統設定中的預設提示。",
"Insertion Depth:": "插入深度:",
"Insertion Frequency": "插入頻率",
"Install extension": "安裝擴充套件",
@ -575,27 +613,27 @@
"Instruct": "指示",
"Italics Text": "斜體文字",
"Jailbreak": "越獄",
"Join character cards (exclude muted)": "加入角色卡(排除靜音)",
"Join character cards (include muted)": "加入角色卡(包括靜音)",
"Join character cards (exclude muted)": "加入角色卡(排除靜音)",
"Join character cards (include muted)": "加入角色卡(包括靜音)",
"Join Prefix": "加入前綴",
"Join Suffix": "加入後綴",
"Join the SillyTavern Discord": "加入 SillyTavern Discord",
"JSON Schema": "JSON 結構",
"JSON serialized array of strings": "JSON 序列化字串數組",
"Karras (not all samplers supported)": "Karras(並非所有取樣器都支援)",
"Keywords or Regexes (ignored if empty)": "關鍵字或正規表示式(如果為空則忽略)",
"Karras (not all samplers supported)": "Karras(並非所有取樣器都支援)",
"Keywords or Regexes (ignored if empty)": "關鍵字或正規表示式(如果為空則忽略)",
"Keywords or Regexes": "關鍵字或正規表示式",
"kobldpresets": "Kobold 預設設定檔",
"KoboldAI Horde": "KoboldAI Horde",
"KoboldAI": "KoboldAI",
"koboldcpp API key (optional)": "KoboldCpp API 金鑰(可選)",
"koboldcpp API key (optional)": "KoboldCpp API 金鑰(可選)",
"Last Assistant Prefix": "末尾助手前綴",
"Learn how to contribute your idle GPU cycles to the Horde": "了解如何將閒置的 GPU 週期貢獻給 Horde",
"Learning rate of Mirostat": "Mirostat 的學習率",
"Least chats": "最少聊天",
"Least tokens": "最少符記",
"Leave off if you use quotes manually for speech.": "如果您手動使用引號進行發言,請關閉。",
"Legacy API (pre-OAI, no streaming)": "傳統 APIOAI之前無串流",
"Legacy API (pre-OAI, no streaming)": "傳統 API(OAI之前無串流)",
"LEGACY": "遺留",
"Length Penalty": "長度懲罰",
"Light": "輕",
@ -603,12 +641,12 @@
"Link to World Info": "連結到世界資訊",
"List order": "清單順序",
"LLaMA / Mistral / Yi models only": "僅限 LLaMA / Mistral / Yi 模型",
"llama.cpp only. Determines the order of samplers. If Mirostat mode is not 0, sampler order is ignored.": "僅適用於 llama.cpp。決定採樣器的順序。如果 Mirostat 模式不是 0則忽略採樣器順序",
"llama.cpp only. Determines the order of samplers. If Mirostat mode is not 0, sampler order is ignored.": "僅適用於 llama.cpp。決定取樣器的順序。如果 Mirostat 模式不是 0則忽略取樣器順序",
"Load default order": "載入預設順序",
"Load koboldcpp order": "載入 koboldcpp 順序",
"Locked = Character Management panel will stay open": "鎖定 = 角色管理面板將保持開啟",
"Locked = World Editor will stay open": "鎖定 = 世界編輯器將保持開啟",
"Log prompts to console": "將提示記錄到控制台",
"Log prompts to console": "將提示記錄到控制台",
"Logic": "邏輯",
"Logit Bias": "Logit 偏差",
"Logout": "登出",
@ -617,7 +655,7 @@
"Lorebook Import Dialog": "匯入知識書對話框",
"Mad Lab Mode": "瘋狂實驗室模式",
"Main API": "主要 API",
"Main Prompt": "主要提示",
"Main Prompt": "主要提示",
"Main Text": "主要文字",
"Main": "主要",
"Make a Snapshot": "建立快照",
@ -631,15 +669,15 @@
"Match Whole Words": "完全配對",
"Max Depth": "最大深度",
"Max messages per request": "每個請求的最大訊息數",
"Max Response Length (tokens)": "最大回應長度(符記數)",
"Max Response Length (tokens)": "最大回應長度(符記數)",
"Max Tokens Second": "最大符記/秒",
"Maximum Temp": "最高溫度",
"Medium": "中等",
"Merges all system messages up until the first message with a non system role, and sends them through google's system_instruction field instead of with the rest of the prompt contents.": "合併所有系統訊息,直到第一條非系統角色的訊息,並通過 google 的 system_instruction 字段發送,而不是與其餘提示內容一起發送",
"Merges all system messages up until the first message with a non system role, and sends them through google's system_instruction field instead of with the rest of the prompt contents.": "合併所有系統訊息,直到第一條非系統角色的訊息,並通過 google 的 system_instruction 字段發送,而不是與其餘提示內容一起發送",
"Message Actions": "訊息動作",
"Message Content": "訊息內容",
"Message IDs": "訊息 ID",
"Message Sound": "訊息音",
"Message Sound": "訊息",
"Message Timer": "訊息計時器",
"Min Activations": "最小啟動次數",
"Min Depth": "最小深度",
@ -649,7 +687,7 @@
"Minimum generated message length": "生成的訊息最小長度",
"Minimum number of blacklisted words detected to trigger an auto-swipe": "檢測到的黑名單詞語數量觸發自動滑動的最小值",
"Minimum Temp": "最低溫度",
"Mirostat (mode=1 is only for llama.cpp)": "Mirostatmode=1僅適用於llama.cpp",
"Mirostat (mode=1 is only for llama.cpp)": "Mirostat(mode=1僅適用於llama.cpp)",
"Mirostat Eta": "Mirostat Eta",
"Mirostat is a thermostat for output perplexity": "Mirostat 是輸出困惑度的恆溫器",
"Mirostat LR": "Mirostat 學習率",
@ -664,6 +702,7 @@
"Model Icon": "模型圖示",
"Model Order": "模型順序",
"Model Providers": "模型供應商",
"Model": "模型",
"Models": "模型",
"More...": "更多...",
"Most chats": "最多聊天",
@ -677,16 +716,17 @@
"MovingUI preset. Predefined/saved draggable positions": "MovingUI 預設。預先定義/儲存的可拖動位置",
"MUI Preset": "MUI 預設",
"Multiple swipes per generation": "每次生成多次滑動",
"Name (A-Z)": "名稱A-Z",
"Name (Z-A)": "名稱Z-A",
"Name (A-Z)": "名稱(A-Z)",
"Name (Z-A)": "名稱(Z-A)",
"Name this character": "為此角色命名",
"Name": "名稱",
"Narrate": "敘述",
"Natural order": "自然順序",
"Negative Prompt": "負面提示",
"Neutralize Samplers": "中和採樣器",
"Never include examples": "絕不包含範例",
"Never resize avatars": "從不調整頭像大小",
"Negative common prompt prefix": "負面通用提示詞前綴",
"Negative Prompt": "負面提示詞",
"Neutralize Samplers": "中和取樣器",
"Never include examples": "永不包含範例",
"Never resize avatars": "永不調整頭像大小",
"New Chat": "新聊天",
"New Entry": "新條目",
"New Example Chat": "新範例聊天",
@ -705,7 +745,7 @@
"No Text Shadows": "無文字陰影",
"No WI/AN": "無 WI/AN",
"No": "否",
"Non-markdown strings": "非 markdown 字串",
"Non-markdown strings": "非 Markdown 字串",
"None": "無",
"Normal": "正常",
"NOT ALL": "NOT 所有",
@ -727,16 +767,17 @@
"Ollama Model": "Ollama 模型",
"Omit World Info and Author's Note from text to be summarized. Only has an effect when using the Main API. The Extras API always omits WI/AN.": "從要總結的文本中省略世界資訊和作者備註。僅在使用主要 API 時有效。額外 API 總是省略 WI/AN。",
"Only enable this if your model supports context sizes greater than 4096 tokens": "僅在您的模型支援超過4096個符記的上下文大小時啟用此功能",
"Only Format Display": "僅格式顯示",
"Only Format Prompt (?)": "僅格式提示(?)",
"Only Format Display": "僅格式顯示",
"Only Format Prompt (?)": "僅格式化提示詞()",
"Only one entry with the same label will be activated": "僅會啟用具有相同標籤的一個條目",
"Only play a sound when ST's browser tab is unfocused": "僅在 ST 的瀏覽器分頁未聚焦時播放音",
"Only play a sound when ST's browser tab is unfocused": "僅在 ST 的瀏覽器分頁未聚焦時播放",
"Only the entries with the most number of key matches will be selected for Inclusion Group filtering": "只有符合最多鍵值數量的條目將被選中進行包含群組過濾",
"Ooba only. Determines the order of samplers.": "僅適用於 Ooba。決定樣器的順序。",
"Ooba only. Determines the order of samplers.": "僅適用於 Ooba。決定樣器的順序。",
"Open all Entries": "開啟所有條目",
"Open checkpoint chat": "開啟檢查點聊天",
"Open Data Bank": "打開資料儲藏庫",
"Open Editor": "打開編輯器",
"Open workflow editor": "開啟 workflow 編輯器",
"OpenAI API key": "OpenAI API 金鑰",
"OpenAI Model": "OpenAI 模型",
"openaipresets": "OpenAI 預設設定檔",
@ -765,29 +806,30 @@
"Personality Format Template": "個性格式範本",
"Personality summary": "個性摘要",
"Phrase Repetition Penalty": "片語重複懲罰",
"Play a sound when a message generation finishes": "訊息生成完成時播放音",
"Play a sound when a message generation finishes": "訊息生成完成時播放",
"Position:": "位置:",
"Positive Prompt": "正面提示",
"Positive Prompt": "正面提示",
"Post a GitHub issue": "發布 GitHub 問題",
"Preamble": "前言",
"Prefer Character Card Jailbreak": "偏好角色卡越獄",
"Prefer Character Card Prompt": "偏好角色卡提示",
"Prefer Character Card Prompt": "偏好角色卡提示",
"Prepend character names to message contents.": "在訊息內容前新增角色名稱",
"Presence Penalty": "存在懲罰",
"Preset for prompt prefix and negative prompt": "提示詞前綴和負面提示詞的預設設定",
"Presets": "預設設定檔",
"Press Send to continue": "按下傳送繼續",
"Prevent further recursion (this entry will not activate others)": "防止進一步遞迴(此條目不會啟用其他條目)",
"Prevent further recursion (this entry will not activate others)": "防止進一步遞迴(此條目不會啟用其他條目)",
"Price": "價格",
"Primary Keywords": "主要關鍵字",
"Primary Lorebook": "主要知識書",
"Prioritize this entry: When checked, this entry is prioritized out of all selections.": "優先考慮此條目:選中時,此條目在所有選擇中優先。\n如果多個條目被優先考慮則選擇「順序」最高的條目",
"Priority": "優先順序",
"Prompt builder": "提示生成器",
"Prompt Overrides": "提示覆寫",
"Prompt Post-Processing": "提示後處理",
"Prompt that is used for Impersonation function": "用於 AI 模仿功能的提示",
"Prompt to import embedded card tags on character import. Otherwise embedded tags are ignored": "在角色匯入時提示匯入嵌入的卡片標籤。否則,嵌入的標籤將被忽略",
"Prompt": "提示",
"Prompt builder": "提示生成器",
"Prompt Overrides": "提示覆寫",
"Prompt Post-Processing": "提示後處理",
"Prompt that is used for Impersonation function": "用於 AI 模仿功能的提示",
"Prompt to import embedded card tags on character import. Otherwise embedded tags are ignored": "在角色匯入時提示匯入嵌入的卡片標籤。否則,嵌入的標籤將被忽略",
"Prompt": "提示",
"Prose Augmenter": "散文增強器",
"Proxy Name": "代理伺服器名稱",
"Proxy Password": "代理伺服器密碼",
@ -795,7 +837,7 @@
"Proxy Server URL": "代理伺服器 URL",
"PygmalionAI/aphrodite-engine": "PygmalionAI/aphrodite 引擎",
"Quick 'Continue' button": "快速“繼續”按鈕",
"Quick Prompts Edit": "快速提示編輯",
"Quick Prompts Edit": "快速提示編輯",
"Quote Text": "引用文字",
"Random": "隨機",
"Raw, blocking": "原始,阻塞",
@ -811,7 +853,6 @@
"Refresh": "重新整理",
"Regenerate": "重新生成",
"Regex Editor": "正規表示式編輯器",
"Regex is a tool to find/replace strings using regular expressions. If you want to learn more, click on the ? next to the title.": "正規表示式是一種使用正規表示式尋找/替換字串的工具。如果您想了解更多,請點選標題旁邊的?",
"Register a Horde account for faster queue times": "註冊Horde帳號以縮短排隊時間",
"Relax message trim in Groups": "放寬群組中的訊息修剪",
"Relaxed API URLS": "寬鬆的 API URL 格式",
@ -835,13 +876,13 @@
"rep.pen range": "重複懲罰範圍",
"rep.pen": "重複懲罰",
"Repetition Penalty": "重複懲罰",
"Replace / Update": "替換 / 更新",
"Replace all {{getvar::}} and {{getglobalvar::}} macros with scoped variables to avoid double macro substitution.": "將所有 {{getvar::}} 和 {{getglobalvar::}} 巨集替換為作用域變量以避免雙重巨集替換",
"Replace Author's Note": "替換作者註釋",
"Replace empty message": "替換空訊息",
"Replace Macro in Custom Stopping Strings": "替換自訂停止字串中的巨集",
"Replace Macro in Sequences": "替換序列中的巨集",
"Replace With": "替換為",
"Replace / Update": "取代 / 更新",
"Replace all {{getvar::}} and {{getglobalvar::}} macros with scoped variables to avoid double macro substitution.": "將所有 {{getvar::}} 和 {{getglobalvar::}} 巨集取代為作用域變量以避免雙重巨集取代",
"Replace Author's Note": "取代作者註釋",
"Replace empty message": "取代空訊息",
"Replace Macro in Custom Stopping Strings": "取代自訂停止字串中的巨集",
"Replace Macro in Sequences": "取代序列中的巨集",
"Replace With": "取代為",
"REPLACE_GETVAR": "REPLACE_GETVAR",
"Request token probabilities": "請求符記機率",
"Requests logprobs from the API for the Token Probabilities feature": "從 API 請求 logprobs 用於符記機率功能",
@ -849,12 +890,14 @@
"Reset Everything": "重設全部",
"Reset MovingUI panel sizes/locations.": "重置 MovingUI 面板大小/位置",
"Reset Settings": "重設設定值",
"response legth(tokens)": "回應長度(符記數)",
"Resolution": "解析度",
"response legth(tokens)": "回應長度(符記數)",
"Restore collage avatar": "還原預設頭像",
"Restore current preset": "還原目前預設",
"Restore default prompt": "恢復預設提示",
"Restore default prompt": "還原預設提示",
"Restore new group chat prompt": "還原新群組聊天提示",
"Restore default prompt": "還原預設提示詞",
"Restore default": "還原預設",
"Restore Faces": "修復臉部",
"Restore new group chat prompt": "還原新群組聊天提示詞",
"Restore Previous": "恢復上一個",
"Restore unsaved user input on page refresh": "在頁面刷新時恢復未儲存的使用者輸入",
"Restore User Input": "還原使用者輸入",
@ -866,20 +909,23 @@
"Role:": "角色:",
"Run On Edit": "編輯時運行",
"Sample characters": "範例角色",
"Sampler Priority": "採樣器優先順序",
"Samplers Order": "採樣器順序",
"Samplers will be applied in a top-down order. Use with caution.": "採樣器將按從上到下的順序應用。請小心使用。",
"Sanitize prompts (recommended)": "清理提示(建議)",
"Sampler Priority": "取樣器優先順序",
"Samplers Order": "取樣器順序",
"Samplers will be applied in a top-down order. Use with caution.": "取樣器將按從上到下的順序應用。請小心使用。",
"Sampling method": "取樣方法",
"Sampling steps": "取樣步數",
"Sanitize prompts (recommended)": "清理提示詞(建議)",
"Save as a new theme": "儲存成新的布景主題",
"Save checkpoint": "儲存檢查點",
"Save edits to messages without confirmation as you type": "在輸入時儲存對訊息的編輯,無需確認",
"Save movingUI changes to a new file": "將移動UI變更儲存到新檔案",
"Save preset as": "儲存預設為",
"Save Proxy": "儲存代理伺服器",
"Save style": "儲存風格",
"Save": "儲存",
"Saved addresses and passwords.": "已儲存的地址和密碼",
"Saved locally. Not exported.": "本機儲存。不匯出。",
"Saved Scripts": "儲存的腳本",
"Saved Scripts": "儲存的腳本",
"Scale API Key": "Scale API 金鑰",
"Scale Temperature dynamically per token, based on the variation of probabilities": "根據機率變化,動態調整每個符記的溫度",
"Scale": "比例",
@ -889,7 +935,28 @@
"Scenario Override": "情境覆寫",
"Scenario": "情境",
"scenario_format_template_part_2": "情境格式範本部分 2",
"Scheduler": "調度器",
"Script Name": "腳本名稱",
"sd_auto_auth_warning_1": "使用",
"sd_auto_auth_warning_2": "旗標執行 SD Web UI伺服器必須能夠被 SillyTavern 主機存取。",
"sd_auto_url": "範例: {{auto_url}}",
"sd_character_negative_prompt_placeholder": "不應出現在選定角色上的任何特徵。這些特徵將增加在負面通用提示詞前綴之後。例如:珠寶、鞋子、眼鏡。",
"sd_character_prompt_placeholder": "描述當前選擇角色的特徵。這些特徵將增加在通用提示詞前綴之後。\n例如女性、綠色眼睛、棕色頭髮、粉紅色襯衫。",
"sd_comfy_url": "範例: {{comfy_url}}",
"sd_drawthings_auth_txt": "執行 DrawThings 應用程式並在介面中啟用 HTTP API 開關!伺服器必須能夠被 SillyTavern 主機存取。",
"sd_drawthings_url": "範例: {{drawthings_url}}",
"sd_expand": "使用文字生成模型自動擴充提示詞。",
"sd_expand_txt": "自動擴充提示詞",
"sd_interactive_mode": "當發送「給我一張貓的圖片」這類訊息時,自動生成圖片。",
"sd_interactive_mode_txt": "互動模式",
"sd_multimodal_captioning": "根據使用者和角色的頭像,使用多模態模型描述生成肖像提示詞。",
"sd_multimodal_captioning_txt": "對肖像使用多模態模型描述",
"sd_prompt_prefix_placeholder": "使用 {prompt} 指定生成的提示詞將被插入的位置。",
"sd_refine_mode": "允許在傳送至生成 API 前,手動編輯提示詞字串",
"sd_refine_mode_txt": "生成前編輯提示詞",
"sd_snap": "對於具有特定長寬比的生成請求(如肖像、背景),將其調整至最接近的已知解析度,同時儘量保持絕對像素數(建議用於SDXL)。",
"sd_snap_txt": "自動調整解析度",
"sd_vlad_url": "範例: {{vlad_url}}",
"Search / Create Tags": "搜尋/建立標籤",
"Search Settings": "搜尋設定",
"Search": "搜尋",
@ -903,14 +970,14 @@
"Send a message": "發送訊息",
"Send inline images": "發送內嵌圖片",
"Send on Enter": "按下 Enter 鍵發送",
"Send the system prompt for supported models. If disabled, the user message is added to the beginning of the prompt.": "為支援的模型發送系統提示。停用時,使用者訊息將新增到提示的開頭。",
"Send the system prompt for supported models. If disabled, the user message is added to the beginning of the prompt.": "為支援的模型發送系統提示。停用時,使用者訊息將新增到提示的開頭。",
"Send this text instead of nothing when the text box is empty.": "當文字方塊為空時,發送此字串而不是空白。",
"Sent at the end of the group chat history to force reply from a specific character.": "在群組聊天歷史結束時發送以強制特定角色回覆",
"separate with commas w/o space between": "用逗號分隔,之間無空格",
"Sequences you don't want to appear in the output. One per line.": "您不希望在輸出中出現的序列。每行一個。",
"Server url": "伺服器 URL",
"Set a group chat scenario": "設定群組聊天情境",
"Set all samplers to their neutral/disabled state.": "將所有樣器設定為中性/停用狀態。",
"Set all samplers to their neutral/disabled state.": "將所有樣器設定為中性/停用狀態。",
"Set at the beginning of Dialogue examples to indicate that a new example chat is about to start.": "設定在對話範例的開頭以表明即將開始新的範例聊天",
"Set at the beginning of the chat history to indicate that a new chat is about to start.": "設定在聊天歷史的開頭以表明即將開始新的聊天",
"Set at the beginning of the chat history to indicate that a new group chat is about to start.": "設定在聊天歷史的開頭以表明即將開始新的群組聊天",
@ -923,13 +990,13 @@
"Settings Snapshots": "設定快照",
"Shadow Color": "陰影顏色",
"Show / Hide Description and First Message": "顯示/隱藏描述和第一條訊息",
"Show a button in the input area to ask the AI to continue (extend) its last message": "在輸入區域顯示一個按鈕,請求 AI 繼續(擴展)其最後一條訊息",
"Show a button in the input area to ask the AI to continue (extend) its last message": "在輸入區域顯示一個按鈕,請求 AI 繼續(擴充)其最後一條訊息",
"Show a timestamp for each message in the chat log": "在聊天記錄中為每條訊息顯示時間戳記",
"Show actual file names on the disk, in the characters list display only": "僅在角色列表顯示實際磁碟檔案名",
"Show an icon for the API that generated the message": "顯示生成訊息的 API 圖示",
"Show arrow buttons on the last in-chat message to generate alternative AI responses. Both PC and mobile": "在最後的聊天訊息中顯示箭頭按鈕,以生成替代的 AI 回應。適用於 PC 和行動裝置版",
"Show avatar filenames": "顯示頭像檔案名",
"Show External models (provided by API)": "顯示外部模型(由 API 提供)",
"Show External models (provided by API)": "顯示外部模型(由 API 提供)",
"Show Message Token Count": "顯示訊息符記數量",
"Show notifications on switching personas": "切換角色時顯示通知",
"Show reply prefix in chat": "在聊天中顯示回覆前綴",
@ -943,26 +1010,29 @@
"Simple": "簡單",
"Single file": "單個檔案",
"Single-row message input area. Mobile only, no effect on PC": "單行訊息輸入區域。僅適用於行動裝置版,對 PC 無效",
"Size (Largest First)": "尺寸(由大到小)",
"Size (Smallest First)": "尺寸(由小到大)",
"Size (Largest First)": "尺寸(由大到小)",
"Size (Smallest First)": "尺寸(由小到大)",
"Skip encoding &lt; and &gt; characters in message text, allowing a subset of HTML markup as well as Markdown": "跳過編碼訊息文字中的 &lt; 和 &gt; 字符,允許一部分 HTML 標記以及 Markdown",
"Skip Example Dialogues Formatting": "跳過範例對話的格式設定",
"Skip Special Tokens": "跳過特殊符記",
"Slack and Poe cookies will not work here, do not bother trying.": "Slack 和 Poe 的 Cookie 在此無效,請勿嘗試。",
"Slash Commands": "斜線命令",
"Slow": "慢",
"SMEA versions of samplers are modified to perform better at high resolution.": "SMEA 版本的取樣器經過修改,能在高解析度下表現更佳。",
"SMEA": "SMEA",
"Smooth Sampling": "平滑取樣",
"Smooth Streaming": "平滑串流",
"Smoothing Curve": "平滑曲線",
"Smoothing Factor": "平滑因子",
"Sorted Evenly": "均等排序",
"Source": "來源",
"Space": "空格",
"Spaces Between Special Tokens": "特殊符記之間的空格",
"Specify colors for your theme.": "為您的主題指定顏色",
"Spoiler Free Mode": "無劇透模式",
"Square": "方形",
"Squash system messages": "合併系統訊息",
"Standard": "標準",
"Start Claude's answer with...": "開始 Claude 的回答...",
"Start new chat": "開始新聊天",
"Start Reply With": "開始回覆",
@ -977,11 +1047,12 @@
"Strength of the text shadows": "文字陰影的強度",
"STRICT_ESCAPING": "STRICT_ESCAPING",
"STscript Settings": "STscript 設定",
"Substitute &lcub;&lcub;macros&rcub;&rcub; in Find Regex before running it": "在運行前替換尋找正規表示式中的 &lcub;&lcub;macros&rcub;&rcub;",
"Substitute Regex": "替換正規表示式",
"Style": "風格",
"Substitute &lcub;&lcub;macros&rcub;&rcub; in Find Regex before running it": "在運行前取代尋找正規表示式中的 &lcub;&lcub;macros&rcub;&rcub;",
"Substitute Regex": "取代正規表示式",
"Summarize now": "立即總結",
"Summarize with:": "總結使用:",
"Summary Prompt": "摘要提示",
"Summary Prompt": "摘要提示",
"Summary Settings": "摘要設定",
"Summary will be generated here...": "摘要將在此生成...",
"Summary": "摘要",
@ -993,20 +1064,20 @@
"System Instruction Prefix": "系統指令前綴",
"System Message Prefix": "系統訊息前綴",
"System Message Suffix": "系統訊息後綴",
"System Prompt Prefix": "系統提示前綴",
"System Prompt Suffix": "系統提示後綴",
"System Prompt Wrapping": "系統提示換行",
"System Prompt": "系統提示",
"System Prompt Prefix": "系統提示前綴",
"System Prompt Suffix": "系統提示後綴",
"System Prompt Wrapping": "系統提示換行",
"System Prompt": "系統提示",
"System same as User": "系統與使用者相同",
"System": "系統",
"Tabby API key": "Tabby API 金鑰",
"Tag": "標籤",
"Tags as Folders": "標籤作為資料夾",
"Tags to Embed": "嵌入標籤",
"Tail Free Sampling": "尾部自由樣",
"Tail-Free Sampling (TFS)": "尾部自由採樣TFS",
"Tail Free Sampling": "尾部自由樣",
"Tail-Free Sampling (TFS)": "尾部自由取樣(TFS)",
"Talkativeness": "健談度",
"Target length (tokens)": "目標長度(符記)",
"Target length (tokens)": "目標長度(符記)",
"Temperature controls the randomness in token selection": "溫度控制符記選擇中的隨機性",
"Temperature Last": "最後的溫度",
"Temperature": "溫度",
@ -1020,16 +1091,18 @@
"Text Shadow Width": "文字陰影寬度",
"The next chunk of the continued message will be appended using this as a separator.": "繼續訊息的下一塊將使用此作為分隔符附加",
"The number of chat history messages to load before pagination.": "分頁前要載入的聊天歷史訊息數量",
"The server must be accessible from the SillyTavern host machine.": "伺服器必須能夠被 SillyTavern 主機存取。",
"Theme Colors": "佈景主題顏色",
"Theme Toggles": "佈景主題選項",
"these directions": "這些指示",
"These files are available for all characters in all chats.": "這些檔案在所有聊天中的所有角色中可用。",
"These files are available the current character in all chats they are in.": "這些檔案在當前角色參與的所有聊天中可用。",
"These files are available to all characters in the current chat.": "這些檔案在當前聊天中的所有角色中可用。",
"These files will be available for extensions that support attachments (e.g. Vector Storage).": "這些檔案將可用於支援附件的擴充套件(例如向量存儲)。",
"These files will be available for extensions that support attachments (e.g. Vector Storage).": "這些檔案將可用於支援附件的擴充套件(例如向量存儲)。",
"These settings only apply to DALL-E 3": "此設定僅會套用在 DALL-E 3",
"This action is irreversible.": "此動作不可逆轉。",
"This message is invisible for the AI": "此訊息對 AI 不可見",
"This prompt will be sent to AI to request the summary generation. &lcub;&lcub;words&rcub;&rcub; will resolve to the 'Number of words' parameter.": "此提示將發送給 AI 以請求生成摘要。&lcub;&lcub;words&rcub;&rcub; 會解析為「文字數量」參數。",
"This prompt will be sent to AI to request the summary generation. &lcub;&lcub;words&rcub;&rcub; will resolve to the 'Number of words' parameter.": "此提示將發送給 AI 以請求生成摘要。&lcub;&lcub;words&rcub;&rcub; 會解析為「文字數量」參數。",
"This will be the first message from the character that starts every chat.": "這將是每次聊天開始時角色發送的第一條訊息。",
"This will create a new subfolder...": "這將建立一個新的子資料夾...",
"This will show up as your saved preset.": "這將顯示為您儲存的預設",
@ -1058,7 +1131,7 @@
"Top K sets a maximum amount of top tokens that can be chosen from": "Top K 設定可以選擇的最高符記數量",
"Top K": "Top K",
"Top of Author's Note": "作者備註的頂部",
"Top P (a.k.a. nucleus sampling)": "Top P(又名核採樣)",
"Top P (a.k.a. nucleus sampling)": "Top P(又名核取樣)",
"Top P": "Top P",
"Top-p": "Top-p",
"Translate files into English before processing": "處理前將檔案翻譯成英文",
@ -1099,6 +1172,8 @@
"Update every": "每次更新",
"Update frequency": "更新頻率",
"Update speed of streamed text.": "更新串流文字的速度",
"Upscale by": "放大倍率",
"Upscaler": "放大演算法",
"Usage Stats": "使用統計",
"Use AI21 Tokenizer": "使用 AI21 符記器",
"Use as Stop Strings": "用作停止字串",
@ -1113,13 +1188,12 @@
"Use Proxy password field instead. This input will be ignored.": "請改用代理密碼欄位。此輸入將被忽略",
"Use scenario to mark a place where the content is inserted.": "使用情境標記插入內容的位置",
"Use style tags to modify the writing style of the output.": "使用樣式標籤修改輸出的寫作風格。",
"Use system prompt (Claude 2.1+ only)": "使用系統提示(僅限 Claude 2.1+",
"Use system prompt": "使用系統提示",
"Use system prompt (Claude 2.1+ only)": "使用系統提示詞(僅限 Claude 2.1+)",
"Use system prompt": "使用系統提示",
"Use tag as folder": "將標籤用作資料夾",
"Use the appropriate tokenizer for Google models via their API. Slower prompt processing, but offers much more accurate token counting.": "通過 Google 模型的 API 使用適當的符記器。提示處理速度較慢,但提供更準確的符記計數。",
"Use the appropriate tokenizer for Google models via their API. Slower prompt processing, but offers much more accurate token counting.": "通過 Google 模型的 API 使用適當的符記器。提示處理速度較慢,但提供更準確的符記計數。",
"Use the appropriate tokenizer for Jurassic models, which is more efficient than GPT's.": "對於 Jurassic 模型使用適當的符記器,比 GPT 的更高效",
"Use the temperature sampler last": "最後使用溫度採樣器",
"Use {{match}} to include the matched text from the Find Regex or $1, $2, etc. for capture groups.": "使用 {{match}} 來包含來自尋找正規表示式的匹配文字或 $1、$2 等捕獲組。",
"Use the temperature sampler last": "最後使用溫度取樣器",
"Used if CFG Scale is unset globally, per chat or character": "如果CFG Scale未在全域、每個聊天或角色中設定則使用",
"User Filler Message": "使用者填充訊息",
"User first message": "使用者第一條訊息",
@ -1131,7 +1205,7 @@
"User Message Suffix": "使用者訊息後綴",
"User Settings": "使用者設定",
"User": "使用者",
"Utility Prompts": "實用提示",
"Utility Prompts": "實用提示",
"Variability parameter for Mirostat outputs": "Mirostat 輸出的變異性參數",
"Vectorized": "向量化",
"Vectors Model Warning": "向量模型警告",
@ -1143,6 +1217,7 @@
"View character card": "查看角色卡",
"View contents": "檢視內容",
"View hidden API keys": "查看隱藏的 API 金鑰",
"View my Anlas": "檢視我的 Anlas 點數",
"View my Kudos": "查看我的稱讚",
"View Remaining Credits": "檢視剩餘點數",
"vLLM API key": "vLLM API 金鑰",
@ -1160,13 +1235,14 @@
"welcome_message_part_9": "welcome_message_part_9",
"What this keyword should mean to the AI": "此關鍵字對 AI 應意味著什麼",
"What this keyword should mean to the AI, sent verbatim": "這個關鍵字對 AI 應意味著什麼,逐字發送",
"When 'Join character cards' is selected, all respective fields of the characters are being joined together.": "當選擇「加入角色卡」時,所有角色的相應字段將被連接在一起。\n這意味著例如在故事字串中所有角色描述將被連接成一個大文本。\n如果您希望這些字段分開您可以在此定義前綴或後綴。\n\n此值支持普通巨集並且還將 {{char}} 替換為相關角色的名稱,將 <FIELDNAME> 替換為部分的名稱(例如:描述、個性、情境等)",
"When applied to prompts or display, only affect messages no more than N levels deep. 0 = last message, 1 = penultimate message, etc. Only counts WI entries @Depth and usable messages, i.e. not hidden or system.": "應用於提示或顯示時,僅影響不超過 N 層深的訊息。0 = 最後一條訊息1 = 倒數第二條訊息,等。僅計算 @Depth 的 WI 條目和可用訊息,即不包括隱藏或系統。",
"When applied to prompts or display, only affect messages that are at least N levels deep. 0 = last message, 1 = penultimate message, etc. Only counts WI entries @Depth and usable messages, i.e. not hidden or system.": "應用於提示或顯示時,僅影響至少 N 層深的訊息。0 = 最後一條訊息1 = 倒數第二條訊息,等。僅計算 @Depth 的 WI 條目和可用訊息,即不包括隱藏或系統。",
"When 'Join character cards' is selected, all respective fields of the characters are being joined together.": "當選擇「加入角色卡」時,所有角色的相應字段將被連接在一起。\n這意味著例如在故事字串中所有角色描述將被連接成一個大文本。\n如果您希望這些字段分開您可以在此定義前綴或後綴。\n\n此值支持普通巨集並且還將 {{char}} 取代為相關角色的名稱,將 <FIELDNAME> 取代為部分的名稱(例如:描述、個性、情境等)",
"When applied to prompts or display, only affect messages no more than N levels deep. 0 = last message, 1 = penultimate message, etc. Only counts WI entries @Depth and usable messages, i.e. not hidden or system.": "應用於提示或顯示時,僅影響不超過 N 層深的訊息。0 = 最後一條訊息1 = 倒數第二條訊息,等。僅計算 @Depth 的 WI 條目和可用訊息,即不包括隱藏或系統。",
"When applied to prompts or display, only affect messages that are at least N levels deep. 0 = last message, 1 = penultimate message, etc. Only counts WI entries @Depth and usable messages, i.e. not hidden or system.": "應用於提示或顯示時,僅影響至少 N 層深的訊息。0 = 最後一條訊息1 = 倒數第二條訊息,等。僅計算 @Depth 的 WI 條目和可用訊息,即不包括隱藏或系統。",
"When generating an AI reply, it will be combined with the entries from a global World Info selector.": "生成 AI 回覆時,將與全域世界資訊選擇器中的條目結合。",
"When this is off, responses will be displayed all at once when they are complete.": "關閉時,回應將在完成後一次性顯示。",
"WI Entry Status:🔵 Constant🟢 Normal🔗 Vectorized❌ Disabled": "WI條目狀態🔵常數🟢正常🔗向量❌停用",
"Width of the main chat window in % of screen width": "主聊天視窗寬度占螢幕寬度的百分比",
"Width": "寬度(W)",
"Will be automatically added as the Author's Note for all new chats.": "將自動新增為所有新聊天的作者備註",
"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.": "將自動新增為此角色的作者備註。將在群組中使用,但在群組聊天開啟時無法修改",
"Will be automatically added as the CFG for this character.": "將自動新增為此角色的 CFG",
@ -1174,6 +1250,7 @@
"Will be used as the default CFG options for every chat unless overridden.": "將作為每次聊天的預設 CFG 選項,除非被覆寫",
"Window AI Model": "Window AI 模型",
"Won't be shared with the character card on export.": "不會在匯出時與角色卡共享",
"Won't be used in groups.": "不會用在群組",
"words you dont want generated separated by comma ','": "您不想生成的文字,使用逗號分隔",
"World Info Format Template": "世界資訊格式範本",
"World Info": "世界資訊",
@ -1182,11 +1259,11 @@
"Wrap in Quotes": "用引號包裹",
"Wrap Sequences with Newline": "用換行符包裹序列",
"Wrap user messages in quotes before sending": "發送前將使用者訊息用引號括起來",
"Wraps activated World Info entries before inserting into the prompt.": "在插入提示前包裝已啟用的世界資訊條目",
"Wraps activated World Info entries before inserting into the prompt.": "在插入提示前包裝已啟用的世界資訊條目",
"write short replies, write replies using past tense": "撰寫簡短回覆,使用過去式撰寫回覆",
"Yes": "是",
"You can browse a list of bundled characters in the Download Extensions & Assets menu within": "您可以在「下載擴充套件和資產」選單中瀏覽內建角色列表",
"Your Persona": "您的玩家角色",
"Z-A": "Z-A",
"Zen Sliders": "Zen 滑桿"
}
}

View File

@ -683,6 +683,7 @@ export function reloadMarkdownProcessor(render_formulas = false) {
tables: true,
parseImgDimensions: true,
simpleLineBreaks: true,
strikethrough: true,
extensions: [
showdownKatex(
{
@ -702,6 +703,7 @@ export function reloadMarkdownProcessor(render_formulas = false) {
tables: true,
underline: true,
simpleLineBreaks: true,
strikethrough: true,
extensions: [markdownUnderscoreExt()],
});
}

View File

@ -464,7 +464,8 @@ function addPromptTemplates() {
for (const [name, prompt] of Object.entries(extension_settings.sd.prompts)) {
const label = $('<label></label>')
.text(modeLabels[name])
.attr('for', `sd_prompt_${name}`);
.attr('for', `sd_prompt_${name}`)
.attr('data-i18n', `sd_prompt_${name}`);
const textarea = $('<textarea></textarea>')
.addClass('textarea_compact text_pole')
.attr('id', `sd_prompt_${name}`)
@ -476,6 +477,7 @@ function addPromptTemplates() {
const button = $('<button></button>')
.addClass('menu_button fa-solid fa-undo')
.attr('title', 'Restore default')
.attr('data-i18n', 'Restore default')
.on('click', () => {
textarea.val(promptTemplates[name]);
extension_settings.sd.prompts[name] = promptTemplates[name];
@ -1885,7 +1887,7 @@ function processReply(str) {
str = str.replaceAll('“', '');
str = str.replaceAll('.', ',');
str = str.replaceAll('\n', ', ');
str = str.replace(/[^a-zA-Z0-9,:(){}\-']+/g, ' '); // Replace everything except alphanumeric characters and commas with spaces
str = str.replace(/[^a-zA-Z0-9,:_(){}[\]\-']+/g, ' ');
str = str.replace(/\s+/g, ' '); // Collapse multiple whitespaces into one
str = str.trim();

View File

@ -2,35 +2,35 @@
<div class="inline-drawer">
<div class="inline-drawer-toggle inline-drawer-header">
<b>
Image Generation
<a href="https://docs.sillytavern.app/extras/extensions/stable-diffusion/" class="notes-link" target="_blank">
<span data-i18n="Image Generation">Image Generation</span>
<a href="https://docs.sillytavern.app/extensions/stable-diffusion/" class="notes-link" target="_blank">
<span class="note-link-span">?</span>
</a>
</b>
<div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div>
</div>
<div class="inline-drawer-content">
<label for="sd_refine_mode" class="checkbox_label" title="Allow to edit prompts manually before sending them to generation API">
<label for="sd_refine_mode" class="checkbox_label" data-i18n="[title]sd_refine_mode" title="Allow to edit prompts manually before sending them to generation API">
<input id="sd_refine_mode" type="checkbox" />
Edit prompts before generation
<span data-i18n="sd_refine_mode_txt">Edit prompts before generation</span>
</label>
<label for="sd_interactive_mode" class="checkbox_label" title="Automatically generate images when sending messages like 'send me a picture of cat'.">
<label for="sd_interactive_mode" class="checkbox_label" data-i18n="[title]sd_interactive_mode" title="Automatically generate images when sending messages like 'send me a picture of cat'.">
<input id="sd_interactive_mode" type="checkbox" />
Interactive mode
<span data-i18n="sd_interactive_mode_txt">Interactive mode</span>
</label>
<label for="sd_multimodal_captioning" class="checkbox_label" title="Use multimodal captioning to generate prompts for user and character portraits based on their avatars.">
<label for="sd_multimodal_captioning" class="checkbox_label" data-i18n="[title]sd_multimodal_captioning" title="Use multimodal captioning to generate prompts for user and character portraits based on their avatars.">
<input id="sd_multimodal_captioning" type="checkbox" />
Use multimodal captioning for portraits
<span data-i18n="sd_multimodal_captioning_txt">Use multimodal captioning for portraits</span>
</label>
<label for="sd_expand" class="checkbox_label" title="Automatically extend prompts using text generation model">
<label for="sd_expand" class="checkbox_label" data-i18n="[title]sd_expand" title="Automatically extend prompts using text generation model">
<input id="sd_expand" type="checkbox" />
Auto-enhance prompts
<span data-i18n="sd_expand_txt">Auto-enhance prompts</span>
</label>
<label for="sd_snap" class="checkbox_label" title="Snap generation requests with a forced aspect ratio (portraits, backgrounds) to the nearest known resolution, while trying to preserve the absolute pixel counts (recommended for SDXL).">
<label for="sd_snap" class="checkbox_label" data-i18n="[title]sd_snap" title="Snap generation requests with a forced aspect ratio (portraits, backgrounds) to the nearest known resolution, while trying to preserve the absolute pixel counts (recommended for SDXL).">
<input id="sd_snap" type="checkbox" />
Snap auto-adjusted resolutions
<span data-i18n="sd_snap_txt">Snap auto-adjusted resolutions</span>
</label>
<label for="sd_source">Source</label>
<label for="sd_source" data-i18n="Source">Source</label>
<select id="sd_source">
<option value="comfy">ComfyUI</option>
<option value="drawthings">DrawThings HTTP API</option>
@ -46,7 +46,7 @@
<div data-sd-source="auto">
<label for="sd_auto_url">SD Web UI URL</label>
<div class="flex-container flexnowrap">
<input id="sd_auto_url" type="text" class="text_pole" placeholder="Example: {{auto_url}}" value="{{auto_url}}" />
<input id="sd_auto_url" type="text" class="text_pole" data-i18n="[placeholder]sd_auto_url" placeholder="Example: {{auto_url}}" value="{{auto_url}}" />
<div id="sd_auto_validate" class="menu_button menu_button_icon">
<i class="fa-solid fa-check"></i>
<span data-i18n="Connect">
@ -54,14 +54,15 @@
</span>
</div>
</div>
<label for="sd_auto_auth">Authentication (optional)</label>
<input id="sd_auto_auth" type="text" class="text_pole" placeholder="Example: username:password" value="" />
<i><b>Important:</b> run SD Web UI with the <tt>--api</tt> flag! The server must be accessible from the SillyTavern host machine.</i>
<label for="sd_auto_auth" data-i18n="Authentication (optional)">Authentication (optional)</label>
<input id="sd_auto_auth" type="text" class="text_pole" data-i18n="[placeholder]Example: username:password" placeholder="Example: username:password" value="" />
<!-- (Original Text)<b>Important:</b> run SD Web UI with the <tt>--api</tt> flag! The server must be accessible from the SillyTavern host machine. -->
<i><b data-i18n="Important:">Important:</b></i><i data-i18n="sd_auto_auth_warning_1"> run SD Web UI with the </i><i><tt>--api</tt></i><i data-i18n="sd_auto_auth_warning_2"> flag! The server must be accessible from the SillyTavern host machine.</i>
</div>
<div data-sd-source="drawthings">
<label for="sd_drawthings_url">DrawThings API URL</label>
<div class="flex-container flexnowrap">
<input id="sd_drawthings_url" type="text" class="text_pole" placeholder="Example: {{drawthings_url}}" value="{{drawthings_url}}" />
<input id="sd_drawthings_url" type="text" class="text_pole" data-i18n="[placeholder]sd_drawthings_url" placeholder="Example: {{drawthings_url}}" value="{{drawthings_url}}" />
<div id="sd_drawthings_validate" class="menu_button menu_button_icon">
<i class="fa-solid fa-check"></i>
<span data-i18n="Connect">
@ -69,14 +70,15 @@
</span>
</div>
</div>
<label for="sd_drawthings_auth">Authentication (optional)</label>
<input id="sd_drawthings_auth" type="text" class="text_pole" placeholder="Example: username:password" value="" />
<i><b>Important:</b> run DrawThings app with HTTP API switch enabled in the UI! The server must be accessible from the SillyTavern host machine.</i>
<label for="sd_drawthings_auth" data-i18n="Authentication (optional)">Authentication (optional)</label>
<input id="sd_drawthings_auth" type="text" class="text_pole" data-i18n="[placeholder]Example: username:password" placeholder="Example: username:password" value="" />
<!-- (Original Text)<b>Important:</b> run DrawThings app with HTTP API switch enabled in the UI! The server must be accessible from the SillyTavern host machine. -->
<i><b data-i18n="Important:">Important:</b></i><i data-i18n="sd_drawthings_auth_txt"> run DrawThings app with HTTP API switch enabled in the UI! The server must be accessible from the SillyTavern host machine.</i>
</div>
<div data-sd-source="vlad">
<label for="sd_vlad_url">SD.Next API URL</label>
<div class="flex-container flexnowrap">
<input id="sd_vlad_url" type="text" class="text_pole" placeholder="Example: {{vlad_url}}" value="{{vlad_url}}" />
<input id="sd_vlad_url" type="text" class="text_pole" data-i18n="[placeholder]sd_vlad_url" placeholder="Example: {{vlad_url}}" value="{{vlad_url}}" />
<div id="sd_vlad_validate" class="menu_button menu_button_icon">
<i class="fa-solid fa-check"></i>
<span data-i18n="Connect">
@ -84,12 +86,12 @@
</span>
</div>
</div>
<label for="sd_vlad_auth">Authentication (optional)</label>
<input id="sd_vlad_auth" type="text" class="text_pole" placeholder="Example: username:password" value="" />
<i>The server must be accessible from the SillyTavern host machine.</i>
<label for="sd_vlad_auth" data-i18n="Authentication (optional)">Authentication (optional)</label>
<input id="sd_vlad_auth" type="text" class="text_pole" data-i18n="[placeholder]Example: username:password" placeholder="Example: username:password" value="" />
<i data-i18n="The server must be accessible from the SillyTavern host machine.">The server must be accessible from the SillyTavern host machine.</i>
</div>
<div data-sd-source="horde">
<i>Hint: Save an API key in Horde KoboldAI API settings to use it here.</i>
<i data-i18n="Hint: Save an API key in Horde KoboldAI API settings to use it here.">Hint: Save an API key in Horde KoboldAI API settings to use it here.</i>
<label for="sd_horde_nsfw" class="checkbox_label">
<input id="sd_horde_nsfw" type="checkbox" />
<span data-i18n="Allow NSFW images from Horde">
@ -105,38 +107,38 @@
</div>
<div data-sd-source="novel">
<div class="flex-container flexFlowColumn">
<label for="sd_novel_anlas_guard" class="checkbox_label flex1" title="Automatically adjust generation parameters to ensure free image generations.">
<label for="sd_novel_anlas_guard" class="checkbox_label flex1" data-i18n="[title]Automatically adjust generation parameters to ensure free image generations." title="Automatically adjust generation parameters to ensure free image generations.">
<input id="sd_novel_anlas_guard" type="checkbox" />
<span data-i18n="Avoid spending Anlas">
Avoid spending Anlas
</span>
<span data-i18n="Opus tier" class="toggle-description">(Opus tier)</span>
</label>
<div id="sd_novel_view_anlas" class="menu_button menu_button_icon">
<div id="sd_novel_view_anlas" class="menu_button menu_button_icon" data-i18n="View my Anlas">
View my Anlas
</div>
</div>
<i>Hint: Save an API key in the NovelAI API settings to use it here.</i>
</div>
<div data-sd-source="openai">
<small>These settings only apply to DALL-E 3</small>
<small data-i18n="These settings only apply to DALL-E 3">These settings only apply to DALL-E 3</small>
<div class="flex-container">
<label for="sd_openai_style">Image Style</label>
<label for="sd_openai_style" data-i18n="Image Style">Image Style</label>
<select id="sd_openai_style">
<option value="vivid">Vivid</option>
<option value="natural">Natural</option>
</select>
<label for="sd_openai_quality">Image Quality</label>
<label for="sd_openai_quality" data-i18n="Image Quality">Image Quality</label>
<select id="sd_openai_quality">
<option value="standard">Standard</option>
<option value="hd">HD</option>
<option value="standard" data-i18n="Standard">Standard</option>
<option value="hd" data-i18n="HD">HD</option>
</select>
</div>
</div>
<div data-sd-source="comfy">
<label for="sd_comfy_url">ComfyUI URL</label>
<div class="flex-container flexnowrap">
<input id="sd_comfy_url" type="text" class="text_pole" placeholder="Example: {{comfy_url}}" value="{{comfy_url}}" />
<input id="sd_comfy_url" type="text" class="text_pole" data-i18n="[placeholder]sd_comfy_url" placeholder="Example: {{comfy_url}}" value="{{comfy_url}}" />
<div id="sd_comfy_validate" class="menu_button menu_button_icon">
<i class="fa-solid fa-check"></i>
<span data-i18n="Connect">
@ -144,17 +146,17 @@
</span>
</div>
</div>
<p><i><b>Important:</b> The server must be accessible from the SillyTavern host machine.</i></p>
<p><i><b data-i18n="Important:">Important:</b></i><i data-i18n="The server must be accessible from the SillyTavern host machine."> The server must be accessible from the SillyTavern host machine.</i></p>
<label for="sd_comfy_workflow">ComfyUI Workflow</label>
<div class="flex-container flexnowrap">
<select id="sd_comfy_workflow" class="flex1 text_pole"></select>
<div id="sd_comfy_open_workflow_editor" class="menu_button menu_button_icon" title="Open workflow editor">
<div id="sd_comfy_open_workflow_editor" class="menu_button menu_button_icon" data-i18n="[title]Open workflow editor" title="Open workflow editor">
<i class="fa-solid fa-pen-to-square"></i>
</div>
<div id="sd_comfy_new_workflow" class="menu_button menu_button_icon" title="Create new workflow">
<div id="sd_comfy_new_workflow" class="menu_button menu_button_icon" data-i18n="[title]Create new workflow" title="Create new workflow">
<i class="fa-solid fa-plus"></i>
</div>
<div id="sd_comfy_delete_workflow" class="menu_button menu_button_icon" title="Delete workflow">
<div id="sd_comfy_delete_workflow" class="menu_button menu_button_icon" data-i18n="[title]Delete workflow" title="Delete workflow">
<i class="fa-solid fa-trash-can"></i>
</div>
</div>
@ -178,17 +180,17 @@
</label>
</div>
</div>
<label for="sd_scale">CFG Scale (<span id="sd_scale_value"></span>)</label>
<label for="sd_scale" data-i18n="CFG Scale">CFG Scale (<span id="sd_scale_value"></span>)</label>
<input id="sd_scale" type="range" min="{{scale_min}}" max="{{scale_max}}" step="{{scale_step}}" value="{{scale}}" />
<label for="sd_steps">Sampling steps (<span id="sd_steps_value"></span>)</label>
<label for="sd_steps" data-i18n="Sampling steps">Sampling steps (<span id="sd_steps_value"></span>)</label>
<input id="sd_steps" type="range" min="{{steps_min}}" max="{{steps_max}}" step="{{steps_step}}" value="{{steps}}" />
<label for="sd_width">Width (<span id="sd_width_value"></span>)</label>
<label for="sd_width" data-i18n="Width">Width (<span id="sd_width_value"></span>)</label>
<input id="sd_width" type="range" max="{{dimension_max}}" min="{{dimension_min}}" step="{{dimension_step}}" value="{{width}}" />
<label for="sd_height">Height (<span id="sd_height_value"></span>)</label>
<label for="sd_height" data-i18n="Height">Height (<span id="sd_height_value"></span>)</label>
<input id="sd_height" type="range" max="{{dimension_max}}" min="{{dimension_min}}" step="{{dimension_step}}" value="{{height}}" />
<label for="sd_model">Model</label>
<label for="sd_model" data-i18n="Model">Model</label>
<select id="sd_model"></select>
<label for="sd_sampler">Sampling method</label>
<label for="sd_sampler" data-i18n="Sampling method">Sampling method</label>
<select id="sd_sampler"></select>
<label data-sd-source="horde" for="sd_horde_karras" class="checkbox_label">
<input id="sd_horde_karras" type="checkbox" />
@ -197,23 +199,23 @@
</span>
</label>
<div data-sd-source="novel" class="flex-container">
<label class="flex1 checkbox_label" title="SMEA versions of samplers are modified to perform better at high resolution.">
<label class="flex1 checkbox_label" data-i18n="[title]SMEA versions of samplers are modified to perform better at high resolution." title="SMEA versions of samplers are modified to perform better at high resolution.">
<input id="sd_novel_sm" type="checkbox" />
<span data-i18n="SMEA">
SMEA
</span>
</label>
<label class="flex1 checkbox_label" title="DYN variants of SMEA samplers often lead to more varied output, but may fail at very high resolutions.">
<label class="flex1 checkbox_label" data-i18n="[title]DYN variants of SMEA samplers often lead to more varied output, but may fail at very high resolutions." title="DYN variants of SMEA samplers often lead to more varied output, but may fail at very high resolutions.">
<input id="sd_novel_sm_dyn" type="checkbox" />
<span data-i18n="DYN">
DYN
</span>
</label>
</div>
<label for="sd_resolution">Resolution</label>
<label for="sd_resolution" data-i18n="Resolution">Resolution</label>
<select id="sd_resolution"><!-- Populated in JS --></select>
<div data-sd-source="comfy">
<label for="sd_scheduler">Scheduler</label>
<label for="sd_scheduler" data-i18n="Scheduler">Scheduler</label>
<select id="sd_scheduler"></select>
</div>
<div data-sd-source="comfy">
@ -223,54 +225,54 @@
<div class="flex-container marginTop10 margin-bot-10px">
<label class="flex1 checkbox_label">
<input id="sd_restore_faces" type="checkbox" />
Restore Faces
<span data-i18n="Restore Faces">Restore Faces</span>
</label>
<label class="flex1 checkbox_label">
<input id="sd_enable_hr" type="checkbox" />
Hires. Fix
<span data-i18n="Hires. Fix">Hires. Fix</span>
</label>
</div>
<div data-sd-source="auto,vlad">
<label for="sd_hr_upscaler">Upscaler</label>
<label for="sd_hr_upscaler" data-i18n="Upscaler">Upscaler</label>
<select id="sd_hr_upscaler"></select>
<label for="sd_hr_scale">Upscale by (<span id="sd_hr_scale_value"></span>)</label>
<label for="sd_hr_scale"><span data-i18n="Upscale by">Upscale by</span> (<span id="sd_hr_scale_value"></span>)</label>
<input id="sd_hr_scale" type="range" min="{{hr_scale_min}}" max="{{hr_scale_max}}" step="{{hr_scale_step}}" value="{{hr_scale}}" />
<label for="sd_denoising_strength">Denoising strength (<span id="sd_denoising_strength_value"></span>)</label>
<label for="sd_denoising_strength"><span data-i18n="Denoising strength">Denoising strength</span> (<span id="sd_denoising_strength_value"></span>)</label>
<input id="sd_denoising_strength" type="range" min="{{denoising_strength_min}}" max="{{denoising_strength_max}}" step="{{denoising_strength_step}}" value="{{denoising_strength}}" />
<label for="sd_hr_second_pass_steps">Hires steps (2nd pass) (<span id="sd_hr_second_pass_steps_value"></span>)</label>
<label for="sd_hr_second_pass_steps"><span data-i18n="Hires steps (2nd pass)">Hires steps (2nd pass)</span> (<span id="sd_hr_second_pass_steps_value"></span>)</label>
<input id="sd_hr_second_pass_steps" type="range" min="{{hr_second_pass_steps_min}}" max="{{hr_second_pass_steps_max}}" step="{{hr_second_pass_steps_step}}" value="{{hr_second_pass_steps}}" />
</div>
<div data-sd-source="novel">
<label for="sd_novel_upscale_ratio">Upscale by (<span id="sd_novel_upscale_ratio_value"></span>)</label>
<label for="sd_novel_upscale_ratio"><span data-i18n="Upscale by">Upscale by</span> (<span id="sd_novel_upscale_ratio_value"></span>)</label>
<input id="sd_novel_upscale_ratio" type="range" min="{{novel_upscale_ratio_min}}" max="{{novel_upscale_ratio_max}}" step="{{novel_upscale_ratio_step}}" value="{{novel_upscale_ratio}}" />
</div>
<hr>
<h4 title="Preset for prompt prefix and negative prompt">
Style
<h4 data-i18n="[title]Preset for prompt prefix and negative prompt" title="Preset for prompt prefix and negative prompt">
<span data-i18n="Style">Style</span>
</h4>
<div class="flex-container">
<select id="sd_style" class="flex1 text_pole"></select>
<div id="sd_save_style" title="Save style" class="menu_button">
<div id="sd_save_style" data-i18n="[title]Save style" title="Save style" class="menu_button">
<i class="fa-solid fa-save"></i>
</div>
</div>
<label for="sd_prompt_prefix">Common prompt prefix</label>
<textarea id="sd_prompt_prefix" class="text_pole textarea_compact" rows="3" placeholder="Use {prompt} to specify where the generated prompt will be inserted"></textarea>
<label for="sd_negative_prompt">Negative prompt</label>
<label for="sd_prompt_prefix" data-i18n="Common prompt prefix">Common prompt prefix</label>
<textarea id="sd_prompt_prefix" class="text_pole textarea_compact" rows="3" data-i18n="[placeholder]sd_prompt_prefix_placeholder" placeholder="Use {prompt} to specify where the generated prompt will be inserted"></textarea>
<label for="sd_negative_prompt" data-i18n="Negative common prompt prefix">Negative common prompt prefix</label>
<textarea id="sd_negative_prompt" class="text_pole textarea_compact" rows="3"></textarea>
<div id="sd_character_prompt_block">
<label for="sd_character_prompt">Character-specific prompt prefix</label>
<small>Won't be used in groups.</small>
<textarea id="sd_character_prompt" class="text_pole textarea_compact" rows="3" placeholder="Any characteristics that describe the currently selected character. Will be added after a common prefix.&#10;Example: female, green eyes, brown hair, pink shirt"></textarea>
<label for="sd_character_negative_prompt">Character-specific negative prompt prefix</label>
<small>Won't be used in groups.</small>
<textarea id="sd_character_negative_prompt" class="text_pole textarea_compact" rows="3" placeholder="Any characteristics that should not appear for the selected character. Will be added after a negative common prefix.&#10;Example: jewellery, shoes, glasses"></textarea>
<label for="sd_character_prompt" data-i18n="Character-specific prompt prefix">Character-specific prompt prefix</label>
<small data-i18n="Won't be used in groups.">Won't be used in groups.</small>
<textarea id="sd_character_prompt" class="text_pole textarea_compact" rows="3" data-i18n="[placeholder]sd_character_prompt_placeholder" placeholder="Any characteristics that describe the currently selected character. Will be added after a common prompt prefix.&#10;Example: female, green eyes, brown hair, pink shirt"></textarea>
<label for="sd_character_negative_prompt" data-i18n="Character-specific negative prompt prefix">Character-specific negative prompt prefix</label>
<small data-i18n="Won't be used in groups.">Won't be used in groups.</small>
<textarea id="sd_character_negative_prompt" class="text_pole textarea_compact" rows="3" data-i18n="[placeholder]sd_character_negative_prompt_placeholder" placeholder="Any characteristics that should not appear for the selected character. Will be added after a negative common prompt prefix.&#10;Example: jewellery, shoes, glasses"></textarea>
</div>
</div>
</div>
<div class="inline-drawer">
<div class="inline-drawer-toggle inline-drawer-header">
<b>Image Prompt Templates</b>
<b data-i18n="Image Prompt Templates">Image Prompt Templates</b>
<div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div>
</div>
<div id="sd_prompt_templates" class="inline-drawer-content">

View File

@ -4,6 +4,7 @@ Text formatting commands:
<li><tt>**text**</tt> - displays as <b>bold</b></li>
<li><tt>***text***</tt> - displays as <b><i>bold italics</i></b></li>
<li><tt>__text__</tt> - displays as an <u>underline</u></li>
<li><tt>~~text~~</tt> - displays as a <del>strikethough</del></li>
<li><tt>[text](url)</tt> - displays as a <a href="#">hyperlink</a></li>
<li><tt>![text](url)</tt> - displays as an image</li>
<li><tt>```text```</tt> - displays as a code block (new lines allowed between the backticks)</li>