Como desativar o filtro NSFW do FaceFusion (e por que talvez você não queira)

Se você já usou o FaceFusion, a ferramenta gratuita e de código aberto popular para troca de rosto, para processar uma foto ou um vídeo, pode ter esbarrado numa barreira frustrante: o preview de repente fica borrado, o arquivo final não é salvo ou o programa simplesmente para no meio do processamento sem uma explicação clara.

Isso é o filtro NSFW em ação. NSFW significa "Not Safe For Work" (não seguro para o trabalho), um rótulo comum para conteúdo com nudez ou material sexual explícito. O FaceFusion tem um sistema integrado que analisa automaticamente cada imagem e vídeo que você processa. Se ele entender que o conteúdo é NSFW, bloqueia a continuação.

Não há botão para desligar. Não há opção nos menus. E a cada atualização do FaceFusion, o que a comunidade descobriu na versão anterior em geral deixa de funcionar.

Este artigo explica o que você precisa saber: de onde veio o filtro, como ele funciona na prática, como as pessoas tentam desativá-lo e o que usar no lugar se você só quer fazer a troca de rosto sem dor de cabeça.


O FaceFusion já tinha filtro NSFW desde o início

Isso não é um recurso novo dos últimos meses. O filtro NSFW faz parte do FaceFusion desde a versão 1.0.0, o primeiro lançamento oficial.

Com o tempo, ele só ficou mais rigoroso:

Como o filtro evoluiu

VersãoO que mudou
1.0.0O filtro foi introduzido pela primeira vez. Segundo o changelog oficial: "Blur preview and processing hold when NSFW content has been detected." Na época, o FaceFusion usava um único modelo de detecção com um limiar de sensibilidade simples.
3.2.0O filtro ganhou um upgrade grande. Foi adicionado um detector baseado em YOLO, um tipo de modelo de IA pensado originalmente para detecção rápida de objetos em imagens. A varredura NSFW ficou mais rápida e mais precisa, pegando conteúdo que o modelo antigo deixava passar.
3.3.0O FaceFusion passou a usar um sistema de votação com três modelos. Em vez de confiar numa única opinião, três modelos de IA analisam o conteúdo de forma independente. O bloqueio só acontece se pelo menos dois dos três modelos concordarem que é NSFW. O changelog oficial descreve assim: "Run multiple NSFW models to prevent false detection."
3.4.x – 3.6.xNão houve anúncios específicos de novidades NSFW, mas nos bastidores o FaceFusion passou a ter checagens de integridade: o programa verifica se o código do filtro foi adulterado. Se detectar alterações, ele se recusa a iniciar. É isso que faz os métodos antigos quebrarem a cada atualização.

O que o filtro faz quando dispara?

Quando o FaceFusion classifica seu conteúdo como NSFW, você pode notar um ou mais destes sinais:

  • O preview fica borrado: em vez de mostrar o resultado da troca de rosto, a janela de pré-visualização exibe uma imagem pixelada ou totalmente borrada. A troca pode até ter sido feita, mas o FaceFusion não deixa você ver.
Preview borrado do FaceFusion quando o filtro NSFW dispara
  • O processamento para de vez: o FaceFusion não salva nenhum arquivo de saída. Se você roda pela linha de comando (a interface em texto que desenvolvedores usam), aparece "código de erro 3", que significa "conteúdo NSFW detectado".
  • A barra de progresso fica em "Analysing" e trava em 100%: o programa termina de analisar, marca como NSFW e para em silêncio. Sem pop-up, sem aviso explícito.

Como o filtro funciona por baixo dos panos?

Se você quer o lado técnico (não precisa entender tudo para seguir o artigo, mas ajuda a ver por que desativar é difícil):

A detecção NSFW do FaceFusion fica num arquivo chamado content_analyser.py. É um script em Python (a linguagem em que o FaceFusion é escrito) que roda três modelos de IA:

Nome do modeloAutorResolução analisadaSensibilidade
nsfw_1EraX640x640 pxSinaliza se confiança > 20%
nsfw_2Marqo384x384 pxSinaliza se confiança > 25%
nsfw_3Freepik448x448 pxOutro método de pontuação com limiar 10,5

Cada modelo olha o quadro ou a imagem de forma independente. A regra de votação é: só bloqueia se pelo menos dois dos três modelos sinalizarem NSFW. Em linguagem simples:

Se os modelos A e B dizem "NSFW": bloqueado.
Se A e C dizem "NSFW": bloqueado.
Se B e C dizem "NSFW": bloqueado.
Se só um modelo diz "NSFW": segue o fluxo.

Ilustração: verificação de hash no core.py do FaceFusion

Além disso, outro arquivo, core.py, contém uma verificação por hash. O hash é como uma impressão digital do código do filtro: uma sequência curta que muda se até uma letra do arquivo for alterada. Ao iniciar, o FaceFusion calcula a impressão de content_analyser.py e compara com o valor esperado. Se não bater, ou seja, alguém mexeu no filtro, o programa nem abre.

Ilustração: verificação de integridade do código do filtro

Não existe forma oficial de desligar o filtro NSFW

Se você espera uma caixinha nas configurações, um comando único ou um arquivo .ini simples, isso não existe.

Consultamos as fontes oficiais:

  • A documentação da CLI do FaceFusion (CLI = interface de linha de comando) lista dezenas de opções para detecção facial, qualidade de saída, codificação de vídeo, GPU etc. Nenhuma delas trata do filtro NSFW.
  • O arquivo facefusion.ini (onde você salva padrões) permite ajustes de log, execução, layout da interface e detecção facial. Análise de conteúdo não está entre eles.
  • A página Misc settings documenta só --log-level (quanto detalhe aparece no console) e --halt-on-error (parar quando der erro). Nada de controle NSFW.

Resumo: a única maneira conhecida de "desligar" o filtro é editar manualmente o código-fonte. São pelo menos dois arquivos Python, e como você verá abaixo, isso é bem mais frágil do que parece.


Como as pessoas tentam contornar o filtro NSFW

Sem interruptor oficial, a comunidade investiu muito tempo em descobrir como alterar o código para driblar o filtro.

O roteiro geral tem dois passos:

  1. Alterar a função de detecção para que ela sempre diga "conteúdo seguro", não importa o que veja.
  2. Remover ou burlar a checagem de integridade para o FaceFusion não detectar que o código do filtro foi modificado e se recusar a iniciar.

Os detalhes (número da linha, trecho exato) mudam de versão para versão. A seguir está o que a comunidade mapeou por faixa de versão, com erros comuns e o que costumava funcionar como correção.

Versões 3.4.1 e 3.4.2: método "clássico"

Como fazer:

Nessas versões o anti-adulteração ainda era relativamente simples. Abra content_analyser.py, localize a função detect_nsfw, apague tudo de dentro e coloque só uma linha: return False. Isso diz ao sistema que "não há NSFW" sempre.

Editando content_analyser.py para return False

Depois, em core.py, encontre a linha com algo como content_analyser_hash == '803b5ec7'. Apague esse trecho ou comente com # no início da linha (em Python, # ignora o restante da linha).

Removendo a checagem de hash no core.py

Também circulou um "pacote pronto" no Mega com core.py e content_analyser.py já modificados para substituir direto.

Erros comuns:

  • Formatação quebra o programa: muita gente editou com o Bloco de Notas e bagunçou a indentação (espaços no começo de cada linha). Python falha na hora de iniciar.
  • Loading infinito: usuários do Pinokio relataram tela de carregamento eterna; outros ficaram em "Analysing: 100%" com preview ainda borrado.
  • Vídeo normal derruba o app: depois da alteração, importar vídeo totalmente inocente fazia o FaceFusion fechar ou travar.
  • Erro mesmo limpando cache: ainda aparecia ErrorCode 3 ou queda de conexão no meio; em Mac muita gente disse que o método nem funcionava.

O que ajudava:

  • Travamento: após editar, apagar a pasta __pycache__ e a pasta de modelos, e reiniciar. Sem isso, a mudança muitas vezes não pegava.
  • Crash com vídeo normal: manter dois jogos de arquivos (original e modificado) e um script em lote para trocar de volta ao processar conteúdo "limpo".

Versões 3.5.0 e 3.5.1: código reorganizado

Como fazer:

A equipe reestruturou o código; as linhas mudaram. Em content_analyser.py, por volta da linha 197, use return False. Em core.py, por volta da linha 124, use return all(module.pre_check() for module in common_modules) (sem a checagem de hash que vinha depois).

Também surgiram arquivos prontos em hospedagens tipo FEX.

Erros comuns:

  • Programa não abre e não diz por quê: só trocar a linha 197 por return False e nada acontece, sem mensagem.
  • ImportError ao baixar arquivo de terceiros: versão ou dependências incompatíveis.
  • Arquivo não existe: quem usa FaceFusion como plugin do ComfyUI (fluxo em nós para imagem com IA) não achava content_analyser.py no mesmo lugar.

O que ajudava:

  • Falha silenciosa: não bastava a linha 197; era preciso trocar todos os return is_xxx nas linhas 140, 155, 160, 166 e 192 por return False, ou comentar cada detecção com #.
  • Cache "nível avançado": às vezes era preciso limpar também o cache do pip (gerenciador de pacotes do Python), não só __pycache__.

Versões 3.5.2 e 3.5.3: defesas mais fortes

Como fazer:

Método 1: em content_analyser.py, ainda dava para usar return False. Em core.py, manter return all(module.pre_check() for module in common_modules).

Alterações de código da versão 3.5.2 Método 1

Método 2 (truque que circulou): em vez de remover o hash, alguns trocavam == por != na linha da comparação em core.py, invertendo a lógica.

Erros comuns:

  • Pacotes da 3.5.1 na 3.5.2+: o sistema common_pre_check barrava na hora.
  • Tutorial passo a passo e mesmo assim nada: na 3.5.3/3.5.4 o app não abria ou o filtro continuava ativo.

O que ajudava:

  • Inverter == para != na linha do hash, como acima.
  • Configuração na interface (3.5.3): o modo Face Selector Mode não podia estar em REFERENCE; senão a alteração no código não surtia efeito.

Versões 3.5.4 e 3.6.0: dificuldade máxima

Como fazer:

As defesas ficaram bem mais pesadas.

Na 3.5.4, circulou código completo no Pastebin para colar e substituir:

Na 3.6.0, alguns usuários pediram a uma IA (ex.: Claude) para remover a checagem de hash na última linha de core.py e simplificar o analisador com return False.

Erros comuns:

  • "Mudei, reiniciei e voltou tudo!": clássico no Pinokio, que restaura os arquivos originais ao reabrir.
  • Muitos arquivos para mexer: preview, image-to-image etc.; até quem manjava um pouco batia cabeça com assistentes de código.

O que ajudava:

  • Pinokio: abrir run.js, achar git checkout --quiet -- facefusion, apagar ou comentar essa linha. Só assim as edições nos .py sobreviviam ao reinício.

Por que desativar o filtro vira um problema gigante

Mesmo quando alguém consegue naquela versão, os problemas não acabam. Os três maiores:

Problema 1: cada atualização quebra o esquema

O valor do hash muda a cada versão. Ao atualizar:

  1. Seus arquivos modificados são sobrescritos (Pinokio e instaladores automáticos pioram isso).
  2. Mesmo refazendo as edições, o hash esperado mudou e o app detecta adulteração.

Por isso o Reddit tem fios novos para 3.1.2, 3.2.0, 3.4.1, 3.5.x… A pergunta "o método antigo ainda funciona?" quase sempre recebe não: precisa de outro pacote de edições.

Problema 2: é fácil errar na edição

  • Arquivo errado: com Pinokio os caminhos são profundos (C:\pinokio\api\facefusion-pinokio.git\facefusion\facefusion\ etc.); muita gente editava uma cópia que nem estava em uso.
  • Indentação e tabs: Python é rígido; Bloco de Notas é receita para erro de sintaxe.
  • Esquecer __pycache__: o Python pode continuar rodando bytecode antigo; daí o "mudei e não mudou nada".
  • Só metade do trabalho: em várias versões são dois ou mais arquivos; mexer só no analisador e esquecer o core.py dá crash ou bloqueio silencioso.

Problema 3: mesmo "funcionando", outra coisa quebra

  • Foto passa, vídeo não (caminhos de código diferentes).
  • Preview borrado mesmo com saída ok.
  • Tudo mais lento porque os modelos NSFW ainda carregam em segundo plano.
  • Conteúdo normal passa a falhar porque o resto do programa esperava um formato de retorno específico.
  • Baixar .py de estranho na internet é risco sério de malware ou backdoor.

Alternativa melhor: FaceFusion online no FaceFusion.co

Se o que você quer é só trocar rosto em foto ou vídeo, sem Python, sem atualização quebrando gambiarra e sem risco de arquivo malicioso, o caminho mais simples é outro.

O FaceFusion.co roda no navegador. Não precisa instalar nada nem ter PC forte: você envia o arquivo, escolhe o rosto e o processamento vai para servidores na nuvem.

Plataforma online FaceFusion.co para troca de rosto

FaceFusion local x FaceFusion.co

FaceFusion (local / open source)FaceFusion.co (online)
InstalaçãoPython, Conda, drivers CUDA (NVIDIA), dezenas de GB de modelosNenhuma: só abrir o site
HardwarePC com GPU NVIDIA (muitas vezes US$ 300+)Qualquer aparelho com navegador
Filtro NSFWIntegrado, sem opção oficial de desligarSem restrição de conteúdo desse tipo
AtualizaçõesCada release pode invalidar edições manuaisSempre na versão atual, sem você remendar código
VelocidadeDepende do seu hardwareCerca de 8 s para fotos, ~60 s para clipes curtos (GPUs A100 na nuvem)
Precisão facialVaria com modelo e ajustes~95,8% de similaridade com 12+ modelos de IA
VídeoExige máquina forte localmenteSuporte com rastreamento quadro a quadro
ResoluçãoLimitada pela VRAMAté 4K na saída
Grupo / vários rostosLimitado na UI; lote via CLIAté 10 rostos numa foto
Lip syncDesde a 3.3.0 no localIncluso e automático online
EnhancementVocê escolhe e configura modelosAutomático com vários modelos (GFPGAN, CodeFormer, GPEN etc.)
PrivacidadeArquivos ficam na sua máquinaProcessamento em instância isolada; exclusão automática em até 24 h
CustoSoftware grátis, mas hardware caroCréditos diários grátis; planos pagos; sem marca d'água nas opções indicadas

Por que faz sentido para a maioria

  • Sem brigar com filtro: nada de editar código nem limpar cache de Python por causa de hash.
  • Zero montagem técnica: sem Conda, CUDA nem terminal.
  • Qualquer dispositivo: o pesado roda na nuvem.
  • Sempre atualizado: novos modelos entram sem você reaplicar gambiarra.
  • Resultado profissional rápido: alta similaridade, enhancement e lip sync sem configurar tudo na mão.
  • Privacidade: arquivos processados e removidos conforme a política do serviço (exclusão automática em até 24 horas).

Experimente agora

Sem cadastro obrigatório, sem download, sem precisar "desligar filtro".


Perguntas frequentes

Existe uma opção oficial para desativar o filtro NSFW do FaceFusion?

Não. A documentação oficial da CLI, o facefusion.ini e as flags documentadas em “misc” não expõem nenhum interruptor de NSFW. Os métodos da comunidade envolvem editar código-fonte Python, sem suporte e frágeis.

Por que o preview fica borrado ou a CLI devolve código de erro 3?

O FaceFusion bloqueou a execução porque detectou conteúdo NSFW. Você pode ver preview borrado, progresso parado em “Analysing,” nenhum arquivo salvo ou erro 3 na CLI por detecção NSFW.

Por que os “workarounds” deixam de funcionar após uma atualização?

Cada versão pode mudar o layout do código e a hash esperada de content_analyser.py. Atualizações também sobrescrevem arquivos editados—especialmente com instaladores como Pinokio—então patches antigos em geral precisam ser refeitos.

É seguro baixar core.py ou content_analyser.py já modificados de desconhecidos?

Não. Substituir arquivos centrais por uploads anônimos é risco sério de segurança (malware, backdoors ou vazamento de dados). Prefira editar suas próprias cópias ou usar um serviço online confiável.

Existe alternativa sem editar código?

Sim. O FaceFusion.co oferece troca de rosto no navegador sem os workarounds locais de filtro NSFW descritos neste guia.


Conclusão

O filtro NSFW está no FaceFusion desde a 1.0.0 e só ficou mais difícil de contornar. Não há opção oficial: nem menu, nem facefusion.ini, nem flag de CLI. Os métodos da comunidade exigem editar código Python, quebram a cada versão, são fáceis de errar (principalmente com Pinokio) e baixar arquivos modificados de terceiros é arriscado.

Se você já perdeu horas nisso, vale perguntar: essa luta compensa?

O FaceFusion.co oferece a mesma ideia de troca de rosto no navegador, sem essa restrição de conteúdo, sem instalação e com créditos gratuitos para começar. É só abrir o site e usar.