Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
remove-ai-watermarks — Remove marcas d'água de IA visíveis e invisíveis e metadados de proveniência de imagens e vídeos. Biblioteca Python e CLI para SynthID, C2PA, EXIF, IPTC, XMP e marcas comuns de IA generativa. | Kitploit
Ferramentas/GitHubGitHub/wiltodelta/remove-ai-watermarks
Utilitários de Propósito GeralOSINT (Inteligência de Fontes Abertas)Análise ForenseEsteganografiaRecuperação de DadosForensia DigitalCriptografiaPrivacidadeAprendizado e Educação
GitHubwiltodelta/remove-ai-watermarks

remove-ai-watermarks

Remove marcas d'água de IA visíveis e invisíveis e metadados de proveniência de imagens e vídeos. Biblioteca Python e CLI para SynthID, C2PA, EXIF, IPTC, XMP e marcas comuns de IA generativa.

Ver RepositórioSite
4.5k42420há 14h 25mRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Remover Marcas de Água de IA

Remova marcas de proveniência de IA de imagens e vídeos que você mesmo gerou:

  • rótulos visíveis conhecidos, como a marca d'água de faísca do Google Gemini e marcas de texto do fornecedor;
  • marcas d'água invisíveis de pixels por meio de regeneração por difusão;
  • metadados de IA C2PA, EXIF, XMP, IPTC e relacionados.

O suporte a vídeo abrange identificação de proveniência, limpeza completa de visível mais metadados, lotes de diretórios, remoção de marcas visíveis de Sora, Veo, Seedance, Doubao, Dola, Hailuo AI e Kling AI, e regeneração VAE certificada por oráculo para remoção de SynthID em vídeo.

raiw.cc executa esta biblioteca como um serviço hospedado, com a GPU incluída e nada para instalar. A remoção de marcas visíveis e metadados na saída Standard de até 12 MP é gratuita lá; resolução original acima de 12 MP e remoção de marcas d'água invisíveis são pagas.

PyPI Python Downloads License

Tests
Sponsor

Este projeto é para uso legal em conteúdo que você possui. Ele não tem como alvo pré-visualizações de agências de banco de imagens ou outras marcas d'água que protegem conteúdo pago de terceiros. Consulte notas de escopo, segurança e legais.

Escolha o que você deseja fazer

ObjetivoComandoGPU
Encontrar sinais de proveniência e marcas d'águaidentifyNão
Classificar uma fotografia a partir de pixels (opt-in, não proveniência)classifyNão
Verificar SynthID suportado da OpenAI a partir de pixels com a API remota oficialverify-openai-synthidNão
Remover marcas visíveis conhecidas de IAvisibleNão
Apagar uma região que você selecionareraseNão
Remover metadados de IAmetadataNão
Identificar proveniência de vídeo suportadavideo identifyNão
Remover marcas visíveis e metadados de IA de vídeovideo allNão
Remover metadados de IA de vídeovideo metadataNão
Remover uma marca visível registrada de IA de vídeovideo visibleNão
Processar um diretório de vídeosvideo batchDepende do modo
Remover SynthID de vídeo com o perfil VAE certificadovideo invisibleRecomendado
Regenerar uma imagem para interromper marcas d'água invisíveisinvisibleNecessário (CUDA)
Executar remoção visível, invisível e de metadadosallRecomendado
Processar um diretóriobatchDepende do modo

Declarações InvisMark do Microsoft Paint e Photos são roteadas automaticamente para regeneração de pixels. O comando all remove tanto a marca d'água de pixels oculta quanto seu manifesto C2PA vinculado; a remoção apenas de metadados remove somente o manifesto.

Modos de instalação

NecessidadeInstalar
Inspeção e remoção de metadadosremove-ai-watermarks
Classificação de fotografia IA-versus-câmeraremove-ai-watermarks[classify]
Verificação remota oficial de SynthID da OpenAIremove-ai-watermarks[verify]
Detecção e remoção visívelremove-ai-watermarks[visible]
Processamento de vídeo visívelremove-ai-watermarks[video]
Remoção de SynthID de vídeoremove-ai-watermarks[video,diffusion]
Detecção DWT-DCT sem Torchremove-ai-watermarks[detect]
Remoção de imagem invisível (requer CUDA)remove-ai-watermarks[qwen-zimage]
Todos os recursos de produção disponíveis no Python ativoremove-ai-watermarks[all]

Extras de nível inferior e especializados incluem pixels, heif, trustmark, migan, lama e diffusion. O guia de instalação documenta sua composição exata de dependências, compatibilidade com Python e requisitos de modelo.

Início rápido

Instale a CLI padrão focada em metadados:```bash uv tool install remove-ai-watermarks

root@kitploit:~
Inspecione uma imagem:```bash
remove-ai-watermarks identify image.png

Para classificar uma fotografia a partir de pixels (IA versus câmera, provedor opcional), instale o extra e chame classify. identify nunca o inicia:```bash uv tool install --force "remove-ai-watermarks[classify]" remove-ai-watermarks classify image.png

root@kitploit:~
Guia: [classificação de pixels de fotos](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/photo-classify.md).

A proveniência assinada é o caminho suportado para o SynthID e o `identify` a lê.
Não há detector local de pixels SynthID no pacote. A pesquisa sobre um
especialista em rede periódica está em `scripts/synthid_runtime/` e
[synthid-detector-research.md](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/synthid-detector-research.md).

Para imagens OpenAI suportadas, o verificador oficial opcional fornece um
veredito de marca d'água de pixels:```bash
uv tool install --force "remove-ai-watermarks[verify]"
remove-ai-watermarks verify-openai-synthid image.png --acknowledge-upload

O comando remove os metadados de proveniência de IA de uma cópia temporária, verifica que os pixels decodificados permanecem inalterados, envia apenas essa cópia para a OpenAI e consome somente a resposta independente do SynthID. Ele nunca é executado implicitamente a partir do identify. Uma chave de API, acesso ao endpoint e confirmação explícita de upload são necessários.

Para remoção de marca d'água visível, instale as dependências de pixels:```bash uv tool install --force "remove-ai-watermarks[visible]"

root@kitploit:~
Então remova uma marca visível conhecida e os metadados de IA:```bash
remove-ai-watermarks visible image.png -o clean.png

Strip metadata without running visible inpainting or diffusion:```bash remove-ai-watermarks metadata image.png --remove -o clean.png

root@kitploit:~
Sem `-o`, este comando sobrescreve a origem no lugar.

Inspecione ou remova metadados de IA de um arquivo MP4, MOV, M4V, WebM, MKV, AVI ou FLV:```bash
remove-ai-watermarks video metadata input.mp4 --check
remove-ai-watermarks video metadata input.mp4 --remove -o clean.mp4

O comando video metadata não faz transcodificação de fluxos de vídeo ou áudio. Diferente do comando de imagem acima, quando -o é omitido, ele grava <source>_clean e preserva o original. A inspeção de MP4 e MOV inclui a tag nativa TC260 AIGC em moov.udta.meta.keys/ilst, incluindo um moov colocado após a carga útil de mídia, além das variantes meta no formato QuickTime que a exportação para iOS do Doubao grava (uma caixa meta simples como filho direto de moov, e uma lista de metadados hdlr=mdir sem chave). A inspeção de MKV e WebM lê o posicionamento normativo Segment.Tags.Tag.SimpleTag. AVI usa LIST/INFO/AIGC, enquanto FLV usa script.onMetaData.AIGC. Os formatos não-ISOBMFF são remuxados com cópia de fluxo para remoção.

Use o caminho de vídeo orientado a produto para identificar ou limpar um arquivo:```bash uv tool install --force "remove-ai-watermarks[video]" remove-ai-watermarks video identify input.mp4 remove-ai-watermarks video all input.mp4 -o clean.mp4

root@kitploit:~
`video all` remove uma marca visível registrada estável quando presente e sempre
remove metadados de IA verificados. Se nenhum dos dois sinais for encontrado, ele ainda grava uma
passagem no mesmo contêiner, para que os chamadores da aplicação obtenham um contrato de saída previsível.
A remoção proprietária de vídeo invisível é excluída por padrão.
`--invisible` opta pelo perfil SynthID de vídeo com perdas e certificado por oráculo.

Processe um diretório com o mesmo contrato:```bash
remove-ai-watermarks video batch ./videos --mode all

Remover uma marca de vídeo visível suportada:```bash remove-ai-watermarks video visible input.mp4 -o clean.mp4 remove-ai-watermarks video visible veo.mp4 --mark veo -o veo_clean.mp4 remove-ai-watermarks video visible seedance.mp4 --mark seedance -o seedance_clean.mp4 remove-ai-watermarks video visible dola.mp4 --mark dola -o dola_clean.mp4 remove-ai-watermarks video visible hailuo.mp4 --mark hailuo -o hailuo_clean.mp4 remove-ai-watermarks video visible kling.mp4 --mark kling -o kling_clean.mp4

root@kitploit:~
Este caminho verifica a sequência completa antes de alterar os pixels. Ele aceita apenas uma
marca que se repete numa posição estável entre fotogramas adjacentes e, em seguida, reutiliza
os mesmos backends de preenchimento OpenCV, MI-GAN ou LaMa da remoção de imagens. O áudio é copiado
sem re-encoding e pode atingir o seu fim natural; o fluxo de vídeo
é transcodificado porque os seus pixels mudam. Por predefinição, uma passagem protegida de optical flow
alinha por movimento o preenchimento aceite anterior e mistura-o apenas quando o
contexto de origem próximo concorda; use `--no-temporal-consistency` para desativar isso.
O codificador preserva a amostragem de croma de origem suportada de
8 bits, as etiquetas de cor e a timescale das faixas MP4/MOV
em vez de depender dos padrões implícitos raw-BGR do ffmpeg. Os intervalos de fotogramas variáveis são
preservados através de uma ponte NUT em memória com timestamps, em vez de serem achatados
para a taxa de fotogramas média. Os timestamps de início de origem diferentes de zero são mantidos
juntamente com o offset de áudio copiado. O `--mark auto` predefinido
verifica todos os fornecedores numa única passagem de descodificação e seleciona a primeira correspondência estável na
ordem de especificidade mostrada abaixo. Passe uma marca explícita para restringir a deteção
a um fornecedor.
Sora cobre o mascote Sora 2 em movimento e a wordmark. Veo cobre tanto o atual
losango de quatro pontos como o texto legado `Veo`. Seedance cobre o rótulo fixo `AI` emoldurado,
Dola cobre o texto fixo `Dola AI`, Hailuo AI cobre o rótulo composto
`MINIMAX | hailuo AI`, e Kling AI cobre o rótulo `KLING AI` no canto inferior direito
com o seu sufixo de versão. Uma codificação concluída é publicada atomicamente. Nenhuma
saída é escrita quando nenhuma marca estável é encontrada.
Entradas HDR, PQ/HLG e com mais de 8 bits são rejeitadas antes da codificação, em vez de
serem silenciosamente reduzidas através do limite BGR de 8 bits do OpenCV.

Remover SynthID de vídeo:```bash
uv tool install --force "remove-ai-watermarks[video,diffusion]"
remove-ai-watermarks video invisible input.mp4 -o clean.mp4

Este caminho regenera a sequência completa com um único campo de ruído latente compartilhado ao longo do tempo, copia o áudio completo, remove os metadados de origem e publica a codificação concluída atomicamente. O perfil padrão noise_std=0.15 passou tanto na calibração de duas portadoras quanto em uma verificação completa do oráculo público Veo de oito segundos. O Google não publica um decodificador local, portanto uma nova verificação do provedor continua útil para arquivos excepcionalmente importantes ou após alterações no provedor, mas não é um estado de resultado do produto.

Para remoção de marca d'água invisível, instale o extra qwen-zimage. Uma GPU NVIDIA é necessária: todos os perfis são exclusivos para CUDA, e não há fallback para CPU ou MPS.```bash uv tool install --force "remove-ai-watermarks[qwen-zimage]" remove-ai-watermarks invisible image.png -o clean.png

root@kitploit:~
Se os detectores locais não conseguirem confirmar uma marca d'água invisível, mas você souber que a
imagem veio de um gerador de IA, adicione `--force`:```bash
remove-ai-watermarks invisible image.png -o clean.png --force

Imagens com muito texto podem optar pelo pós-processamento experimental de texto verificado. Ele aceita strings revisadas manualmente e caixas de linha ou um manifesto somente de geometria verificado por operador; nunca trata a saída bruta de OCR como verdade absoluta nem é executado automaticamente:```bash uv tool install --force "remove-ai-watermarks[text-restoration]" remove-ai-watermarks invisible image.png -o clean.png
--text-manifest verified-lines.json --force

root@kitploit:~
Consulte o [guia de CLI](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/cli.md#restore-operator-verified-text) para o esquema
do manifesto, restrições de compatibilidade e ressalvas do oráculo.

Consulte o [guia de instalação](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/installation.md) para Homebrew, uv, recursos
opcionais e configuração de desenvolvimento.

## Exemplos

### Marca d'água Gemini visível

| Antes | Depois |
| --- | --- |
| ![Imagem com marca d'água Gemini visível](https://assets.kitploit.com/production/public/readmes/7369/4f6643f46057e4a4ec503f5bf0daf7243768915090f2d7fc5ac183c2d928c5ca.png) | ![Imagem após remoção de marca d'água visível](https://assets.kitploit.com/production/public/readmes/7369/45193ef965a27342b183a1834b01ef812f653da2ec356a81fce1aed79f1ef814.png) |

O raster `after` é gerado a partir do raster `before` rastreado pelo caminho público:```bash
uv run remove-ai-watermarks visible demo_banana_before.png \
  --backend cv2 -o demo_banana_after.png

Remoção invisível de alta qualidade

qwen-zimage é o perfil padrão: uma passagem Qwen-Image-2512 Lightning sob Canny ControlNet, seguida de reparo Z-Image mascarado por SAM de qualquer rosto detectado. A alternativa, sdxl-zimage, troca o estágio global por SDXL e mantém o mesmo estágio de rosto. Um terceiro perfil, chroma-zimage, usa a passagem global Chroma1 sob Apache-2.0 com seus próprios pisos planos de fornecedor; consulte docs/chroma1-engine-research.md para a calibração. --pipeline auto escolhe chroma-zimage para procedência OpenAI e Microsoft e qwen-zimage caso contrário. Todos são apenas CUDA.```bash uv tool install --force "remove-ai-watermarks[qwen-zimage]" remove-ai-watermarks invisible image.png -o clean.png --force

root@kitploit:~
| Exemplo OpenAI antes | Exemplo OpenAI depois |
| --- | --- |
| [![Grade de retratos OpenAI antes do qwen-zimage](https://assets.kitploit.com/production/public/readmes/7369/28ff8732b037f98a4ef5bc277bbcdaa32e5eb9ccbd00b6c8c616e46ef68ae8a0.png)](data/synthid/originals/ChatGPT%20Image%20May%2030,%202026,%2010_31_08%20AM.png) | [![Grade de retratos OpenAI depois do qwen-zimage](https://assets.kitploit.com/production/public/readmes/7369/8066deab6162ef4fba352ffb475a119bfe94f097a4f5531e0fe141cbb8e089b5.png)](docs/images/qwen-zimage/ChatGPT/ChatGPT%20Image%20May%2030,%202026,%2010_31_08%20AM_full_clean.png) |

| Exemplo Gemini antes | Exemplo Gemini depois |
| --- | --- |
| [![Sinal Gemini antes do qwen-zimage](https://assets.kitploit.com/production/public/readmes/7369/4affd7f27767a445db6abf741355743ba8d95108ad922c9fff045feed8492236.png)](data/synthid/originals/Gemini_Generated_Image_633uuy633uuy633u.png) | [![Sinal Gemini depois do qwen-zimage](https://assets.kitploit.com/production/public/readmes/7369/42858417874f6cd8bc7c9bdb39f6bde8aa32310a3e219e7ee2dff23a4742c7b1.png)](docs/images/qwen-zimage/Gemini/Gemini_Generated_Image_633uuy633uuy633u_full_clean.png) |

Esses arquivos de saída exatos foram verificados com os verificadores do provedor correspondente. Esse
resultado se aplica a esses arquivos, não a cada semente, imagem ou versão futura de
marca d'água.

## Receitas comuns

### Remover toda marca visível detectada```bash
remove-ai-watermarks visible image.png -o clean.png

O padrão --mark auto verifica todas as marcas visíveis registadas e remove cada correspondência. Se a marca for visível para si, mas o detetor não a detetar, selecione a sua região explicitamente:```bash remove-ai-watermarks erase image.png
--region 1640,1930,400,100
-o clean.png

root@kitploit:~
`--region` usa `x,y,width,height` e pode ser repetido.

### Usar um backend de preenchimento aprendido

O extra `visible` usa inpainting do OpenCV quando nenhum backend aprendido está instalado.
Para fundos mais difíceis, os extras do backend aprendido incluem as mesmas
dependências de pixel automaticamente:```bash
uv tool install --force "remove-ai-watermarks[migan]"
remove-ai-watermarks visible image.png -o clean.png --backend migan

Aqui está a tradução do conteúdo do Kitploit:

root@kitploit:~
## Instalação

### Requisitos

- Python 3.8 ou superior
- pip (gerenciador de pacotes do Python)
- Acesso à internet para baixar dependências

### Passos de Instalação

1. Clone o repositório:
   ```bash
   git clone https://github.com/example/tool.git
   cd tool
  1. Instale as dependências:

    root@kitploit:~
    pip install -r requirements.txt
    
  2. Execute a ferramenta:

    root@kitploit:~
    python main.py --help
    

Uso

Exemplos Básicos

Para escanear um único alvo:

root@kitploit:~
python main.py -t https://example.com

Para escanear múltiplos alvos a partir de um arquivo:

root@kitploit:~
python main.py -l targets.txt

Opções Disponíveis

OpçãoDescrição
-t, --targetEspecifica o URL ou IP do alvo
-l, --listArquivo contendo uma lista de alvos
-o, --outputArquivo de saída para salvar os resultados
-v, --verboseAtiva a saída detalhada
-h, --helpMostra a mensagem de ajuda

Exemplo de Saída

root@kitploit:~
[+] Iniciando varredura em https://example.com
[+] Porta 80 aberta
[+] Porta 443 aberta
[+] Servidor web detectado: nginx/1.18.0
[+] Diretório /admin encontrado
[+] Varredura concluída em 12.5 segundos

Configuração

A ferramenta pode ser configurada através do arquivo config.yaml:

root@kitploit:~
# Configurações de varredura
scan:
  timeout: 10
  threads: 50
  user_agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"

# Configurações de relatório
report:
  format: "html"
  output_dir: "./reports"

Solução de Problemas

Erro: "ModuleNotFoundError"

Se você encontrar um erro de módulo ausente, certifique-se de que todas as dependências estão instaladas:

root@kitploit:~
pip install -r requirements.txt

Erro: "Permission denied"

Em sistemas Linux/macOS, você pode precisar usar sudo ou ajustar as permissões:

root@kitploit:~
chmod +x main.py

Contribuindo

Aceitamos contribuições! Por favor, siga estas etapas:

  1. Faça um fork do repositório
  2. Crie um branch para sua feature (git checkout -b feature/nova-funcionalidade)
  3. Faça commit das suas alterações (git commit -am 'Adiciona nova funcionalidade')
  4. Envie para o branch (git push origin feature/nova-funcionalidade)
  5. Abra um Pull Request

Licença

Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.

Aviso Legal

Esta ferramenta é destinada apenas para fins educacionais e testes de segurança autorizados. O uso não autorizado é estritamente proibido. Os desenvolvedores não são responsáveis por qualquer uso indevido.

root@kitploit:~
uv tool install --force "remove-ai-watermarks[lama]"
remove-ai-watermarks visible image.png -o clean.png --backend lama
```
### Reduzir o uso de memória CUDA```bash
remove-ai-watermarks invisible image.png -o clean.png \
  --cpu-offload --force
```
CPU offload reduz a pressão sobre a memória CUDA ao mover componentes do modelo entre CPU
e GPU, ao custo da velocidade.

### Processar um diretório```bash
remove-ai-watermarks batch ./images --mode visible
remove-ai-watermarks batch ./images --mode all
```
## O que a ferramenta consegue reconhecer

O suporte a marcas visíveis inclui:

- Marca-d'água visível de brilho do Google Gemini e Nano Banana;
- Doubao, o wordmark Jimeng e a pílula `AI生成` no canto superior esquerdo, Qwen, Kling AI,
  Yuanbao, Baidu, LiblibAI e rótulos RunningHub;
- uma variante calibrada do selo branco de IA da Microsoft no canto superior direito;
- uma variante calibrada do rótulo Samsung Galaxy AI.

A inspeção de metadados e proveniência cobre C2PA, EXIF, XMP, IPTC, parâmetros
comuns de geradores, rótulos AIGC da China TC260 e vários sinais específicos de
fornecedores. Decodificadores opcionais adicionam suporte para marcas-d'água
abertas DWT-DCT e Adobe TrustMark.

A matriz de suporte exata, incluindo limites importantes de localidade e detector, está
em [sinais suportados](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/supported-signals.md). A
[galeria de exemplos sintéticos](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/data/fixtures/visible/README.md) traz uma amostra
canônica para cada marca de imagem e vídeo registrada.

## Como funciona

A remoção visível segue três etapas:

1. Detectar uma marca registrada na sua área esperada.
2. Construir uma máscara ao redor da marca.
3. Preencher apenas a região mascarada com OpenCV, MI-GAN ou LaMa.

A remoção de metadados usa remoção ciente do formato. A remoção de metadados JPEG preserva
a varredura de imagem codificada em vez de recompactá-la. Valores TC260 nativos de MP4/MOV
são apagados sem alterar tamanhos de caixa ou offsets de mídia. Outros contêineres
suportados usam o caminho de metadados correspondente.

A remoção invisível é diferente. Ela regenera a imagem por meio de um pipeline
de difusão para interromper marcas-d'água nos domínios de pixel e frequência. Isso altera a
imagem e não pode garantir que um verificador proprietário rejeitará cada
saída.

Consulte [sinais suportados](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/supported-signals.md) e
[limitações conhecidas](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/known-limitations.md) para o limite técnico completo.

## API Python

A API de remoção visível requer `remove-ai-watermarks[visible]`.```python
import remove_ai_watermarks as raiw

result, removed = raiw.remove_visible("watermarked.png", "clean.png")
print(removed)

openai_synthid = raiw.verify_openai_synthid("image.png", acknowledge_upload=True)
print(openai_synthid.status)

provenance = raiw.identify_video("input.mp4")
report = raiw.inspect_video_metadata("input.mp4")
complete = raiw.remove_video_all("input.mp4", "clean.mp4")
batch = raiw.remove_video_batch("videos", "videos_clean")
cleaned = raiw.remove_video_metadata("input.mp4")
synthid_cleaned = raiw.remove_video_invisible("input.mp4", "synthid_clean.mp4")
visible = raiw.remove_video_visible("input.mp4", "clean.mp4")
print(visible.mark)
veo = raiw.remove_video_visible("veo.mp4", "veo_clean.mp4", mark="veo")
seedance = raiw.remove_video_visible(
    "seedance.mp4",
    "seedance_clean.mp4",
    mark="seedance",
)
dola = raiw.remove_video_visible("dola.mp4", "dola_clean.mp4", mark="dola")
```
A API de alto nível aceita um caminho de arquivo ou um array NumPy BGR. Para entradas de caminho, ela
também lê metadados de proveniência, preserva o canal alfa e pode remover metadados de IA do
resultado gravado.

Consulte o [guia da API Python](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/python-api.md) para remoção visível, o pipeline completo
`remove_all` e `remove_batch`, inspeção de proveniência, remoção de metadados
e uso de difusão.

## ComfyUI

O pacote separado
[ComfyUI Remove AI Watermarks](https://github.com/wiltodelta/ComfyUI-remove-ai-watermarks)
fornece nós para remoção visível, detecção, apagamento de regiões e
remoção invisível.

## Limitações importantes

- Um sinal local ausente significa desconhecido, não limpo. Marcas d'água de pixels
  proprietárias podem permanecer após a remoção dos metadados.
- A remoção visível reconstrói uma pequena região. Os resultados dependem do fundo
  e do backend de preenchimento selecionado.
- A remoção invisível altera toda a imagem e pode modificar rostos, textos ou detalhes
  finos.
- A remoção visível em vídeo reconhece a marca móvel Sora 2, o losango atual do Veo
  mais o texto legado `Veo`, o rótulo `AI` em caixa do Seedance e os rótulos fixos
  Doubao, Dola, Hailuo AI e Kling AI. Ela não reconhece o redemoinho de canto do Sora Turbo
  mais antigo nem layouts não registrados desses provedores.
  O backend clássico OpenCV pode borrar fundos estruturados; use MI-GAN ou
  LaMa quando a qualidade da recuperação for importante.
- A regeneração do SynthID em vídeo altera a resolução, a taxa de quadros e o detalhe da imagem.
  O perfil incluído é certificado pelo oráculo, mas nenhum decodificador local público pode
  certificar uma saída arbitrária em tempo de execução. Revalide saídas excepcionalmente importantes
  após mudanças no provedor.
- A remoção de marcas d'água invisíveis requer CUDA. Todos os perfis recusam qualquer outro
  dispositivo na construção, em vez de recorrer a um que não possa executá-los.
  A remoção visível, a remoção de metadados e o `identify` ainda funcionam em qualquer lugar.
- Os sistemas de marcas d'água dos provedores podem mudar. Valide saídas importantes com o
  verificador do próprio provedor quando um estiver disponível.

O comando `video invisible` incluído usa o perfil certificado `noise_std=0.15`.
O harness de pesquisa complementar `scripts/video_synthid_sweep.py` constrói
um controle de re-encode correspondente mais candidatos regenerados por VAE e deixa o
veredito do verificador em branco:```bash
uv run --extra video --extra diffusion python scripts/video_synthid_sweep.py input.mp4 -o sweep/
```
Para pontuar o que uma saída realmente custou, use `scripts/video_fidelity_probe.py`:
o PSNR do próprio mecanismo é medido antes do redimensionamento e da codificação, então apenas a
sonda vê a imagem entregue.```bash
uv run --extra video python scripts/video_fidelity_probe.py input.mp4 input_clean.mp4
```
O controlo tem de continuar a ser positivo para SynthID antes de um candidato negativo poder
contar como evidência de remoção. Na calibração de dois clipes de 2026-07-29, ambos os
controlos correspondentes foram positivos no verificador SynthID integrado do Gemini; o candidato
mais forte foi negativo em ambos os suportes, enquanto um candidato mais fraco foi
negativo num deles. Um acompanhamento adversarial posterior que pediu ao Gemini normal para
reinterpretar o resultado do pixel devolveu `UNAVAILABLE`; esse acompanhamento não foi uma
nova execução do verificador e não invalida os veredictos integrados. Uma verificação
de clipe completo de 2026-07-31 numa amostra pública de oito segundos do Veo encontrou `0.10` ainda detetado
e `0.15` não detetado, pelo que `0.15` é agora o padrão certificado. Os
hashes reproduzíveis e veredictos para essa verificação de clipe completo — um suporte, duas
linhas — estão em `data/evaluations/video-synthid-oracle.csv`. A calibração
anterior de dois clipes é apenas narrativa: os seus veredictos não foram registados num
manifesto rastreado, pelo que trate o padrão certificado como assente nas linhas de 2026-07-31.

## Documentação

Comece pelo [índice de documentação](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/index.md).

- [Instalação](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/installation.md)
- [Guia da CLI](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/cli.md)
- [API Python](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/python-api.md)
- [Sinais suportados](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/supported-signals.md)
- [Limitações conhecidas](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/known-limitations.md)
- [Âmbito, segurança e notas legais](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/legal-and-safety.md)
- [Internos dos módulos](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/module-internals.md)
- [Lançamento e distribuição](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/release-and-distribution.md)

As notas de investigação e experiências históricas estão listadas separadamente no
[índice de documentação](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/index.md). Explicam decisões passadas, mas não
definem a API pública atual.

## Contribuir

Instale o ambiente de desenvolvimento e execute o gate do projeto:```bash
uv sync --frozen --extra dev
bash maintain.sh
```
Consulte os [detalhes internos do módulo](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/docs/module-internals.md) antes de alterar um subsistema
com invariantes documentados.

## Licença

[Apache 2.0](https://github.com/wiltodelta/remove-ai-watermarks/blob/main/LICENSE). Copyright 2025-2026 wiltodelta.
Baixar ferramenta