Cómo quitar el watermark o marca de agua de Claude
Sin paños calientes:
No puedes borrar la marca de agua con las herramientas que dicen que la borran.
Y no porque sean malas herramientas. Es que limpian otra cosa. Limpian caracteres Unicode invisibles, espacios raros, metadatos de ficheros. Todo eso existe, todo eso conviene quitarlo por otros motivos, pero nada de eso es la marca que Claude mete en el texto.
La marca de agua de Claude no son caracteres añadidos. Se genera con el texto, no se le pega después.
Eso último lo dice Anthropic. Lo que no ha publicado es el algoritmo concreto, así que verás señalado en todo el artículo qué está documentado y qué es inferencia.
(Watermark y marca de agua son lo mismo. Uso los dos términos porque en la documentación técnica conviven.)
Ahí está el malentendido que va a llenar GitHub de repos estos meses. Vamos a desmontarlo y, de paso, a montar la parte que sí vale la pena.
La respuesta corta sobre la marca de agua de Claude ¶
Anthropic usa dos mecanismos distintos para marcar lo que sale de Claude, y confundirlos es el origen de casi todo el ruido.
| Mecanismo | Dónde vive | ¿Se puede quitar? |
|---|---|---|
| Marca de agua en texto | Tejida en el texto, aplicada a nivel de modelo | No con post-proceso determinista |
| Metadatos C2PA firmados | En la cabecera del fichero (.svg, .png, .jpg) |
Sí, y es trivial |
El segundo se cae solo. La propia Anthropic reconoce que los metadatos de un fichero se pierden con conversiones de formato, al volver a guardarlo, con una captura de pantalla o por otros medios. Súbelo a WhatsApp y el pipeline de recompresión te lo borra sin que hagas nada.
El primero es otra historia. Anthropic lo describe como una marca imperceptible tejida directamente en el texto, que viaja con él cuando lo copias y pegas y que puede sobrevivir a cierta edición.
Fíjate en el verbo. Tejida, no pegada.
Hay una segunda pista, y es la más reveladora de toda la documentación. Anthropic advierte que un pasaje muy corto deja demasiado poco texto para una señal fiable. Piensa en lo que implica: una marca hecha de caracteres invisibles no se comporta así. Un espacio de ancho cero es un espacio de ancho cero, esté en tres palabras o en tres mil. Solo una señal estadística, repartida y acumulativa, necesita longitud para ser fiable.
Y hay algo mejor que una pista: alguien fue y lo comprobó. Daniel Miessler pasó la salida del propio Claude por un escáner de codepoints y le salió cero. Ni un carácter invisible, espaciado uniforme. Es una prueba informal, no un estudio, pero apunta donde apunta todo lo demás. Y la puedes repetir tú: al final del artículo montamos ese escáner en 80 líneas de Python.
Su argumento de fondo es más limpio que el mío. En ASCII de 7 bits con espaciado simple no hay dónde esconder un bit: dos personas que escriben la misma frase producen ficheros idénticos byte a byte. Si la marca existe y sobrevive al copiar y pegar, no puede estar en los caracteres. Tiene que estar en qué caracteres se eligieron.
Eso no prueba qué algoritmo usa Claude, pero descarta la familia de los caracteres invisibles. Que es justo lo que limpian las herramientas.
🔑 Si una herramienta te promete quitar “la marca de agua de Claude” y lo único que hace es eliminar caracteres invisibles, te está limpiando algo que Claude nunca puso ahí.
Y ojo con una confusión que viene de serie: una cosa es la marca de agua técnica y otra que tu texto suene a IA. Son problemas distintos con soluciones distintas. Del segundo hablé en el análisis de Impeccable, donde la herramienta me encontró trece anti-patrones en mi propio diseño.
Dale método al agente y no tendrás nada que lavar después
Si el problema de fondo es que el texto o el código salen de la IA tal cual, la solución no está al final del proceso sino al principio. En este curso gratis recorres el ciclo completo de Spec Driven Development con OpenSpec sobre un proyecto real: propuesta, spec, diseño, tareas y archivado, decidiendo tú en cada paso.
Entra en el curso gratis →Qué dice Anthropic y qué no dice ¶
Los modelos de Claude lanzados el 2 de agosto de 2026 o después soportan el marcado desde el día uno, y Anthropic está trabajando para añadirlo a los modelos anteriores. La cobertura abarca Claude Platform (API), Claude, Claude Code, Claude Cowork y Claude Tag, y también cuando accedes a los modelos a través de AWS, Google Cloud o Microsoft Foundry.
El detalle que más ha escocido: el marcado se aplica dondequiera que Claude esté disponible, en todo el mundo. No es solo Europa, aunque el disparador sea europeo. Anthropic ha firmado el Código de Prácticas del Artículo 50(2) del Reglamento Europeo de IA sobre transparencia en contenidos generados por IA.
Y ahora lo que no dice: cómo funciona por dentro. No hay especificación ni algoritmo publicado, solo la promesa de documentación técnica futura sobre los mecanismos de detección. John Gruber lo resumió en Daring Fireball con la mala leche justa: un artículo titulado “cómo Claude marca el contenido generado por IA” que no explica cómo Claude marca el contenido generado por IA.
Así que lo que viene ahora es inferencia informada, no documentación oficial. Te lo señalo porque la mitad de artículos que vas a leer presentan la inferencia como hecho.
Cómo puede funcionar una marca de agua generativa ¶
The Verge, al repasar el anuncio, señaló que Anthropic no identifica qué sistema emplea para texto. Lo que sí tenemos son esquemas de watermarking generativo documentados y desplegados en producción que encajan con las propiedades descritas. El de referencia lo publicaron Kirchenbauer y su equipo en Maryland en 2023.
La idea es preciosa por lo simple.
Cuando un modelo genera texto, en cada paso calcula una probabilidad para cada token del vocabulario y elige uno. La marca de agua se cuela justo ahí, en ese paso.
Antes de elegir, el vocabulario se parte en dos listas usando una función pseudoaleatoria con semilla derivada del contexto anterior. Una “verde” y una “roja”. Después se le suma un pequeño sesgo a los tokens verdes.
# Reparto pseudoaleatorio del vocabulario en cada paso de generación
# La semilla depende del contexto previo: sin la clave, no lo reproduces
def green_list(previous_tokens, vocab_size, gamma=0.25, key=None):
rng = seeded_rng(hash(previous_tokens), key)
permutation = rng.permutation(vocab_size)
cut = int(gamma * vocab_size)
return set(permutation[:cut]) # el 25% "verde" de este paso
# Sesgo suave sobre los logits: empuja sin romper la frase
def biased_logits(logits, greens, delta=2.0):
for token_id in greens:
logits[token_id] += delta
return logits
El sesgo es suave. No fuerza una palabra, inclina la balanza. Si el modelo iba a escribir “el compilador rechazó el parche” y “rechazó” está en rojo pero “no aceptó” está en verde, quizás salga la segunda. El significado no cambia y tú no notas nada. Repite eso mil veces y tienes una acumulación estadística que no ocurre por azar.
Cómo se detecta ¶
El detector no busca una firma. Cuenta.
# El detector rehace las listas verdes y cuenta aciertos
# Un texto humano rondará gamma (25%). Uno marcado, bastante más.
z = (green_count - gamma * total) / sqrt(total * gamma * (1 - gamma))
# z alto = improbable por azar = texto marcado
Es un contraste de hipótesis de manual. Y tiene tres consecuencias que definen todo lo demás:
- Necesitas la clave del proveedor y el texto tokenizado. En SynthID-Text la puntuación no requiere acceso al modelo, pero sí la clave. Ojo: eso vale para los esquemas publicados, no sabemos qué pedirá el detector de Anthropic.
- Es un continuo, no un interruptor. No hay “tiene marca / no tiene marca”. Hay un valor de confianza que sube con la longitud del texto.
- Los textos cortos no sirven. Es la pista con la que abríamos, y encaja: sin longitud no hay evidencia acumulada que medir.
Un aviso para que no te quedes con la copla equivocada: no todos los watermarks generativos usan listas verdes. El de arriba es el clásico de Kirchenbauer, el más fácil de visualizar. SynthID-Text también altera la selección de tokens, pero con otro algoritmo, Tournament sampling: puntúa los candidatos con varias funciones pseudoaleatorias y los empareja en un torneo por eliminatorias hasta que queda uno. Mismo principio, mecánica distinta.
💡 La marca de agua no está en ningún carácter concreto. Está repartida en la estadística de todas tus palabras. Por eso ningún
seddel mundo la toca.
Entender el mecanismo por dentro es lo que te libra de comprar la primera explicación que pase por tu timeline. Cada domingo seleccionamos 12 recursos sobre IA y desarrollo para más de 6.700 developers. Gratis, desde 2018.
Apúntate gratis →Las cinco clases de marca de agua ¶
Esta taxonomía es lo mejor que se lleva uno del repo watermarks-remover, y conviene atribuirla bien: el paper de SynthID-Text distingue tres familias para texto (generativa, edit-based y data-driven). Las otras dos las añade el repo para cubrir ficheros y otros medios. La ampliación es útil, pero no es de SynthID.
Edit-based (Unicode y reglas). Caracteres invisibles insertados en el texto: espacios de ancho cero, joiners, controles bidireccionales, tag characters. Detectable y eliminable con total certeza. Nada apunta a que Claude use esta familia en texto.
Generativa o estadística (token sampling). La que acabamos de ver, y la que mejor encaja con lo que Anthropic describe. Solo detectable con la clave del proveedor.
Data-driven o backdoor. El modelo se entrena para que ciertos disparadores produzcan comportamiento identificable. Ninguna herramienta de post-proceso llega ahí, por definición.
Metadatos de contenedor. C2PA, EXIF, XMP, propiedades de OOXML. Manifiestos firmados y embebidos en el fichero. Se quitan sin esfuerzo.
Soft binding y marcas de señal. Marca imperceptible en el contenido (píxeles, forma de onda) que permite reenlazar con un manifiesto remoto después de que le quites los metadatos. Sobrevive al borrado por diseño.
Las clases dos y cinco son las que aguantan. Las herramientas atacan la uno y la cuatro. Ahí tienes el resumen en dos líneas.
Qué hace de verdad watermarks-remover ¶
Vamos al repo concreto: guillaumemeyer/watermarks-remover, el quitador de marcas de agua del que todo el mundo habla. Licencia MIT, Python de biblioteca estándar.
Aviso de caducidad: lo analicé el 12 de agosto de 2026, recién llegado a la v0.1.0 y ampliado a OpenAI y Gemini además de Claude. Se mueve a diario, así que comprueba el estado antes de dar por bueno cualquier detalle. Es una reacción de días a la noticia y se nota en lo bueno y en lo malo.
Está empaquetado como agent skill, ese formato de carpeta con un SKILL.md que ya conoces si has leído la guía completa de Agent Skills. Detalle curioso: el README instala en ~/.grok/skills/. Es una skill de Grok, no de Claude. Si la quieres en tu entorno de Claude Code, cambias el symlink a mano y listo.
Declara tres capas. Vamos con ellas.
Capa A: higiene Unicode ¶
Es el 80% del código y funciona bien. Tres conjuntos de codepoints: los que elimina sin sustituto (espacios de ancho cero, controles bidi, selectores de variación, tag characters), los homóglifos de espacio que sustituye por un espacio normal, y los confundibles latinos que solo toca si se lo pides.
Su mejor idea es que el inspector etiqueta cada hallazgo por clase:
Length: 2841 chars
Suspicious: 17
Hits:
[space] U+00A0 NO-BREAK SPACE (Zs) x12
[zwj_family] U+200B ZERO WIDTH SPACE (Cf) x4
[bidi] U+202E RIGHT-TO-LEFT OVERRIDE (Cf) x1
Note: Layer A only: invisible/format Unicode and space homoglyphs.
Note: Statistical watermarks are not detectable here.
Ese U+202E suelto en un markdown en español no es una marca de agua de nadie. Es basura de un copy-paste, o un intento de Trojan Source. Clasificar por tipo en lugar de escupir una lista plana es justo la clase de comprobación que merece la pena tener en el pipeline, como las del repaso de 754 skills de ciberseguridad para agentes.
Capa de ficheros: metadatos ¶
Recorre PNG chunk a chunk y JPEG segmento a segmento, sin dependencias externas. En DOCX y ODT reescribe el ZIP entrada por entrada limpiando docProps/. En HTML quita metas y JSON-LD de procedencia; en Markdown, claves del frontmatter.
Esta es la parte del repo que sí borra una marca de agua de verdad: la de los ficheros. Con una pega en PDF. Sin exiftool instalado borra bytes y reescribe el fichero igualmente con un aviso de “degradado”, y eso puede dejarte un PDF que abre en un lector tolerante y se rompe en otro.
Capa B: la reescritura ¶
Aquí está la promesa y aquí está el problema. No es código determinista: es un hook que le pide a otro modelo que reescriba tu texto.
Y el propio README es honesto. Dice, con todas las letras, que hasta que los proveedores publiquen detectores y claves, ninguna herramienta puede certificar que un texto falla la comprobación oficial. Guárdate esa frase: es la más importante del repositorio.
Pero hay un problema que el README no menciona y que hunde la capa entera. Si reescribes el texto de Claude con otra IA, no borras la marca: la cambias por la de ese modelo. Gemini lleva SynthID. OpenAI tiene sus propias superficies de procedencia. Así que la función estrella de un quitador de marcas de agua no elimina nada, blanquea de un proveedor a otro.
El único reescritor limpio es una persona que se repiense el texto. Y eso nunca estuvo en discusión.
El error de categoría ¶
La única capa verificable del repo es la Capa A. Puedes contar los codepoints antes y después, ejecutar un diff y comprobar el resultado. Y es la capa que casi con seguridad no elimina la marca de agua de Claude: Anthropic nunca menciona caracteres invisibles, la marca se aplica durante la generación y no como post-proceso, y necesita longitud de texto para ser fiable. Tres indicios que apuntan al mismo sitio.
La capa que apunta a la marca real es la Capa B, y es justo la que no puedes verificar.
Verificable pero inútil. Útil pero no verificable.
Esa inversión no es un fallo del repo: es una propiedad del problema, y no la arregla nadie escribiendo mejor Python.
⚠️ Cuando alguien te enseñe una captura con “17 marcas de agua eliminadas”, pregúntale de qué clase eran. La respuesta casi siempre será: espacios duros que venían de pegar desde Word.
Tu IA puede mentirte
Lo que la IA te devuelve no se comprueba a ojo
Aquí no puedes verificar nada porque no existe detector. En tu código sí puedes: te llevas el ciclo anticaos, las pruebas en navegador con Playwright, los casos Gherkin y el adversarial review entre modelos para revisar lo que escriben tus agentes.
Ver el método entero →Métodos en directo + casos Gherkin
Por qué la reescritura no lleva a ningún sitio ¶
El ataque por paráfrasis está descrito en la literatura desde el paper original, no es ningún secreto de estado. De hecho, el paper de SynthID-Text lo admite entre sus limitaciones: los watermarks generativos se debilitan con ediciones como la paráfrasis mediante otro modelo, aunque eso suele cambiar el texto de forma significativa.
Esa coletilla es todo el argumento.
La marca de agua estadística vive en la distribución de tus palabras. Para degradarla tienes que cambiar esas palabras. Y ahí se abre un continuo con tres tramos y ninguno bueno:
- Reescritura ligera. Cambias conectores, ajustas alguna frase. La distribución de fondo se conserva y la marca sobrevive con alta probabilidad.
- Reescritura media. Reformulas párrafos enteros. La señal se degrada. ¿Cuánto? Nadie lo sabe, porque no hay nada contra lo que medir.
- Reescritura estructural. Extraes las ideas, tiras el texto y lo reconstruyes. Aquí la marca sí se degrada de verdad, y aquí ya no es el mismo texto: has perdido ejemplos, matices y voz.
Y ni siquiera el tramo tres es garantía. Una señal que viajara en el significado y no solo en las palabras podría sobrevivir en parte a la paráfrasis. Nadie sabe si la de Claude llega tan abajo.
Mira bien el tramo tres. En el punto donde el método funciona, has hecho tanto trabajo que era más rápido escribirlo tú.
Ese es el argumento honesto y es el que casi nadie está haciendo. Si tu objetivo es que el texto no parezca de una máquina, el camino corto no es lavarlo: es escribir tú las partes que importan.
Lo que se escapa a cualquier herramienta ¶
Tres cosas que ningún script de post-proceso alcanza.
El soft binding. Tres conceptos que se confunden a todas horas. En C2PA, un hard binding es un hash criptográfico que vincula el manifiesto con el asset y permite comprobar que los bits protegidos no han cambiado. Que el manifiesto vaya embebido en el fichero es otra cosa: una forma de almacenarlo. Y un soft binding es un identificador que sale del propio contenido —una marca imperceptible o una huella— para localizar el manifiesto en un almacén remoto cuando el embebido ya no está.
Lo que quitan estas herramientas es el manifiesto embebido. C2PA llama durable Content Credentials a la combinación de hard y soft binding, y existe justo porque los metadatos se pueden borrar: el soft binding está diseñado para sobrevivir a eso, lo que no lo hace indestructible. El matiz que importa es que Anthropic habla de C2PA firmado en ficheros pero no dice que implemente soft binding, así que aquí no puedes dar nada por hecho en ninguna dirección.
Las marcas en el dominio de la señal. SynthID para imagen, audio y vídeo trabaja sobre píxeles y formas de onda. Un exiftool -all= no las roza.
Los backdoors de entrenamiento. Comportamiento inducido en el modelo. No hay post-proceso posible.
Y por encima de todo, el meta-problema: no existe detector público. Nadie puede certificar que un texto pasa. Nadie puede certificar que falla. Cualquier herramienta que insinúe lo contrario está vendiendo humo con una interfaz bonita.
Marcas de agua, procedencia, detectores que todavía no existen: la infraestructura de la IA se está montando en directo y cuesta seguirle el ritmo. En la newsletter de Web Reactiva contamos cada domingo lo que vamos entendiendo, con las aportaciones de +6.700 developers.
Suscríbete gratis →Cómo te lo montarías tú (la parte que sí vale) ¶
No replicaría este repo. Replicaría el inspector, que es el 20% del código con el 90% del valor.
Un linter de Unicode para tus repos ¶
El caso de uso honesto no tiene nada que ver con la IA. Los caracteres invisibles rompen diffs, búsquedas, grep y tests de igualdad de cadenas. Y los controles bidireccionales permiten un ataque real.
Trojan Source lo publicaron Nicholas Boucher y Ross Anderson en Cambridge en 2021, con dos CVE asociados y comprobado contra C, C++, C#, JavaScript, Java, Rust, Go y Python. El fallo no está en ningún compilador: está en cómo casi todos los renderizadores muestran Unicode. Un U+202E reordena el código para que tú leas una cosa y el parser lea otra. Cinco años después sigue siendo un ángulo muerto en la mayoría de pipelines de revisión.
Este es el escáner del que hablaba al principio. Su núcleo cabe en menos de 80 líneas:
import unicodedata
from collections import Counter
DANGEROUS = {
"bidi": set(range(0x202A, 0x202F)) | set(range(0x2066, 0x206A)) | {0x200E, 0x200F, 0x061C},
"tag": set(range(0xE0001, 0xE0080)),
"zw": {0x200B, 0x200C, 0x200D, 0x2060, 0xFEFF},
"space": {0x00A0, 0x2000, 0x2003, 0x2009, 0x202F, 0x3000},
}
# Contexto: ZWJ y ZWNJ son legítimos en emoji y en escrituras índicas o árabes
SEMANTIC_OK = {0x200C, 0x200D}
def scan(text):
hits = Counter()
for i, ch in enumerate(text):
cp = ord(ch)
for kind, cps in DANGEROUS.items():
if cp in cps:
hits[(kind, cp, i)] += 1
return hits
Y encima, tres decisiones de diseño que separan el juguete de la herramienta:
- Severidad, no lista plana. Un tag character o un control bidi en código fuente es un error. Un espacio duro en un markdown es un aviso. Un ZWJ pegado a un emoji se ignora.
- Lista blanca contextual. Este es el bug del repo original: borra
U+200DyU+FE0Fsin mirar el contexto, así que 👨👩👧 se convierte en tres emojis sueltos y el farsi cambia de significado porque el ZWNJ separa palabras. Para algo que se vende como “seguro por defecto”, es pérdida de datos silenciosa. - Auto-fix solo con
--fixexplícito. Nunca por defecto, y con salida como anotación de GitHub para que se vea en el pull request.
Distribúyelo como pre-commit hook y como GitHub Action. Ahí está el alcance real.
Higiene de metadatos antes de publicar ¶
El segundo producto lo tienes funcionando en diez minutos. Subes capturas a tu blog y esas capturas llevan modelo de cámara, a veces coordenadas GPS, a veces tu usuario en la ruta del software. Eso es privacidad pura, no evasión.
# En imágenes, el 95% del valor sin escribir una línea de código
exiftool -all= -overwrite_original imagenes/*.png
Con PDF hay una trampa que casi nadie cuenta. ExifTool edita mediante actualizaciones incrementales: los datos antiguos no se borran, solo se deja de apuntar a ellos. El propio ExifTool te avisa por consola de que sus ediciones en PDF son reversibles y que los tags se pueden recuperar con un solo comando. Así que para PDF hacen falta dos pasos:
# 1. ExifTool quita los tags, pero deja los datos antiguos en el fichero
exiftool -all= -overwrite_original documento.pdf
# 2. qpdf reconstruye el PDF y descarta los objetos huérfanos
qpdf --linearize documento.pdf documento.limpio.pdf
Sin el segundo paso tienes un PDF que parece limpio. ExifTool a secas no es el camino para PDF: es la mitad del camino.
Lo que añadirías encima: un pre-publish que audita la carpeta de assets, clasifica por severidad (GPS crítico, modelo de cámara informativo) y limpia pidiendo confirmación.
🛡️ Antes de lanzar cualquiera de las dos herramientas contra tu contenido, haz backup. Los limpiadores agresivos de Unicode y de metadatos rompen ficheros de verdad, y el fallo suele ser silencioso.
La ventana peligrosa ¶
Termino con lo que más me preocupa, y no es técnico.
Anthropic dice que detectar una marca indica que el contenido pudo pasar por Claude, pero no confirma su procedencia completa. Y pone el ejemplo perfecto: la gente usa Claude para revisar, traducir o resumir, y el resultado puede llevar marca aunque las ideas y el texto vengan de otra fuente.
Lee eso otra vez. La marca no prueba autoría.
Si le pasas un texto tuyo a Claude para que te corrija las tildes, lo que sale puede ir marcado. Tus ideas, tus frases, tu trabajo. Marcado.
Y al revés también: la ausencia de marca no significa que el contenido no fuera generado por IA.
Ahora junta las dos piezas. La marca ya existe en producción. El detector todavía no. Y cuando llegue, existe un riesgo claro de que universidades, empresas y plataformas traten esa señal como prueba de autoría por IA, cuando la investigación de base y la documentación del propio fabricante dicen que no lo es.
No es una certeza, es un riesgo. Pero es un riesgo con precedentes: los detectores de IA de la generación anterior ya se usaron así, y hay literatura que documenta cómo penalizaban a quienes no escriben en su lengua materna.
Ese es el problema real de los próximos meses. No es que puedas o no borrar un watermark.
Es que alguien va a suspender a un estudiante que solo pidió ayuda con la ortografía.
Y eso no se arregla con un script de Python.
Preguntas frecuentes ¶
¿Se puede borrar la marca de agua de texto de Claude?
Con herramientas deterministas de post-proceso, no. La marca se aplica a nivel de modelo y necesita cierta extensión de texto para dar señal, lo que apunta a algo estadístico que ningún limpiador de Unicode alcanza. Se degrada con reescritura fuerte, pero a ese nivel de reescritura el resultado ya es otro artículo.
¿Qué borran entonces los “watermark removers” o quitadores de marca de agua que hay en GitHub?
Caracteres Unicode invisibles, espacios exóticos, controles bidireccionales y metadatos de ficheros. Es limpieza útil, pero pertenece a otra clase de marca de agua distinta de la que usa Claude en texto.
¿Qué algoritmo de watermarking usa Claude exactamente?
No se sabe. La compañía no lo ha revelado y solo ha prometido publicar los detalles más adelante. Su descripción encaja con las marcas generativas basadas en sampling, como las de Kirchenbauer o SynthID-Text, pero quien te diga cuál usa Claude está especulando. Y sin clave ni herramienta pública, nadie de fuera puede comprobarlo.
¿Los metadatos C2PA de las imágenes sí se pueden quitar?
Sí, y sin dificultad. Anthropic admite que un cambio de formato, un reguardado o una captura de pantalla se los lleva. Un exiftool -all= elimina el manifiesto embebido. En PDF necesitas además qpdf --linearize, porque las ediciones de ExifTool en PDF son reversibles.
¿Es lo mismo el watermark de Claude que una marca de agua de las de toda la vida?
El nombre es el mismo, el mecanismo no. Una marca de agua clásica es un logo semitransparente encima de una imagen y se ve. La de Claude en texto es invisible y vive en qué palabras elige el modelo, no en algo superpuesto.
¿Detectar una marca de agua demuestra que el texto lo escribió una IA?
No. La documentación de Anthropic advierte que la marca indica procesamiento por Claude, no autoría. Un texto humano corregido o traducido con Claude puede llevar watermark, y su ausencia tampoco prueba que no haya habido IA.
¿Merece la pena instalar watermarks-remover?
Como inspector de Unicode sí tiene valor: la clasificación por tipo de hallazgo está bien pensada. Como eliminador de la marca de agua de Claude, no hace lo que su nombre sugiere. Y cuidado con el limpiador por defecto, que borra ZWJ y selectores de variación sin lista blanca y te puede romper emojis y escrituras no latinas.
¿Qué hago si de verdad quiero que mi texto no parezca de IA?
Escribirlo tú y usar el modelo para lo que hace bien: buscar, contrastar, revisar y estructurar. Los tics se quitan cambiando decisiones de escritura, no pasando un filtro al final.
Fuentes ¶
- Anthropic, “How Claude marks AI-generated content” — documentación oficial, actualizada el 11 de agosto de 2026
- Kirchenbauer et al., “A Watermark for Large Language Models” — el paper que define el esquema de listas verdes
- Dathathri et al., “Scalable watermarking for identifying large language model outputs” — SynthID-Text, Nature 2024
- Boucher y Anderson, “Trojan Source: Invisible Vulnerabilities” — el paper de los CVE de Unicode
- guillaumemeyer/watermarks-remover — el repo analizado, licencia MIT
- C2PA and Content Credentials Explainer — definiciones de hard binding, soft binding y durable Content Credentials
- exiftool — la herramienta de referencia para metadatos, con la advertencia de reversibilidad en PDF
- qpdf — reconstrucción de PDF para eliminar objetos huérfanos
- The Verge, “Claude will apply invisible watermarks to AI text and images” — señala que Anthropic no identifica el sistema que usa
- John Gruber, Daring Fireball — la crítica a la opacidad del anuncio
- Daniel Miessler, “Where an AI Watermark Can Hide in Plain Text” — el escaneo de codepoints y el argumento del ASCII canónico
🧨 Última oprtunidad para recibir la dinamita que mereces sobre programación con IA el próximo domingo: Suscríbete gratis a Web Reactiva en https://webreactiva.com/newsletter
12 recursos para developers cada domingo en tu bandeja de entrada
Además de una skill práctica bien explicada, trucos para mejorar tu futuro profesional y una pizquita de humor útil para el resto de la semana. Gratis.