claude-watermark-cleaner README

The project's README from github.com/mikiane/claude-watermark-cleaner. As one markdown file: README.md.

Nettoyeur de watermark textuel Claude

Projet expérimental et critique : ce dépôt cherche à démontrer qu'un watermark statistique appliqué au texte est contournable et risque surtout de provoquer davantage de calcul, de coût et de consommation énergétique.

Pourquoi ce projet existe

Ce projet défend une thèse assumée : imposer un watermark statistique à du texte généré est une contrainte techniquement absurde. Une marque que l'on peut affaiblir en reformulant le texte ne constitue pas une preuve fiable de son origine. Elle crée en revanche une forte incitation à effectuer une seconde passe avec une autre IA.

Le résultat prévisible est contre-productif :

Autrement dit, la contrainte européenne risque d'obtenir l'inverse de l'effet recherché : elle ne supprimera pas les usages que ses utilisateurs veulent dissimuler, mais fera exploser les usages d'IA destinés à contourner la marque. Ce dépôt matérialise cette critique avec un outil volontairement simple.

Conclusion de l'analyse

La nouvelle marque annoncée par Anthropic n'est pas décrite comme une simple suite de caractères Unicode cachés. Elle est appliquée pendant la génération, au niveau du modèle, puis voyage avec le texte lors d'un copier-coller. La documentation technique du détecteur n'est pas encore publiée.

La méthode exacte n'est donc pas publiquement vérifiable à ce jour. L'hypothèse technique la plus crédible est une signature statistique : le modèle favorise légèrement certains tokens parmi plusieurs choix valides, et le détecteur mesure ce biais sur un passage suffisamment long. Il s'agit ici d'une inférence, pas d'un détail confirmé par Anthropic. Elle correspond toutefois au fonctionnement publié de systèmes comparables comme SynthID Text. Dans ce cas :

Sources :

Solution livrée

clean_claude_watermark.py réalise deux étapes :

  1. suppression des caractères Unicode invisibles ou directionnels suspects ;
  2. reformulation contrôlée du texte par un modèle autre que Claude.

Le script protège les blocs de code, le code en ligne, les URL et les variables. Il refuse également une sortie si un nombre a changé. Il fonctionne uniquement avec la bibliothèque standard de Python.

Moteurs utilisés et stratégie à venir

L'outil utilise actuellement Ollama et Codex :

Ollama n'injecte actuellement pas de watermark par lui-même. Le comportement exact dépend néanmoins du modèle chargé. Codex est un fallback pratique, mais un service distant pourrait toujours faire évoluer sa politique de marquage.

Si Ollama, Codex ou les modèles utilisés ajoutent un watermark à l'avenir, le projet basculera vers un modèle open source dont la chaîne de génération est auditable et pour lequel le watermarking peut être explicitement désactivé. Pour une démonstration sans dépendance à un fournisseur distant, le mode Ollama avec un modèle open source est donc recommandé.

Utilisation

Traiter un fichier :

python3 clean_claude_watermark.py texte.md -o texte-nettoye.md

Traiter directement le presse-papiers macOS :

python3 clean_claude_watermark.py --clipboard

Utiliser explicitement un modèle Ollama local :

python3 clean_claude_watermark.py texte.md -o texte-nettoye.md \
  --engine ollama --model qwen3:8b

Le mode par défaut effectue jusqu'à deux tentatives et conserve la plus forte. Il s'arrête après la première si au moins 70 % des séquences de cinq tokens ont déjà été perturbées. Pour limiter le traitement à une tentative :

python3 clean_claude_watermark.py texte.md -o texte-nettoye.md --passes 1

Ne retirer que d'éventuels caractères invisibles, sans reformuler :

python3 clean_claude_watermark.py texte.md -o texte-normalise.md --engine clean

Le script affiche sur la sortie d'erreur le moteur utilisé, le nombre de caractères invisibles retirés et le taux de variation lexicale. Une variation des séquences de cinq tokens inférieure à 60 % déclenche un avertissement.

Tests

Le projet n'utilise aucune dépendance Python externe. La suite de tests se lance avec :

python3 -m unittest discover -s tests -v

Limites

Position du projet

Cet outil n'affirme pas qu'un texte réécrit devient humain. Il montre qu'un watermark probabiliste n'est pas un mécanisme robuste de preuve ou d'attribution face à un utilisateur motivé. La provenance utile devrait reposer sur des mécanismes explicites, vérifiables et proportionnés, pas sur une contrainte qui pousse mécaniquement à consommer une seconde inférence.

claude-watermark-cleaner (mikiane/claude-watermark-cleaner)

Searching Database…

这是干什么的?一个实验性的 Python 命令行工具,尝试去除 Claude 的统计文本水印:它会先删掉可疑的不可见 Unicode 字符,再让一个非 Claude 的模型把文本重写一遍。它同时也是一次带批判意味的演示,说明这类水印其实很容易绕过。
它是需要导入的库,还是我直接运行的程序?就是一个单独的命令行脚本 cleanclaudewatermark.py,用纯 Python 写成——只依赖标准库,不需要额外安装任何包。
怎么用它处理我自己的文本?可以指定一个文本文件,也可以在 macOS 上直接读取剪贴板;还能强制使用某个特定的本地 Ollama 模型。默认最多会做两次改写并保留效果更好的一次,一旦五词元序列已有 70% 被扰动,就会提前停止。
除了 Python 我还需要装什么?需要一个改写引擎:优先使用 Ollama 跑的本地模型,如果本机已经配置好 Codex CLI,也可以作为备选。脚本本身没有任何外部 Python 依赖。
它能保证水印真的被去掉了吗?不能——在 Anthropic 公布它的检测器和阈值之前,真实效果根本无从衡量。改写还可能微妙地改变原意,所以涉及法律、医疗或金融的文本仍建议人工把关。
我的文本会离开我的电脑吗?用默认的 Ollama 引擎时,一切都在本地完成。而在 Codex 备选模式下,文本会发给你 Codex CLI 所配置的那个服务,所以 README 建议机密文件优先用本地 Ollama。
作者为什么认为 Claude 的水印是个坏主意?他的论点是:一个改改措辞就能削弱的水印,算不上可靠的来源证明,于是它主要促成的反而是第二轮 AI 处理——同样的内容要多花算力、延迟、成本和能源;而且当有人用 Claude 来编辑或翻译自己的文字时,这个信号本身也是含糊不清的。
这个水印据信是怎么工作的?根据 README,它并不是隐藏的 Unicode 字符,而是在生成阶段在模型层面施加的,复制粘贴、打印和 OCR 都去不掉它。目前最可信的猜测(只是推测,Anthropic 并未证实)是模型对某些词元有轻微的统计偏向,原理类似 SynthID Text。
脚本会保护哪些内容不被改写?代码块、行内代码、URL 和变量名都会原样保留;而且只要改写过程中任何数字发生了变化,脚本就会拒绝返回结果。
我怎么知道清理到底有没有起作用?脚本会把所用引擎、删除的不可见字符数量和词汇变化率打印到 stderr;如果五词元序列的变化率低于 60%,还会给出警告。
Creator
mikiane
Size
<0.1 MB
Stars
151
Updated
CommitAug 11
Age
2mo
Commits · 90 Days