Pular para o conteúdo

Para desenvolvedores

API de imagem NSFW que renderiza o prompt que seu código enviou

Uma API de imagem NSFW, uma API de geração de imagem sem censura, recebe prompts adultos do seu próprio software e devolve a renderização sem reescrever o texto antes. Isso importa porque um prompt reescrito falha em silêncio: a chamada dá certo, a resposta parece normal e a imagem não é a que você pediu. A Vellria expõe o catálogo inteiro atrás de um único formato REST, com chaves Bearer, trabalhos assíncronos que você consulta e créditos pré-pagos que voltam automaticamente quando uma execução falha.

Por que as integrações quebram na camada de moderação

A maioria das APIs de imagem fica atrás de uma etapa de reescrita que você não vê. Seu texto é editado para algo que o provedor considera mais seguro, a versão editada é renderizada, e a resposta não traz nenhum campo dizendo que houve substituição. De dentro da sua aplicação tudo aparece como sucesso, que é o pior modo de falha possível: nada para capturar, nada para tentar de novo e uma fila de resultados que, sem alarde, não batem com as entradas.

A segunda falha é a recusa que chega como erro, numa taxa imprevisível. Um prompt que funcionou ontem devolve hoje um erro de política, porque o modelo de moderação mudou por baixo de você, e não porque sua requisição mudou. Tentar de novo não resolve, o erro não é determinístico, e o código escrito em torno dele vai acumulando casos especiais para uma fronteira que ninguém publicou.

Nenhuma das duas é limite de requisições ou indisponibilidade, então nenhuma aparece nos lugares onde você normalmente olharia. Elas aparecem como uma perda lenta de confiança no seu próprio pipeline, e a reação comum é uma camada defensiva de heurísticas que mutilam o prompt e pioram o resultado por causa de um problema que nunca foi seu.

Modelos

Vellria Lite Image

O modelo de imagem mais barato do catálogo. Só prompt: não aceita imagem de referência.

Texto em imagem

1 crédito

Qwen 3 Pro Image Edit

O nível de edição do Qwen com preço mais alto. Cada imagem além da primeira aumenta o custo.

Edição de imagem

7 créditos

Wan 2.7 Image Edit

Edita a partir de até nove imagens e mantém as proporções da original. Imagens extras não custam mais.

Edição de imagem

6 créditos

O formato da requisição

As chaves são criadas no Painel e viajam como token Bearer. Um endpoint abre o trabalho: informe o modelo, passe o prompt e acrescente o que aquele modelo aceitar. O que volta é um identificador, não uma imagem — o socket fecha na hora, porque uma renderização de trinta segundos presa dentro de uma requisição HTTP é um timeout anunciado, e toda integração que tentou isso aprendeu a mesma lição.

A partir daí você pergunta pelo trabalho em vez de esperar por ele. Um GET simples nesse identificador responde em que pé está: ainda na fila, renderizando, pronto ou com falha. Seu processo pode cair e reiniciar entre essas chamadas sem perder nada, já que o trabalho pertence ao servidor, e não à conexão que o abriu.

Um hábito vale a pena criar cedo: pergunte ao endpoint do catálogo o que existe em vez de escrever identificadores de modelo num arquivo de constantes. É desse endpoint que o próprio site é gerado e é contra ele que o registro de créditos cobra, então ele muda no instante em que algo muda. Uma lista fixa no código não muda, e você descobre semanas depois, por uma chamada recusada que cita uma dimensão aposentada. A página de cada modelo também lê desse endpoint e mostra o ID a enviar, com os tamanhos e custos aceitos: as páginas da API Seedream, da API de imagem Qwen e da API de imagem Wan são três delas.

Imagens de referência e limites de requisições

Modelos de edição precisam de uma imagem para trabalhar, e as imagens passam antes por um endpoint próprio. Envie o arquivo, guarde o endereço que ele devolve e cite esse endereço ao abrir o trabalho. Qualquer um com o endereço consegue buscá-lo sem sessão, e isso é de propósito: a máquina que faz a renderização está fora da sua conta e ainda assim precisa ler os bytes.

O catálogo não borra a divisão entre tipos de modelo. Dê a um modelo de referência nada para olhar e ele recusa; dê um anexo a um modelo só de texto e ele recusa também, em vez de seguir em frente como se o envio fosse enfeite. A alternativa seria cobrar por uma imagem que a renderização nunca abriu e ainda reportar sucesso.

A limitação é contada por conta, e a recusa informa quantos segundos esperar. Esse número existe para que sua lógica de nova tentativa o leia, um objetivo bem diferente de uma linha de log que alguém decifra depois do fato.

Cobrança que não pune um trabalho que falhou

O registro de créditos se move no início de um trabalho, não no fim, porque é nesse momento que o trabalho é encomendado. O que decorre disso é o que interessa a quem chama a API de forma automatizada: um trabalho que morre dentro do provedor devolve os créditos na hora em que chega ao estado de falha. Nada a abrir, ninguém a quem mandar e-mail, e os dois lançamentos ficam no histórico, onde sua conciliação consegue encontrá-los.

Nada na conta se renova. Um serviço que dispara vinte chamadas numa semana e nenhuma na seguinte paga por vinte chamadas, porque não existe plano por baixo cobrando um mínimo. Todo pacote compra créditos à mesma taxa, e um pacote compra saldo e mais nada — nenhuma chave é mais rápida, nenhuma chave alcança modelos que outra não alcança.

Comparada a marketplaces de API em geral

Se você está pesando a API do fal.ai, a API do Replicate ou o ModelsLab para trabalho com imagem adulta, a comparação que importa não é uma tabela de recursos, mas o que cada um faz por padrão, conforme os próprios documentos em 12 de setembro de 2026. O esquema publicado pelo fal para o endpoint FLUX.1 [dev] define enable_safety_checker como true; desligá-lo exige autorização na conta, uma requisição sem essa autorização é sempre verificada, e uma imagem sinalizada volta preta. A referência de texto para imagem do ModelsLab também deixa safety_checker em true por padrão e troca uma imagem sinalizada por uma em branco, enquanto os termos de serviço dele, datados de 24 de junho de 2023, trazem só uma cláusula geral contra uso ilegal ou nocivo e nada escrito sobre conteúdo adulto em si.

Os documentos de política divergem mais do que os parâmetros. A Política de Uso Aceitável da Novita, em vigor desde 5 de agosto de 2026, inclui resultados sexualmente explícitos entre os usos proibidos e não descreve nenhuma forma de liberar trabalho adulto. Os termos do Replicate, atualizados pela última vez em 1º de abril de 2026, excluem nudez não consentida e material sexual ilegal, e a seção 8.6 afirma com todas as letras que os serviços podem gerar conteúdo adulto gráfico, com a responsabilidade por ele recaindo sobre o cliente. Leia essas cláusulas antes de escrever código de integração, porque são elas que decidem o que aquela plataforma permite. A API de imagem do Venice AI, com o próprio padrão de segurança, é comparada à nossa na alternativa ao Venice AI.

A cobrança também tem formato diferente. O ModelsLab vende planos mensais que variam por volume de chamadas e concorrência, não pelos modelos que você pode usar; a página de modelo do fal não anuncia assinatura nem compromisso mínimo e cobra aquele modelo de imagem por megapixel; a Novita cobra conforme o uso, por imagem, nos modelos de imagem que lemos. A Vellria fica mais perto dos dois últimos: um saldo pré-pago, um preço em créditos por imagem informado na página de cada modelo e nada que se renove.

O que falta na Vellria, dito com a mesma franqueza. Não há SDK, então uma chamada de API de imagem adulta aqui é HTTPS puro com um corpo JSON, a partir da linguagem que você usar. A API não é compatível com a OpenAI, então um cliente OpenAI não conversa com ela só trocando a URL base. Não há webhooks de saída; você descobre como um trabalho terminou consultando. E o catálogo é só de imagem e vídeo, sem modelos de texto ou de chat. Se um desses pontos for requisito, a Vellria não serve para essa parte do seu stack; e se o requisito for rodar pesos por conta própria, modelos NSFW de código aberto ou uma API hospedada mostra o que esse caminho custa.

A fronteira, dita uma vez

Nada reescreve o prompt, e o espaço que se abre é realmente amplo — trabalho adulto de ficção incluído. Algumas coisas continuam fechadas, seja qual for a chave, o saldo ou o endpoint: pessoas reais identificáveis que nunca concordaram em aparecer, e as categorias que os termos excluem até na ficção, como zoofilia, incesto, ausência de consentimento e gore extremo. Cruze essa linha e a conta vai embora, com as chaves junto.

As verificações automáticas não procuram pessoas reais comuns. A verificação de prompt recusa um prompt que reconhece de uma lista fixa de categorias, entre elas a sexualização de um menor de idade, ou que cita uma pessoa conhecida, e a verificação de referência recusa uma imagem que reconhece como mostrando alguém que talvez tenha menos de 21 anos ou um rosto conhecido, ou como carregando texto que tente influenciar a verificação, com HTTP 400 e image_blocked. Então a regra sobre pessoas reais comuns é algo para você aplicar dentro do seu próprio produto; a API não vai detectá-la por você. A página sobre o que um gerador de imagem IA NSFW permite traz a política completa, e a referência da API tem os corpos de requisição, os códigos de status e os formatos de erro. Para clipes em vez de imagens estáticas, a API de vídeo NSFW usa as mesmas chaves e a mesma consulta.

Dúvidas frequentes

A API reescreve ou modera o meu prompt?

Não. O que seu código envia é exatamente o que o modelo renderiza. O que resta são verificações automáticas, no prompt para uma lista fixa de categorias que inclui menores de idade e em qualquer imagem de referência enviada para idade aparente e rosto conhecido, nunca para tom ou grau de explicitude, e uma requisição barrada por elas volta como erro claro antes de qualquer crédito se mover, em vez de ser trocada em silêncio, para que sua aplicação a trate como erro em vez de descobri-la no resultado.

É síncrona ou preciso consultar?

Você consulta. Iniciar uma geração devolve na hora o ID de um registro, e você continua lendo esse registro até o trabalho terminar ou falhar. Nada se perde se seu processo reiniciar ou uma conexão cair, porque o trabalho vive no servidor, e não dentro da requisição que o criou.

O que acontece com os meus créditos quando uma geração falha?

A devolução é automática. A cobrança acontece quando o trabalho abre, e uma falha do lado do provedor devolve esse valor no momento em que o trabalho chega ao estado de falha. Os dois movimentos aparecem no histórico, então nada mais adiante precisa conciliar uma diferença à mão.

Posso enviar imagens de referência pelo código?

Sim, com uma etapa de upload separada. O arquivo sobe, você guarda o endereço que volta, e esse endereço identifica a imagem quando você abre um trabalho. Ele não exige sessão para ser buscado, já que a máquina que renderiza fica fora da sua conta.

Existem chaves ou planos separados para volume maior?

Não há níveis. As chaves são emitidas no Painel, e todas alcançam o catálogo inteiro nas mesmas condições; volume é questão de saldo, não de plano. Os limites de requisições valem por conta, e uma resposta limitada traz o número de segundos a esperar.

Existe SDK ou endpoint compatível com a OpenAI?

Nenhum dos dois. As requisições são HTTPS comuns com corpo JSON e chave Bearer, então qualquer cliente HTTP serve, mas não há biblioteca oficial para instalar, e um cliente OpenAI apontado para outra URL base não fala com esta API. Os resultados chegam por consulta, não por webhook. O guia de integração passo a passo mostra o ciclo inteiro em código.

Veja o catálogo antes de gastar qualquer coisa

Sem assinatura. Adicione créditos e pague só pelo que usar.

Escolher um modelo