SillyTavern : l'interface de personnages pour LLM local
SillyTavern est une interface web pensée pour le jeu de rôle et l'écriture interactive avec un LLM. Elle ne fait pas tourner de modèle elle-même : elle se branche sur un backend local comme KoboldCpp ou Ollama et ajoute par-dessus tout ce qui manque au chat classique — cartes de personnages, mémoire de monde persistante, gestion fine du prompt et extensions. Ce guide couvre l'installation, la connexion à votre backend, la création de personnages et les réglages qui font la différence en interprétation.
#Pourquoi SillyTavern plutôt qu'un chat classique
Une interface comme Open WebUI ou LM Studio traite chaque conversation comme un échange assistant/utilisateur. SillyTavern part d'un autre besoin : incarner un personnage cohérent sur des centaines de messages, dans un univers qui se souvient de ses propres règles. C'est l'outil de référence de la communauté du jeu de rôle avec LLM local, et il apporte des mécaniques que le chat brut n'a pas.
- Cartes de personnages
- Un format standardisé (PNG avec métadonnées embarquées) qui décrit persona, style, exemples de dialogue et message d'accueil. Importable et partageable en un fichier.
- Mémoire de monde
- Le lorebook injecte des informations dans le prompt seulement quand un mot-clé apparaît, ce qui garde un univers cohérent sans saturer le contexte.
- Contrôle du prompt
- Vous voyez et modifiez chaque brique envoyée au modèle : system prompt, format d'instruction, ordre d'injection. Rien n'est caché.
- Backend au choix
- SillyTavern est un front-end pur. Le même personnage tourne sur KoboldCpp, Ollama, llama.cpp ou une API distante sans rien réécrire.
#Prérequis et choix du backend
SillyTavern tourne sur Node.js (version 18 ou supérieure) sous Windows, macOS et Linux. Léger côté ressources — c'est le backend qui consomme la VRAM. Deux backends locaux couvrent la quasi-totalité des usages : KoboldCpp, orienté GGUF et jeu de rôle, et Ollama, plus généraliste.
- KoboldCpp
- Binaire unique qui exécute des GGUF avec une API que SillyTavern connaît nativement. Réglages mémoire fins, support AMD ROCm. Le choix par défaut de la communauté RP.
- Ollama
- Le daemon écoute sur http://localhost:11434. Pratique si vous l'utilisez déjà pour autre chose ; SillyTavern s'y connecte via son endpoint compatible.
- llama.cpp (llama-server)
- Serveur HTTP OpenAI-compatible pour un contrôle maximal de l'offloading des layers.
- VRAM
- En Q4_K_M : un 7B tient dans ~5 Go, un 14B dans ~9 Go, un 32B dans ~19 Go. Pour du RP fluide, visez un 12-14B minimum si votre carte le permet.
#Installer SillyTavern
La méthode recommandée est le clone Git : elle rend les mises à jour triviales (un git pull) et SillyTavern évolue vite. Assurez-vous d'avoir Node.js 18+ et Git installés.
- 01Cloner le dépôtRécupérez la branche release, stable et testée. Évitez la branche staging sauf si vous voulez les nouveautés en avant-première au prix de quelques bugs.
- 02Lancer le script de démarragestart.sh sous Linux/macOS, Start.bat sous Windows. Au premier lancement, npm installe les dépendances automatiquement.
- 03Ouvrir l'interfaceSillyTavern sert son interface sur http://localhost:8000. Ouvrez cette adresse dans votre navigateur ; aucune application desktop à installer.
- 04Mettre à jour plus tardUn git pull dans le dossier, puis relancez le script. Vos personnages et conversations sont stockés à part dans data/ et ne sont pas écrasés.
#Brancher le backend local
Une fois SillyTavern ouvert, tout se passe dans l'onglet de connexion API (l'icône en forme de prise en haut). Le principe : lancer le backend d'un côté, indiquer son adresse à SillyTavern de l'autre.
#Avec KoboldCpp
Démarrez KoboldCpp avec votre modèle GGUF ; il expose son API sur le port 5001 par défaut. Dans SillyTavern, choisissez le type d'API « Text Completion », puis le backend « KoboldCpp », et renseignez l'URL. Cliquez sur Connect : le nom du modèle chargé s'affiche si tout est bon.
#Avec Ollama
Ollama tourne déjà en daemon sur le port 11434. Dans SillyTavern, sélectionnez « Text Completion » puis le backend « Ollama », entrez l'adresse et choisissez le modèle dans la liste déroulante récupérée automatiquement.
#Créer et importer des cartes de personnages
La carte de personnage est le cœur de SillyTavern. C'est un fichier PNG dont l'image sert d'avatar et dont les métadonnées embarquées décrivent le personnage. Vous pouvez en créer un de zéro ou importer une carte partagée par la communauté.
#Les champs qui comptent
- Description
- Le socle du personnage : apparence, traits, historique. C'est injecté en permanence dans le contexte, donc restez dense et concret plutôt que verbeux.
- Personality
- Un résumé du tempérament. Utile pour orienter le ton sans réécrire toute la description.
- First message
- Le message d'accueil qui plante la scène. Il donne le ton, le style d'écriture et le format attendus — le modèle a tendance à imiter sa forme.
- Example dialogues
- Des exemples de répliques qui montrent au modèle comment le personnage parle. Très efficace pour verrouiller une voix particulière.
- Scenario
- Le contexte de la scène, séparé de la description du personnage. Pratique pour réutiliser un même personnage dans plusieurs situations.
- 01Ouvrir le panneau des personnagesL'icône de personnage dans la barre du haut ouvre la liste. Le bouton « + » crée une carte vierge.
- 02Remplir la descriptionDécrivez le personnage de façon dense. Beaucoup d'auteurs utilisent un format structuré (listes de traits) plutôt qu'un paragraphe, ce que les modèles suivent bien.
- 03Écrire le premier messageSoignez-le : c'est votre meilleur levier de style. Un message d'accueil narratif à la troisième personne pousse le modèle vers ce format.
- 04Importer une carte existanteGlissez un PNG de carte dans la liste, ou importez-le. Les cartes se partagent sous forme de simples fichiers image sur les hubs communautaires.
#Le monde persistant : le lorebook
Le lorebook (ou World Info) résout le problème central des longues parties : comment garder un univers cohérent sans tout injecter en permanence. Le principe est l'injection conditionnelle par mots-clés.
Vous créez des entrées, chacune associée à un ou plusieurs mots-clés. Quand un de ces mots apparaît dans les messages récents, l'entrée correspondante est injectée dans le contexte juste avant la génération. Le reste du temps, elle n'occupe aucune place. Vous pouvez ainsi décrire des dizaines de lieux, personnages secondaires et règles sans jamais saturer le prompt.
- Entrée
- Un bloc de texte (le lore à injecter) et ses mots-clés déclencheurs. Exemple : mot-clé « Valmont » → description de la cité de Valmont.
- Constant vs sélectif
- Une entrée peut être toujours active (règles fondamentales de l'univers) ou déclenchée seulement par mot-clé (détails contextuels).
- Profondeur d'injection
- Vous choisissez à quelle position l'entrée est insérée dans le prompt, ce qui influe sur le poids que le modèle lui donne.
- Lié au personnage ou global
- Un lorebook peut accompagner une carte précise ou s'appliquer à toutes vos conversations comme univers partagé.
#Régler la génération pour l'interprétation
Les paramètres de sampling décident du dosage entre cohérence et créativité. Pour du jeu de rôle, on cherche plus de variété que pour de l'assistance factuelle, sans tomber dans l'incohérence. Ces réglages se trouvent dans l'onglet des paramètres de génération (l'icône de curseurs).
- Température
- Le curseur créativité/stabilité. Autour de 0.7-0.9 pour un bon équilibre en RP. Trop haut (> 1.2) part en incohérence ; trop bas rend le personnage répétitif et plat.
- Min-P
- Un sampler moderne qui coupe les tokens improbables proportionnellement au plus probable. Une valeur de 0.05-0.1 assainit la sortie et permet de monter la température sans dérailler.
- Répétition penalty
- Pénalise la reprise des mêmes tokens. Utile contre les boucles, mais trop fort il force le modèle à des tournures artificielles. Restez modéré.
- Response length
- Le nombre max de tokens générés par réponse. 200-400 tokens pour des répliques narratives consistantes sans monologues interminables.
- Context size
- Doit correspondre à ce que votre backend a chargé. Inutile de demander 16k à SillyTavern si KoboldCpp n'a été lancé qu'avec 8k.
#Les extensions qui changent l'expérience
SillyTavern est extensible. Certaines extensions sont livrées d'origine, d'autres s'installent via leur URL de dépôt. Voici celles qui transforment vraiment l'usage.
- Vector Storage (résumé mémoire)
- Vectorise l'historique et réinjecte les passages pertinents des vieux messages, prolongeant la mémoire au-delà de la fenêtre de contexte. Utile pour les très longues parties.
- Summarize
- Génère et maintient un résumé courant de la conversation, réinjecté dans le prompt. Le personnage se souvient des grands événements même après des centaines de messages.
- Text-to-Speech
- Donne une voix aux personnages via un moteur TTS local. Immersion renforcée pour ceux qui jouent à l'oral.
- Image generation
- Se branche sur un backend d'images local (type Stable Diffusion) pour illustrer scènes et personnages à la volée depuis le chat.
- Expressions
- Affiche l'avatar avec une émotion correspondant au ton du message, à partir d'un jeu de sprites du personnage.
#Quels modèles locaux excellent en interprétation
Tous les LLM ne se valent pas en jeu de rôle. Les modèles « instruct » alignés pour l'assistance ont tendance à casser le personnage, moraliser ou refuser des scénarios de fiction. La communauté privilégie des fine-tunes spécialisés, souvent construits sur des bases solides puis réentraînés pour la narration et le dialogue en personnage.
- Taille utile
- En dessous de 7B, la cohérence du personnage sur la durée souffre. Un 12-14B en Q4_K_M (~9 Go de VRAM) est le point d'équilibre pour la plupart des cartes graphiques milieu de gamme.
- Fine-tunes RP
- Cherchez les modèles explicitement entraînés pour le roleplay ou la fiction (souvent signalés « RP », « storytelling » ou « uncensored » sur Hugging Face). Ils suivent mieux le format des cartes.
- Contexte long
- Privilégiez un modèle qui tient bien sur 16k+ tokens sans dégénérer : les longues parties l'exigent. Vérifiez le contexte natif annoncé du modèle.
- Format GGUF
- Pour KoboldCpp, restez sur des GGUF quantifiés. Q4_K_M est le compromis recommandé ; montez en Q5_K_M ou Q8_0 si votre VRAM le permet et que vous cherchez plus de finesse.
#Dépannage des problèmes courants
- SillyTavern ne se connecte pas
- Vérifiez que le backend tourne bien et que le port est le bon (5001 pour KoboldCpp, 11434 pour Ollama). Un test dans le navigateur sur l'URL de l'API confirme qu'elle répond.
- Réponses avec des balises visibles
- Presque toujours un template d'instruction inadapté. Alignez le format (ChatML, Llama 3, Mistral…) sur celui du modèle dans Advanced Formatting.
- Le personnage sort de son rôle
- Renforcez la description et les exemples de dialogue, baissez un peu la température, et vérifiez que votre system prompt n'entre pas en conflit avec la carte.
- Répétitions et boucles
- Augmentez légèrement la répétition penalty et ajoutez un Min-P. Si ça persiste, le contexte est peut-être saturé : activez Summarize ou réduisez la taille de la carte.
- Réponses tronquées
- Response length trop bas, ou le backend a été lancé avec un contexte plus petit que ce que demande SillyTavern. Alignez les deux valeurs.
#Pour aller plus loin
SillyTavern n'est qu'une couche : la qualité finale dépend surtout de votre backend et du modèle. Ces guides vous aident à solidifier les fondations.
- KoboldCpp : installation et prise en main
- Le backend de référence pour le RP local : GGUF, réglages mémoire et API que SillyTavern connaît nativement.
- Ollama, c'est quoi et comment ça marche
- L'alternative généraliste si vous préférez un daemon unique sur le port 11434 pour tous vos usages.
- Quantifier le KV cache
- Pour tenir des contextes de RP plus longs sur la même carte graphique sans exploser la VRAM.
Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.