SillyTavern
Custom (OpenAI-compatible) ソースで SillyTavern から SpicyAPI のモデルとチャットし、無料の SpicyAPI 拡張機能で画像・動画の生成と Animate ボタンを追加します。実行前に必ず料金を確認できます。
SillyTavern では、SpicyAPI を 2 通りの方法で使えます。1 つ目は通常のチャット接続で、SillyTavern が Custom (OpenAI-compatible) ソース経由で、メッセージを SpicyAPI のチャットモデルに送ります。2 つ目は SpicyAPI 拡張機能で、/spicy-img と /spicy-video のコマンドと Animate ボタンを追加し、チャットを離れずに画像や短い動画を作れるようにします。
どちらか一方だけでも使えます。どちらも SpicyAPI のほかの機能と同じアカウント・残高・料金を使い、支払うのは実行した分だけです。拡張機能は無料のオープンソース(MIT)で、github.com/spicyapi-ai/sillytavern-spicyapi で公開しています。
手短にまとめると
- spicyapi.ai/console/keys でキーを作成します。SillyTavern 専用のキーを用意し、1 日の支出上限を設定してください。
- SillyTavern で API Connections を開き、API を Chat Completion、Chat Completion Source を Custom (OpenAI-compatible) にします。エンドポイントは
https://api.spicyapi.ai/v1、キーは作成したもの、モデル ID は/chatで終わるものを入力して Connect を押します。 - Streaming をオンにし、Response (tokens) を 2000 以上にします。
- 画像・動画を使うには、Extensions > Install extension で
https://github.com/spicyapi-ai/sillytavern-spicyapiを貼り付け、Extensions > SpicyAPI にキーを追加します。
始める前に
- SillyTavern 1.19.0 以降。 このページの手順は 2026-10-06 に 1.19.0 で確認しました。ほかのバージョンではメニューの表記が変わっている場合があります。
- SillyTavern を動かすマシンの
git。 拡張機能を使う場合だけ必要です。SillyTavern は拡張機能のダウンロードに git を使います。 - API キー。 キーは
sk-spicy-で始まります。キーに設定できる制限は認証を、アカウントがまだない場合はアカウントの準備を参照してください。 - 残高。 リクエストはすべて、前払いの米ドル残高から支払われます。課金を参照してください。
SillyTavern のチャットを SpicyAPI につなぐ
チャットのリクエストを送るのはブラウザーではなく SillyTavern のサーバーなので、手元でほかに設定することはありません。
Custom ソースを選ぶ
API Connections(プラグのアイコン)を開きます。API を Chat Completion にし、Chat Completion Source を Custom (OpenAI-compatible) にします。
3 つの欄を入力する
| 欄 | 入力する内容 |
|---|---|
| Custom Endpoint (Base URL) | https://api.spicyapi.ai/v1 |
| Custom API Key | sk-spicy- で始まるキー |
| Enter a Model ID | /chat で終わるチャットモデルの ID。ライブカタログ(GET /api/v1/models)からコピーします(このページでは MODEL_ID_FROM_CATALOG と表記) |
エンドポイントには /v1 まで含め、/chat/completions は付けず(SillyTavern が自動で付けます)、末尾にスラッシュも付けないでください。末尾にスラッシュがあると、SillyTavern はスラッシュが二重になったパスにリクエストを送ってしまいます。
Connect を押す
SillyTavern が SpicyAPI にモデル一覧を問い合わせ、入力欄のキーを伏せ字にします。キーは SillyTavern サーバー上の、そのユーザーのシークレットファイルに保存されます。Test Message を使って、返信が返ってくることを確認してください。
チャットモデルを選ぶ
チャットモデルの ID は /chat で終わります。Available Models のドロップダウンには SpicyAPI の全モデル一覧が入るため、画像・動画・音声のモデルも表示されますが、それらではチャットできません。チャットモデルは先頭に並ぶので、リストの一番上から選ぶか、/chat で終わる ID を Enter a Model ID に入力または貼り付けてください。
すべてのチャットモデルと、それぞれが受け付ける内容を確認するには、サイトのチャットモデルを見るか、キーを付けて GET https://api.spicyapi.ai/v1/models を呼び出します(モデルを参照)。チャットモデルの各エントリには context_length、max_output_tokens、supported_parameters があります。
ロールプレイ向けには、ロールプレイのリーダーボードが、キャラクターの一貫性と表現の自由度でチャットモデルを順位づけしています。無制限のモデルもあればコンテンツをフィルタリングするモデルもあり、カタログには各モデルのポリシー区分が表示されます。
おすすめの設定
| 設定 | 値 | 理由 |
|---|---|---|
| Streaming | オン | 長い回答が書かれる端から表示され、ストリーミングのリクエストでは SpicyAPI 自身のエラーメッセージが表示されます。ストリーミングなしで短時間のうちに失敗すると SillyTavern には「Bad Request」としか出ず、約 30 秒後に失敗した場合は、成功したレスポンスの中にエラーが入って返ります。 |
| Response (tokens) | 2000 以上 | 推論モデルは、思考にもこの上限を使います。既定のプリセットは 300 で、推論モデルが思考だけで使い切って何も返さないことがあります。 |
| Request model reasoning | オン | モデルが思考内容を送ってくる場合に、折りたたまれたブロックとして表示します。 |
| Send inline media | テキスト専用モデルではオフ | チャット内の画像を参照してください。 |
| Prompt Post-Processing | None | メッセージのロールに関するエラーが出た場合にだけ変更します。トラブルシューティングを参照してください。 |
選んだモデルが対応していないサンプリング設定(temperature、top P、frequency penalty、presence penalty など)は、拒否されずに無視されます。無視した設定は、SpicyAPI がレスポンスヘッダー X-Spicy-Ignored-Params に一覧で返します。SillyTavern のスライダーはそのままで構いません。
Reasoning Effort
SillyTavern の Reasoning Effort ドロップダウンの値は、SpicyAPI のモデルには送られません。設定したい場合は自分で追加します。対象は、supported_parameters に reasoning_effort があるモデルだけです。
- Connect ボタンの下にある Additional Parameters をクリックします。
- Include Body Parameters に、たとえば次の 1 行を追加します。
reasoning_effort: low指定できる値はモデルごとに異なります。モデルが用意していないレベルを指定すると、そのモデルにある最も近いレベルに変更され(レスポンスヘッダー X-Spicy-Adjusted-Params に名前が入ります)、推論レベルのないモデルではこの行は無視されます。まず、モデル一覧でそのモデルのエントリを確認してください。回答が空だったり途中で切れたりする場合は、Response (tokens) を増やすか、effort を下げてください。
チャット内の画像
Send inline media をオンにすると、SillyTavern はチャット内の画像を、以降のすべてのリクエストに添付します。画像を読めないモデルは 400 でリクエストを拒否し、画像がチャットに残っている限り、その後のメッセージもすべて失敗します。テキスト専用モデルでは Send inline media をオフにするか、画像を含むメッセージを非表示にしてください。
チャット内の動画は、モデルには送信されません。
モデルが拒否する設定
モデルが対応していない場合に、引き続き拒否される設定がいくつかあります。回答の微調整ではなく、回答そのものを変えてしまうためです。1 回の生成あたりの Multiple swipes が 1 を超える設定(n)、Logit Bias プリセット、Request token probabilities です。これらのいずれかを名指しするメッセージでリクエストが失敗した場合は、その設定をオフにしてください。エラーメッセージにフィールド名が出ます。
Custom Stopping Strings はどのモデルでも使えます。stop シーケンスのないモデル(たとえば Grok 系)では無視され、設定した数より少ない数しか受け付けないモデルでは、先頭から順に残されます。どちらになったかは、レスポンスヘッダー X-Spicy-Ignored-Params と X-Spicy-Adjusted-Params に出ます。スライダーの値がモデルの範囲を超えた場合(たとえば上限が 1 のモデルで temperature を 1.5 にした場合)も、同じように上限まで下げられます。
SpicyAPI 拡張機能
この拡張機能は、チャットの中から画像や短い動画を作ります。一度インストールしてキーを追加し、モデルを選べば使えます。
インストールする
- Extensions(積み重なった立方体のアイコン)を開き、Install extension を選びます。
https://github.com/spicyapi-ai/sillytavern-spicyapiを貼り付けて Install を押します。- SillyTavern から求められたら、ページを再読み込みします。
SillyTavern は、これがサードパーティー製の拡張機能であると警告します。あとで更新するときは、同じメニューの Manage extensions を使います。
キーを追加する
Extensions > SpicyAPI を開き、キーを貼り付けて Check connection を押します。キーが有効なら残高が表示されます。
モデルを選ぶ
画像用のモデル、テキストからの動画用のモデル、画像からの動画用のモデル(Animate ボタン)をそれぞれ選びます。どの一覧にも開始価格が表示され、モデルはコンテンツポリシー(Uncensored、Softened、Filtered)別にまとまっています。Automatic は、最も安い Uncensored のモデルを選びます。各モデルの下で、アスペクト比・解像度・長さなどの主な設定を変更できます。$ が付いた設定は価格に影響します。
ワンクリックでチャットを接続する(任意)
パネルの Connect chat を押すと、チャットの設定を代わりに行います。Custom (OpenAI-compatible) を選び、エンドポイントを設定し、キーを保存して、選んだチャットモデルを指定します。
コマンド
| コマンド | 内容 |
|---|---|
/spicy-img [prompt] | 画像を作成し、チャットに投稿します。 |
/spicy-video [prompt] | テキストから動画を作成します。 |
/spicy-video image=last [prompt] | チャット内の直近の画像をアニメーションにします。image= には画像の URL も指定できます。 |
/spicy-task <task id> | 以前のタスクの結果をチャットに追加します。たとえば Stop waiting を押したあとや、ページを再読み込みしたあとに使います。 |
/spicy-balance | 利用可能な残高を米ドルで返します。 |
コマンドに追加できる名前付き引数は次のとおりです。
model=<id>は、今回の実行だけモデルを指定します。model=のあとに Tab キーを押すと一覧が出ます。edit=trueは、プロンプトを入力済みでもプロンプトエディターを開きます。quiet=trueは、結果を投稿せずに保存してそのパスを返します。Quick Replies や STscript 向けです。avatar=trueまたはavatar=false(画像のみ)は、「キャラクターのアバターを使う」設定を上書きします。
/spicy-img a lighthouse on a cliff at dusk, wide shot
/spicy-video waves rolling onto a beach at sunrise
/spicy-video image=last slow push-in, hair moving in the windチャット入力欄の隣にある魔法の杖のメニューには、SpicyAPI picture、SpicyAPI video、SpicyAPI: animate last picture があります。
Animate
チャット内のすべての画像には、操作ボタンの中にフィルムのアイコンがあります。画像の付いたメッセージでは、... メニューにも同じアイコンがあります。これを押すと、画像から動画への変換用に選んだモデルでその画像を動画クリップにし、同じメッセージにクリップを追加します。
プロンプト
プロンプトを指定しない場合は、接続中のチャットモデルが現在の場面からプロンプトを書きます。Let me read and edit the prompt before generating がオン(既定)の場合は、モデル、正確な料金、書かれたプロンプトを表示するウィンドウが開きます。そのまま待つことも、自分で入力することも、Write from the scene をもう一度押すこともできます。この拡張機能にはプロンプト、プリセット、スタイルは含まれておらず、言葉はあなたかチャットモデルから出てきます。
参照画像を受け付けるモデルでは、キャラクターのアバターを使うことで、画像がそのキャラクターらしく仕上がります。
AI に画像を見せてもらう
既定ではオフです。SpicyAPI パネルの Let the AI show pictures をオンにしたうえで、チャットモデルが画像を求める方法を選びます。どちらか一方でも、両方でも使えます。
| 方法 | 仕組み | 必要なもの |
|---|---|---|
| Function tool | チャットモデルが説明文を添えて spicyapi_generate_image というツールを呼び出すと、画像が投稿され、モデルはそのまま物語を続けます。 | AI Response Configuration の Enable function calling(パネルにそのためのボタンがあります)と、ツールに対応したチャットモデル。SpicyAPI のチャットモデルはすべて対応しています。 |
| Reply tag | チャットモデルが返信の末尾に <pic prompt="description of the picture"> を付けます。拡張機能がタグを取り除き、その返信の直後に画像を投稿します。 | どのチャット API でも使えます。既定では、拡張機能が通常の生成に短い指示を追加します。自分で書く場合はオフにしてください。 |
自動の画像には、後述の実行ごとの上限とは別に、専用の上限があります。
- チャットごとに数回の返信につき画像は最大 1 枚です(既定は 3 回)。拒否されたリクエストや失敗したリクエストでも、待機期間が始まります。
- このブラウザーでの自動画像の 1 日の上限です(既定は $0.50)。
- 確認金額を超える場合は、Ask me first(既定。説明文と料金を表示します)か Skip the picture のどちらかになります。
自動の実行で作られるのは画像だけで、動画は作られません。また、画像は他の結果と同様に AI からは見えません。ツールがオンの間は、その定義がすべてのチャットリクエストに付いて送信されるため、チャット API でトークンを少し消費します。詳しい動作は拡張機能の README を参照してください。
料金と上限
拡張機能は、実行のたびに SpicyAPI に見積もりを問い合わせ、米ドルで表示します。見積もりは無料です。
| 設定 | 既定値 | 内容 |
|---|---|---|
| Ask before spending more than | $0.10 | この金額を超える実行には確認が必要です。プロンプトエディターですでに料金が表示されていた場合は、Generate for $... を押すことが確認になります。空欄は確認しない、0 は毎回確認する、という意味です。 |
| Never spend more than | $1.00 | これを超える可能性のある実行は、課金される前に拒否されます。空欄は上限なしです。 |
パネルには、このブラウザーのセッションで使った金額も表示されます。どこでも有効な厳格な上限が必要な場合は、キー自体に 1 日の支出上限を設定してください。認証を参照してください。
Stop waiting を押したりページを閉じたりしても、実行は SpicyAPI 上で続き、成功すれば課金されます。あとで /spicy-task <task id> で受け取れます。失敗した実行には課金されません。ただし、拒否されたリクエストにも課金されると、そのモデルのページに明記されている一部のモデルは例外です。課金を参照してください。
キーとファイルの保存先
- キーは、SillyTavern を動かすマシン上の SillyTavern の設定ファイル(
data/<user>/settings.jsonのextension_settings.spicyapi)に、平文で保存されます。ほかの SillyTavern 拡張機能からも読み取れます。Connect chat を使うと、キーは Custom エンドポイントのキーとして、SillyTavern のシークレットファイルにも保存されます。そのため、支出上限を付けた専用キーを用意しておく価値があります。 - 結果はダウンロードされ、SillyTavern の画像フォルダー(
data/<user>/user/images/<character>/spicyapi_<task id>.pngまたは.mp4)に保存されたうえで、チャットに添付されます。新しい結果は既定で AI から見えない状態になるため、画像を読めないモデルに次のチャットリクエストで画像が送られることはありません。この動作を変えるには、Let the AI see generated pictures and videos をオンにします。 - 手元のマシンから外に出る情報は、プロンプト、モデルの設定、参照画像で、
api.spicyapi.aiに送られます。チャットモデルがプロンプトを書く場合は、ほかのメッセージと同様に、チャットのコンテキストが SillyTavern の接続先のチャット API に送られます。 - SpicyAPI は、生成されたファイルを限られた期間だけ保持します。保持期間を参照してください。
生成の途中でチャットを切り替えた場合、結果は保存されますがチャットには追加されず、拡張機能が保存先を知らせます。
接続経路
既定では、拡張機能はブラウザーから https://api.spicyapi.ai に直接アクセスします。ネットワークやブラウザーがこれをブロックする場合は、パネルの Connection を開き、Auto(まず直接接続を試し、だめなら SillyTavern の CORS プロキシにフォールバック)または Through SillyTavern's CORS proxy を選びます。
プロキシは既定でオフです。オンにするには、SillyTavern の config.yaml で enableCorsProxy: true を設定する(または --corsProxy を付けて SillyTavern を起動する)ことを行い、再起動します。SillyTavern の基本認証(basicAuthMode)とは併用できません。基本認証は API キー付きのリクエストを拒否するためです。その場合は直接の経路を使ってください。
トラブルシューティング
| 表示される内容 | 対処 |
|---|---|
ストリーミングなしのメッセージで Bad Request | Streaming をオンにして、実際のエラーメッセージを確認します。よくある原因は、以下の各行にあります。 |
| 空の返信、または数語で止まる返信 | Response (tokens) を 2000 以上にします。モデルが先に思考する場合は、reasoning effort を下げます。 |
401 または「invalid key」 | コンソールからキーを貼り直します。sk-spicy- で始まっていること、余分なスペースがないことを確認します。 |
40202 | キーの支出上限、または残高に到達しました。上限を引き上げるか、残高を追加します。エラーを参照してください。 |
40301 | キーのモデル許可リストにこのモデルが含まれていません。コンソールで追加します。 |
image_url を名指しするエラー、または画像が表示されてからすべてのメッセージが失敗する | そのモデルは画像を読めません。Send inline media をオフにするか、画像を読めるモデルを選びます。 |
n、logit_bias、logprobs を名指しするエラー | このモデルでは、Multiple swipes、Logit Bias プリセット、トークン確率をオフにします。 |
| メッセージのロールや順序に関するエラー | Prompt Post-Processing を Semi-strict または Strict にします。 |
| モデルのドロップダウンが長い | チャットモデルが先頭に並びます。どれかを選ぶか、/chat で終わるモデル ID を Enter a Model ID に入力します。 |
出力の予算が推論で使い切られたと伝える upstream_failed | Response (tokens) を増やすか、reasoning effort を下げます。 |
| 「The browser could not reach api.spicyapi.ai」(拡張機能) | 接続経路を Auto に切り替え、前述のとおり SillyTavern の CORS プロキシを有効にします。 |
| 「SillyTavern's CORS proxy is turned off」(拡張機能) | config.yaml で enableCorsProxy: true を設定して SillyTavern を再起動するか、直接の経路に戻します。 |
| 「The result ... is ready, but it could not be downloaded」(拡張機能) | /spicy-task <task id> を実行して、もう一度試します。 |
| 「The prompt could not be written」(拡張機能) | チャットモデルが接続されていないか、エラーが返りました。代わりにプロンプトを自分で入力します。 |
SpicyAPI のエラーの末尾には、request_id またはタスク ID が付きます。サポートに連絡するときにそれを伝えれば、リクエストを正確に特定できます。エラーコードの意味はエラーで説明しています。

