DE ▾
API-Schlüssel erhalten

No-Filter-KI-Geschichtengenerator über API

Ein Geschichtengenerator, der mitten in einer Szene abbricht, weil die Handlung düster wird, ist ein schlechtes Schreibwerkzeug. Dieser Artikel zeigt, wie du ihn über einen OpenAI-kompatiblen Endpunkt mit Code baust, den du heute ausführen kannst.

Aktualisiert

Offenes Buch, dessen Seiten sich in leuchtende Bänder verwandeln, die in ein Terminal fließen, das die API-Geschichtengenerierung veranschaulicht

Wichtige Punkte

  • Verbinde ein beliebiges OpenAI SDK mit der Basis-URL, verwende die Modell-ID uncensored, und du hast eine Story-Engine in etwa zwanzig Zeilen.
  • Ein System-Prompt, der Genre, Ton und Regeln festlegt, ist wichtiger als jede Sampling-Einstellung.
  • Das 100.000-Token-Fenster erlaubt es dir, eine komplette Story Bible und mehrere Kapitel in einer einzigen Anfrage zu halten.
  • Ein Kapitel mit 1.200 Token kostet etwa ein Zehntel Cent, daher sind die Kosten selten das Limit.

Was ein No-Filter-Geschichtengenerator eigentlich ist

Ein No Filter KI-Geschichtengenerator ist ein Textmodell, das Fiktion schreibt, ohne dich zu belehren, deinen Bösewicht durch einen freundlichen zu ersetzen oder eine Szene abzulehnen, nur weil das Thema düster ist. Krimi-Thriller, Kriegsfiktion, Horror, moralisch graue Protagonisten und reife Romantik zwischen Erwachsenen benötigen ein Modell, das düsteres Material als Material behandelt, nicht als Warnung.

Der Dienst hinter dieser Seite bietet dir ein Open-Weight-Modell, das darauf abgestimmt ist, bei rechtmäßigem Erwachseneneinsatz ohne Inhaltsfilter zu antworten. Es läuft bei einem unabhängigen Anbieter und ist über eine standardmäßige OpenAI-API erreichbar. Du sendest eine Liste von Nachrichten, du erhältst Prosa zurück. Kein Web-Editor zum Lernen, keine Vorlage zum Ausfüllen – das ist der Punkt: Du entscheidest, wie das Geschichtentool funktioniert, und das Modell liefert den Text.

Eine Regel ist fest. Sexuelle Inhalte mit Minderjährigen sind stets untersagt, und kein Prompt ändert das. Alles andere in der rechtmäßigen Erwachsenenfiktion steht dir zum Schreiben frei. Wenn du einen allgemeinen Überblick darüber möchtest, wie dies sich mit einer gehosteten Charakterplattform vergleicht, deckt die Seite NoFilter AI versus Character AI dies ab.

Deine erste Geschichte in zwanzig Python-Zeilen

Da die API dem OpenAI-Format folgt, funktioniert das offizielle openai-Paket unverändert. Du ersetzt nur die Basis-URL und den Schlüssel. Installiere es mit pip install openai, dann führe dies aus.

from openai import OpenAI

client = OpenAI(
    base_url="https://api.nofilterai.cc/v1",
    api_key="YOUR_KEY",
)

resp = client.chat.completions.create(
    model="uncensored",
    temperature=0.9,
    messages=[
        {"role": "system", "content": (
            "You are a fiction author. Write in third person, past tense. "
            "Use concrete detail and subtext. Never summarise the scene, "
            "never moralise, never address the reader."
        )},
        {"role": "user", "content": (
            "Genre: noir crime. Setting: a flooded harbour town. "
            "Write the opening 600 words. A smuggler finds a body in his net."
        )},
    ],
)
print(resp.choices[0].message.content)

Die Modell-ID ist uncensored. Der Schlüssel stammt von der API-Schlüssel-Seite. Wenn du dich noch nicht angemeldet hast, können neue Nutzer dort mit einem Klick $0,50 kostenloses Testguthaben beanspruchen, gültig für 7 Tage, sodass dieses erste Skript dich nichts kostet.

Der gleiche Aufruf funktioniert auch mit curl, was praktisch ist, um einen Prompt zu testen, bevor du ihn in Code einbindest.

curl https://api.nofilterai.cc/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [
      {"role": "user", "content": "Write a 200 word horror scene set in a lighthouse."}
    ]
  }'

Prompt-Struktur für nutzbare Fiktion

Die meisten enttäuschenden Ausgaben eines Geschichtsmodells stammen von vagen Anweisungen, nicht vom Modell. Drei Teile des Prompts übernehmen die Hauptarbeit.

Die Systemnachricht legt den Autor fest, nicht das Thema

Gib hier Sprachregeln ein: Erzählperspektive, Zeitform, Satzfrequenz, was zu vermeiden ist. Ein Satz wie „Beende Szenen nicht mit Reflexionen über die Bedeutung“ entfernt eine Gewohnheit, die viele Sprachmodelle teilen. Halte diese Nachricht über ein ganzes Projekt stabil, damit Kapitel ähnlich klingen.

Die Benutzernachricht legt den Takt fest

Gib immer nur eine Szene vor. Benenne die Charaktere, den Ort, die Veränderung bis zum Ende der Szene und eine Ziellänge. „Schreibe 700 Wörter. Mara konfrontiert ihren Bruder wegen des fehlenden Kassenbuchs. Sie bekommt keine Antwort“ ist weit besser als „fahre mit der Geschichte fort“.

Eine Story Bible wird mitgesendet

Halte einen kurzen Block mit Charakterfakten, dem bisherigen Zeitstrang und offenen Fäden und sende ihn bei jeder Anfrage. Eine Story Bible von 800 Token kostet fast nichts und verhindert, dass das Modell eine Augenfarbe ändert oder einen Charakter wiederbelebt.

  • Verwende temperature um 0,8 bis 1,0 für Entwürfe und 0,5 bis 0,7 für Bearbeitungsdurchläufe.
  • Verwende stop-Sequenzen, wenn du in einem festen Format generierst, z. B. Stoppen bei einer Zeile, die „END SCENE“ lautet.
  • Verwende presence_penalty und frequency_penalty sparsam, wenn das Modell wiederkehrende Floskeln verwendet. Beide werden an das Modell durchgereicht.
  • Verwende seed, wenn du zwei Prompt-Versionen unter gleichen Bedingungen vergleichen möchtest.

Eine lange Geschichte konsistent halten

Das Kontextfenster umfasst 100.000 Token, einschließlich Prompt und Antwort zusammen. Das ist Platz für eine vollständige Story Bible, die vorherigen Kapitel und ein neues Ausgabe-Kapitel in einer einzigen Anfrage. Für die meisten Fiktionsprojekte kannst du dich lange Zeit um Speicher-Tricks keine Sorgen mehr machen.

Eine einfache Schleife verarbeitet einen Fortsetzungsroman. Halte eine laufende Liste von Nachrichten, hänge jedes vom Modell geschriebene Kapitel an und füge deine nächste Anweisung hinzu. Wenn die Liste sich der Grenze nähert, ersetze die ältesten Kapitel durch eine kurze Zusammenfassung, die du das Modell auch schreiben lässt.

from openai import OpenAI

client = OpenAI(base_url="https://api.nofilterai.cc/v1", api_key="YOUR_KEY")

bible = "Mara Voss, 34, ferry pilot. Brother Teo owes money. Setting: Harbor Nine, rain every night."
history = [{"role": "system", "content": "Fiction author. Third person, past tense. No moralising.\nBible: " + bible}]

def write(beat):
    history.append({"role": "user", "content": beat})
    r = client.chat.completions.create(model="uncensored", messages=history, temperature=0.85)
    text = r.choices[0].message.content
    history.append({"role": "assistant", "content": text})
    return text

print(write("Chapter 1, 700 words: Mara finds Teo's boat adrift."))
print(write("Chapter 2, 700 words: she searches the cabin and finds a second ledger."))

Wenn du die Grenze erreichst, kürze nicht stillschweigend. Ein Modell, das den Anfang der Geschichte verliert, behält oft die Handlung, vergisst aber kleine Fakten. Eine schriftliche Zusammenfassung von 500 bis 800 Token, eingefügt nach der Systemnachricht, hält diese Fakten bei geringen Kosten am Leben.

Fehlgeschlagene oder abgelehnte Anfragen werden nicht berechnet, daher verdoppelt ein Retry nach einem Fehler deine Rechnung nicht. Die vollständige Parameterliste findest du in der API-Dokumentation.

Streaming und interaktive Fiktion

Für ein Text-Abenteuer oder einen Live-Schreibassistenten möchtest du Wörter auf dem Bildschirm sehen, sobald sie eintreffen. Setze stream: true und lese die Server-Sent Events. Die Nutzungszahlen kommen am Ende des Streams.

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.nofilterai.cc/v1",
  apiKey: process.env.NOFILTER_KEY,
});

const stream = await client.chat.completions.create({
  model: "uncensored",
  stream: true,
  messages: [
    { role: "system", content: "You are the narrator of a survival horror text adventure. Second person, present tense." },
    { role: "user", content: "I open the cellar door." },
  ],
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}

Zwei praktische Grenzen gelten. Ein voller Schlüssel erlaubt 8 parallele Anfragen und 300 Anfragen pro Minute; ein Test-Schlüssel erlaubt 2 und 60. Eine gestreamte Anfrage belegt ihren Slot, bis der Stream endet, daher kann ein langsamer Leser auf einer Webseite einen Slot länger blockieren, als du erwartest. Wenn du ein Limit überschreitest, erhältst du HTTP 429 mit dem Fehlercode rate_limited oder concurrency. Bei kurzzeitiger Überlast erhältst du ebenfalls eine 429 mit Retry-After: 5, und fünf Sekunden zu warten, bevor du die Anfrage wiederholst, ist die richtige Reaktion.

Warum generierte Geschichten flach werden und wie du sie behebst

Auch ohne Ablehnungen kann ein Modell langweilige Fiktion schreiben. Die üblichen Ursachen sind einfach zu beheben, sobald du sie kennst.

Das erste Problem ist der Zusammenfassungsreflex. Ein Modell komprimiert Ereignisse gerne zu einer ordentlichen Zusammenfassung. Fordere eine Szene, gib ihre Länge an und verbiete Zusammenfassungen in der Systemanweisung. Das zweite Problem ist die Gleichförmigkeit: Jeder Charakter spricht im selben höflichen Ton. Gib jedem sprechenden Charakter einen zweizeiligen Sprachnotiz, z. B. "kurz, beendet Sätze nie" oder "formell, verwendet Titel sogar für Freunde". Das dritte Problem sind fehlende Stakes. Ein Schritt wie "sie sprechen über den Plan" erzeugt Fülltext, während "sie braucht seine Zustimmung vor Sonnenaufgang, und er weiß das" Spannung erzeugt.

Lies die Ausgabe schließlich als Redakteur. Wenn dieselbe Satzstruktur vier Absätze hintereinander eröffnet, teile dem Modell dies in der nächsten Anfrage mit und bitte um eine Überarbeitung. Du lenkst, du akzeptierst nicht einfach, was ankommt. Autoren, die die erste Ausgabe als Rohentwurf behandeln, erhalten weit bessere Kapitel als jene, die ein fertiges Werk erwarten.

Was eine Geschichte kostet

Die Preise liegen bei $0,15 pro 1M Input-Token und $0,50 pro 1M Output-Token, vom Prepaid-Guthaben ohne Abonnement. Guthaben verfällt nie. Die folgenden Zahlen basieren auf diesen beiden Preisen.

AufgabeInput-TokenOutput-TokenKosten
Ein Kapitel mit Bible und früherem Text3,0001,200$0.00045 + $0.0006 = $0.00105
100 solcher Kapitel300,000120,000$0.045 + $0.06 = $0.105
Interaktive Sitzung: 50 Durchgänge, 20.000-Token-Kontext pro Durchgang, 1.000-Token-Antworten1,000,00050,000$0.15 + $0.025 = $0.175
Eine Anfrage, die das Fenster mit Input füllt100,0000$0.015

Sogar hundert Kapitel kosten etwa zehn Cent. Aufladungen starten bei $20 und gehen bis $500 in beliebigen ganzen Beträgen, mit einem 5-%-Bonus ab $50, 10 % ab $100 und 15 % ab $200. Die Zahlung erfolgt ausschließlich per Krypto, mit USDT auf TRC20 oder USDC auf Base. Aktuelle Details findest du auf der Preisseite.

Die teure Angewohnheit ist, bei jedem Schritt einer interaktiven Geschichte die gesamte lange Historie erneut zu senden. Fasse alte Schritte zusammen, und deine Input-Token sinken stark.

Praktische Ratschläge und Limits

Einige Punkte sparen dir Zeit, sobald du mit dem Aufbau beginnst.

  • Nur Text. Der Dienst generiert keine Bilder, Audio oder Video und bietet keine Embeddings oder Fine-Tuning. Für Cover-Art oder Stimme nutze ein anderes Tool.
  • Der JSON-Modus hilft bei der Struktur. Fordere response_format: {"type":"json_object"} an, wenn du möchtest, dass das Modell ein Charakterblatt oder eine Szeneliste zurückgibt, die dein Code parst.
  • Deine Prompts werden nicht zum Training verwendet. Das ist relevant, wenn dein Manuskript unveröffentlicht ist.
  • Bearbeite in Durchgängen. Erstelle einen Entwurf bei hoher Temperatur, sende den Entwurf dann mit der Anweisung zurück, Dialoge zu straffen oder Adverbien bei einer niedrigeren Temperatur zu kürzen.
  • Überprüfe die Ausgabe. Ein Modell ohne Zurückweisungen folgt deiner Führung, also ist der Ton, den du erhältst, der Ton, den du anforderst.

Das Modell ist ein allgemeines Open-Weight-Modell, keine offizielle API eines Anbieters, also teste es in deinem Genre, bevor du ein Produkt darauf aufbaust. Starte mit dem Testguthaben und einigen echten Kapiteln.

Fragen und Antworten

Gibt es eine kostenlose Möglichkeit, einen Story-Generator ohne Inhaltsfilter über die API auszuprobieren?

Neue Nutzer können nach der Anmeldung mit einem Klick auf der API-Schlüssel-Seite $0,50 Testguthaben beanspruchen. Es erfordert keine Zahlung, ist 7 Tage gültig und pro Person auf einmalig begrenzt.

Wie lang kann eine einzelne Story-Anfrage sein?

Das Kontextfenster umfasst 100.000 Token, geteilt zwischen Prompt und Antwort. Die Antwort kann alles verwenden, was der Prompt frei lässt, und max_tokens ist optional.

Kann ich es mit Tools verwenden, die bereits OpenAI unterstützen?

Ja. Jeder Client, der es dir ermöglicht, eine benutzerdefinierte Basis-URL und einen Schlüssel festzulegen, funktioniert, unter Verwendung der Modell-ID uncensored. Die unterstützten Methoden sind POST /v1/chat/completions und GET /v1/models.

Gibt es Inhalte, die das Modell nicht schreiben wird?

Sexuelle Inhalte mit Minderjährigen sind stets untersagt. Darüber hinaus ist das Modell darauf abgestimmt, bei legaler Erwachsenennutzung ohne Inhaltsverweigerungen zu antworten.

Speicherst oder trainierst du an meinen Geschichten?

Prompts werden nicht zum Training verwendet.

Um deinen Schlüssel zu erhalten, musst du nur ein Formular ausfüllen

Erstelle ein Konto, kopiere den Schlüssel, ändere die Basis-URL. So einfach ist das.