SillyTavern
Custom (OpenAI-compatible) 소스로 SillyTavern에서 SpicyAPI 모델과 대화하고, 무료 SpicyAPI 확장을 추가해 이미지와 영상, Animate 버튼을 쓰세요. 실행마다 가격을 먼저 보여 줍니다.
SillyTavern에서 SpicyAPI를 쓰는 방법은 두 가지입니다. 첫 번째는 일반적인 채팅 연결입니다. SillyTavern이 Custom (OpenAI-compatible) 소스를 통해 내 메시지를 SpicyAPI 채팅 모델로 보냅니다. 두 번째는 SpicyAPI 확장입니다. /spicy-img와 /spicy-video 명령, 그리고 Animate 버튼이 추가되어 채팅을 벗어나지 않고 이미지와 짧은 영상을 만들 수 있습니다.
둘 중 하나만 써도 됩니다. 둘 다 SpicyAPI의 다른 서비스와 같은 계정, 같은 잔액, 같은 가격을 쓰며, 실행한 만큼만 결제합니다. 확장은 무료 오픈 소스(MIT)이며 github.com/spicyapi-ai/sillytavern-spicyapi에서 받을 수 있습니다.
한눈에 보기
- spicyapi.ai/console/keys에서 키를 만드세요. SillyTavern 전용 키를 따로 만들고 일일 지출 한도를 설정하세요.
- SillyTavern에서 API Connections를 열고 API를 Chat Completion으로, Chat Completion Source를 **Custom (OpenAI-compatible)**로 설정하세요. 엔드포인트는
https://api.spicyapi.ai/v1, 키는 내 키, 모델 ID는/chat으로 끝나는 ID를 입력한 뒤 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)**로 설정하세요.
세 칸 채우기
| 칸 | 입력할 값 |
|---|---|
| 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 서버에서 해당 사용자의 secrets 파일에 보관됩니다. Test Message로 응답이 오는지 확인하세요.
채팅 모델 고르기
채팅 모델의 ID는 /chat으로 끝납니다. Available Models 드롭다운은 SpicyAPI의 전체 모델 목록으로 채워지기 때문에 이미지, 영상, 오디오 모델도 함께 보이는데, 이런 모델은 채팅할 수 없습니다. 채팅 모델이 맨 앞에 오므로 목록 맨 위에서 고르거나, Enter a Model ID에 /chat 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의 슬라이더는 그대로 두어도 됩니다.
추론 강도
SillyTavern의 Reasoning Effort 드롭다운 값은 SpicyAPI 모델로 전송되지 않습니다. 설정하려면 직접 추가해야 하며, supported_parameters에 reasoning_effort가 있는 모델에만 쓰세요.
- Connect 버튼 아래의 Additional Parameters를 클릭하세요.
- Include Body Parameters에 다음처럼 한 줄을 추가하세요.
reasoning_effort: low허용되는 값은 모델마다 다릅니다. 모델이 제공하지 않는 단계를 보내면 그 모델에 있는 가장 가까운 단계로 바뀌고(X-Spicy-Adjusted-Params 응답 헤더에 이름이 나옵니다), 추론 단계가 없는 모델에서는 이 줄이 무시됩니다. 먼저 모델 목록에서 해당 모델 항목을 확인하세요. 답이 비어 있거나 중간에 끊기면 **Response (tokens)**를 올리거나 강도를 낮추세요.
채팅 속 이미지
Send inline media를 켜면 SillyTavern이 채팅 속 이미지를 이후의 모든 요청에 첨부합니다. 이미지를 읽지 못하는 모델은 요청을 400으로 거부하고, 이미지가 채팅에 남아 있으므로 뒤이은 메시지도 모두 실패합니다. 텍스트 전용 모델에서는 Send inline media를 끄거나, 이미지가 들어 있는 메시지를 숨기세요.
채팅 속 영상은 모델로 전송되지 않습니다.
모델이 거부하는 설정
일부 설정은 모델이 지원하지 않으면 여전히 거부됩니다. 답을 다듬는 정도가 아니라 답 자체를 바꾸는 설정이기 때문입니다. 1보다 큰 Multiple swipes per generation(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 | 사용 가능한 잔액을 USD로 알려 줍니다. |
명령에 덧붙일 수 있는 이름 있는 인수는 다음과 같습니다.
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든 됩니다. 기본적으로 확장이 일반 생성에 짧은 지시문을 덧붙입니다. 직접 쓰려면 이 기능을 끄세요. |
자동 이미지에는 아래의 실행별 한도와 별도로 자체 한도가 있습니다.
- 채팅마다 몇 번의 답변에 이미지 한 장까지 만듭니다(기본 3회). 거부되었거나 실패한 요청도 대기 시간이 시작됩니다.
- 이 브라우저에서 자동 이미지에 쓸 수 있는 일일 한도입니다(기본 $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 | 이보다 비쌀 수 있는 실행은 결제가 일어나기 전에 거부됩니다. 비워 두면 제한이 없습니다. |
패널에는 이 브라우저 세션에서 쓴 금액도 표시됩니다. 어디에서나 통하는 확실한 한도가 필요하면 키 자체에 일일 지출 한도를 설정하세요. 인증을 보세요.
Stop waiting을 누르거나 페이지를 닫아도 실행은 SpicyAPI에서 계속 진행되며, 성공하면 요금이 부과됩니다. 나중에 /spicy-task <task id>로 결과를 받으세요. 실패한 실행은 요금이 부과되지 않습니다. 단, 거부된 요청도 과금한다고 모델 페이지에 적혀 있는 일부 모델은 예외입니다. 과금을 보세요.
키와 파일이 저장되는 곳
- 키는 SillyTavern을 실행하는 컴퓨터의 SillyTavern 설정 파일(
data/<user>/settings.json의extension_settings.spicyapi)에 평문으로 저장됩니다. 다른 SillyTavern 확장도 읽을 수 있습니다. Connect chat을 쓰면 키는 SillyTavern의 secrets 파일에도 Custom 엔드포인트 키로 저장됩니다. 지출 한도를 건 별도의 키를 만들어 둘 만한 이유입니다. - 결과물은 내려받아 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 이상으로 올리세요. 모델이 먼저 생각하는 종류라면 추론 강도를 낮추세요. |
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로 설정하세요. |
| 모델 드롭다운이 긺 | 채팅 모델이 목록 맨 앞에 나옵니다. 하나를 고르거나 Enter a Model ID에 /chat으로 끝나는 모델 ID를 직접 입력하세요. |
출력 예산을 추론에 다 썼다는 upstream_failed | **Response (tokens)**를 올리거나 추론 강도를 낮추세요. |
| "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가 붙습니다. 지원팀에 이 값을 알려 주면 해당 요청을 정확히 찾을 수 있습니다. 오류 코드는 오류에 설명되어 있습니다.
ComfyUI 노드
SpicyAPI의 이미지·영상·오디오 모델(Seedance, Kling, Wan, MiniMax H3, Suno, GPT Image, Nano Banana 등)을 ComfyUI 노드로 실행하세요. 노드 팩을 설치하고 키를 등록한 뒤 첫 노드를 실행하고, 실행마다 드는 비용을 한눈에 확인합니다.
롤플레이 앱
SpicyAPI 텍스트 모델을 RisuAI, Agnai, Chub, KoboldAI Lite, Janitor AI에 연결하세요. 앱별 정확한 입력칸, 롤플레이에 맞는 모델, 추론 모델 다루는 법, 지출 한도 설정법을 안내합니다.

