個人的な日本語ローカルLLM関連のメモ用Wikiです。一般の方は編集できません。

×
このページは編集途中です

このWikiは主に日本語対応ローカルLLM(大規模言語モデル)関連のメモ的なWikiです。

SillyTavernの使い方などを解説します。
ページの内容が古かったり誤った情報が載っているかもなので気をつけて下さい。

SillyTavernのGitHub
SillyTavern公式Wiki

編集履歴:
260621:「画像プロンプトテンプレート」項目の追加、記載



SillyTavernについて

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を有効化しておく必要があります。

インストール

Windowsへインストール (Gitを使ってインストール)

※Windowsが制御するフォルダー (Program FilesSystem32など) にはインストールしないでください。
※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をダブルクリックして実行します。
インストールが完了したら自動的にデフォルトのブラウザでhttp://127.0.0.1:8000/が開きます。
アップデート
SillyTavernフォルダ内のUpdateAndStart.batをダブルクリックして実行します。

※アップデートするとLLMの出力がおかしくなる(同じ日本語対応モデルで以前は問題なかったのに英文が混じったりする)事がありました。
設定などを削除してクリーンインストールすると改善したのでご注意ください。

Windowsへインストール (SillyTavern Launcher経由でインストール)

キーボードの[Windowsキー] + [R]から"ファイル名を指定して実行"ダイアログボックスを出します。
下記のコマンドを実行して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の出力がおかしくなる(同じ日本語対応モデルで以前は問題なかったのに英文が混じったりする)事がありました。
設定などを削除してクリーンインストールすると改善したのでご注意ください。

LinuxへDockerを使ってインストール

GitHubからcloneしてDockerを立ち上げます。
事前に下記のソフトウェアがインストール済みである必要があります。
  • docker
  • docker compose
必要に応じてdocker-compose.ymlを編集してください(ポートの変更など)
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したディレクトリに移動して
docker compose pull

※アップデートするとLLMの出力がおかしくなる(同じ日本語対応モデルで以前は問題なかったのに英文が混じったりする)事がありました。
設定などを削除してクリーンインストールすると改善したのでご注意ください。

Linuxへ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

簡単な使い方


初回起動時に上の画面が出ててきます。
Language:」から日本語を選択して「保存(Save)」で日本語UIにして設定を保存しておきます。

あなたのペルソナ」からチャット時のユーザ名を変更できますが、後から変更することもできるので今はこのままにしておきます

text-generation-webui(バックエンド)のAPIに接続する

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をロードしました。
言語モデルのダウンロード、ロード方法についてはこちらのページをご覧下さい。
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のサーバ接続設定やシステムプロンプト、指示モードやコンテキストテンプレートなどの設定を保存できます。

ユーザーの設定


チャットする際のユーザー側の設定(ユーザー名やユーザーのキャラクター設定など)を変更します。
ページ上部の顔のアイコンをクリックします。
ここでは名前を「ご主人」として、名前の入力欄右のチャックボタンをクリックして名前を変更します。

BOT(AIキャラクター)の作成


BOT(AIキャラクター)の作成を行います。
ページ上部の一番右の「キャラクター管理」をクリックします。
新しいキャラクターを作成」からキャラクター名、キャラクターの説明、最初のメッセージを入力して「キャラクターを作成」をクリックします。

例として下記のように入力しました。


{{user}} 」は現在のユーザー名に、「 {{char}} 」は「キャラクター名」で設定した名前に置き換えられます。

キャラクター設定の書き方などは【ローカルLLM】SillyTavern向けプロンプト記述方法などページをご覧ください。
キャラクターカードの配布などはSillyTavernのRP用キャラクターカードなどの配布スレをご覧ください。

チャットする


チャット入力欄(「メッセージを入力するか、/?でヘルプを表示してください」)にメッセージを入力して右隣のメッセージを送信ボタンをクリックするか[Enter]キーを押して送信します。
※ちなみに[Shift]+[Enter]でメッセージ欄内で改行できます。

スラッシュコマンド

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

SillyTavernの詳細な設定など


WebUI上部左から解説していきます。

Common Settings(AI応答の構成) / テキスト補完のプリセット


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

コンテキスト設定

応答の長さ(トークン数)
APIが応答(レスポンス)するために生成するトークンの最大数
AIからの返信が短いと感じる場合はこの値を大きくします。
  • 応答(レスポンス)の長さが長いほど、応答の生成にかかる時間が長くなります。
  • APIでサポートされている場合は、”ストリーミング”オプションを有効化することで生成中の応答を少しずつ表示することができます。オフの場合、応答が完了した時点で一括表示されます。
コンテキストのサイズ(トークン数)
SillyTavernがプロンプトとしてAPIに送信するトークンの最大数から応答の長さを引いたもの
  • コンテキストは文字情報、システム プロンプト、チャット履歴などで構成されます。
  • メッセージ間の点線は、チャットのコンテキスト範囲を示します。その線を超えるメッセージはAIに送信されません。
  • ロックを解除
モデルが4096トークンを超えるコンテキストをサポートしている場合にのみ有効化します。

サンプラーパラメータ

※一部重複している設定は省略しています。省略された設定項目のもう少し詳しい解説はText generation web UIページのGenerationをご覧下さい。
温度(temperature)
生成されるテキスト(トークン)のランダム性を制御します。
値が大きいほどランダム性が高くなります。
※値を上げると創造的になり、小説の執筆などに向く。逆に下げるとQ&Aなどの回答の質が上がる?
繰り返しペナルティ(反復ペナルティ)
コンテキスト内でのトークンの出現頻度に基づいてトークンにペナルティを課すことで、繰り返しを抑制しようとします。
  • 場合によっては、キャラクターが何かに固執している場合、または同じフレーズを繰り返す場合、このパラメータを増やすと役立つことがあります。
※無効にするには、値を 1 に設定します。
繰り返しペナルティの範囲(反復ペナルティ範囲)
最後に生成されたトークンからのトークンの数が反復ペナルティの対象となります。 「the、a、and」などの一般的な単語が最もペナルティを受けるため、設定が高すぎると応答が中断される可能性があります。
※無効にするには、値を 0 に設定します。
動的温度(Dynamic Temperature)
トップトークンの可能性に基づいて温度を動的に調整します。一貫性を犠牲にすることなく、よりクリエイティブな出力を生み出すことを目指します。
最低temperatureから最高temperatureまでのtemperature範囲を受け入れます。

Common Settings(AI応答の構成) / チャット完了のプリセット

バックエンドAPIがNanoGPTなど、「チャット完了 API」の場合は、後述する「高度なフォーマット」の設定が無効になる代わりに、このセクション内の「クイックプロンプトの編集」などでシステムプロンプトや脱獄文などを記述できます。

API接続

APIタイプ

バックエンドとなるソフトウェア/サービスを選択します。

APIキー(オプション)

クラウドLLMサービスへのAPI接続に必要となります。

サーバーURL

APIのサーバーURLを入力します。
http://<アドレス>:<port>/
httpから記載すること

その他

  • 接続 サーバーへ接続します。
  • 前回のサーバーに自動接続 前回接続したサーバーに自動接続します。

高度なフォーマット


https://docs.sillytavern.app/usage/prompts/
APIが「テキスト補完 API」の場合にのみ、このセクションの設定は有効です。

APIが「チャット完了 API」の場合はこのセクションの設定は無効化されます。
※「チャット完了 API」の場合は「Common Settings(AI応答の構成) / チャット完了のプリセット」でシステムプロンプトなどを設定できます。

コンテキストテンプレート

https://docs.sillytavern.app/usage/prompts/context...

LLMにキャラクターデータなどを適切な形式で提供するためのテンプレートです。
例えば、システムプロンプトはこの位置に、キャラクター設定はこの位置、ユーザーのペルソナ設定はこの位置に配置してLLMに渡す...などといった設定です。

あらかじめ、言語モデルごとにプリセットが用意されているのでその言語モデルに適したプリセットを使用するのが良いかと。
ストーリー文字列
このフィールドは、プリチャット文字データ (内部的にはストーリー文字列として知られています) のテンプレートです。これは、テキスト補完用にキャラクターカードをフォーマットし、モデルに指示する主な方法です。
このテンプレートは、Handlebars構文とカスタムテキストインジェクションまたは書式設定をサポートしています。こちらの言語リファレンスを参照してください: https://handlebarsjs.com/guide/

次のパラメータを Handlebars エバリュエーターに提供します (二重中括弧{{}}で囲みます)。
  • description キャラクターの説明
  • scenario キャラクターのシナリオ
  • personality キャラクターの性格
  • system [命令モード] システムプロンプトまたはキャラクターのメイン プロンプト オーバーライド(存在し、ユーザー設定で「文字プロンプトを優先」が有効になっている場合)
  • persona 選択したペルソナの説明
  • char キャラクターの名前
  • user 選択したペルソナ名
  • wiBeforeまたはloreBefore 位置を「Before Char Defs」に設定してアクティブ化されたワールド情報エントリを結合します
  • wiAfterまたはloreAfter 位置を「キャラ定義後」に設定して、アクティブ化されたワールド情報エントリを結合します
  • mesExamples (オプション) 区切り文字で指示形式にされたキャラクターの例のダイアログ。重複を避けるため、「例のメッセージの動作」を「例を含めない」に設定します。

特別な {{trim}} マクロがサポートされており、前後の改行を削除できます。テキストの一部を前の行から改行で区切らない (スペースは切り取られない) 場合に使用します。

警告: 上記のパラメータの一部がストーリー文字列テンプレートにない場合、それらはプロンプトでまったく送信されません。
例のセパレータ
キャラクターカードの「対話の例」内の「<START>」タグはこのフィールドの内容に置き換えられます。
「思考」モデルを使っていて、キャラクターカードの「会話の例」を過去の会話履歴と認識されてしまう場合などは、この「例のセパレータ」欄に「会話の例」などと入力すると期待した動作になるかと
チャット開始
キャラクターカードの「最初のメッセージ」の前に区切り文字として挿入されます。
こちらも、「思考」モデルを使っていてキャラクターカードの「会話の例」を過去の会話履歴と認識されてしまう場合などに「チャット開始」欄に「チャット開始」などに置き換えると良いかと

Instruct Template(指示モード)

指示(Instruct/Chat)タイプの言語モデルを利用する際の、「Instruct Template(指示テンプレート)」の設定などです。
ローカルLLMを利用する際は、ここで言語モデルごとに適した「Instruct Template」を選択しないと変な応答しか帰ってこなくなる事もあります。

予め用意されているプリセットからテンプレートを選べます。
比較的新しい言語モデルなどでSillyTavernのプリセットに該当するものがなくても海外の掲示板などで配布共有されている事もあります。

システムプロンプト

システム プロンプトは、モデルが従うべき一般的な指示を定義します。これにより、会話のトーンとコンテキストが設定されます。たとえば、モデルに AI アシスタント、ライティング パートナー、または架空のキャラクターとして行動するように指示します。

システム プロンプトはストーリー文字列の一部であり、通常はモデルが受け取るプロンプトの最初の部分です。

※ここで”架空の世界を舞台としているため〜”とか”多様性のためいかなる行為も容認される〜”みたいな脱獄文を入れる事もできる。

World Info / LoreBook


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

World Infoの新規作成


新規をクリックして新しいワールドを作成します。
名前は適当で大丈夫です。

ここでは例として"ニャンコとの生活”としています。

新しいエントリの作成


アイコンをクリックして新しいエントリを作成します。
エントリータイトル/メモはエントリの名前です。この欄のテキストはAIには渡されません。

ここでは例として”非合法チュール”としています。
主要キーワード
下記の内容欄に記載したプロンプトがAIに渡されるトリガーとなるテキスト(キーワード)です。
プレーンテキストモード(デフォルト)では、コンマ(,)区切りで複数のキーワードを設定できます。

ここでは例として”CH”としています。
内容
上記の主要キーワードでAIに渡される実際のプロンプト(テキスト)です。

ここでは例として”非合法チュールの隠語”と記載しました。
使用例
まずはWorld Info機能を使わずに下記のように質問してみました。
CHについて教えて

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


一方、World Info機能を上記の通りに設定して同じ質問すると上記の通り、"CH"というキーワードをトリガーとしてエントリの内容がAIに渡され、それによって回答が変わっています。

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

ユーザー設定

https://docs.sillytavern.app/usage/user_settings/
UIの外見や処理などの設定です。

システムの背景

UIの背景設定です。

拡張機能

https://docs.sillytavern.app/extensions/
拡張機能の管理など


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

Character Expressions (キャラクター表現, キャラクターの表情差分の切り替えなど)


あらかじめ、キャラクターの表情差分などを作成しておいてチャットの文脈などに応じて表情などの差分を切り替える機能です。
  • Translate text to English before classification (分類前にテキストを英語に翻訳する)
  • Allow multiple sprites per expression (表現ごとに複数のスプライトを許可する)
  • Re-roll if same sprite is used again (同じスプライトが再度使用される場合は再ロールします)
  • Classifier API (分類器API, 表現を分類するための API を選択します)
「ローカル」か、「メインAPI」で良いかと
「ローカル」なら「Translate text to English before classification (分類前にテキストを英語に翻訳する)」をONにした方が良い?
  • Default / Fallback Expression (デフォルト/フォールバック式, 一致する式が見つからない場合に使用されるデフォルトおよびフォールバック式を設定します)
標準状態、または表情の分類ができなかった時に表示するものを選択します。
  • Custom Expressions (カスタム式, 手動で設定することも、 /emoteスラッシュ コマンドを使用して設定することもできます)
デフォルトで用意されている表情以外に、手動で追加した任意の表情などをここで追加する事ができます。

関連リンク:

TTS (Text-to-Speech, テキストの読み上げ機能)

チャットテキストの読み上げ機能です。

  • Select TTS Provider (TTSプロバイダーを選択)
どのTTSサービスを利用するか、の選択です。
  • Enabled (有効)
ここにチェックを入れていないと有効になりません。
  • Narrate user messages (ユーザーメッセージをナレーションする)
ユーザーの入力内容を読み上げるか、どうかです。
  • Auto Generation (自動生成)
オフだとチャット入力欄の横にある、読み上げボタンをクリックしない限り読み上げません。
オンだとテキスト生成時に自動的に音声が再生されます。
  • Narrate by paragraphs (when streaming) (段落ごとにナレーションする(ストリーミング時))
  • Narrate by paragraphs (when not streaming) (段落ごとにナレーションする(ストリーミングしていないとき))
  • Only narrate "quotes" (「引用」のみを語る)
地の文と「」などで囲まれたキャラクターのセリフとある場合に「」で囲まれたテキストのみ、TTSエンジンに渡すかどうかの設定です。
  • 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モデルをSTで動かす ※要手動インストール)

VRM形式(.vrm)の3Dモデルをキャラクターに割り当てて、感情や動作に連動したアニメーション再生(.fbxと.bvhをサポート)や、3Dモデルの特定部位をクリックで予め設定したワードを自動送信する機能などがあります。
※3DモデルはVRM形式にのみ対応(.vroid形式はNG, 要変換)、アニメーションはボーン構造などがVRM形式に対応していなければダメ

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モデルが表示されません(チャットログに隠れてしまう)
VRM拡張機能の設定など
Global Settings (グローバル設定)
  • Enabled
拡張機能のオン/オフ
  • Look at camera (カメラを見る)
キャラの視線をカメラ方向へ自動的に向ける機能です。
  • Blink (瞬き)
有効だとランダムに瞬きします。
  • TTS lips sync (TTSリップシンク)
TTSが有効の場合、リップシンクさせます。
  • Auto-send interaction (自動送信インタラクション)
後述する、「ボディヒットボックス」が有効な場合、3Dキャラクターの特定箇所をクリックした際に、予め設定したメッセージを自動で送信するか、どうかです。
  • Lock models position/rotation/scale (モデルの位置/回転/スケールをロックする)
オフだとマウス操作などで3Dキャラクターを回転させたり移動させたり出来ますが、オンだとロックされます。

Performances Settings (パフォーマンス設定)
  • Body hitboxes (ボディヒットボックス)
VRMモデルのいくつかの部分のクリック検出を有効にします。
モデルにもよりますが、頭/胸/手などがクリックされた際に、特定のアニメーションが再生されます。(お尻をクリックすると嫌な顔をしてお尻を抑える動作なんかもできます)
  • Use model cache (モデルキャッシュを使用する)
  • Use animation cache (アニメーションキャッシュを使用する)

Debug Settings (デバッグ設定)
  • Show grid (グリッドを表示)
有効にすると3Dグリッド、モデルドラッグボックス、ボディヒットボックスが表示されます。

Scene Settings (シーン設定)
  • Light color (ライトの色)
  • Light intensity (ライトの強度)

Model Mapping (モデルマッピング)
  • Character:
STのどのキャラクターにVRMモデルを割り当てるか
  • VRM Model:
どのVRMモデルを使用するか
  • Model Settings
VRMモデルの位置やスケールなど
  • Hit areas mapping (ヒットエリアマッピング)
ここで3Dモデルの特定箇所をクリックした際のモデルの表情、再生するアニメーション、チャット入力欄に自動入力されるテキスト(任意)を設定できます。
例えば「head(頭)」だと、表情を「happy」、自動入力されるテキストを「*優しく頭を撫でる*」などとすると、3Dモデルの頭をクリックした際にモデルの表情が「happy」に、チャット入力欄に「*優しく頭を撫でる*」と入力されます。
  • Classified expressions mapping (分類された表現のマッピング)
「Character Expressions」拡張機能に基づいてチャットの文脈などに応じて3Dモデルの表情と再生するアニメーションを選択できます。
※「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
「function tool」を利用して画像生成の意図を自動的に検出し、必要に応じて画像を自動的に生成します。

APIがチャット完了かつ「関数呼び出しを有効にする」にチェックが入っていないとダメです。

また、ユーザーがチャットメッセージで画像を生成する意図を説明する必要があります。例:「猫の写真を送って」、「自撮りした写真を送って」
  • ソース
画像生成のバックエンドとなるサービス/ソフトウェアをドロップダウンリストから選択します。
ComfyUIの場合、「Server Type」が選択できますがローカル環境なら「Standard Server」でOKです。
「ComfyUI URL」にComfyUIのサーバーIP、portを入力します。(例:http://192.168.0.123:8188
  • ComfyUI Workflow
この項目で画像生成モデルやVAE、サンプリング方法、スケジューラー、解像度などを選択できます。
  • スタイル
「共通のプロンプトプレフィックス」で画像生成モデルの推奨プロンプト(品質指定ダグなど)を記述します。
「共通のネガティブプロンプトプレフィックス」で画像生成モデルの推奨ネガティブプロンプトを記述します。
「共通のプロンプトプレフィックス/共通のネガティブプロンプトプレフィックス」は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}}.

「Anima」ベースの画像生成AIモデルを使う際の個人的なプロンプトのメモ

ペルソナ管理


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

新しいペルソナの作成


ペルソナ管理下の作成から新しいペルソナを作成します。
ここでは例として名前を”ご主人”としました。

ペルソナの説明

{{user}}{{char}}などは置換マクロとしてそれぞれユーザー名(or キャラクター名)に設定した名前に置き換えられてLLMに渡されます。
詳しくは【ローカルLLM】SillyTavern向けプロンプト記述方法などをご覧下さい。

キャラクター管理パネル


https://docs.sillytavern.app/usage/characters/
キャラクターやチャットグループの作成、管理パネルです。

新しいキャラクターの作成


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


キャラクター名でキャラクターの名前を設定します。
キャラクターの説明にはキャラクターの性別や趣向などを記載します。
最初のメッセージにはチャット開始時に表示される最初のメッセージを記載します。

キャラクターのプロンプトの書き方については【ローカルLLM】SillyTavern向けプロンプト記述方法などをご覧ください。
高度な定義
  • 人格の要約
性格の簡単な説明
  • シナリオ
チャットの状況と文脈
  • 対話の例
<START>
{{user}}:[半角スペース]<対話例など>
{{char}}:[半角スペース]<対話例など>
<空行>
という形式で対話例を記載します。

新しいチャットグループを作成


下のメンバーを追加からグループチャットに参加するキャラクターを追加します。
チェックアイコンでグループチャットを作成します。

その他

非思考モードと思考モードに切り替えることのできるモデルで思考を強制する設定


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で推論モデルを適切に使用する方法)

管理人/副管理人のみ編集できます

広告募集中