FR ▾
NSFW Video Generator

API sans censure pour les pipelines vidéo pour adultes

API LLM de script vidéo NSFW : un flux de travail texte uniquement

Une API LLM de script vidéo NSFW rédige la partie texte d'un projet : plans, listes de scènes, dialogues et prompts pour d'autres outils. Elle ne produit pas de vidéo, et cette page montre où elle s'insère.

Mis à jour le

Illustration de pages de script passant d'un terminal à des cadres de film vides, montrant un flux de travail vidéo LLM texte uniquement

Points clés

  1. L'API est texte uniquement. Elle produit des scripts, des listes de plans et des prompts, jamais d'images, d'audio ou de vidéo.
  2. Utilisez le mode JSON pour obtenir une liste de scènes que votre pipeline peut analyser, avec un prompt système qui définit le ton et les règles.
  3. La fenêtre de contexte de 100 000 tokens vous permet de conserver une bible d'histoire entière dans chaque requête.
  4. Les personnages doivent être des adultes, et le contenu sexuel impliquant des mineurs est toujours interdit.

Ce qu'un LLM fait dans un pipeline vidéo

Si vous construisez un flux de travail API LLM pour scripts vidéo NSFW, la première étape consiste à définir la répartition des tâches. Un modèle de langage écrit. Un modèle vidéo distinct, un éditeur ou un tournage produit les images. Ce service ne propose que la première partie : un seul modèle textuel à poids ouverts, ajusté pour répondre sans refus de contenu pour une utilisation adulte légale, derrière un endpoint compatible OpenAI. Il ne rendra pas une image, ne synthétisera pas de voix et ne créera pas d'image, et il ne propose pas d'embeddings ni de fine-tuning.

Cela couvre encore une grande partie du travail autour d'un projet destiné à un public adulte, comme la fiction, le jeu de rôle et le storytelling de type compagnon. Le modèle peut rédiger un traitement, le diviser en scènes, écrire les dialogues et la narration, produire une liste plan par plan, et formuler des prompts pour l'outil vidéo que vous utilisez en aval. La page sur les chaînes de traitement NSFW décrit comment cette étape textuelle s'intègre au reste d'une stack.

Une règle est fixe et s'applique à chaque requête : aucun contenu sexuel impliquant des mineurs. Construisez votre prompt système pour que chaque personnage soit un adulte, et traitez cela comme une exigence du projet, et non comme une pensée tardive.

Un pipeline en quatre étapes

Un flux de travail de script fonctionne mieux lorsque chaque appel fait une seule tâche et transmet une sortie structurée à l'étape suivante. Une disposition pratique ressemble à ceci :

  1. Bible d'histoire. Un document avec des personnages (tous adultes), un décor, un ton et des détails récurrents. Vous le rédigez une fois et l'envoyez avec chaque appel.
  2. Plan. Un appel transforme un concept en 8 à 15 résumés de séquences.
  3. Scripts de scène. Un appel par scène produit des dialogues, des lignes d'action et des narrations, en utilisant la bible et la scène précédente pour la continuité.
  4. Liste de plans et prompts. Un appel final par scène retourne du JSON : plans, durées, notes de caméra et une chaîne de prompt pour votre outil vidéo.

Le diviser de cette manière maintient les sorties courtes, ce qui rend chaque résultat plus facile à vérifier et moins cher à régénérer si vous ne l'appréciez pas. Cela signifie également qu'un appel échoué ne coûte qu'une scène, et non tout le script.

Un prompt système qui définit les règles

Le prompt système est là où le ton, le format et les limites sont définis. Un modèle sans comportement de refus suit toujours les instructions, donc la qualité de votre prompt détermine la qualité du script. Soyez précis sur le genre, le point de vue et ce qu'il faut exclure. Voici un point de départ pour la fiction destinée à un public adulte, écrit pour rester du côté professionnel de la page :

SYSTEM = '''You are a screenwriter for adult-audience fiction videos.
All characters are adults aged 25 or older, and you state each age in the character sheet.
Write in present tense, third person, with short visual action lines.
Keep dialogue natural and under 25 words per line.
Build tension and character through setting, glances and subtext.
Never include minors in any role or reference.
Follow the story bible exactly; do not change names, ages or relationships.
When asked for JSON, return only the JSON object.'''

Ajustez-le par projet. Un mystère noir et une comédie romantique ont besoin d'instructions différentes, et un exemple de style en une ligne à l'intérieur du prompt oriente souvent mieux le modèle qu'un paragraphe d'adjectifs.

Générer une liste de scènes en mode JSON

Pour l'étape de la liste de plans, vous voulez une sortie que le code peut lire. Le mode JSON impose un objet analysable. Passez response_format={"type": "json_object"}, nommez les clés dans le prompt et gardez la température basse. Cet exemple utilise le package Python openai avec l'URL de base de ce site et l'ID de modèle uncensored.

import json, os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.nsfwvideogenerator.cc/v1",
    api_key=os.environ["NOTRACK_API_KEY"],
)

SYSTEM = open("system_prompt.txt").read()
BIBLE = open("story_bible.txt").read()

def shot_list(scene_text):
    resp = client.chat.completions.create(
        model="uncensored",
        messages=[
            {"role": "system", "content": SYSTEM},
            {"role": "user", "content": (
                "Story bible:\n" + BIBLE +
                "\n\nScene script:\n" + scene_text +
                "\n\nReturn a JSON object with key 'shots': a list of objects with "
                "'number', 'seconds', 'camera', 'action' and 'video_prompt'."
            )},
        ],
        response_format={"type": "json_object"},
        temperature=0.3,
        seed=7,
    )
    data = json.loads(resp.choices[0].message.content)
    return data["shots"]

for shot in shot_list(open("scene_03.txt").read()):
    print(shot["number"], shot["seconds"], shot["video_prompt"])

Validez le résultat avant de le transmettre. Vérifiez que shots existe, que seconds est un nombre, et que les chaînes de prompt ne sont pas vides. Si l'analyse échoue, réessayez une fois. Les requêtes échouées ou refusées ne sont pas facturées, donc un réessai ne coûte rien de plus pour un appel erroné.

Paramètres importants pour le texte créatif

Différentes étapes veulent des paramètres différents, et l'API transmet les paramètres habituels : temperature, top_p, stop, seed et les pénalités de fréquence et de présence.

  • Plans et dialogues : température 0,8 à 1,0 pour la variété. Générez deux ou trois variantes et choisissez-en une.
  • Listes de plans : température 0,2 à 0,3, plus un seed fixe pour qu'une relance de la même entrée soit comparable.
  • Répétition : les scènes longues bouclent parfois sur la même phrase. Une petite pénalité de fréquence, comme 0,3, aide.
  • Contrôle de la longueur : max_tokens est optionnel, mais une limite de 800 pour une scène garde la sortie concise. Une séquence stop telle que "END SCENE" vous permet de terminer à un marqueur que vous demandez au modèle d'écrire.
  • Streaming : activez stream: true si un rédacteur regarde la sortie en direct. Notez qu'un flux conserve son slot de concurrence jusqu'à sa fin.

Le quickstart liste tous les paramètres pris en charge, et les endpoints sont POST /v1/chat/completions et GET /v1/models.

Utilisation de la fenêtre de contexte 100k pour la continuité

La continuité est l'échec habituel dans les scripts générés : un nom change, un âge dérive, un accessoire disparaît. La fenêtre de contexte est de 100 000 tokens, prompt plus completion, et c'est assez grand pour mettre toute la bible narrative, l'outline et plusieurs scènes terminées dans chaque appel. Vous n'avez pas besoin d'un système de retrieval pour un projet à cette échelle. Collez les faits et laissez le modèle les lire à chaque fois.

Le contexte n'est pas gratuit, mais il est bon marché. Supposons que votre bible et votre plan totalisent 20 000 tokens et que vous écriviez 50 scènes, chaque appel retournant environ 600 tokens :

  • Entrée : 50 x 20 000 = 1 000 000 tokens x 0,15 $ par 1 M = 0,15 $
  • Sortie : 50 x 600 = 30 000 tokens x 0,50 $ par 1 M = 0,015 $
  • Total : 0,165 $ pour les 50 scènes

Ajoutez un passage de liste de plans sur les mêmes 50 scènes avec 3 000 tokens en entrée et 500 tokens en sortie chacun : entrée 150 000 tokens coûte 0,0225 $ et sortie 25 000 tokens coûte 0,0125 $, soit 0,035 $ supplémentaires. Le script complet et les listes de plans coûtent environ 0,20 $, ce qui est moins que le crédit d'essai de 0,50 $ que vous pouvez réclamer depuis la page clé API.

Gardez à l'esprit que la fenêtre doit contenir à la fois le prompt et la réponse. Une bible de 20 000 tokens laisse beaucoup de place, mais un prompt de 95 000 tokens laisse peu de place pour la complétion.

Examen et correction de la sortie

Traitez chaque scène générée comme une première version. Trois vérifications capturent la plupart des problèmes avant qu'ils n'atteignent un outil vidéo. D'abord, lancez un passage de cohérence : renvoyez le script terminé avec la bible de l'histoire et demandez au modèle de lister tout endroit où un nom, un âge, un lieu ou une chronologie diffère. Un deuxième appel avec une température faible est peu coûteux et détecte souvent des dérives passées inaperçues. Ensuite, lisez les dialogues à voix haute. Les lignes qui semblent correctes à l'écran peuvent être maladroites à l'oral, et un comédien de doublage ou un outil de synthèse vocale les révéleront immédiatement. Enfin, vérifiez que les durées des plans s'additionnent à la longueur prévue. Les modèles sont approximatifs en arithmétique, alors ajoutez les champs seconds dans le code plutôt que de faire confiance à un total écrit par le modèle.

Lorsqu'une scène rate son objectif, résistez à l'envie de réécrire tout le prompt système. Ajoutez une instruction corrective au message utilisateur, comme « lignes d'action plus courtes » ou « plus de dialogue, moins de description », et régénérez uniquement cette scène. Garder la bible et le prompt système fixes tout en variant une instruction à la fois rend clair quel changement a aidé. Le paramètre seed est utile ici, car un seed fixe avec une modification de prompt mineure isole l'effet de la modification.

Limites, honnêteté et prochaines étapes

Quelques contraintes simples avant de construire. Le modèle est texte uniquement, donc chaque vidéo, image et piste vocale doit provenir d'autres outils. C'est un modèle à poids ouverts unique géré par un fournisseur indépendant, et ce n'est pas l'API officielle d'aucun grand fournisseur. La qualité varie avec le prompt, donc prévoyez une passe de relecture par une personne sur chaque script ; traitez la sortie comme une ébauche.

En termes de débit, une clé complète permet 8 requêtes simultanées et 300 par minute, tandis qu'une clé d'essai permet 2 et 60. Si vous écrivez des scènes en parallèle, dimensionnez votre groupe de workers en conséquence. Un 429 avec rate_limited ou concurrency signifie ralentir ; un en-tête Retry-After: 5 signifie que le service est brièvement surchargé, alors attendez cinq secondes et réessayez. Les prompts ne sont pas utilisés pour l'entraînement.

Le crédit payant commence par un rechargement de 20 $, tout montant entier jusqu'à 500 $, avec +5 % à partir de 50 $, +10 % à partir de 100 $ et +15 % à partir de 200 $. Le paiement est en crypto uniquement, USDT sur TRC20 ou USDC sur Base, et le crédit n'expire jamais. Les conditions actuelles sont sur la page des tarifs. Pour un projet comme celui ci-dessus, 20 $ couvrent des dizaines de scripts complets.

Questions et réponses

L'API peut-elle générer la vidéo elle-même ?

Non. Il s'agit d'une API LLM textuelle uniquement. Elle rédige des scénarios, des listes de scènes et des prompts, et vous utilisez un outil séparé pour produire la vidéo.

Y a-t-il des types de contenu qui soient hors limites ?

Oui. Le contenu sexuel impliquant des mineurs n'est jamais autorisé. Le modèle est destiné à une utilisation adulte conforme à la loi, et tous les personnages de vos projets doivent être des adultes.

Comment obtenir une liste de plans analysable ?

Définissez response_format sur json_object, nommez les clés dans votre prompt, abaissez la température à environ 0,3 et validez le résultat avec json.loads avant de l'utiliser.

Combien coûte un script complet ?

En utilisant une bible narrative de 20 000 tokens et 50 scènes d'environ 600 tokens chacune, le passage d'écriture coûte environ 0,165 $ à 0,15 $ par 1 M de tokens en entrée et 0,50 $ par 1 M de tokens en sortie.

Votre clé est à un formulaire de vous

Créez un compte, copiez la clé, modifiez l'URL de base. C'est tout le paramétrage.