API de Detecção NSFW vs Visão de LLM: Testei as Armadilhas

Última Atualização: 2026-07-21 10:46:46

Todo API de detecção de NSFW detecta pornografia óbvia. Eles se dividem quanto aos falsos positivos, classificando erroneamente roupas de banho, arte ou fotos médicas como explícitas, e é isso que deve decidir sua escolha. Então, testei um detector dedicado contra três modelos de visão LLM nas mesmas imagens ambíguas: o detector barato marcou uma estátua de mármore como nudez em 26 ms, enquanto os LLMs mais robustos interpretaram o contexto e aprovaram a imagem. A configuração que a maioria das equipes deve adotar é um detector barato em cada upload e, em seguida, enviar apenas os casos ambíguos para um LLM para uma segunda análise, o que mantém uma economia de aproximadamente US$ 1 por 1.000 verificações enquanto reduz os alarmes falsos que irritam usuários reais.

O que uma API de detecção de NSFW realmente retorna

Antes de comparar ferramentas, saiba o que retorna. Você envia uma imagem (como uma URL ou um upload direto) e recebe uma pontuação de probabilidade de 0.0 a 1.0, além de rótulos por categoria: geralmente nudez, conteúdo sugestivo e violência, com alguns serviços adicionando hentai, gore, drogas ou armas. Você escolhe um limite. Pontuações acima dele são bloqueadas, uma faixa intermediária vai para revisão humana, e o restante é liberado.

Essa pontuação de 0–1 é o jogo todo. Defina o limite baixo demais e você afogará os moderadores em alarmes falsos; alto demais e conteúdo inseguro chegará aos usuários. A maioria dos serviços pontua imagens estáticas; menos deles lidam com vídeo (amostrando quadros em um intervalo que você define) ou texto. Mantenha esse vocabulário em mente. É a diferença entre as opções abaixo.

As opções e no que cada uma é boa

O mercado se divide em quatro grupos, e eles resolvem problemas diferentes.

APIs de moderação dedicadas

Classificadores desenvolvidos especificamente para isso da Sightengine, Hive Moderation, AWS Rekognition, Google Cloud Vision e Azure AI Content Safety. Eles são rápidos (menos de 1 segundo a ~1 segundo), baratos por imagem e oferecem granularidade de categorias, além de suporte a vídeo nas camadas mais altas. A Hive divulga mais de 50 classes; a Sightengine informa respostas em menos de 100 ms.

Sightengine pricing page showing Starter and Pro content-moderation plans

A opção gratuita integrada: OpenAI Moderation

O endpoint de moderação da OpenAI (omni-moderation-latest) é gratuito e aceita tanto texto quanto imagens de até 20 MB. Ele retorna 13 categorias, incluindo uma sinalização dedicada para conteúdo sexual com menores, cada uma com um valor booleano e uma pontuação de confiança de 0 a 1. Como é gratuito, é a opção mais rápida para fazer um benchmark primeiro:

curl https://api.openai.com/v1/moderations \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"omni-moderation-latest",
       "input":[{"type":"image_url","image_url":{"url":"https://example.com/upload.jpg"}}]}'

Open source auto-hospedado

NudeNet e o modelo Falconsai/nsfw_image_detection ambos são executados localmente em Python, sem taxa por chamada, e os dados da imagem nunca saem da sua infraestrutura. O NudeNet tem duas linhas para testar:

from nudenet import NudeDetector
NudeDetector().detect("upload.jpg")
# -> [{'class': 'FEMALE_BREAST_EXPOSED', 'score': 0.91, 'box': [...]}, ...]

O projeto open-source safe-content-ai encapsula o Falconsai em um serviço FastAPI com Docker que você pode implantar com um único comando. A compensação é o escopo (essas soluções focam em nudez ou em um binário simples) e as operações: você é responsável pelo tempo de atividade, pela GPU e pelas atualizações.

Visão multimodal do LLM por meio de um relé

Modelos de visão (GPT, Claude, GLM, doubao) podem classificar uma imagem a partir de um prompt simples. Esta é a opção mais flexível: você altera a política editando o prompt, recebe uma justificativa escrita para cada veredito e pode criar categorias personalizadas na hora. Você paga por token e espera alguns segundos. É a opção raramente comparada com as ferramentas dedicadas, então foi nela que eu concentrei o teste.

Preços e para que cada um é melhor

Verificado em relação à página de preços de cada fornecedor em julho de 2026:

ProvedorPreçoPlano gratuitoIdeal para
OpenAI ModerationGrátisSem taxa por chamadaUma base de custo zero, ou equipes já na OpenAI
AWS Rekognition$1 / 1,000 images1,000/mo (trial)Mais barato em escala; stack AWS; image + video
Google Cloud Vision$1.50 / 1,000 ($0.60 at volume)1,000/mostack GCP
Sightengine$29/mo = 10k ops, then $0.002/opTrialMenor latência; video e live-stream
Hive Moderation~$1–5 / 1,000Conjunto de categorias mais profundo (50+ classes)
Azure AI Content Safety~$1.50 / 1,0005,000/moPontuação de severidade; stack Azure
NudeNet / FalconsaiGrátis (self-host)Privacidade; custo zero por chamada
LLM vision (via relay)~$0.0003–0.03 / imageCamada de revisão sensível ao contexto

Testei os falsos positivos: detector dedicado vs visão de LLM

Fornecedores publicam números de precisão. A JigsawStack afirma mais de 98%, e "95%+" é uma linha comum. Mas a precisão bruta esconde a falha que gera tickets de suporte: falsos positivos em conteúdo seguro. Então montei um conjunto de teste com três imagens, todas apropriadas para trabalho, e executei as mesmas imagens por um detector dedicado de código aberto (NudeNet) e três modelos visuais multimodais. Uma foto de escritório de controle, uma mulher em um maiô inteiro discreto e uma estátua de mármore clássica nua, sendo as duas "armadilhas" exatamente as imagens que um detector de nudez excessivamente direto sinaliza em excesso.

First-hand NSFW moderation test set: office control, modest swimwear, and a classical nude statue

Para os modelos LLM, usei um prompt: *"Você é um classificador de moderação de conteúdo de imagens. Retorne JSON estrito: verdict (safe/flag/block), nsfw_score 0–1, categories {nudity, suggestive, violence}, reason. Use block apenas para conteúdo sexual explícito; flag significa que precisa de revisão humana."* O NudeNet retorna caixas por parte do corpo com scores de confiança, então usei o score da parte exposta com a maior pontuação como seu score de nudez. Os resultados:

ModeloEscritório (controle)Traje de banhoEstátua clássica
NudeNet (dedicado, auto-hospedado)seguro · 0.00 · 26msseguro · 0.00 · 18mssinalizado · 0.70 · 26ms
claude-opus-4-6seguro · 0.01seguro · 0.12seguro · 0.08
glm-5sem acesso à imagem*seguro · 0.15sinalizado · 0.75
doubao-seed-2.0-proseguro · 0.00seguro · 0.15seguro · 0.10

<sub>*Na foto do escritório, o glm-5 retornou "safe", mas sua própria justificativa admitiu que não conseguiu ler a imagem, então considero essa célula como uma chamada falha, não um resultado válido. Em produção, essa falha silenciosa em modo fail-open é o caso perigoso.</sub>

NSFW score by model for three safe images: NudeNet and glm-5 over-flag the statue, claude and doubao pass it

A linha divisória não é "dedicado versus LLM". É a compreensão de contexto. Aqui está o que cada um retornou para a estátua, a imagem que os separou:

NudeNet:  BELLY_EXPOSED 0.70, FEMALE_GENITALIA_COVERED 0.41, ARMPITS_EXPOSED 0.36  -> sinalizar
glm-5:    {"verdict":"flag","nsfw_score":0.75,"categories":{"nudity":1},"reason":"A representação artística de nudez requer revisão humana."}
claude:   {"verdict":"safe","nsfw_score":0.08,"categories":{"nudity":0.3},"reason":"Escultura clássica de Vênus em um museu. Bela arte, não sexual."}

NudeNet é rápido (18–26ms) e gratuito para auto-hospedagem, mas sinalizou a estátua em 0.70 porque detecta partes do corpo, não significado; glm-5 fez o mesmo em 0.75. claude-opus-4-6 ainda definiu nudity: 0.3 — ele viu a nudez — mas anulou o veredito com base no contexto, a capacidade que um detector em nível de pixel não tem. A falha a ser observada é a do glm-5: ele retornou "safe" para a foto do escritório enquanto admitia que não conseguia ler a imagem, uma falha silenciosa de fail-open que você jamais perceberia em produção.

Três ressalvas honestas. A latência para os LLMs ficou entre 4 e 14 segundos por imagem, em comparação com cerca de 20 ms do NudeNet. Cada imagem consumiu aproximadamente 730–1.900 tokens de entrada, o que, em um modelo de ponta, equivale a cerca de 10–30× os ~US$0,001 que você pagaria ao Rekognition, então isso deve ficar fora do caminho crítico. E a saída do LLM não é padronizada: você converte texto em uma pontuação, e a qualidade varia bastante entre modelos. Este foi um teste pequeno e informal com três imagens, não um benchmark. Mas já é suficiente para mostrar a verdadeira troca: compreensão de contexto versus custo, velocidade e consistência.

API dedicada ou visão de LLM? Uma decisão de construir vs. comprar

Quando uma ferramenta dedicada vence

Alto volume, orçamento apertado por imagem, latência abaixo de um segundo, vídeo ou certificações de conformidade (SOC 2, um DPA assinado do GDPR). Se você modera milhões de uploads, US$ 1 por 1.000 em 100 ms é difícil de superar em custo e velocidade, e a visão de LLM não está no mesmo nível nesse aspecto.

Quando a visão de LLM compensa seu custo

Categorias sensíveis ao contexto em que falsos positivos prejudicam (arte, educação, medicina, amamentação), além de casos em que você quer um motivo legível por humanos para uma contestação, precisa de uma categoria personalizada ou nova, ou já executa um modelo de visão para outros recursos. É o revisor inteligente e caro, não o filtro em massa.

A configuração em camadas que a maioria das equipes deve usar

Execute um detector barato (ou um modelo auto-hospedado como o NudeNet) em cada upload. Como ponto de partida apenas ilustrativo, calibre antes de confiar nele: bloqueie automaticamente acima de ~0,85, aprove abaixo de ~0,3 e encaminhe a faixa intermediária para uma chamada LLM-vision que raciocine sobre o contexto antes que qualquer humano o veja; depois ajuste esses limites com base em uma amostra rotulada do seu próprio tráfego. E trate uma classificação com falha como insegura, não segura: se uma resposta não confirmar que leu a imagem ou não fizer parse como JSON válido, tente novamente ou envie para revisão humana em vez de deixá-la passar, exatamente o glm-5 fail-open acima. Você paga tarifas de API dedicada na maior parte dos uploads e reserva o custo do LLM para os casos ambíguos que realmente geram disputas, a fronteira entre arte e nudez em que o detector barato sinalizou em excesso a estátua do museu.

Essa camada LLM precisa de acesso a um ou mais modelos de visão. Um relay como o AIReiter acessa GPT, Claude e visão GLM por meio de um único endpoint compatível com OpenAI, de modo que a camada de revisão possa alternar entre modelos sem SDKs ou contas separadas; foi assim que executei o teste em quatro vias acima.

A única coisa que você nunca deve construir por conta própria: CSAM

Uma linha dura. Nada do acima se aplica a material de abuso sexual infantil. Não treine, execute ou “teste” seu próprio detector de CSAM, e não direcione CSAM suspeito por uma API geral de detecção de NSFW como se fosse conteúdo adulto comum. O caminho estabelecido é o hash-matching contra bancos de dados conhecidos (PhotoDNA da Microsoft e as listas de hash do NCMEC e da IWF), além da comunicação ao NCMEC. As obrigações exatas de notificação variam conforme a jurisdição e conforme o seu papel como provedor, então trate isso como uma questão legal e de aplicação da lei com seu próprio sistema dedicado, e não como um classificador que você ajusta.

Perguntas Frequentes

Existe uma API gratuita para detecção de NSFW?

Sim. O endpoint de Moderação da OpenAI (omni-moderation-latest) é gratuito e aceita imagens. O AWS Rekognition e o Google Cloud Vision incluem cerca de 1.000 imagens gratuitas por mês cada. Para uso gratuito ilimitado, hospede você mesmo um modelo de código aberto como o NudeNet, que rodou em cerca de 20 ms por imagem no meu teste.

Qual é a melhor API de detecção de NSFW para imagens e vídeos?

Para vídeo, Sightengine e Hive ambos amostram frames e são projetados para isso, e o AWS Rekognition também oferece moderação de vídeo. Para imagens com orçamento limitado, o AWS Rekognition a $1 por 1.000 é a opção padrão comum. Pese sua escolha pelo custo, profundidade de categorias ou taxa de falsos positivos; não há um vencedor único.

Posso executar detecção de NSFW em Python sem uma API paga?

Sim. O NudeNet e o modelo Falconsai/nsfw_image_detection ambos executam localmente em Python (pip install nudenet), e o projeto open-source safe-content-ai empacota o último como um serviço FastAPI em Docker. Você troca as taxas por chamada por hospedar e manter o modelo você mesmo.

Quão precisas são as APIs de detecção de NSFW?

Fornecedores citam 95–98% em seus próprios benchmarks para conteúdo explícito. O número que realmente importa é a taxa de falsos positivos em conteúdo limítrofe seguro (arte, trajes de banho, imagens médicas), em que, como o teste acima mostrou, um detector dedicado e rápido e um modelo mais fraco ambos sinalizaram em excesso uma estátua de museu, enquanto a visão de LLM sensível ao contexto a aprovou.

Posso usar o GPT-4o ou Claude vision para moderação de conteúdo?

Sim, e, para casos sensíveis ao contexto, eles evitam falsos positivos melhor; no meu teste, o Claude vision passou uma estátua nua como arte fina, enquanto um detector em nível de pixel a sinalizou. O custo é velocidade (segundos, não milissegundos) e preço (aproximadamente 10–30× uma API dedicada por imagem), então use-os como uma camada de revisão em vez do filtro principal em massa.

Leituras relacionadas