isGenAI.com

Un ejemplo práctico, con los archivos

Leer prompts en los registros PNG tEXt, zTXt e iTXt

PNG permite guardar texto de varias formas. Un lector debe identificar el registro y decodificar su contenido antes de interpretarlo. Estos ejemplos guardan los mismos parámetros en tres codificaciones de bloques distintas.

Sigue los pasos

  1. Descarga los ejemplos tEXt, zTXt e iTXt de abajo.
  2. Pasa cada uno por el extractor de prompts guardados. El prompt positivo y los ajustes deberían coincidir en los tres casos.
  3. Compara las huellas de los archivos: codificar el registro de otra forma puede cambiar los bytes sin cambiar la imagen mostrada ni los valores guardados.

Tres codificaciones, un resultado esperado

Nuestro ejemplo tEXt contiene texto sin comprimir. Los ejemplos zTXt e iTXt de este laboratorio contienen datos comprimidos. La especificación del W3C define estos formatos de bloques; los archivos descargables y los resultados muestran los casos exactos que ejecutó nuestro lector.

Cada ejemplo debería devolver la semilla 42, 20 pasos y el mismo prompt del barco de papel. Esto demuestra esos tres casos controlados, no la compatibilidad con cualquier PNG.

Un registro de texto es un dato

El lector reconoce claves concretas de registros guardados, como parameters. No considera cada comentario o descripción PNG como un prompt de generación original.

Los registros se pueden editar. Que varios archivos tengan el mismo prompt describe el texto almacenado, no una firma de un generador de imágenes.

Cuando falla la decodificación

Las sumas de comprobación dañadas, las claves duplicadas contradictorias y los metadatos demasiado grandes no se aceptan como una única instrucción guardada fiable. El ejemplo de conflicto está en la guía de prompts ausentes. Conserva el archivo real si necesitas investigar un caso no compatible.

Descargar · Ejecutar · Comparar

Prueba el ejemplo verificado

Dibujamos la imagen mediante código y añadimos registros controlados. Los prompts y nombres de modelo guardados son datos de demostración. Estos archivos prueban la lectura de registros; no se usó ningún generador de imágenes, aplicación de capturas ni red social para crear estos resultados.

Resultado observado
[
  {
    "chunk_type": "tEXt",
    "saved_prompt": "Controlled example: a paper boat on a blue table",
    "seed": "42",
    "steps": 20,
    "cfg_scale": 7
  },
  {
    "chunk_type": "zTXt",
    "saved_prompt": "Controlled example: a paper boat on a blue table",
    "seed": "42",
    "steps": 20,
    "cfg_scale": 7
  },
  {
    "chunk_type": "iTXt",
    "saved_prompt": "Controlled example: a paper boat on a blue table",
    "seed": "42",
    "steps": 20,
    "cfg_scale": 7
  }
]

Los valores de semilla del JSON son cadenas de texto para conservar la precisión de los enteros grandes. Aquí, un resultado null significa que no se devolvió ningún prompt guardado compatible.

Huellas y reproducción
  • parameters-tEXt.png · 13.371 bytese76d2af4e6c273e1ba8ca6cf2b5b7885ceda2321bce893f0bb5f9e64ace17c9f
  • parameters-zTXt.png · 13.346 bytes2cbac7bbc872ec95d8979132ef871b3a1f816ffc55bc12e68ea10ab5ac2d7818
  • parameters-iTXt.png · 13.349 bytes4123149f352daeb842ecf241f7c7e6ee0fc4c5a08175ecb37fc690e093484cbf

Los archivos de prueba y las observaciones se publican bajo CC0-1.0. Descargar todas las observaciones y versiones o leer el procedimiento. El script completo de reproducción en Node.js (requiere sharp) crea las mismas entradas de prueba y compara bytes y píxeles. El código fuente de isGenAI también verifica los campos guardados con npx tsx scripts/build-guide-lab.ts.

Para el estudio independiente de exportaciones, explora los 18 casos de conservación de metadatos.

Fuentes y método

Las fuentes primarias enlazadas describen los formatos. Los resultados de los archivos de prueba descargables se comprobaron con aserciones automatizadas frente al lector actual de isGenAI. Estas guías se prepararon con ayuda de IA y se revisaron con esos ejemplos.

Comunicar un error o un ejemplo no compatible. Para un registro firmado, inspecciona las Content Credentials.