En estos tres archivos, la reinspección encontró cero campos eliminables compatibles tras la limpieza y los tres conservaron píxeles idénticos. JPEG, PNG y WebP se limpian a nivel de contenedor sin recodificar. Las dimensiones se mantuvieron en los tres.

Inspeccionar un ejemplo o tu imagen

Resultados medidos

Prueba de imágenes: · chromium 145.0.7632.6

JPEG

Campos eliminados
1
Campos eliminables restantes
0
Píxeles decodificados
Idénticos en esta prueba
Tamaño del archivo
989 → 924 B
Descargar ejemplo JPEG

PNG

Campos eliminados
2
Campos eliminables restantes
0
Píxeles decodificados
Idénticos en esta prueba
Tamaño del archivo
282 → 72 B
Descargar ejemplo PNG

WebP

Campos eliminados
2
Campos eliminables restantes
0
Píxeles decodificados
Idénticos en esta prueba
Tamaño del archivo
888 → 650 B
Descargar ejemplo WebP

Descargar resultados medidos (JSON)

Prueba pequeña. Límites explícitos.

Se probó una imagen fija sintética por formato, no todos los archivos ni generadores. El PNG contiene un contenedor construido similar a C2PA para probar la detección, no una credencial firmada ni una exportación real de un proveedor. No validamos firmas C2PA, demostramos autoría, detectamos marcas invisibles ni certificamos la ausencia de todos los campos ocultos. Las animaciones, perfiles de color, otros navegadores y archivos reales necesitan pruebas separadas.

Prueba de workflows: · chromium 145.0.7632.6

Prueba: metadatos de workflow de ComfyUI y ExifTool

Creamos dos PNG sintéticos con un prompt, seed y workflow JSON al estilo de ComfyUI. Ejecutamos la descarga real de BeforeShare y la comparamos con ExifTool 13.59. En ambos casos, BeforeShare eliminó los dos contenedores de workflow y conservó el mismo flujo de imagen IDAT y los mismos píxeles decodificados.

Resultado importante: ExifTool eliminó los campos prompt y workflow de los chunks tEXt reconocidos, pero su comando -all= dejó intactos los chunks privados comf del segundo archivo. Eso describe ExifTool 13.59 y estos archivos concretos; no demuestra una limitación universal.

Descargar resultados y comandos (JSON)

Límites de la comparación

Son dos PNG fijos y sintéticos, no exportaciones reales de ComfyUI. La segunda muestra imita el almacenamiento comf, pero no es una animación. La prueba no cubre todos los comandos, opciones, versiones o formatos de ExifTool, ni C2PA firmado o marcas de agua propietarias. ExifTool admite muchos más formatos y operaciones avanzadas que BeforeShare.

Experimento de BeforeShare · TuliAI ·

PDF y Word: qué se elimina y qué permanece

Creamos un PDF y un DOCX sintéticos, los limpiamos mediante los botones reales de la herramienta y comprobamos los archivos descargados con pdf-lib y JSZip, además del recibo del limpiador. En ambos se eliminaron los campos compatibles detectados. Un nombre escrito en el contenido permaneció en ambos: limpiar metadatos no oculta el contenido visible.

Cómo repetir y comprobar la prueba

  1. Descarga el original sintético, selecciónalo en el limpiador PDF o Word y guarda la copia y su informe. No necesitas usar un archivo personal.
  2. Abre el PDF y el DOCX en sus visores. El nombre visible permanece; el PDF también conserva la anotación. Examina los cambios de Word en el original y en la copia.
  3. Para una comprobación independiente, descarga el verificador de abajo. Con Node.js instalado, ejecuta estos comandos en una carpeta vacía. El modo sin argumentos comprueba las copias publicadas; el segundo modo comprueba las copias que tú limpiaste.

Descargar el verificador independiente (JavaScript)

npm install --no-save pdf-lib jszip
node verify-documents.mjs
node verify-documents.mjs my-clean.pdf my-clean.docx

Resultados, comprobaciones y huellas SHA-256 (JSON) · Informe PDF · Informe DOCX

Límites: son dos archivos construidos para esta prueba. No son documentos de clientes ni una prueba de todas las funciones de Office o PDF. Comparamos flujos de contenido PDF, no renderizados completos. No probamos cifrado, firmas, macros ni todos los objetos incrustados. El recibo usa el mismo motor para reinspeccionar; el verificador añade controles independientes concretos. Una huella identifica bytes, no seguridad universal. La fecha del ZIP puede cambiar la huella DOCX al repetirlo.

chromium 145.0.7632.6 · Método y correcciones: contactar con TuliAI.

Cómo hicimos la prueba

  1. Creamos metadatos sintéticos de autor en JPEG, texto de prompt y un contenedor estructural de procedencia en PNG, y XMP en WebP.
  2. Seleccionamos cada archivo en la herramienta de metadatos de IA en inglés, lo limpiamos y leímos el informe real posterior.
  3. Decodificamos ambos archivos en el mismo navegador. Comparamos dimensiones y la huella SHA-256 de los píxeles RGBA; PNG y WebP debían coincidir.
  4. Registramos huellas de los archivos, tamaños, campos eliminados, campos compatibles restantes y versión del navegador.

Repítelo tú

Descarga uno de los archivos originales, selecciónalo en la herramienta, límpialo y guarda el informe. El informe identifica tu copia mediante SHA-256. Como la limpieza copia los datos de imagen sin recodificar, el mismo archivo de entrada produce la misma huella de salida en cualquier navegador compatible.

Inspeccionar un ejemplo o tu imagen →
Registro técnico y reproducción

Ejecuta desde el repositorio de la aplicación tras instalar sus dependencias. La prueba utiliza los ejemplos publicados y comprueba la limpieza real y los píxeles. No sustituye la batería completa de pruebas.

npm run build
npx playwright test tests/e2e/cleanup-study.spec.mjs

Prueba ejecutable: Descargar código de la prueba del navegador

{
  "engineSourceSha256": "1586d4b6defd3053daa4bca94868b7826b56c8e7a0eeda90d0f3619cfa4197ff",
  "testedAt": "2026-10-10T17:31:18.608Z",
  "browser": "chromium 145.0.7632.6",
  "scope": "Three synthetic still images. Not provider exports, signed C2PA validation, animation or universal format coverage.",
  "rows": [
    {
      "format": "JPEG",
      "fixture": "synthetic.jpg",
      "inputSha256": "eb47ea573dbeca14e8d5c9ea4bfafd2a63afd269ca8b02a0d80d885b7aea401c",
      "outputSha256": "dfe906d75ecc0bee3721d04c082968241fba7607518ac36899e2c396a45f6b3f",
      "inputBytes": 989,
      "outputBytes": 924,
      "removedCount": 1,
      "residualCount": 0,
      "width": 32,
      "height": 24,
      "pixelsEqual": true
    },
    {
      "format": "PNG",
      "fixture": "synthetic.png",
      "inputSha256": "ed60f185c99d42c460296fcf4bf41efe89abf349db315a42f1f0c36f30e4348b",
      "outputSha256": "5f8564422b1aa2e65999237b5fe9eca4ed4296f22eb28c05246bc21a4a598e13",
      "inputBytes": 282,
      "outputBytes": 72,
      "removedCount": 2,
      "residualCount": 0,
      "width": 8,
      "height": 8,
      "pixelsEqual": true
    },
    {
      "format": "WebP",
      "fixture": "synthetic.webp",
      "inputSha256": "a64ffe91bdcb17056442681f77c48b2f53bb831abc1202bd47bc44cf9665287c",
      "outputSha256": "1138f8186cfe30696561aae8bf415b3d115dc7f2340ac0713fe3050530d19fa4",
      "inputBytes": 888,
      "outputBytes": 650,
      "removedCount": 2,
      "residualCount": 0,
      "width": 32,
      "height": 24,
      "pixelsEqual": true
    }
  ]
}

Referencias de los formatos