PT ▾
NSFW Video Generator

API sem censura para pipelines de vídeo adulto

API LLM de roteiro NSFW: fluxo apenas texto

Uma API LLM de roteiro NSFW gera o texto do projeto: outlines, listas de cenas, diálogos e prompts para outras ferramentas. Ela não cria vídeo; esta página mostra onde ela se encaixa.

Atualizado

Ilustração de páginas de roteiro fluindo de um terminal para quadros de filme vazios, mostrando um fluxo de vídeo LLM apenas texto

Pontos principais

  1. A API é apenas texto. Ela produz roteiros, listas de tomadas e prompts, nunca imagens, áudio ou vídeo.
  2. Use o modo JSON para obter uma lista de cenas que seu pipeline pode analisar, com um prompt de sistema que define tom e regras.
  3. A janela de contexto de 100.000 tokens permite que você mantenha uma bible de história inteira em cada requisição.
  4. Os personagens devem ser adultos, e conteúdo sexual envolvendo menores de idade é sempre proibido.

O que um LLM faz em um pipeline de vídeo

Se você está construindo um fluxo de trabalho de API LLM para roteiros de vídeo nsfw, o primeiro passo é definir a divisão de trabalho. Um modelo de linguagem escreve. Um modelo de vídeo separado, um editor ou uma equipe de filmagem cuida das imagens. Este serviço oferece apenas a primeira parte: um modelo de texto de pesos abertos, ajustado para responder sem recusas de conteúdo para uso adulto legal, atrás de um endpoint compatível com OpenAI. Ele não renderiza um frame, sintetiza uma voz ou cria uma imagem, e não oferece embeddings ou ajuste fino.

Isso ainda cobre boa parte do trabalho em torno de um projeto para públicos adultos, como ficção, roleplay e narrativas estilo companheiro. O modelo pode rascunhar um tratamento, dividi-lo em cenas, escrever diálogos e narração, produzir uma lista cena a cena e formular prompts para qualquer ferramenta de vídeo que você use a seguir. A página de pipelines NSFW descreve como essa etapa de texto se conecta ao resto da pilha.

Uma regra é fixa e se aplica a todas as requisições: nenhum conteúdo sexual envolvendo menores de idade. Configure seu system prompt para que todos os personagens sejam adultos e trate isso como um requisito do projeto, não como um detalhe secundário.

Um pipeline em quatro etapas

Um fluxo de roteiro funciona melhor quando cada chamada faz uma tarefa e passa saída estruturada para a próxima. Um layout prático é:

  1. Bible. Um documento com personagens (todos adultos), cenário, tom e detalhes recorrentes. Você o escreve uma vez e envia em cada chamada.
  2. Outline. Uma chamada transforma uma premissa em 8 a 15 resumos de beats.
  3. Roteiros de cena. Uma chamada por beat produz diálogos, linhas de ação e narração, usando a bible e a cena anterior para continuidade.
  4. Lista de tomadas e prompts. Uma chamada final por cena retorna JSON: tomadas, durações, notas de câmera e uma string de prompt para sua ferramenta de vídeo.

Dividir assim mantém as saídas curtas, facilitando a revisão e tornando mais barato regenerar se você não gostar. Também significa que uma chamada falha custa apenas uma cena, não o roteiro todo.

Um prompt de sistema que define as regras

O prompt de sistema é onde vivem o tom, o formato e os limites. Um modelo sem comportamento de recusa ainda segue instruções, então a qualidade do seu prompt decide a qualidade do roteiro. Seja específico sobre gênero, ponto de vista e o que omitir. Aqui está um ponto de partida para ficção voltada a adultos, mantendo o lado profissional:

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

Ajuste por projeto. Um mistério noir e uma comédia romântica precisam de instruções diferentes, e um exemplo de estilo em uma linha dentro do prompt geralmente direciona melhor o modelo do que um parágrafo de adjetivos.

Gerando uma lista de cenas em modo JSON

Para a etapa de lista de tomadas, você quer saída que código possa ler. O modo JSON força um objeto analisável. Passe response_format={"type": "json_object"}, nomeie as chaves no prompt e mantenha a temperatura baixa. Este exemplo usa o pacote Python openai com a base URL deste site e o ID do modelo 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"])

Valide o resultado antes de passar adiante. Verifique se shots existe, se seconds é um número e se as strings de prompt não estão vazias. Se a análise falhar, tente novamente uma vez. Requisições falhas ou recusadas não são cobradas, então uma nova tentativa não custa nada extra para uma chamada com erro.

Configurações importantes para texto criativo

Diferentes etapas precisam de configurações diferentes, e a API passa as habituais: temperature, top_p, stop, seed e as penalidades de frequência e presença.

  • Outlines e diálogos: temperatura 0,8 a 1,0 para variedade. Gere duas ou três variantes e escolha uma.
  • Listas de tomadas: temperatura 0,2 a 0,3, mais um seed fixo para que uma nova execução da mesma entrada seja comparável.
  • Repetição: cenas longas às vezes repetem a mesma frase. Uma pequena penalidade de frequência, como 0,3, ajuda.
  • Controle de comprimento: max_tokens é opcional, mas um limite de 800 para uma cena mantém a saída apertada. Uma sequência stop como "END SCENE" permite terminar em um marcador que você pede ao modelo para escrever.
  • Streaming: ative stream: true se um escritor assiste à saída ao vivo. Lembre-se que um stream ocupa sua slot de concorrência até o fim.

O quickstart lista todos os parâmetros suportados, e os endpoints são POST /v1/chat/completions e GET /v1/models.

Usando a janela de contexto de 100k para continuidade

Continuidade é a falha comum em roteiros gerados: um nome muda, uma idade deriva, um adereço desaparece. A janela de contexto tem 100.000 tokens (prompt mais conclusão), e isso é grande o suficiente para colocar toda a bible, o outline e várias cenas concluídas em cada chamada. Você não precisa de um sistema de recuperação para um projeto nesta escala. Cole os fatos e deixe o modelo lê-los a cada vez.

Contexto não é gratuito, mas é barato. Suponha que sua bible e outline totalizem 20.000 tokens e você escreva 50 cenas, cada chamada retornando cerca de 600 tokens:

  • Entrada: 50 x 20.000 = 1.000.000 tokens x $0,15 por 1M = $0,15
  • Saída: 50 x 600 = 30.000 tokens x $0,50 por 1M = $0,015
  • Total: $0,165 para todas as 50 cenas

Adicione uma etapa de lista de tomadas sobre as mesmas 50 cenas com 3.000 tokens de entrada e 500 de saída cada: entrada 150.000 tokens custa $0,0225 e saída 25.000 tokens custa $0,0125, mais $0,035. O roteiro completo e as listas de tomadas custam cerca de $0,20, menos que o crédito de teste de $0,50 que você pode reivindicar na página de chave de API.

Lembre-se que a janela deve conter prompt e resposta. Uma bible de 20.000 tokens deixa bastante espaço, mas um prompt de 95.000 tokens deixa pouco para a conclusão.

Revisando e corrigindo a saída

Trate cada cena gerada como um primeiro rascunho. Três verificações capturam a maioria dos problemas antes que cheguem a uma ferramenta de vídeo. Primeiro, execute uma passagem de consistência: envie o roteiro concluído de volta com a bible e peça ao modelo para listar qualquer lugar onde um nome, idade, localização ou linha do tempo difira. Uma segunda chamada com temperatura baixa é barata e muitas vezes encontra deriva que você não viu. Segundo, leia os diálogos em voz alta. Linhas que parecem boas na tela podem ser desajeitadas ao serem faladas, e um ator de dublagem ou ferramenta de texto-para-fala as expõem imediatamente. Terceiro, verifique se as durações das tomadas somam o comprimento que você planejou. Modelos são soltos com aritmética, então some os campos seconds no código em vez de confiar em um total que o modelo escreveu.

Quando uma cena não atinge o objetivo, resista a reescrever todo o prompt de sistema. Adicione uma instrução corretiva à mensagem do usuário, como "linhas de ação mais curtas" ou "mais diálogo, menos descrição", e regenere apenas essa cena. Manter a bible e o prompt de sistema fixos enquanto você varia uma instrução de cada vez torna claro qual mudança ajudou. O parâmetro seed é útil aqui, porque uma seed fixa com uma pequena edição de prompt isola o efeito da edição.

Limites, honestidade e próximos passos

Algumas restrições básicas antes de você construir. O modelo é apenas de texto, então cada vídeo, imagem e faixa de áudio deve vir de outras ferramentas. É um modelo de pesos abertos executado por um provedor independente e não é a API oficial de nenhum grande fornecedor. A qualidade varia conforme o prompt, então planeje uma etapa de revisão por uma pessoa em cada roteiro; trate a saída como um rascunho.

Em termos de capacidade de processamento, uma chave completa permite 8 requisições simultâneas e 300 por minuto, enquanto uma chave de teste permite 2 e 60. Se você escrever cenas em paralelo, dimensione o pool de workers para corresponder. Um 429 com rate_limited ou concurrency significa reduzir a velocidade; um com o cabeçalho Retry-After: 5 significa que o serviço está brevemente sobrecarregado, então aguarde cinco segundos e tente novamente. Os prompts não são usados para treinamento.

O crédito pago começa com uma recarga de $20, qualquer valor inteiro até $500, com +5% a partir de $50, +10% a partir de $100 e +15% a partir de $200. O pagamento é apenas em cripto, USDT na rede TRC20 ou USDC na Base, e o crédito nunca expira. Os termos atuais estão na página de preços. Para um projeto como o acima, $20 cobre dezenas de roteiros completos.

Perguntas e respostas

A API consegue gerar o vídeo em si?

Não. É uma API LLM apenas de texto. Ela escreve roteiros, listas de cenas e prompts, e você usa uma ferramenta separada para produzir qualquer vídeo.

Existe algum tipo de conteúdo fora dos limites?

Sim. Conteúdo sexual envolvendo menores nunca é permitido. O modelo é destinado ao uso adulto legal, e todos os personagens dos seus projetos devem ser adultos.

Como obtenho uma lista de tomadas analisável?

Defina response_format como json_object, nomeie as chaves no seu prompt, diminua a temperatura para cerca de 0.3 e valide o resultado com json.loads antes de usá-lo.

Quanto custa um roteiro completo?

Usando uma bible de história de 20.000 tokens e 50 cenas de cerca de 600 tokens cada, a etapa de escrita custa cerca de $0,165 a $0,15 por 1M de tokens de entrada e $0,50 por 1M de tokens de saída.

Sua chave está a um formulário de distância

Crie uma conta, copie a chave e altere a URL base. Essa é toda a configuração.