このページは編集途中です
このWikiは主に日本語対応ローカルLLM(大規模言語モデル)関連のメモ的なWikiです。
SillyTavernの使い方などを解説します。
ページの内容が古かったり誤った情報が載っているかもなので気をつけて下さい。
SillyTavernのGitHub
SillyTavern公式Wiki
編集履歴:
260621:「画像プロンプトテンプレート」項目の追加、記載


BOT(AIキャラクター)の作成を行います。
ページ上部の一番右の「キャラクター管理」をクリックします。
「新しいキャラクターを作成」からキャラクター名、キャラクターの説明、最初のメッセージを入力して「キャラクターを作成」をクリックします。
「 {{user}} 」は現在のユーザー名に、「 {{char}} 」は「キャラクター名」で設定した名前に置き換えられます。
キャラクター設定の書き方などは【ローカルLLM】SillyTavern向けプロンプト記述方法などページをご覧ください。
キャラクターカードの配布などはSillyTavernのRP用キャラクターカードなどの配布スレをご覧ください。

言語モデルを使用してテキストを生成するときのサンプリングプロセスを制御します。
これらの設定は、サポートされているすべてのバックエンドに共通です。
※Text generation web UIのParameters → Generationのように言語モデルのパラメーターの(プリセットへ)設定、変更などが行えます。

https://docs.sillytavern.app/usage/prompts/
APIが「テキスト補完 API」の場合にのみ、このセクションの設定は有効です。
APIが「チャット完了 API」の場合はこのセクションの設定は無効化されます。
※「チャット完了 API」の場合は「Common Settings(AI応答の構成) / チャット完了のプリセット」でシステムプロンプトなどを設定できます。

https://docs.sillytavern.app/usage/core-concepts/w...
World Info / LoreBookと呼ばれる機能でチャットにプロンプトを動的に挿入します。
仕組みとしては、あらかじめトリガーワードとそれに関連付けされたプロンプトを設定しておいて、トリガーワードを含む内容が入力された、あるいはLLMの応答に含まれていた際に、その関連付けされたプロンプトをLLMへ渡す...という物です。

あらかじめ、キャラクターの表情差分などを作成しておいてチャットの文脈などに応じて表情などの差分を切り替える機能です。
「ローカル」なら「Translate text to English before classification (分類前にテキストを英語に翻訳する)」をONにした方が良い?
関連リンク:

「拡張機能とアセットをダウンロード」の「Assets URL」の接続アイコンをクリックします。

アセットリストが更新されるので、検索欄に「vrm」と入力して「VRM」拡張機能をインストールします。
SillyTavernをインストールしたフォルダを開いていき、「vrm」フォルダ内に「model」と「animation」という名前のフォルダを作ります。
それぞれ、VRMモデルとアニメーションデータの配置場所です。
この記事では例として、下記のVRMモデルを利用させてもらいます。 ダウンロードして解凍したら中のVRMファイルを上記の「model」フォルダに入れます。
また、アニメーションデータとして下記の物を利用させてもらいます。
上記のURLの緑色の「Code」からZIPファイルをダウンロード、中の「animation」内のアニメーションデータを「animation」フォルダに入れます。

SillyTavernの「ユーザー設定」からUIの「ワイフモード」にチェックを入れます。
こうしないとVRMモデルが表示されません(チャットログに隠れてしまう)

公式解説ページ
SillyTavernとComfyUIなどを連携してチャット内容に応じた画像を生成できる拡張機能です。
画像生成のバックエンドとしてローカルの「AUTOMATIC1111」、「ComfyUI」のほか有料ですがNanoGPTなどのクラウドサービスにも対応しています。
また、ユーザーがチャットメッセージで画像を生成する意図を説明する必要があります。例:「猫の写真を送って」、「自撮りした写真を送って」
ComfyUIの場合、「Server Type」が選択できますがローカル環境なら「Standard Server」でOKです。
「ComfyUI URL」にComfyUIのサーバーIP、portを入力します。(例:http://192.168.0.123:8188)
「共通のネガティブプロンプトプレフィックス」で画像生成モデルの推奨ネガティブプロンプトを記述します。
「共通のプロンプトプレフィックス/共通のネガティブプロンプトプレフィックス」はLLMによって生成された画像生成プロンプトの前に常に追加されます。
「キャラクター固有のプロンプトプレフィックス/キャラクター固有のネガティブプロンプトプレフィックス」STでキャラクターカードを選択した状態でこの項目にキャラクターの特徴やLoraなどを記述します。グループチャットでは使用されません。オリキャラの場合はここにキャラクターの外見などを記述しない方が良かったです。(原作ありのキャラならここに正式なDanbooruタグ名を記載しておくと良いかもしれません)

https://docs.sillytavern.app/usage/core-concepts/p...
チャットで演じるユーザー自身のペルソナの管理画面です。
性別や趣向、AIキャラクターとの関係などを記載します。

上記の画像を参考に新しいキャラクターの作成アイコンをクリックします。

キャラクター名でキャラクターの名前を設定します。
キャラクターの説明にはキャラクターの性別や趣向などを記載します。
最初のメッセージにはチャット開始時に表示される最初のメッセージを記載します。
キャラクターのプロンプトの書き方については【ローカルLLM】SillyTavern向けプロンプト記述方法などをご覧ください。

Qwen系などの非思考モードと思考モードに切り替えることのできるモデルでSillyTavern上の設定から思考を強制する方法を記載しておきます。
「高度なフォーマット」の「コンテキストテンプレート」や「Instruct Template」を該当モデルの物に設定したうえで
「コンテキストのフォーマット」の「プロンプトにキャラクターの名前を常に追加する」をOFFに、「Instruct Template」の「名前を含める」を「Never」に、「Reasoning Formatting」の「Prefix」を「<think>{{newline}}」、「Suffix」に「{{newline}}</think>」、「返信の開始」に「<think>{{newline}}」、「チャットで返信の接頭辞を表示」をON
モデルにもよると思いますがこれで強制的に思考させられるかと(もちろん、思考に対応していないモデルには意味がない)
参考リンク:How to properly use Reasoning models in ST(STで推論モデルを適切に使用する方法)
このWikiは主に日本語対応ローカルLLM(大規模言語モデル)関連のメモ的なWikiです。
SillyTavernの使い方などを解説します。
ページの内容が古かったり誤った情報が載っているかもなので気をつけて下さい。
SillyTavernのGitHub
SillyTavern公式Wiki
編集履歴:
260621:「画像プロンプトテンプレート」項目の追加、記載
SillyTavernは大規模言語モデルのフロントエンド(WebUI)です。
SillyTavern単体では言語モデルをロードするバックエンド機能などを持たず、バックエンドとしてoobabooga/text-generation-webuiやkoboldcppなどとAPI接続する必要があります。
SillyTavern自体はバックエンドとなるソフトウェアと同じPC(サーバー)内で稼働させる必要はなく、ネットワーク上にある別のコンピューターでも動作可能です。
(例えばNASでバックエンドとなるソフトウェアを動かし、PCの方でSillyTavernを動かしたりもOK)
※このWikiでは扱わないがローカルLLMではなくクラウドLLMサービスと接続することもできたりする
text-generation-webuiやkoboldcppは自前のフロントエンドを持っていますがSillyTavernはロールプレイ/チャット機能に特化していてユーザーとAIキャラクター、またはAIキャラクター同士のグループチャット機能なんかもあります。
このページではバックエンドとしてoobabooga/text-generation-webuiを使います。
Text generation web UIページを参考にAPIを有効化しておく必要があります。
SillyTavern単体では言語モデルをロードするバックエンド機能などを持たず、バックエンドとしてoobabooga/text-generation-webuiやkoboldcppなどとAPI接続する必要があります。
SillyTavern自体はバックエンドとなるソフトウェアと同じPC(サーバー)内で稼働させる必要はなく、ネットワーク上にある別のコンピューターでも動作可能です。
(例えばNASでバックエンドとなるソフトウェアを動かし、PCの方でSillyTavernを動かしたりもOK)
※このWikiでは扱わないがローカルLLMではなくクラウドLLMサービスと接続することもできたりする
text-generation-webuiやkoboldcppは自前のフロントエンドを持っていますがSillyTavernはロールプレイ/チャット機能に特化していてユーザーとAIキャラクター、またはAIキャラクター同士のグループチャット機能なんかもあります。
このページではバックエンドとしてoobabooga/text-generation-webuiを使います。
Text generation web UIページを参考にAPIを有効化しておく必要があります。
※Windowsが制御するフォルダー (Program Files、System32など) にはインストールしないでください。
※NODEJS 18.16 を実行できないため、Windows 7 へのインストールは不可能です。
※管理者権限でSTART.BATを実行しないでください
※NODEJS 18.16 を実行できないため、Windows 7 へのインストールは不可能です。
※管理者権限でSTART.BATを実行しないでください
- NodeJS(最新のLTS Ver)をインストールします。
- Windows用Gitをインストールします。
- Windowsエクスプローラー(Win+E)を開き、ランチャーをインストールするフォルダーを作成または選択します。
- 上部の”アドレスバー”をクリックして"cmd"と入力してEnter キーを押し、そのフォルダー内でコマンドプロンプトを開きます。
- コマンドプロンプトに次のコマンドを入力してgitからcloneします。
git clone https://github.com/SillyTavern/SillyTavern -b release
- cloneが完了したらコマンドプロンプトを閉じて、SillyTavernフォルダ内のStart.batをダブルクリックして実行します。
SillyTavernフォルダ内のUpdateAndStart.batをダブルクリックして実行します。
※アップデートするとLLMの出力がおかしくなる(同じ日本語対応モデルで以前は問題なかったのに英文が混じったりする)事がありました。
設定などを削除してクリーンインストールすると改善したのでご注意ください。
※アップデートするとLLMの出力がおかしくなる(同じ日本語対応モデルで以前は問題なかったのに英文が混じったりする)事がありました。
設定などを削除してクリーンインストールすると改善したのでご注意ください。
キーボードの[Windowsキー] + [R]から"ファイル名を指定して実行"ダイアログボックスを出します。
下記のコマンドを実行してgitをインストールします。
Windowsエクスプローラー(Win+E)を開き、ランチャーをインストールするフォルダーを作成または選択します。
上部の”アドレスバー”をクリックして"cmd"と入力してEnter キーを押し、そのフォルダー内でコマンドプロンプトを開きます。
コマンドプロンプトに下記のコマンドを入力して[Enter]キーを押してインストールします。

"1"と入力してSillyTavernをインストールします。
次回以降の起動方法は"Launcher.bat"をダブルクリックし、"1"または、"2"と入力すればOKです。
下記のコマンドを実行してgitをインストールします。
cmd /c winget install -e --id Git.Git
Windowsエクスプローラー(Win+E)を開き、ランチャーをインストールするフォルダーを作成または選択します。
上部の”アドレスバー”をクリックして"cmd"と入力してEnter キーを押し、そのフォルダー内でコマンドプロンプトを開きます。
コマンドプロンプトに下記のコマンドを入力して[Enter]キーを押してインストールします。
git clone https://github.com/SillyTavern/SillyTavern-Launcher.git && cd SillyTavern-Launcher && start installer.bat

"1"と入力してSillyTavernをインストールします。
次回以降の起動方法は"Launcher.bat"をダブルクリックし、"1"または、"2"と入力すればOKです。
SillyTavernフォルダ内のLauncher.batをダブルクリックして実行し、"1"と入力してアップデートします。
※アップデートするとLLMの出力がおかしくなる(同じ日本語対応モデルで以前は問題なかったのに英文が混じったりする)事がありました。
設定などを削除してクリーンインストールすると改善したのでご注意ください。
※アップデートするとLLMの出力がおかしくなる(同じ日本語対応モデルで以前は問題なかったのに英文が混じったりする)事がありました。
設定などを削除してクリーンインストールすると改善したのでご注意ください。
GitHubからcloneしてDockerを立ち上げます。
事前に下記のソフトウェアがインストール済みである必要があります。
LAN内の別PCからアクセスできるように「config.yaml」の「whitelist:」に「192.168.0.*」を追記します。(ネットワーク環境によっては192.168.1.*だったりします)
SillyTavernを再起動させます。
完了したらブラウザでhttp://<PCのアドレス>:8000/を開きます。(デフォルトのportの場合)
事前に下記のソフトウェアがインストール済みである必要があります。
- docker
- docker compose
git clone https://github.com/SillyTavern/SillyTavern -b release
cd docker && docker-compose up -d
LAN内の別PCからアクセスできるように「config.yaml」の「whitelist:」に「192.168.0.*」を追記します。(ネットワーク環境によっては192.168.1.*だったりします)
# config.yaml whitelistMode: true enableForwardedWhitelist: true whitelist: - ::1 - 127.0.0.1 - 192.168.0.*
SillyTavernを再起動させます。
完了したらブラウザでhttp://<PCのアドレス>:8000/を開きます。(デフォルトのportの場合)
gitからcloneしたディレクトリに移動して
※アップデートするとLLMの出力がおかしくなる(同じ日本語対応モデルで以前は問題なかったのに英文が混じったりする)事がありました。
設定などを削除してクリーンインストールすると改善したのでご注意ください。
docker compose pull
※アップデートするとLLMの出力がおかしくなる(同じ日本語対応モデルで以前は問題なかったのに英文が混じったりする)事がありました。
設定などを削除してクリーンインストールすると改善したのでご注意ください。
SillyTavern Launcherのダウンロード
SillyTavern Launcherのインストール
SillyTavern Launcherの起動
git clone https://github.com/SillyTavern/SillyTavern-Launcher && cd SillyTavern-Launcher
SillyTavern Launcherのインストール
chmod +x install.sh && ./install.sh
SillyTavern Launcherの起動
chmod +x launcher.sh && ./launcher.sh
oobabooga/text-generation-webuiのAPI機能をText generation web UIのページを参考に有効化したものとして進めます。
※SillyTavern自体は言語モデルをロードする機能を持たないのでtext-generation-webuiなどの他のソフトウェアをバックエンドとしてセットアップする必要があります。
oobabooga/text-generation-webuiのAPI機能を有効化してtext-generation-webuiを起動したら言語モデルをロードします。
今回は例としてTheBloke/Swallow-13B-Instruct-AWQをロードしました。
言語モデルのダウンロード、ロード方法についてはこちらのページをご覧下さい。

SillyTavernページ上部のコンセントアイコンをクリックしてAPI設定を開きます。
「API」を「テキスト補完」に、「APIタイプ」を「デフォルト (OpenAI /補完互換: Oobabooga、LM Studio など)」に変更します。
「サーバーURL」に
あとは「接続」をクリックすれば接続されます。
ついでに「前回のサーバーに自動接続」オプションも有効にしておくと良いかもしれません。
※上部の「Connection Profile」からAPIのサーバ接続設定やシステムプロンプト、指示モードやコンテキストテンプレートなどの設定を保存できます。
※SillyTavern自体は言語モデルをロードする機能を持たないのでtext-generation-webuiなどの他のソフトウェアをバックエンドとしてセットアップする必要があります。
oobabooga/text-generation-webuiのAPI機能を有効化してtext-generation-webuiを起動したら言語モデルをロードします。
今回は例としてTheBloke/Swallow-13B-Instruct-AWQをロードしました。
言語モデルのダウンロード、ロード方法についてはこちらのページをご覧下さい。
http://<text-generation-webuiを実行しているPCのアドレス>:5000/docsにブラウザでアクセスしてoobabooga/text-generation-webuiのAPI機能が有効なのを確認します。

SillyTavernページ上部のコンセントアイコンをクリックしてAPI設定を開きます。
「API」を「テキスト補完」に、「APIタイプ」を「デフォルト (OpenAI /補完互換: Oobabooga、LM Studio など)」に変更します。
「サーバーURL」に
http://<text-generation-webuiを実行しているPCのアドレス>:5000(同一PCで実行しているなら、http://127.0.0.1:5000など...)と入力します。
あとは「接続」をクリックすれば接続されます。
ついでに「前回のサーバーに自動接続」オプションも有効にしておくと良いかもしれません。
※上部の「Connection Profile」からAPIのサーバ接続設定やシステムプロンプト、指示モードやコンテキストテンプレートなどの設定を保存できます。
【NanoGPT】月12ドルでオープンウェイトモデルが実質使い放題のLLMサービスの記事をご覧ください。


BOT(AIキャラクター)の作成を行います。
ページ上部の一番右の「キャラクター管理」をクリックします。
「新しいキャラクターを作成」からキャラクター名、キャラクターの説明、最初のメッセージを入力して「キャラクターを作成」をクリックします。
「 {{user}} 」は現在のユーザー名に、「 {{char}} 」は「キャラクター名」で設定した名前に置き換えられます。
キャラクター設定の書き方などは【ローカルLLM】SillyTavern向けプロンプト記述方法などページをご覧ください。
キャラクターカードの配布などはSillyTavernのRP用キャラクターカードなどの配布スレをご覧ください。
チャット入力欄に下記のコマンドを入力する事でいろいろできます。
SillyTavernのチャット欄に/help slashと入力すれば最新のスラッシュコマンドの一覧が表示されます。
SillyTavernのチャット欄に/help slashと入力すれば最新のスラッシュコマンドの一覧が表示されます。
- /help ヘルプメッセージを表示します
- /api 別のAPIに切り替える
- /sys システムナレーターとして中立的なメッセージを送信します (場面転換などにも使えます, 例:「 /sys *数カ月後* 」 ...など)
- /send 生成をトリガーせずにユーザーとしてメッセージを送信する
- /sendas 特定の文字としてメッセージを送信する
- /comment AIには見えないチャットにコメントを追加します
- /impersonate オプションのプロンプトを使ってAIにあなたと同じように書いてもらう (" /imp 相手の提案を受け入れる "...などと記述すると、LLMがそれに応じてユーザーの返信内容を自動生成してくれます,※返信自体は手動でする必要がある)
- /persona ユーザーペルソナを設定する
- /imagine テキストプロンプトから画像を生成する
- /bg ファイル名で背景画像を設定する

言語モデルを使用してテキストを生成するときのサンプリングプロセスを制御します。
これらの設定は、サポートされているすべてのバックエンドに共通です。
※Text generation web UIのParameters → Generationのように言語モデルのパラメーターの(プリセットへ)設定、変更などが行えます。
APIが応答(レスポンス)するために生成するトークンの最大数
AIからの返信が短いと感じる場合はこの値を大きくします。
AIからの返信が短いと感じる場合はこの値を大きくします。
- 応答(レスポンス)の長さが長いほど、応答の生成にかかる時間が長くなります。
- APIでサポートされている場合は、”ストリーミング”オプションを有効化することで生成中の応答を少しずつ表示することができます。オフの場合、応答が完了した時点で一括表示されます。
SillyTavernがプロンプトとしてAPIに送信するトークンの最大数から応答の長さを引いたもの
- コンテキストは文字情報、システム プロンプト、チャット履歴などで構成されます。
- メッセージ間の点線は、チャットのコンテキスト範囲を示します。その線を超えるメッセージはAIに送信されません。
- ロックを解除
生成されるテキスト(トークン)のランダム性を制御します。
値が大きいほどランダム性が高くなります。
※値を上げると創造的になり、小説の執筆などに向く。逆に下げるとQ&Aなどの回答の質が上がる?
値が大きいほどランダム性が高くなります。
※値を上げると創造的になり、小説の執筆などに向く。逆に下げるとQ&Aなどの回答の質が上がる?
コンテキスト内でのトークンの出現頻度に基づいてトークンにペナルティを課すことで、繰り返しを抑制しようとします。
- 場合によっては、キャラクターが何かに固執している場合、または同じフレーズを繰り返す場合、このパラメータを増やすと役立つことがあります。
最後に生成されたトークンからのトークンの数が反復ペナルティの対象となります。 「the、a、and」などの一般的な単語が最もペナルティを受けるため、設定が高すぎると応答が中断される可能性があります。
※無効にするには、値を 0 に設定します。
※無効にするには、値を 0 に設定します。
トップトークンの可能性に基づいて温度を動的に調整します。一貫性を犠牲にすることなく、よりクリエイティブな出力を生み出すことを目指します。
最低temperatureから最高temperatureまでのtemperature範囲を受け入れます。
最低temperatureから最高temperatureまでのtemperature範囲を受け入れます。
バックエンドAPIがNanoGPTなど、「チャット完了 API」の場合は、後述する「高度なフォーマット」の設定が無効になる代わりに、このセクション内の「クイックプロンプトの編集」などでシステムプロンプトや脱獄文などを記述できます。

https://docs.sillytavern.app/usage/prompts/
APIが「テキスト補完 API」の場合にのみ、このセクションの設定は有効です。
APIが「チャット完了 API」の場合はこのセクションの設定は無効化されます。
※「チャット完了 API」の場合は「Common Settings(AI応答の構成) / チャット完了のプリセット」でシステムプロンプトなどを設定できます。
https://docs.sillytavern.app/usage/prompts/context...
LLMにキャラクターデータなどを適切な形式で提供するためのテンプレートです。
例えば、システムプロンプトはこの位置に、キャラクター設定はこの位置、ユーザーのペルソナ設定はこの位置に配置してLLMに渡す...などといった設定です。
あらかじめ、言語モデルごとにプリセットが用意されているのでその言語モデルに適したプリセットを使用するのが良いかと。
LLMにキャラクターデータなどを適切な形式で提供するためのテンプレートです。
例えば、システムプロンプトはこの位置に、キャラクター設定はこの位置、ユーザーのペルソナ設定はこの位置に配置してLLMに渡す...などといった設定です。
あらかじめ、言語モデルごとにプリセットが用意されているのでその言語モデルに適したプリセットを使用するのが良いかと。
このフィールドは、プリチャット文字データ (内部的にはストーリー文字列として知られています) のテンプレートです。これは、テキスト補完用にキャラクターカードをフォーマットし、モデルに指示する主な方法です。
このテンプレートは、Handlebars構文とカスタムテキストインジェクションまたは書式設定をサポートしています。こちらの言語リファレンスを参照してください: https://handlebarsjs.com/guide/
次のパラメータを Handlebars エバリュエーターに提供します (二重中括弧{{}}で囲みます)。
特別な {{trim}} マクロがサポートされており、前後の改行を削除できます。テキストの一部を前の行から改行で区切らない (スペースは切り取られない) 場合に使用します。
警告: 上記のパラメータの一部がストーリー文字列テンプレートにない場合、それらはプロンプトでまったく送信されません。
このテンプレートは、Handlebars構文とカスタムテキストインジェクションまたは書式設定をサポートしています。こちらの言語リファレンスを参照してください: https://handlebarsjs.com/guide/
次のパラメータを Handlebars エバリュエーターに提供します (二重中括弧{{}}で囲みます)。
- description キャラクターの説明
- scenario キャラクターのシナリオ
- personality キャラクターの性格
- system [命令モード] システムプロンプトまたはキャラクターのメイン プロンプト オーバーライド(存在し、ユーザー設定で「文字プロンプトを優先」が有効になっている場合)
- persona 選択したペルソナの説明
- char キャラクターの名前
- user 選択したペルソナ名
- wiBeforeまたはloreBefore 位置を「Before Char Defs」に設定してアクティブ化されたワールド情報エントリを結合します
- wiAfterまたはloreAfter 位置を「キャラ定義後」に設定して、アクティブ化されたワールド情報エントリを結合します
- mesExamples (オプション) 区切り文字で指示形式にされたキャラクターの例のダイアログ。重複を避けるため、「例のメッセージの動作」を「例を含めない」に設定します。
特別な {{trim}} マクロがサポートされており、前後の改行を削除できます。テキストの一部を前の行から改行で区切らない (スペースは切り取られない) 場合に使用します。
警告: 上記のパラメータの一部がストーリー文字列テンプレートにない場合、それらはプロンプトでまったく送信されません。
キャラクターカードの「対話の例」内の「<START>」タグはこのフィールドの内容に置き換えられます。
「思考」モデルを使っていて、キャラクターカードの「会話の例」を過去の会話履歴と認識されてしまう場合などは、この「例のセパレータ」欄に「会話の例」などと入力すると期待した動作になるかと
「思考」モデルを使っていて、キャラクターカードの「会話の例」を過去の会話履歴と認識されてしまう場合などは、この「例のセパレータ」欄に「会話の例」などと入力すると期待した動作になるかと
キャラクターカードの「最初のメッセージ」の前に区切り文字として挿入されます。
こちらも、「思考」モデルを使っていてキャラクターカードの「会話の例」を過去の会話履歴と認識されてしまう場合などに「チャット開始」欄に「チャット開始」などに置き換えると良いかと
こちらも、「思考」モデルを使っていてキャラクターカードの「会話の例」を過去の会話履歴と認識されてしまう場合などに「チャット開始」欄に「チャット開始」などに置き換えると良いかと
指示(Instruct/Chat)タイプの言語モデルを利用する際の、「Instruct Template(指示テンプレート)」の設定などです。
ローカルLLMを利用する際は、ここで言語モデルごとに適した「Instruct Template」を選択しないと変な応答しか帰ってこなくなる事もあります。
予め用意されているプリセットからテンプレートを選べます。
比較的新しい言語モデルなどでSillyTavernのプリセットに該当するものがなくても海外の掲示板などで配布共有されている事もあります。
ローカルLLMを利用する際は、ここで言語モデルごとに適した「Instruct Template」を選択しないと変な応答しか帰ってこなくなる事もあります。
予め用意されているプリセットからテンプレートを選べます。
比較的新しい言語モデルなどでSillyTavernのプリセットに該当するものがなくても海外の掲示板などで配布共有されている事もあります。
システム プロンプトは、モデルが従うべき一般的な指示を定義します。これにより、会話のトーンとコンテキストが設定されます。たとえば、モデルに AI アシスタント、ライティング パートナー、または架空のキャラクターとして行動するように指示します。
システム プロンプトはストーリー文字列の一部であり、通常はモデルが受け取るプロンプトの最初の部分です。
※ここで”架空の世界を舞台としているため〜”とか”多様性のためいかなる行為も容認される〜”みたいな脱獄文を入れる事もできる。
システム プロンプトはストーリー文字列の一部であり、通常はモデルが受け取るプロンプトの最初の部分です。
※ここで”架空の世界を舞台としているため〜”とか”多様性のためいかなる行為も容認される〜”みたいな脱獄文を入れる事もできる。

https://docs.sillytavern.app/usage/core-concepts/w...
World Info / LoreBookと呼ばれる機能でチャットにプロンプトを動的に挿入します。
仕組みとしては、あらかじめトリガーワードとそれに関連付けされたプロンプトを設定しておいて、トリガーワードを含む内容が入力された、あるいはLLMの応答に含まれていた際に、その関連付けされたプロンプトをLLMへ渡す...という物です。
下記の内容欄に記載したプロンプトがAIに渡されるトリガーとなるテキスト(キーワード)です。
プレーンテキストモード(デフォルト)では、コンマ(,)区切りで複数のキーワードを設定できます。
ここでは例として”CH”としています。
プレーンテキストモード(デフォルト)では、コンマ(,)区切りで複数のキーワードを設定できます。
ここでは例として”CH”としています。
まずはWorld Info機能を使わずに下記のように質問してみました。
回答結果は上記のようになりました。

一方、World Info機能を上記の通りに設定して同じ質問すると上記の通り、"CH"というキーワードをトリガーとしてエントリの内容がAIに渡され、それによって回答が変わっています。
キャラクターカードなどに世界観などを記載すると毎回AIに渡されてトークンを無駄に消費してしまいますが、World Info機能を使うことで必要なときだけ必要なプロンプトがLLMに渡されるのでトークンの節約に役立ちます。
ただし、トリガーワードに引っかからないとLLMには何も渡されませんし、引っかかりやすいようにいっぱいトリガーワードを設定すると関係ない文脈で意図しない反応を引き起こしてしまいます。
CHについて教えて

回答結果は上記のようになりました。

一方、World Info機能を上記の通りに設定して同じ質問すると上記の通り、"CH"というキーワードをトリガーとしてエントリの内容がAIに渡され、それによって回答が変わっています。
キャラクターカードなどに世界観などを記載すると毎回AIに渡されてトークンを無駄に消費してしまいますが、World Info機能を使うことで必要なときだけ必要なプロンプトがLLMに渡されるのでトークンの節約に役立ちます。
ただし、トリガーワードに引っかからないとLLMには何も渡されませんし、引っかかりやすいようにいっぱいトリガーワードを設定すると関係ない文脈で意図しない反応を引き起こしてしまいます。
https://docs.sillytavern.app/extensions/
拡張機能の管理など

「拡張機能とアセットをダウンロード」の「Assets URL」の接続アイコンをクリックする事で追加の拡張機能をインストールする事が出来ます。
後述する、「VRM」拡張機能などはここからインストールします。
拡張機能の管理など

「拡張機能とアセットをダウンロード」の「Assets URL」の接続アイコンをクリックする事で追加の拡張機能をインストールする事が出来ます。
後述する、「VRM」拡張機能などはここからインストールします。

あらかじめ、キャラクターの表情差分などを作成しておいてチャットの文脈などに応じて表情などの差分を切り替える機能です。
- Translate text to English before classification (分類前にテキストを英語に翻訳する)
- Allow multiple sprites per expression (表現ごとに複数のスプライトを許可する)
- Re-roll if same sprite is used again (同じスプライトが再度使用される場合は再ロールします)
- Classifier API (分類器API, 表現を分類するための API を選択します)
「ローカル」なら「Translate text to English before classification (分類前にテキストを英語に翻訳する)」をONにした方が良い?
- Default / Fallback Expression (デフォルト/フォールバック式, 一致する式が見つからない場合に使用されるデフォルトおよびフォールバック式を設定します)
- Custom Expressions (カスタム式, 手動で設定することも、 /emoteスラッシュ コマンドを使用して設定することもできます)
関連リンク:
- Tutorial: One click to generate all 28 character expressions in ComfyUI (チュートリアル: ComfyUI でワンクリックで 28 文字の表現をすべて生成する)
チャットテキストの読み上げ機能です。

オンだとテキスト生成時に自動的に音声が再生されます。
関連記事:

- Select TTS Provider (TTSプロバイダーを選択)
- Enabled (有効)
- Narrate user messages (ユーザーメッセージをナレーションする)
- Auto Generation (自動生成)
オンだとテキスト生成時に自動的に音声が再生されます。
- Narrate by paragraphs (when streaming) (段落ごとにナレーションする(ストリーミング時))
- Narrate by paragraphs (when not streaming) (段落ごとにナレーションする(ストリーミングしていないとき))
- Only narrate "quotes" (「引用」のみを語る)
- Ignore *text, even "quotes", inside asterisks* (*アスタリスク内のテキスト(引用符を含む)は無視します*)
- Narrate only the translated text (翻訳されたテキストのみをナレーションする)
- Skip codeblocks (コードブロックをスキップする)
- Skip <tagged> blocks (<tagged> ブロックをスキップする)
- Pass Asterisks to TTS Engine (アスタリスクをTTSエンジンに渡す)
- Different voices for "quotes", *text inside asterisks* and other text (「引用符」、*アスタリスク内のテキスト*、その他のテキストに異なる音声を付ける)
関連記事:
VRM形式(.vrm)の3Dモデルをキャラクターに割り当てて、感情や動作に連動したアニメーション再生(.fbxと.bvhをサポート)や、3Dモデルの特定部位をクリックで予め設定したワードを自動送信する機能などがあります。
※3DモデルはVRM形式にのみ対応(.vroid形式はNG, 要変換)、アニメーションはボーン構造などがVRM形式に対応していなければダメ
VRMモデルやアニメーションデータの規約(ライセンス)によっては改造や他形式への変換、他ソフトウェアでの利用、表現方法(性的コンテンツなど)が禁止または制限されている物もあります。ご注意ください。
この拡張機能はデフォルトではバンドルされておらず、手動でインストールする必要があります。
※3DモデルはVRM形式にのみ対応(.vroid形式はNG, 要変換)、アニメーションはボーン構造などがVRM形式に対応していなければダメ
VRMモデルやアニメーションデータの規約(ライセンス)によっては改造や他形式への変換、他ソフトウェアでの利用、表現方法(性的コンテンツなど)が禁止または制限されている物もあります。ご注意ください。
この拡張機能はデフォルトではバンドルされておらず、手動でインストールする必要があります。

「拡張機能とアセットをダウンロード」の「Assets URL」の接続アイコンをクリックします。

アセットリストが更新されるので、検索欄に「vrm」と入力して「VRM」拡張機能をインストールします。
SillyTavernをインストールしたフォルダを開いていき、「vrm」フォルダ内に「model」と「animation」という名前のフォルダを作ります。
それぞれ、VRMモデルとアニメーションデータの配置場所です。
# VRMモデルの配置場所 /data/<ユーザー名(default-user)>/assets/vrm/model # .fbx/.bvhアニメーションデータの配置場所 /data/<ユーザー名(default-user)>/assets/vrm/animation
この記事では例として、下記のVRMモデルを利用させてもらいます。 ダウンロードして解凍したら中のVRMファイルを上記の「model」フォルダに入れます。
また、アニメーションデータとして下記の物を利用させてもらいます。

上記のURLの緑色の「Code」からZIPファイルをダウンロード、中の「animation」内のアニメーションデータを「animation」フォルダに入れます。

SillyTavernの「ユーザー設定」からUIの「ワイフモード」にチェックを入れます。
こうしないとVRMモデルが表示されません(チャットログに隠れてしまう)
Global Settings (グローバル設定)
Performances Settings (パフォーマンス設定)
モデルにもよりますが、頭/胸/手などがクリックされた際に、特定のアニメーションが再生されます。(お尻をクリックすると嫌な顔をしてお尻を抑える動作なんかもできます)
Debug Settings (デバッグ設定)
Scene Settings (シーン設定)
Model Mapping (モデルマッピング)
例えば「head(頭)」だと、表情を「happy」、自動入力されるテキストを「*優しく頭を撫でる*」などとすると、3Dモデルの頭をクリックした際にモデルの表情が「happy」に、チャット入力欄に「*優しく頭を撫でる*」と入力されます。
※「Character Expressions」拡張機能が有効である必要があります。
その他、スラッシュコマンドで下記のような事もできるようです。
- Enabled
- Look at camera (カメラを見る)
- Blink (瞬き)
- TTS lips sync (TTSリップシンク)
- Auto-send interaction (自動送信インタラクション)
- Lock models position/rotation/scale (モデルの位置/回転/スケールをロックする)
Performances Settings (パフォーマンス設定)
- Body hitboxes (ボディヒットボックス)
モデルにもよりますが、頭/胸/手などがクリックされた際に、特定のアニメーションが再生されます。(お尻をクリックすると嫌な顔をしてお尻を抑える動作なんかもできます)
- Use model cache (モデルキャッシュを使用する)
- Use animation cache (アニメーションキャッシュを使用する)
Debug Settings (デバッグ設定)
- Show grid (グリッドを表示)
Scene Settings (シーン設定)
- Light color (ライトの色)
- Light intensity (ライトの強度)
Model Mapping (モデルマッピング)
- Character:
- VRM Model:
- Model Settings
- Hit areas mapping (ヒットエリアマッピング)
例えば「head(頭)」だと、表情を「happy」、自動入力されるテキストを「*優しく頭を撫でる*」などとすると、3Dモデルの頭をクリックした際にモデルの表情が「happy」に、チャット入力欄に「*優しく頭を撫でる*」と入力されます。
- Classified expressions mapping (分類された表現のマッピング)
※「Character Expressions」拡張機能が有効である必要があります。
その他、スラッシュコマンドで下記のような事もできるようです。
/vrmmodel {model}.vrm # モデル割り当て
/vrmexpression happy # 表情変更
/vrmlightcolor purple # 照明色変更

公式解説ページ
SillyTavernとComfyUIなどを連携してチャット内容に応じた画像を生成できる拡張機能です。
画像生成のバックエンドとしてローカルの「AUTOMATIC1111」、「ComfyUI」のほか有料ですがNanoGPTなどのクラウドサービスにも対応しています。
| 「杖メニュー」 | スラッシュコマンド | 説明 |
| あなた自身 | /sd you | 現在のチャット相手のキャラクターの全身像 |
| あなたの顔 | /sd face | 現在のチャット相手のキャラクターのクローズアップ写真 |
| 自分 | /sd me | ユーザーのペルソナの描写 |
| 一部始終 | /sd scene | チャットの内容を視覚的にまとめたもの |
| 最後のメッセージ | /sd last | 最後のチャットメッセージの視覚的な要約 |
| 生の最後のメッセージ | /sd raw_last | 最後のメッセージがそのままプロンプトとして使用されます |
| 背景 | /sd background | 物語の文脈に基づいたチャットの背景画像(生成されると自動的にチャットの背景になります) |
- 生成前にプロンプトを編集する
- Use function tool
APIがチャット完了かつ「関数呼び出しを有効にする」にチェックが入っていないとダメです。
- ソース
ComfyUIの場合、「Server Type」が選択できますがローカル環境なら「Standard Server」でOKです。
「ComfyUI URL」にComfyUIのサーバーIP、portを入力します。(例:http://192.168.0.123:8188)
- ComfyUI Workflow
- スタイル
「共通のネガティブプロンプトプレフィックス」で画像生成モデルの推奨ネガティブプロンプトを記述します。
「共通のプロンプトプレフィックス/共通のネガティブプロンプトプレフィックス」はLLMによって生成された画像生成プロンプトの前に常に追加されます。
「キャラクター固有のプロンプトプレフィックス/キャラクター固有のネガティブプロンプトプレフィックス」STでキャラクターカードを選択した状態でこの項目にキャラクターの特徴やLoraなどを記述します。グループチャットでは使用されません。オリキャラの場合はここにキャラクターの外見などを記述しない方が良かったです。(原作ありのキャラならここに正式なDanbooruタグ名を記載しておくと良いかもしれません)
画像生成AIのプロンプトを生成してもらうためのLLMへのプロンプトです。
- Function Tool Prompt Description (Function Tool プロンプトの説明)
This is a text prompt used for image generation (Stable Diffusion). It should contain a detailed description of the desired image so that artists and photographers can reproduce it perfectly. Please output in danbooru tag format.
- Chat Message Template (チャットメッセージテンプレート)
[{{char}} sends a picture that contains: {{prompt}}].
- Character ("Yourself") (キャラクター(「あなた自身」))
In the next response I want you to provide only a detailed comma-delimited list of keywords and phrases which describe {{char}}. The list must include all of the following items in this order: name, species and race, gender, age, clothing, occupation, physical features and appearances. Do not include descriptions of non-visual qualities such as personality, movements, scents, mental traits, or anything which could not be seen in a still photograph. Do not write in full sentences. Prefix your description with the phrase 'full body portrait,'
- User ("Me") (ユーザー(「私」))
Ignore previous instructions and provide a detailed description of {{user}}'s physical appearance from the perspective of {{char}} in the form of a comma-delimited list of keywords and phrases. The list must include all of the following items in this order: name, species and race, gender, age, clothing, occupation, physical features and appearances. Do not include descriptions of non-visual qualities such as personality, movements, scents, mental traits, or anything which could not be seen in a still photograph. Do not write in full sentences. Prefix your description with the phrase 'full body portrait,'. Ignore the rest of the story when crafting this description. Do not reply as {{char}} when writing this description, and do not attempt to continue the story.
- Scenario ("The Whole Story") (シナリオ(「全容」))
Ignore previous instructions and provide a detailed description for all of the following: a brief recap of recent events in the story, {{char}}'s appearance, and {{char}}'s surroundings. Do not reply as {{char}} when writing this description, and do not attempt to continue the story.
- Raw Last Message (生の最後のメッセージ)
Ignore previous instructions and provide ONLY the last chat message string back to me verbatim. Do not write anything after the string. Do not reply as {{char}} when writing this description, and do not attempt to continue the story.
- Last Message (最後のメッセージ)
- Portrait ("Your Face") (ポートレート(「あなたの顔」))
In the next response I want you to provide only a detailed comma-delimited list of keywords and phrases which describe {{char}}. The list must include all of the following items in this order: name, species and race, gender, age, facial features and expressions, occupation, hair and hair accessories (if any), what they are wearing on their upper body (if anything). Do not describe anything below their neck. Do not include descriptions of non-visual qualities such as personality, movements, scents, mental traits, or anything which could not be seen in a still photograph. Do not write in full sentences. Prefix your description with the phrase 'close up facial portrait,'
- Background (背景)
Ignore previous instructions and provide a detailed description of {{char}}'s surroundings in the form of a comma-delimited list of keywords and phrases. The list must include all of the following items in this order: location, time of day, weather, lighting, and any other relevant details. Do not include descriptions of characters and non-visual qualities such as names, personality, movements, scents, mental traits, or anything which could not be seen in a still photograph. Do not write in full sentences. Prefix your description with the phrase 'background,'. Ignore the rest of the story when crafting this description. Do not reply as {{user}} when writing this description, and do not attempt to continue the story.
- Character (Multimodal Mode) キャラクター(マルチモーダルモード)
Provide an exhaustive comma-separated list of tags describing the appearance of the character on this image in great detail. Start with "full body portrait".
- User (Multimodal Mode) ユーザー(マルチモーダルモード)
Provide an exhaustive comma-separated list of tags describing the appearance of the character on this image in great detail. Start with "full body portrait".
- Portrait (Multimodal Mode) 縦向き(マルチモーダルモード)
Provide an exhaustive comma-separated list of tags describing the appearance of the character on this image in great detail. Start with "close-up portrait".
- Free Mode (LLM-Extended) フリーモード(LLM拡張版)
Ignore previous instructions and provide an exhaustive comma-separated list of tags describing the appearance of "{0}" in great detail. Start with {{charPrefix}} (sic) if the subject is associated with {{char}}.

https://docs.sillytavern.app/usage/core-concepts/p...
チャットで演じるユーザー自身のペルソナの管理画面です。
性別や趣向、AIキャラクターとの関係などを記載します。
{{user}}、{{char}}などは置換マクロとしてそれぞれユーザー名(or キャラクター名)に設定した名前に置き換えられてLLMに渡されます。
詳しくは【ローカルLLM】SillyTavern向けプロンプト記述方法などをご覧下さい。
詳しくは【ローカルLLM】SillyTavern向けプロンプト記述方法などをご覧下さい。

上記の画像を参考に新しいキャラクターの作成アイコンをクリックします。

キャラクター名でキャラクターの名前を設定します。
キャラクターの説明にはキャラクターの性別や趣向などを記載します。
最初のメッセージにはチャット開始時に表示される最初のメッセージを記載します。
キャラクターのプロンプトの書き方については【ローカルLLM】SillyTavern向けプロンプト記述方法などをご覧ください。

Qwen系などの非思考モードと思考モードに切り替えることのできるモデルでSillyTavern上の設定から思考を強制する方法を記載しておきます。
「高度なフォーマット」の「コンテキストテンプレート」や「Instruct Template」を該当モデルの物に設定したうえで
「コンテキストのフォーマット」の「プロンプトにキャラクターの名前を常に追加する」をOFFに、「Instruct Template」の「名前を含める」を「Never」に、「Reasoning Formatting」の「Prefix」を「<think>{{newline}}」、「Suffix」に「{{newline}}</think>」、「返信の開始」に「<think>{{newline}}」、「チャットで返信の接頭辞を表示」をON
モデルにもよると思いますがこれで強制的に思考させられるかと(もちろん、思考に対応していないモデルには意味がない)
参考リンク:How to properly use Reasoning models in ST(STで推論モデルを適切に使用する方法)
















