Skip to content

SillyTavern Support

TomoriBot can import two things from SillyTavern that you may already have: Prompt Manager presets (how the prompt is laid out) and character cards (the character itself). This is a niche feature for ST users — if you’ve never used SillyTavern, you can skip this page.

Bring an existing SillyTavern character straight into Discord with /persona import. It accepts:

  • PNG cards with embedded chara / char metadata,
  • v2-style JSON cards (root-level name, description, first_mes, …),
  • v3 JSON cards (spec: "chara_card_v3" with a nested data object).

If the file has no TomoriBot metadata but is a valid ST v2/v3 card, import automatically runs it through the SillyTavern conversion flow. You can also feed a card to /persona generate to transform it into a fresh persona.

Imports pass through a validation schema before anything is saved (default caps: 5,000 characters per string, 200 attributes, 100 sample dialogues per side, 100 trigger words — self-hosters can tune the PRESET_MAX_* env vars). For the exact conversion and field mapping, see the card-support architecture.

A SillyTavern Prompt Manager preset controls the layout of the prompt. Import one with /st-preset import, inspect which nodes are enabled with /st-preset toggle, and return to the normal layout with /st-preset remove.

  • Prompt order and marker placement
  • Custom prompt nodes
  • Post-history / depth-injection nodes
  • Which imported nodes start enabled or disabled

A preset owns the layout, not every source of text. These still exist alongside it:

  • Your system/persona blocks: /config system-prompt set, /persona prompt set, /persona attribute add, /persona sample-dialogue add.
  • Live chat history and retrieved document context.
  • TomoriBot’s automatic context: server memory, emoji/sticker context, users-in-conversation, short-term memory, conditioning, and similar blocks.
  • main → the current system prompt (/config system-prompt set, else the built-in fallback)
  • charDescription/persona prompt set
  • charPersonality/persona attribute add
  • dialogueExamples/persona sample-dialogue add
  • chatHistory → live channel history
  • worldInfoBefore / worldInfoAfter → retrieved document context (not ST lorebooks)

While a preset is active, the built-in fallback system prompt is removed — but if you set your own with /config system-prompt set, it’s still sent.

Common surprises when a preset seems ignored:

  • Imported ≠ sent: nodes disabled in prompt_order stay off until you enable them with /st-preset toggle. Comment-only and empty nodes are never sent; unknown markers are skipped.
  • Order is literal — placing chatHistory before dialogueExamples sends live chat first.
  • Post-history/depth injections merge into existing chat-history entries rather than becoming standalone messages; multiple nodes at the same depth are batched.
  • Regex post-processing, preset-side temperature/top-p/model overrides, and layered presets are not supported. Legacy text-completion presets import through a best-effort path that drops ST-only blocks (scenario, anchors, stop strings, …).

Run /help st-preset for the full in-Discord reference. For the import engine internals, see the preset-system architecture.