# キャラクター表現

# それは何ですか?

表現イメージは、AIキャラクターのイメージ(別名「スプライト」)で、チャット ウィンドウの横または後ろに表示されます。

表現イメージは、AIの最新チャット応答で表現された感情に基づいて、分類に基づいて自動的に変更できます。

# キャラクター表現イメージの追加

  1. 拡張機能パネルを開き、「キャラクター表現」セクションを展開します。キャラクターチャットが開いている場合、イメージプレースホルダーのグリッドが表示されます。
    表現ドロワー
    表現ドロワー
  2. グリッド内の各イメージの左上にある「イメージをアップロード」ボタンをクリックして、そのエモーションに割り当てるイメージを選択します。これにより、イメージは/data/<user-handle>/characters/(character_name_here)/フォルダ内に正しいファイル名で保存されます。
  3. これを割り当てるすべての表現について繰り返します。

# 表現イメージZIPファイルをインポート

スプライトパック(ZIP)をアップロード」ボタンを使用して、表現イメージの集合を含むZIPファイルをインポートすることができます。これらのイメージは自動的に現在選択されているキャラクターの正しいフォルダに追加されます。ZIPファイルには、すべてのイメージがフラット構造(サブフォルダなし)で正しく名前が付けられたファイルが含まれている必要があります。zipをインポートすると、イメージを感情に自動的に名前変更することはできません。

# 表現を手動で変更

  1. アップロードされた表現イメージ(スプライト)の任意のものをクリックして、チャット インターフェースの近くに表示します(デフォルトUIモード)または画面の中央に表示します(ビジュアルノベルモード)。
  2. /expression-set (name)スラッシュコマンドまたは一致するクイック返信を使用して、拡張機能メニューを開かずにスプライトを設定します。

# 表現を自動的に変更

キャラクターが返信するときに表現を自動的に設定するには、複数のオプションがあります。 メッセージストリーミングが有効な場合、式はメッセージごとまたは定期的に変更されます。

# 分類モジュールはどのように機能しますか?

classifyモジュールは、SillyTavernサーバーの隣で実行される小さな「感情解析」モデルを使用します。このモデルはAIからの新しい出力を受け取り、テキストが表現している感情や感情の種類を検出します。単一のメッセージで複数の感情が表現される可能性がありますが、モデルは最も可能性の高いもののみを選択してSillyTavernに返すします。フロントエンド拡張機能は、その感情に関連付けられたイメージを表示します。

# セットアップ手順(ローカル)

  1. 拡張機能パネルを開き、「キャラクター表現」拡張機能メニューを展開します。
  2. 分類ソース ドロップダウンで「ローカル」を選択します。
  3. これにより、HuggingFace Hubから分類モデルの1回限りのダウンロードが開始されます(約~100 MB)。
  4. メッセージを生成して、分類が機能し、スプライトが表示されることを確認します。また、サーバーコンソールでデバッグログを確認することもできます。

ローカル分類は28の可能なイメージラベルのデフォルト値:Cohee/distilbert-base-uncased-go-emotions-onnx

6オプション分類モデルを使用するには、config.yamlファイルのextensions.models.classification変数の値を次に変更します:Cohee/bert-base-uncased-emotion-onnx

# セットアップ手順(LLMで)

  1. API 接続を通じてサポートされ、適切に構成されたAPIのいずれかに接続します。
  2. 上記と同じ方法で表現イメージをインポートします。
  3. 分類ソース ドロップダウンで「メインAPI」を選択します。
  4. 必要に応じて、分類指示プロンプトを構成します。
  5. メッセージを生成して、分類が機能し、スプライトが表示されることを確認します。また、サーバーコンソールでデバッグログを確認することもできます。

# プロンプト構築戦略

メインLLMソースは、分類プロンプトがどのように構築されるかを選択できます:

  • 制限コンテキスト:最後のメッセージと指示プロンプトのみが送信されます。
  • フルコンテキスト:キャラクターカード全体を含むチャット履歴全体が送信されます。

# セットアップ手順(WebLLMで)

  1. 公式のWebLLM拡張機能をインストールします。
  2. 上記と同じ方法で表現イメージをインポートします。
  3. 分類ソース ドロップダウンで「WebLLM」を選択します。
  4. 必要に応じて、分類指示プロンプトを構成します。
  5. メッセージを生成して、分類が機能し、スプライトが表示されることを確認します。また、サーバーコンソールでデバッグログを確認することもできます。

# セットアップ手順(Extrasで)

  1. Extrasがインストールされ、classifyモジュールが有効で実行中:python server.py --enable-modules=classify
  2. 上記と同じ方法で表現イメージをインポートします。
  3. 分類ソース ドロップダウンで「Extras」を選択します。
  4. AIがあなたに返信するたびに、適切な表現イメージが自動的に表示されます。

Extras APIはデフォルトで6つのオプションの分類モデルを使用します:nateraw/bert-base-uncased-emotion

28オプションのモデルもあります:joeddav/distilbert-base-uncased-go-emotions-student

このモデルを使用するには、次の引数を含めるようにExtrasコマンド ラインを変更する必要があります(前後にスペース):--classification-model=joeddav/distilbert-base-uncased-go-emotions-student

# カスタム表現

デフォルトで提供される以上の表現オプションを取得するにはどうすればよいですか?拡張機能設定でカスタム表現を設定できます。カスタム表現に任意の名前を割り当てることができます。これらはイメージリストに表示され、他の表現のようにイメージを割り当てることができます。これはカスタムであることを示す指標があります。

# 表現用にサポートされているイメージ形式は?

webpおよびアニメーションGIFを含むあらゆるイメージ形式が許可されます。

最も一般的な形式は、透明な背景を持つPNGファイルです。

# デフォルト表現の使用

キャラクターのすべての表現のイメージがない場合、またはまったくイメージがない場合、表示するものについて複数のオプションがあります。 これらはすべて、「デフォルト/フォールバック表現」の下のドロップダウンから選択できます。

  1. フォールバック表現を選択:表現を選択したときに画像がない場合、フォールバック表現が代わりに表示されます。利用可能な表現の1つをドロップダウンから単に選択してください。
  2. [フォールバックなし]:イメージが存在しない場合は、何も表示しません。
  3. [デフォルト絵文字]:SillyTavernに含まれる組み込みデフォルト表現を使用できます。これらはシンプルな絵文字スタイルイメージです。

# 表現ごとに複数のイメージを使用

各表現に複数のイメージを追加して、表示される表現にさらに多くのバリエーションを提供することができます。 これを有効にするには、複数のスプライトを表現ごとに許可をトグルします。 これで複数のイメージをアップロードでき、追加のイメージは小さなマーカーで表示されます。

個別のイメージは、それらをクリックして手動で選択するか、/expression-set type=spriteを使用して選択できます。これはイメージリストに表示される利用可能なスプライト イメージが表示されます。

複数のイメージを持つ表現が自動的に選択されるたびに、既存のイメージの1つがランダムに選択されます。 同じ表現が複数回使用された場合に新しいイメージを強制的に選択する場合は、同じスプライトが再度使用された場合は再ロールを有効にできます。

# 複数のイメージをエクスプレッション上に表示するための命名規則

複数のイメージを表現している場合、ファイルは特定の方法で名前を付ける必要があります。 ファイルは表現の名前で開始し、その後にサフィックスが続く必要があります。ドットまたはダッシュで区切られます。例:joy.pngjoy-1.pngjoy.expressive.png ファイル名は直接アップロードとZIPインポートの両方のこの形式に従う必要があります。

# スプライトフォルダオーバーライド

同じ表示名を持つ複数のキャラクターがある場合、両方とも同じ表現イメージセットを使用します。

同じ名前のキャラクターの各バージョンに別のイメージセットを使用する場合は、スプライト フォルダオーバーライドを使用できます。 フォルダ オーバーライドを使用して、異なるスプライト セット(衣装など)を定義することもできます。

# オーバーライドを設定する方法

  1. /data/<user-handle>/charactersフォルダに任意の名前でフォルダを作成し、イメージをそこに配置します(例:/data/<user-handle>/characters/Boris)。
  2. オーバーライドするスプライトのキャラクターとのチャットを開きます。
  3. 「スプライトフォルダオーバーライド」入力にオーバーライド フォルダの名前を入力し、「送信」をクリックします。
  4. スプライト リストが再読み込みされ、「スプライトセット」インジケーターにオーバーライド フォルダが表示されます。
  5. または、/costumeスラッシュコマンドを使用して同じ結果を達成できます:/costume Boris
  6. オーバーライド フォルダ名の前にバックスラッシュを追加すると、現在のキャラクター スプライト フォルダ内のサブフォルダに解決されます。例えば、Boris という名前のキャラクターの場合は/costume \tracksuit/data/<user-handle>/characters/Boris/tracksuitフォルダに解決されます。