DE ▾
API-Schlüssel erhalten

NsfwAiApiLeitfaden

Bestes lokales LLM für Roleplay oder eine gehostete API?

Das beste lokale LLM für Roleplay ist das größte unzensierte Modell, das deine GPU bei akzeptabler Qualität fasst, und diese Antwort ändert sich alle paar Monate. Wenn du die Hardware lieber umgehen möchtest, gibt dir ein gehosteter Endpunkt denselben Chat-Arbeitsablauf mit einer URL-Änderung.

Aktualisiert

Isometrische Illustration, die eine lokale GPU-Box und einen gehosteten Server-Cluster durch Chat-Blasen verbindet

Lokal oder gehostet: die schnelle Entscheidung

Wähle lokal, wenn du bereits eine leistungsfähige GPU besitzt, alles offline haben möchtest oder das Tunen von Modellen magst. Wähle gehostet, wenn du einen langen Gedächtnisverlauf in einer Geschichte willst, du ein Laptop oder Handy nutzt oder du lieber Minuten als Wochenenden mit der Einrichtung verbringen möchtest. Viele machen beides: ein lokales Modell für private Experimente und ein gehostetes für lange Kampagnen.

FaktorLokales ModellGehostete API
KostenmodellHardware und Strom, keine Token-GebührBezahlung pro Token aus Prepaid-Guthaben
ModellgrößeBegrenzt durch deinen GPU-SpeicherWas auch immer der Anbieter ausführt
KontextlängeBegrenzt durch Speicher, da längerer Kontext mehr davon benötigt100.000 Token hier
DatenschutzNichts verlässt deine MaschinePrompts werden an den Anbieter gesendet; hier werden sie nicht zum Training verwendet
EinrichtungLaufzeit, Gewichte, Quantisierung, UpdatesEine Basis-URL und ein Schlüssel
Funktioniert auf jedem GerätNur wenn du deine eigene Maschine freigibstJa

Was das beste lokale Modell tatsächlich bestimmt

Ranglisten der besten lokalen LLMs für Rollenspiel veralten schnell, und kein einzelner Name ist für jeden richtig. Beurteile Kandidaten stattdessen an den Dingen, die in einer echten Sitzung auftauchen.

  • Verweigerungsverhalten. Viele Basis- und Instruct-Modelle wurden darauf trainiert, bestimmte Themen abzulehnen. Modelle, die für Fiktion feinabgestimmt oder als unzensiert markiert sind, verweigern meist weniger, aber die Qualität variiert, also teste sie mit deinen eigenen Szenen.
  • Im Charakter bleiben. Achte auf ein Modell, das nicht in das Erzählen deiner Charakteraktionen abdriftet, dieselben Phrasen bei jedem Schritt wiederholt oder vergisst, wer im Raum ist.
  • Prosaqualität. Lies zehn Antworten nacheinander. Einige Modelle sind für einen Schritt in Ordnung, werden aber bis zur zehnten ermüdend.
  • Kontextbehandlung. Ein Modell kann ein langes Fenster werben und trotzdem Details aus der Mitte verlieren. Führe einen Test durch, bei dem eine Tatsache aus dem frühen Chat später wichtig ist.
  • Größe und Quantisierung. Ein größeres Modell in starker Quantisierung verliert mehr als ein kleineres bei höherer Präzision. Vergleiche, nicht raten.

Die Community-Foren und Modellkarten für die von dir genutzte Laufzeit sind der richtige Ort für aktuelle Empfehlungen. Lade zwei oder drei Kandidaten herunter, führe dieselbe Szene auf jedem aus und behalte das, das dich zum Fortsetzen der Geschichte animiert.

Wo das Lokale an seine Grenzen stößt

Die Mauer, vor der die meisten Roleplayer stehen, ist der Speicher, und sie trifft an zwei Stellen. Die erste ist das Modell selbst: Ein größeres Modell schreibt besser, benötigt aber mehr GPU-Speicher. Die zweite ist der Kontext. Jede Nachricht in einer langen Geschichte wird bei jedem neuen Schritt erneut gesendet, und der Cache, der sie enthält, wächst ebenfalls mit der Länge, sodass eine lange Kampagne eine GPU ausquetschen kann, die kurze Chats problemlos verarbeitet.

Die üblichen Workarounds sind das Zusammenfassen alter Schritte, die Nutzung von Lorebooks, die nur relevante Fakten injizieren, und das Reduzieren der Kontextgröße. Sie funktionieren, sind aber auch Arbeit. Ein gehosteter Endpunkt mit einem 100.000-Token-Fenster lässt dich viel mehr von der Geschichte sichtbar behalten, was für lange Kampagnen, geteilte Welten mit vielen Charakteren und Geschichten, die über Wochen laufen, geeignet ist.

Der Kompromiss ist der Preis, daher hilft es, ihn zu messen. Angenommen, ein Chat hat 30.000 Token an Verlauf und das Modell schreibt 300 Token pro Antwort. Eine Runde kostet 30.000 Input-Token zu $0,15 pro 1 Mio., was $0,0045 entspricht, plus 300 Output-Token zu $0,50 pro 1 Mio., was $0,00015 entspricht. Das sind $0,00465 pro Runde oder $0,465 für 100 Runden. Ein langer Abend zum Spielen kostet weit weniger als einen Dollar. Die Preisseite listet die Preise und die Bonusstufen für größere Aufladungen auf.

Eine funktionierende gehostete Konfiguration in Python

Der Endpunkt ist OpenAI-kompatibel, daher funktioniert das offizielle openai-Paket unverändert abgesehen von der Basis-URL und dem Schlüssel. Die Modell-ID ist uncensored. Hol dir zuerst einen Schlüssel von der API-Schlüssel-Seite; neue Konten können dort mit einem Klick ein $0,50 Testguthaben beanspruchen, keine Zahlungsdaten erforderlich.

Dieses Skript hält einen laufenden Verlauf, streamt die Antwort und kürzt alte Schritte, damit der Prompt klein bleibt. Der System-Prompt ist der Teil, der deine Zeit wert ist: Er legt das Setting, die Regeln und den Stil fest.

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.nsfwaiapi.com/v1",
    api_key=os.environ["NSFWAIAPI_KEY"],
)

SYSTEM = '''You are the narrator and all non-player characters in an adult fiction roleplay.
Setting: a rain-soaked port city, late autumn, gaslight and smuggler politics.
Rules:
- Write in third person, past tense, 2 to 4 short paragraphs per reply.
- Never write the player's actions, words or thoughts. Stop where the player decides.
- Keep each character's voice and goals consistent. Track who is present in the scene.
- All characters are adults. Do not write sexual content involving minors under any circumstances.
- Stay in the story. No disclaimers or out-of-character commentary unless the player asks with (OOC).'''

history = [{"role": "system", "content": SYSTEM}]
MAX_TURNS = 40  # keep the last 40 messages besides the system prompt

def say(user_text):
    history.append({"role": "user", "content": user_text})
    trimmed = [history[0]] + history[1:][-MAX_TURNS:]
    stream = client.chat.completions.create(
        model="uncensored",
        messages=trimmed,
        temperature=0.9,
        top_p=0.95,
        frequency_penalty=0.3,
        max_tokens=600,
        stream=True,
    )
    reply = ""
    for chunk in stream:
        if chunk.choices and chunk.choices[0].delta.content:
            piece = chunk.choices[0].delta.content
            reply += piece
            print(piece, end="", flush=True)
    print()
    history.append({"role": "assistant", "content": reply})

say("I push open the door of the Gull and Anchor and look for the harbor master.")

Da das Fenster 100.000 Token umfasst, kannst du MAX_TURNS stark erhöhen, bevor das Kürzen relevant wird. Kürzen ist dennoch eine gute Gewohnheit: Kürzere Prompts kosten weniger und halten das Modell auf aktuelle Ereignisse fokussiert.

Client-Einstellungen für SillyTavern und ähnliche Apps

Die meisten Roleplay-Frontends haben einen Verbindungsbildschirm für eine OpenAI-kompatible oder benutzerdefinierte Chat-Vervollständigungsquelle. SillyTavern lässt dich beispielsweise einen OpenAI-kompatiblen Endpunkt hinzufügen. Die Felder sind überall gleich:

  • Base- oder Endpunkt-URL: https://api.nsfwaiapi.com/v1. Einige Apps benötigen den vollständigen Pfad, der mit /chat/completions endet; wenn die App eine Base verlangt, stoppe bei /v1.
  • API-Schlüssel: dein Schlüssel, gesendet als Bearer-Token.
  • Modell: uncensored. Wenn die App eine Modellliste abrufen kann, kann sie GET /v1/models aufrufen.
  • Streaming: aktiv. Antworten erscheinen, während sie geschrieben werden, und die App kann frühzeitig stoppen, wenn du die Richtung nicht magst.

Für Sampling eignet sich eine Temperatur von etwa 0,8 bis 1,0 für narrativen Text, mit top_p nahe 0,95. Eine kleine Frequenz- oder Präsenzstrafe reduziert die wiederholten Phrasen, die lange Chats tendenziell ansammeln. Erhöhe die Strafe nur, wenn du Wiederholungen siehst, da hohe Werte die Prosa seltsam vermeidend machen. Stop-Sequenzen werden durchgegeben, daher hilft das Hinzufügen des Spielernamens gefolgt von einem Doppelpunkt als Stop-String, wenn ein Modell versucht, für dich zu sprechen. Stelle die Kontextgröße der App auf das ein, wofür du zahlen möchtest; du musst nicht alle 100.000 Token füllen.

Behalte die Parallelität im Auge, wenn du mehrere Chat-Tabs oder einen Bot für Freunde ausführst. Ein voller Schlüssel erlaubt 8 parallele Anfragen und 300 pro Minute, und ein Testguthaben-Schlüssel erlaubt 2 und 60. Eine gestreamte Antwort belegt ihren Slot, bis der Stream endet, daher kann ein steckengebliebener Tab einen Slot verbrauchen. Die Dokumentation listet die Limits und die Antwort-Header auf, einschließlich X-Balance-USD, das dein verbleibendes Guthaben anzeigt.

Eine kleine Routine, die lange Geschichten gesund hält

Lange Roleplay-Sessions gehen auf vorhersehbare Weise schief, und einige Gewohnheiten verhindern die meisten Probleme. Schreibe alle 20 oder 30 Schritte eine kurze Zusammenfassung der Geschichte und halte sie ganz oben im Prompt, nach der Systemnachricht. Aktualisiere sie manuell oder bitte das Modell, sie zu erzeugen, und prüfe dann, ob Namen, Orte und Versprechen überlebt haben. Pinne die Fakten, die niemals vergessen werden dürfen, wie Beziehungen und offene Fäden, direkt im System-Prompt.

Wenn eine Antwort in eine Richtung geht, die du nicht magst, generiere sie neu, anstatt im Chat damit zu argumentieren. Argumente verschmutzen die Historie und lehren das Modell, dass die Szene über das Argument handelt. Wenn du lenken willst, füge eine klare Zeile in Klammern hinzu, wie eine Notiz zur Stimmung der nächsten Szene, und lasse die nächste Antwort sie aufnehmen. Halte Charakternamen konsistent und gib jedem Nicht-Spieler-Charakter eine einzeilige Notiz zur Stimme, da Modelle Charaktere verwischen, die ähnlich klingen.

Ehrliche Grenzen dieses Modells

Es ist ein Open-Weight-Modell, betrieben von einem unabhängigen Anbieter und darauf abgestimmt, ohne Inhaltsverweigerungen für die rechtmäßige Erwachsenennutzung zu antworten. Es ist nicht die offizielle API eines Modell-Anbieters und kein Router über mehrere. Du kannst nicht zwischen Modellen wählen, und du solltest nicht erwarten, dass es bei jeder Aufgabe die besten geschlossenen Modelle erreicht.

Es generiert nur Text. Es gibt keine Bilder für deine Charaktere, keine Stimme und keine Embeddings für die Suche in einem Lorebook, also musst du für Porträts oder Sprache einen separaten Dienst für jedes davon hinzufügen. Es gibt auch kein Fine-Tuning. Die Qualität hängt auch von deinem Prompt ab: Ein vager System-Prompt liefert vage Fiktion, und ein gutes Charakterprofil mit Beispiel-Dialogen bringt mehr als jede Sampling-Anpassung.

Eine Regel ist festgelegt. Sexuelle Inhalte mit Minderjährigen sind nicht erlaubt, und eine Konfiguration, die darauf abzielt, wird nicht unterstützt. Halte die Charaktere erwachsen und stelle sicher, dass deine Nutzung gesetzeskonform ist. Für Fiktion, Companion-Apps und Charakter-Chat, die für Erwachsene gedacht sind, ist die Kombination aus weniger Ablehnungen und einem langen Kontextfenster der nützliche Teil.

Fragen und Antworten

Ist ein lokales LLM besser als eine gehostete API für Rollenspiel?

Keine gewinnt überall. Lokal gibt dir Offline-Privatsphäre und keine Token-Kosten, während gehostet ein längeres Kontextfenster und keine Hardware-Grenzen bietet. Viele nutzen beide.

Kann ich SillyTavern mit dieser API verwenden?

Ja. SillyTavern und ähnliche Apps akzeptieren einen OpenAI-kompatiblen Endpunkt. Gib https://api.nsfwaiapi.com/v1 als URL, deinen Schlüssel und die Modell-ID uncensored ein.

Wie viel Kontext kann eine Rollenspiel-Sitzung nutzen?

Das Kontextfenster umfasst 100.000 Token, gezählt aus Prompt und Antwort zusammen. Lange Chats kosten mehr, da der Verlauf bei jedem Zug gesendet wird.

Generiert es Bilder oder Stimme für meine Charaktere?

Nein. Der Dienst ist nur textbasiert, ohne Bild-, Audio- oder Videoerzeugung und ohne Embeddings.

Dein Schlüssel ist nur ein Formular entfernt

Erstelle ein Konto, kopiere den Schlüssel, ändere die Basis-URL. Das ist die gesamte Einrichtung.

API-Schlüssel erhalten

NsfwAiApiUnzensierte LLM-API zur NSFW-Textgenerierung