IT ▾
NSFW Video Generator

API senza censura per pipeline video per adulti

API LLM per script video NSFW: un flusso di lavoro solo testo

Un'API LLM per script video NSFW scrive la parte testuale di un progetto: outline, liste di scene, dialoghi e prompt per altri strumenti. Non produce video e questa pagina mostra dove si inserisce.

Aggiornato

Illustrazione di pagine di script che fluiscono da un terminale a inquadrature vuote, che mostra un flusso di lavoro video LLM solo testo

Punti chiave

  1. L'API è solo testo. Produce sceneggiature, liste di inquadrature e prompt, mai immagini, audio o video.
  2. Usa la modalità JSON per ottenere una lista di scene che la tua pipeline può analizzare, con un prompt di sistema che imposta tono e regole.
  3. La finestra di contesto da 100.000 token ti permette di mantenere un'intera story bible in ogni richiesta.
  4. I personaggi devono essere adulti e il contenuto sessuale che coinvolge minorenni è sempre vietato.

Cosa fa un LLM in una pipeline video

Se stai costruendo un flusso di lavoro per un'API LLM per script video nsfw, il primo passo è definire la divisione del lavoro. Un modello linguistico scrive. Un modello video separato, un editor o una ripresa producono le immagini. Questo servizio offre solo la prima parte: un modello di testo a pesi aperti, ottimizzato per rispondere senza rifiuti di contenuto per un uso adulto legale, dietro un endpoint compatibile con OpenAI. Non renderizzerà un frame, non sintetizzerà una voce né creerà un'immagine e non offre embedding né fine-tuning.

Questo copre comunque gran parte del lavoro intorno a un progetto per un pubblico adulto, come fiction, roleplay e narrazione stile companion. Il modello può abbozzare un trattamento, dividerlo in scene, scrivere dialoghi e narrazione, produrre una lista scena per scena e formulare prompt per lo strumento video che userai a valle. La pagina su pipeline NSFW descrive come questa fase testuale si connette al resto dello stack.

Una regola è fissa e si applica a ogni richiesta: nessun contenuto sessuale che coinvolga minorenni. Costruisci il tuo prompt di sistema in modo che ogni personaggio sia adulto e trattalo come un requisito del progetto, non come un ripensamento.

Una pipeline in quattro fasi

Un flusso di lavoro per le sceneggiature funziona meglio quando ogni chiamata fa un solo lavoro e passa un output strutturato al passaggio successivo. Un layout pratico è questo:

  1. Story bible. Un documento con personaggi (tutti adulti), ambientazione, tono e dettagli ricorrenti. Lo scrivi una volta e lo invii con ogni chiamata.
  2. Outline. Una chiamata trasforma un'idea in 8-15 riassunti di battuta.
  3. Sceneggiature di scena. Una chiamata per battuta produce dialoghi, azioni e narrazione, usando la bible e la scena precedente per la continuità.
  4. Lista di inquadrature e prompt. Una chiamata finale per scena restituisce JSON: inquadrature, durate, note sulla telecamera e una stringa di prompt per il tuo strumento video.

Dividerlo in questo modo mantiene gli output brevi, il che rende ogni risultato più facile da revisionare e più economico da rigenerare se non ti piace. Significa anche che una chiamata fallita costa una sola scena, non l'intera sceneggiatura.

Un prompt di sistema che imposta le regole

Il prompt di sistema è dove risiedono tono, formato e limiti. Un modello senza comportamento di rifiuto segue comunque le istruzioni, quindi la qualità del tuo prompt decide la qualità della sceneggiatura. Sii specifico su genere, punto di vista e cosa omettere. Ecco un punto di partenza per la fiction rivolta a spettatori adulti, scritto per rimanere sul lato professionale:

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.'''

Adattalo per progetto. Un giallo noir e una commedia romantica hanno bisogno di istruzioni diverse e un esempio di stile in una riga all'interno del prompt spesso guida meglio il modello di un paragrafo di aggettivi.

Generazione di una lista di scene in modalità JSON

Per la fase della lista di inquadrature vuoi un output che il codice possa leggere. La modalità JSON forza un oggetto analizzabile. Passa response_format={"type": "json_object"}, nomina le chiavi nel prompt e mantieni la temperatura bassa. Questo esempio usa il pacchetto Python openai con l'URL di base di questo sito e l'ID del modello 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"])

Valida il risultato prima di passarlo. Verifica che shots esista, che seconds sia un numero e che le stringhe di prompt non siano vuote. Se l'analisi fallisce, riprova una volta. Le richieste fallite o rifiutate non vengono addebitate, quindi una nuova chiamata non costa nulla in più per una chiamata con errore.

Impostazioni importanti per il testo creativo

Fasi diverse vogliono impostazioni diverse e l'API passa quelle solitarie: temperature, top_p, stop, seed e le penalità di frequenza e presenza.

  • Scalette e dialoghi: temperatura 0,8-1,0 per la varietà. Genera due o tre varianti e scegline una.
  • Liste di inquadrature: temperatura 0,2-0,3, più un seed fisso così una ripetizione dello stesso input è confrontabile.
  • Ripetizione: scene lunghe a volte riprendono la stessa frase. Una piccola penalità di frequenza, come 0,3, aiuta.
  • Controllo della lunghezza: max_tokens è opzionale, ma un limite di 800 per una scena mantiene l'output compatto. Una sequenza stop come "END SCENE" ti permette di terminare a un marcatore che chiedi al modello di scrivere.
  • Streaming: attiva stream: true se uno scrittore guarda l'output in diretta. Ricorda che uno streaming mantiene il suo slot di concorrenza fino alla fine.

La guida rapida elenca tutti i parametri supportati e gli endpoint sono POST /v1/chat/completions e GET /v1/models.

Utilizzo della finestra di contesto da 100k per la continuità

La continuità è il punto debole più comune nelle sceneggiature generate: un nome cambia, un'età si sposta, un oggetto scompare. La finestra di contesto è di 100.000 token, prompt più completamento, ed è abbastanza grande da inserire l'intera bibbia della storia, la scaletta e diverse scene finite in ogni chiamata. Non hai bisogno di un sistema di recupero per un progetto a questa scala. Incolla i fatti e lascia che il modello li legga ogni volta.

Il contesto non è gratuito, ma è economico. Supponiamo che la tua bibbia della storia e la scaletta totalizzino 20.000 token e tu scriva 50 scene, ogni chiamata restituisca circa 600 token:

  • Input: 50 x 20.000 = 1.000.000 token x $0,15 per 1M = $0,15
  • Output: 50 x 600 = 30.000 token x $0,50 per 1M = $0,015
  • Totale: $0,165 per tutte le 50 scene

Aggiungi una fase di lista di inquadrature sulle stesse 50 scene con 3.000 token in input e 500 token in output ciascuna: input 150.000 token costa $0,0225 e output 25.000 token costa $0,0125, un ulteriore $0,035. La sceneggiatura completa e le liste di inquadrature costano circa $0,20, che è meno del credito di prova di $0,50 che puoi richiedere dalla pagina delle chiavi API.

Tieni presente che la finestra deve contenere sia prompt che risposta. Una bibbia della storia da 20.000 token lascia molto spazio, ma un prompt da 95.000 token lascia poco per il completamento.

Revisione e correzione dell'output

Tratta ogni scena generata come una prima bozza. Tre controlli catturano la maggior parte dei problemi prima che raggiungano uno strumento video. Primo, esegui un passaggio di coerenza: invia la sceneggiatura finita con la story bible e chiedi al modello di elencare ogni punto in cui un nome, un'età, una località o una timeline differiscono. Una seconda chiamata con una temperatura bassa è economica e spesso trova derive che hai perso a occhio. Secondo, leggi i dialoghi ad alta voce. Le righe che sembrano a posto sullo schermo possono essere goffe quando vengono pronunciate e un doppiatore o uno strumento text-to-speech le esporranno subito. Terzo, verifica che le durate delle inquadrature si sommino alla lunghezza che hai pianificato. I modelli sono imprecisi con l'aritmetica, quindi somma i campi seconds nel codice invece di fidarti di un totale scritto dal modello.

Quando una scena non centra, resisti alla tentazione di riscrivere l'intero prompt di sistema. Aggiungi un'istruzione correttiva al messaggio utente, come "linee d'azione più brevi" o "più dialoghi, meno descrizione", e rigenera solo quella scena. Mantenere la bible e il prompt di sistema fissi mentre vari un'istruzione alla volta rende chiaro quale cambiamento ha aiutato. Il parametro seed è utile qui, perché un seed fisso con una piccola modifica al prompt isola l'effetto della modifica.

Limiti, onestà e prossimi passi

Alcuni vincoli semplici prima di costruire. Il modello è solo testo, quindi ogni video, immagine e traccia vocale deve provenire da altri strumenti. È un modello a pesi aperti gestito da un provider indipendente e non è l'API ufficiale di alcun fornitore. La qualità varia con il prompt, quindi prevedi un passaggio di revisione da parte di una persona su ogni sceneggiatura; tratta l'output come una bozza.

Per quanto riguarda il throughput, una chiave completa permette 8 richieste concorrenti e 300 al minuto, mentre una chiave di prova ne permette 2 e 60. Se scrivi scene in parallelo, dimensiona il tuo pool di worker di conseguenza. Un 429 con rate_limited o concurrency significa rallentare; uno con un'intestazione Retry-After: 5 significa che il servizio è brevemente sovraccarico, quindi aspetta cinque secondi e riprova. I prompt non sono usati per l'addestramento.

Il credito a pagamento inizia con una ricarica di $20, qualsiasi importo intero fino a $500, con +5% da $50, +10% da $100 e +15% da $200. Il pagamento è solo cripto, USDT su TRC20 o USDC su Base e il credito non scade mai. I termini attuali sono nella pagina dei prezzi. Per un progetto come quello sopra, $20 coprono dozzine di sceneggiature complete.

Domande e risposte

L'API può generare il video stesso?

No. È un'API LLM solo testo. Scrive sceneggiature, elenchi di scene e prompt, e tu usi uno strumento separato per produrre qualsiasi video.

È vietato qualche tipo di contenuto?

Sì. I contenuti sessuali che coinvolgono minorenni non sono mai consentiti. Il modello è destinato a un uso legale per adulti e tutti i personaggi nei tuoi progetti dovrebbero essere adulti.

Come ottengo un elenco di inquadrature analizzabile?

Imposta response_format su json_object, nomina le chiavi nel tuo prompt, abbassa la temperatura a circa 0.3 e convalida il risultato con json.loads prima di usarlo.

Quanto costa una sceneggiatura completa?

Utilizzando una bibbia di storia da 20.000 token e 50 scene di circa 600 token ciascuna, il passaggio di scrittura costa circa $0.165 a $0.15 per 1M di token di input e $0.50 per 1M di token di output.

La tua chiave è a un clic di distanza

Crea un account, copia la chiave, modifica l'URL di base. È tutta la configurazione.