{
  "schema": "isgenai.metadata-retention.v1",
  "procedure_version": 1,
  "observed_at": "2026-09-19T21:43:07.268Z",
  "node": "v23.11.0",
  "versions": {
    "aom": "3.15.0",
    "archive": "3.8.9",
    "cairo": "1.18.4",
    "cgif": "0.5.3",
    "exif": "0.6.26",
    "expat": "2.8.3",
    "ffi": "3.8.0",
    "fontconfig": "2.18.3",
    "freetype": "2.14.3",
    "fribidi": "1.0.16",
    "glib": "2.89.4",
    "harfbuzz": "14.3.1",
    "heif": "1.23.2",
    "highway": "1.4.0",
    "imagequant": "2.4.1",
    "lcms": "2.19.1",
    "mozjpeg": "0826579",
    "pango": "1.58.2",
    "pixman": "0.46.4",
    "png": "1.6.58",
    "proxy-libintl": "0.5",
    "rsvg": "2.62.91",
    "tiff": "4.7.2",
    "uhdr": "2.0.2",
    "vips": "8.18.6",
    "webp": "1.6.0",
    "xml2": "2.15.3",
    "zlib-ng": "2.3.3",
    "sharp": "0.35.4"
  },
  "license": "CC0-1.0",
  "source_image_sha256": "acdc3a0a5e011cf57af9bf0f1da74c75c2d280a2cc9af9297410c529f86932cf",
  "scope": "Three synthetic metadata records attached to a code-drawn image, tested with six explicit local export operations. Not a benchmark of generator apps, websites, social networks, screenshots, AI detection or authorship.",
  "rows": [
    {
      "source": "a1111",
      "source_label": "AUTOMATIC1111 parameters",
      "operation": "byte-copy",
      "operation_label": "Copy original bytes",
      "code": "Buffer.from(input)",
      "original_file": "a1111-original.png",
      "output_file": "a1111-byte-copy.png",
      "original_sha256": "349c5489f092e0045e79c207acdfe16e217ea7dadf59f2512db6aeccf725aff5",
      "output_sha256": "349c5489f092e0045e79c207acdfe16e217ea7dadf59f2512db6aeccf725aff5",
      "original_bytes": 13352,
      "output_bytes": 13352,
      "decoded_rgba_pixels_equal": true,
      "readable_fields_before": 8,
      "same_fields_after": 8,
      "missing_fields_after": 0,
      "comparison": {
        "before": {
          "sha256": "349c5489f092e0045e79c207acdfe16e217ea7dadf59f2512db6aeccf725aff5",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 13352,
            "prompt": "A red kite over a quiet beach, soft evening light",
            "negative_prompt": "blur, text",
            "recorded_model": "beach-model-v1",
            "source": "automatic1111",
            "seed": "42",
            "steps": 20,
            "sampler": "Euler",
            "cfg_scale": 7
          },
          "warnings": []
        },
        "after": {
          "sha256": "349c5489f092e0045e79c207acdfe16e217ea7dadf59f2512db6aeccf725aff5",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 13352,
            "prompt": "A red kite over a quiet beach, soft evening light",
            "negative_prompt": "blur, text",
            "recorded_model": "beach-model-v1",
            "source": "automatic1111",
            "seed": "42",
            "steps": 20,
            "sampler": "Euler",
            "cfg_scale": 7
          },
          "warnings": []
        },
        "identical_files": true,
        "rows": [
          {
            "field": "format",
            "before": "png",
            "after": "png",
            "state": "same"
          },
          {
            "field": "width",
            "before": 640,
            "after": 640,
            "state": "same"
          },
          {
            "field": "height",
            "before": 400,
            "after": 400,
            "state": "same"
          },
          {
            "field": "bytes",
            "before": 13352,
            "after": 13352,
            "state": "same"
          },
          {
            "field": "prompt",
            "before": "A red kite over a quiet beach, soft evening light",
            "after": "A red kite over a quiet beach, soft evening light",
            "state": "same"
          },
          {
            "field": "negative_prompt",
            "before": "blur, text",
            "after": "blur, text",
            "state": "same"
          },
          {
            "field": "recorded_model",
            "before": "beach-model-v1",
            "after": "beach-model-v1",
            "state": "same"
          },
          {
            "field": "source",
            "before": "automatic1111",
            "after": "automatic1111",
            "state": "same"
          },
          {
            "field": "seed",
            "before": "42",
            "after": "42",
            "state": "same"
          },
          {
            "field": "steps",
            "before": 20,
            "after": 20,
            "state": "same"
          },
          {
            "field": "sampler",
            "before": "Euler",
            "after": "Euler",
            "state": "same"
          },
          {
            "field": "scheduler",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "cfg_scale",
            "before": 7,
            "after": 7,
            "state": "same"
          },
          {
            "field": "generation_width",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "generation_height",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "denoise",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "workflow",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "execution",
            "before": null,
            "after": null,
            "state": "not_found"
          }
        ]
      }
    },
    {
      "source": "a1111",
      "source_label": "AUTOMATIC1111 parameters",
      "operation": "png-reencode",
      "operation_label": "PNG re-encode (default metadata)",
      "code": "sharp(input).png().toBuffer()",
      "original_file": "a1111-original.png",
      "output_file": "a1111-png-reencode.png",
      "original_sha256": "349c5489f092e0045e79c207acdfe16e217ea7dadf59f2512db6aeccf725aff5",
      "output_sha256": "acdc3a0a5e011cf57af9bf0f1da74c75c2d280a2cc9af9297410c529f86932cf",
      "original_bytes": 13352,
      "output_bytes": 13179,
      "decoded_rgba_pixels_equal": true,
      "readable_fields_before": 8,
      "same_fields_after": 0,
      "missing_fields_after": 8,
      "comparison": {
        "before": {
          "sha256": "349c5489f092e0045e79c207acdfe16e217ea7dadf59f2512db6aeccf725aff5",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 13352,
            "prompt": "A red kite over a quiet beach, soft evening light",
            "negative_prompt": "blur, text",
            "recorded_model": "beach-model-v1",
            "source": "automatic1111",
            "seed": "42",
            "steps": 20,
            "sampler": "Euler",
            "cfg_scale": 7
          },
          "warnings": []
        },
        "after": {
          "sha256": "acdc3a0a5e011cf57af9bf0f1da74c75c2d280a2cc9af9297410c529f86932cf",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 13179
          },
          "warnings": []
        },
        "identical_files": false,
        "rows": [
          {
            "field": "format",
            "before": "png",
            "after": "png",
            "state": "same"
          },
          {
            "field": "width",
            "before": 640,
            "after": 640,
            "state": "same"
          },
          {
            "field": "height",
            "before": 400,
            "after": 400,
            "state": "same"
          },
          {
            "field": "bytes",
            "before": 13352,
            "after": 13179,
            "state": "changed"
          },
          {
            "field": "prompt",
            "before": "A red kite over a quiet beach, soft evening light",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "negative_prompt",
            "before": "blur, text",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "recorded_model",
            "before": "beach-model-v1",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "source",
            "before": "automatic1111",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "seed",
            "before": "42",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "steps",
            "before": 20,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "sampler",
            "before": "Euler",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "scheduler",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "cfg_scale",
            "before": 7,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "generation_width",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "generation_height",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "denoise",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "workflow",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "execution",
            "before": null,
            "after": null,
            "state": "not_found"
          }
        ]
      }
    },
    {
      "source": "a1111",
      "source_label": "AUTOMATIC1111 parameters",
      "operation": "png-keep-metadata",
      "operation_label": "PNG with keepMetadata",
      "code": "sharp(input).keepMetadata().png().toBuffer()",
      "original_file": "a1111-original.png",
      "output_file": "a1111-png-keep-metadata.png",
      "original_sha256": "349c5489f092e0045e79c207acdfe16e217ea7dadf59f2512db6aeccf725aff5",
      "output_sha256": "794222b6f9a382a00b70bc1baf6e819a053b066d0798726aacf1b0a647a273af",
      "original_bytes": 13352,
      "output_bytes": 13371,
      "decoded_rgba_pixels_equal": true,
      "readable_fields_before": 8,
      "same_fields_after": 0,
      "missing_fields_after": 8,
      "comparison": {
        "before": {
          "sha256": "349c5489f092e0045e79c207acdfe16e217ea7dadf59f2512db6aeccf725aff5",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 13352,
            "prompt": "A red kite over a quiet beach, soft evening light",
            "negative_prompt": "blur, text",
            "recorded_model": "beach-model-v1",
            "source": "automatic1111",
            "seed": "42",
            "steps": 20,
            "sampler": "Euler",
            "cfg_scale": 7
          },
          "warnings": []
        },
        "after": {
          "sha256": "794222b6f9a382a00b70bc1baf6e819a053b066d0798726aacf1b0a647a273af",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 13371
          },
          "warnings": []
        },
        "identical_files": false,
        "rows": [
          {
            "field": "format",
            "before": "png",
            "after": "png",
            "state": "same"
          },
          {
            "field": "width",
            "before": 640,
            "after": 640,
            "state": "same"
          },
          {
            "field": "height",
            "before": 400,
            "after": 400,
            "state": "same"
          },
          {
            "field": "bytes",
            "before": 13352,
            "after": 13371,
            "state": "changed"
          },
          {
            "field": "prompt",
            "before": "A red kite over a quiet beach, soft evening light",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "negative_prompt",
            "before": "blur, text",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "recorded_model",
            "before": "beach-model-v1",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "source",
            "before": "automatic1111",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "seed",
            "before": "42",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "steps",
            "before": 20,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "sampler",
            "before": "Euler",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "scheduler",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "cfg_scale",
            "before": 7,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "generation_width",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "generation_height",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "denoise",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "workflow",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "execution",
            "before": null,
            "after": null,
            "state": "not_found"
          }
        ]
      }
    },
    {
      "source": "a1111",
      "source_label": "AUTOMATIC1111 parameters",
      "operation": "jpeg",
      "operation_label": "JPEG export, quality 90",
      "code": "sharp(input).jpeg({ quality: 90 }).toBuffer()",
      "original_file": "a1111-original.png",
      "output_file": "a1111-jpeg.jpg",
      "original_sha256": "349c5489f092e0045e79c207acdfe16e217ea7dadf59f2512db6aeccf725aff5",
      "output_sha256": "4d5069e2ce4493045ac523e9266321ac2b25c501ec1bf75a59a94d62a67d45e7",
      "original_bytes": 13352,
      "output_bytes": 11622,
      "decoded_rgba_pixels_equal": false,
      "readable_fields_before": 8,
      "same_fields_after": 0,
      "missing_fields_after": 8,
      "comparison": {
        "before": {
          "sha256": "349c5489f092e0045e79c207acdfe16e217ea7dadf59f2512db6aeccf725aff5",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 13352,
            "prompt": "A red kite over a quiet beach, soft evening light",
            "negative_prompt": "blur, text",
            "recorded_model": "beach-model-v1",
            "source": "automatic1111",
            "seed": "42",
            "steps": 20,
            "sampler": "Euler",
            "cfg_scale": 7
          },
          "warnings": []
        },
        "after": {
          "sha256": "4d5069e2ce4493045ac523e9266321ac2b25c501ec1bf75a59a94d62a67d45e7",
          "values": {
            "format": "jpeg",
            "width": 640,
            "height": 400,
            "bytes": 11622
          },
          "warnings": []
        },
        "identical_files": false,
        "rows": [
          {
            "field": "format",
            "before": "png",
            "after": "jpeg",
            "state": "changed"
          },
          {
            "field": "width",
            "before": 640,
            "after": 640,
            "state": "same"
          },
          {
            "field": "height",
            "before": 400,
            "after": 400,
            "state": "same"
          },
          {
            "field": "bytes",
            "before": 13352,
            "after": 11622,
            "state": "changed"
          },
          {
            "field": "prompt",
            "before": "A red kite over a quiet beach, soft evening light",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "negative_prompt",
            "before": "blur, text",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "recorded_model",
            "before": "beach-model-v1",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "source",
            "before": "automatic1111",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "seed",
            "before": "42",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "steps",
            "before": 20,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "sampler",
            "before": "Euler",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "scheduler",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "cfg_scale",
            "before": 7,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "generation_width",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "generation_height",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "denoise",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "workflow",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "execution",
            "before": null,
            "after": null,
            "state": "not_found"
          }
        ]
      }
    },
    {
      "source": "a1111",
      "source_label": "AUTOMATIC1111 parameters",
      "operation": "webp",
      "operation_label": "Lossless WebP export",
      "code": "sharp(input).webp({ lossless: true }).toBuffer()",
      "original_file": "a1111-original.png",
      "output_file": "a1111-webp.webp",
      "original_sha256": "349c5489f092e0045e79c207acdfe16e217ea7dadf59f2512db6aeccf725aff5",
      "output_sha256": "a16df94b670034d28fe0f1280e40610f5194403858b5ed593f868f11218650d6",
      "original_bytes": 13352,
      "output_bytes": 4044,
      "decoded_rgba_pixels_equal": true,
      "readable_fields_before": 8,
      "same_fields_after": 0,
      "missing_fields_after": 8,
      "comparison": {
        "before": {
          "sha256": "349c5489f092e0045e79c207acdfe16e217ea7dadf59f2512db6aeccf725aff5",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 13352,
            "prompt": "A red kite over a quiet beach, soft evening light",
            "negative_prompt": "blur, text",
            "recorded_model": "beach-model-v1",
            "source": "automatic1111",
            "seed": "42",
            "steps": 20,
            "sampler": "Euler",
            "cfg_scale": 7
          },
          "warnings": []
        },
        "after": {
          "sha256": "a16df94b670034d28fe0f1280e40610f5194403858b5ed593f868f11218650d6",
          "values": {
            "format": "webp",
            "width": 640,
            "height": 400,
            "bytes": 4044
          },
          "warnings": []
        },
        "identical_files": false,
        "rows": [
          {
            "field": "format",
            "before": "png",
            "after": "webp",
            "state": "changed"
          },
          {
            "field": "width",
            "before": 640,
            "after": 640,
            "state": "same"
          },
          {
            "field": "height",
            "before": 400,
            "after": 400,
            "state": "same"
          },
          {
            "field": "bytes",
            "before": 13352,
            "after": 4044,
            "state": "changed"
          },
          {
            "field": "prompt",
            "before": "A red kite over a quiet beach, soft evening light",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "negative_prompt",
            "before": "blur, text",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "recorded_model",
            "before": "beach-model-v1",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "source",
            "before": "automatic1111",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "seed",
            "before": "42",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "steps",
            "before": 20,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "sampler",
            "before": "Euler",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "scheduler",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "cfg_scale",
            "before": 7,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "generation_width",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "generation_height",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "denoise",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "workflow",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "execution",
            "before": null,
            "after": null,
            "state": "not_found"
          }
        ]
      }
    },
    {
      "source": "a1111",
      "source_label": "AUTOMATIC1111 parameters",
      "operation": "pixel-roundtrip",
      "operation_label": "Raw pixels to a new PNG",
      "code": "Decode to raw pixels, then sharp(data, { raw: info }).png().toBuffer()",
      "original_file": "a1111-original.png",
      "output_file": "a1111-pixel-roundtrip.png",
      "original_sha256": "349c5489f092e0045e79c207acdfe16e217ea7dadf59f2512db6aeccf725aff5",
      "output_sha256": "13912d9d0427ecc9f6cf243a050110dc6996eacce6a921d03f44a14d41029353",
      "original_bytes": 13352,
      "output_bytes": 13179,
      "decoded_rgba_pixels_equal": true,
      "readable_fields_before": 8,
      "same_fields_after": 0,
      "missing_fields_after": 8,
      "comparison": {
        "before": {
          "sha256": "349c5489f092e0045e79c207acdfe16e217ea7dadf59f2512db6aeccf725aff5",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 13352,
            "prompt": "A red kite over a quiet beach, soft evening light",
            "negative_prompt": "blur, text",
            "recorded_model": "beach-model-v1",
            "source": "automatic1111",
            "seed": "42",
            "steps": 20,
            "sampler": "Euler",
            "cfg_scale": 7
          },
          "warnings": []
        },
        "after": {
          "sha256": "13912d9d0427ecc9f6cf243a050110dc6996eacce6a921d03f44a14d41029353",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 13179
          },
          "warnings": []
        },
        "identical_files": false,
        "rows": [
          {
            "field": "format",
            "before": "png",
            "after": "png",
            "state": "same"
          },
          {
            "field": "width",
            "before": 640,
            "after": 640,
            "state": "same"
          },
          {
            "field": "height",
            "before": 400,
            "after": 400,
            "state": "same"
          },
          {
            "field": "bytes",
            "before": 13352,
            "after": 13179,
            "state": "changed"
          },
          {
            "field": "prompt",
            "before": "A red kite over a quiet beach, soft evening light",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "negative_prompt",
            "before": "blur, text",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "recorded_model",
            "before": "beach-model-v1",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "source",
            "before": "automatic1111",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "seed",
            "before": "42",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "steps",
            "before": 20,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "sampler",
            "before": "Euler",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "scheduler",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "cfg_scale",
            "before": 7,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "generation_width",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "generation_height",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "denoise",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "workflow",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "execution",
            "before": null,
            "after": null,
            "state": "not_found"
          }
        ]
      }
    },
    {
      "source": "comfyui",
      "source_label": "ComfyUI editor and API graphs",
      "operation": "byte-copy",
      "operation_label": "Copy original bytes",
      "code": "Buffer.from(input)",
      "original_file": "comfyui-original.png",
      "output_file": "comfyui-byte-copy.png",
      "original_sha256": "427aa019b768aaaeb2fb59724a4e49772e041ee6091f47cffc7ec6a35867dc08",
      "output_sha256": "427aa019b768aaaeb2fb59724a4e49772e041ee6091f47cffc7ec6a35867dc08",
      "original_bytes": 14013,
      "output_bytes": 14013,
      "decoded_rgba_pixels_equal": true,
      "readable_fields_before": 2,
      "same_fields_after": 2,
      "missing_fields_after": 0,
      "comparison": {
        "before": {
          "sha256": "427aa019b768aaaeb2fb59724a4e49772e041ee6091f47cffc7ec6a35867dc08",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 14013,
            "workflow": "2 nodes; SHA-256 1be6dac2830ab4af8ad6f65733adada41afe60fa041a0f37389a7fbe4cfa8101",
            "execution": "2 nodes; SHA-256 25f50749c60009bb8422c37624e924d2e843717ed527a7c044452e899fdb19e3"
          },
          "warnings": []
        },
        "after": {
          "sha256": "427aa019b768aaaeb2fb59724a4e49772e041ee6091f47cffc7ec6a35867dc08",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 14013,
            "workflow": "2 nodes; SHA-256 1be6dac2830ab4af8ad6f65733adada41afe60fa041a0f37389a7fbe4cfa8101",
            "execution": "2 nodes; SHA-256 25f50749c60009bb8422c37624e924d2e843717ed527a7c044452e899fdb19e3"
          },
          "warnings": []
        },
        "identical_files": true,
        "rows": [
          {
            "field": "format",
            "before": "png",
            "after": "png",
            "state": "same"
          },
          {
            "field": "width",
            "before": 640,
            "after": 640,
            "state": "same"
          },
          {
            "field": "height",
            "before": 400,
            "after": 400,
            "state": "same"
          },
          {
            "field": "bytes",
            "before": 14013,
            "after": 14013,
            "state": "same"
          },
          {
            "field": "prompt",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "negative_prompt",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "recorded_model",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "source",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "seed",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "steps",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "sampler",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "scheduler",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "cfg_scale",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "generation_width",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "generation_height",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "denoise",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "workflow",
            "before": "2 nodes; SHA-256 1be6dac2830ab4af8ad6f65733adada41afe60fa041a0f37389a7fbe4cfa8101",
            "after": "2 nodes; SHA-256 1be6dac2830ab4af8ad6f65733adada41afe60fa041a0f37389a7fbe4cfa8101",
            "state": "same"
          },
          {
            "field": "execution",
            "before": "2 nodes; SHA-256 25f50749c60009bb8422c37624e924d2e843717ed527a7c044452e899fdb19e3",
            "after": "2 nodes; SHA-256 25f50749c60009bb8422c37624e924d2e843717ed527a7c044452e899fdb19e3",
            "state": "same"
          }
        ]
      }
    },
    {
      "source": "comfyui",
      "source_label": "ComfyUI editor and API graphs",
      "operation": "png-reencode",
      "operation_label": "PNG re-encode (default metadata)",
      "code": "sharp(input).png().toBuffer()",
      "original_file": "comfyui-original.png",
      "output_file": "comfyui-png-reencode.png",
      "original_sha256": "427aa019b768aaaeb2fb59724a4e49772e041ee6091f47cffc7ec6a35867dc08",
      "output_sha256": "acdc3a0a5e011cf57af9bf0f1da74c75c2d280a2cc9af9297410c529f86932cf",
      "original_bytes": 14013,
      "output_bytes": 13179,
      "decoded_rgba_pixels_equal": true,
      "readable_fields_before": 2,
      "same_fields_after": 0,
      "missing_fields_after": 2,
      "comparison": {
        "before": {
          "sha256": "427aa019b768aaaeb2fb59724a4e49772e041ee6091f47cffc7ec6a35867dc08",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 14013,
            "workflow": "2 nodes; SHA-256 1be6dac2830ab4af8ad6f65733adada41afe60fa041a0f37389a7fbe4cfa8101",
            "execution": "2 nodes; SHA-256 25f50749c60009bb8422c37624e924d2e843717ed527a7c044452e899fdb19e3"
          },
          "warnings": []
        },
        "after": {
          "sha256": "acdc3a0a5e011cf57af9bf0f1da74c75c2d280a2cc9af9297410c529f86932cf",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 13179
          },
          "warnings": []
        },
        "identical_files": false,
        "rows": [
          {
            "field": "format",
            "before": "png",
            "after": "png",
            "state": "same"
          },
          {
            "field": "width",
            "before": 640,
            "after": 640,
            "state": "same"
          },
          {
            "field": "height",
            "before": 400,
            "after": 400,
            "state": "same"
          },
          {
            "field": "bytes",
            "before": 14013,
            "after": 13179,
            "state": "changed"
          },
          {
            "field": "prompt",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "negative_prompt",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "recorded_model",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "source",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "seed",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "steps",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "sampler",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "scheduler",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "cfg_scale",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "generation_width",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "generation_height",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "denoise",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "workflow",
            "before": "2 nodes; SHA-256 1be6dac2830ab4af8ad6f65733adada41afe60fa041a0f37389a7fbe4cfa8101",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "execution",
            "before": "2 nodes; SHA-256 25f50749c60009bb8422c37624e924d2e843717ed527a7c044452e899fdb19e3",
            "after": null,
            "state": "unreadable_after"
          }
        ]
      }
    },
    {
      "source": "comfyui",
      "source_label": "ComfyUI editor and API graphs",
      "operation": "png-keep-metadata",
      "operation_label": "PNG with keepMetadata",
      "code": "sharp(input).keepMetadata().png().toBuffer()",
      "original_file": "comfyui-original.png",
      "output_file": "comfyui-png-keep-metadata.png",
      "original_sha256": "427aa019b768aaaeb2fb59724a4e49772e041ee6091f47cffc7ec6a35867dc08",
      "output_sha256": "794222b6f9a382a00b70bc1baf6e819a053b066d0798726aacf1b0a647a273af",
      "original_bytes": 14013,
      "output_bytes": 13371,
      "decoded_rgba_pixels_equal": true,
      "readable_fields_before": 2,
      "same_fields_after": 0,
      "missing_fields_after": 2,
      "comparison": {
        "before": {
          "sha256": "427aa019b768aaaeb2fb59724a4e49772e041ee6091f47cffc7ec6a35867dc08",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 14013,
            "workflow": "2 nodes; SHA-256 1be6dac2830ab4af8ad6f65733adada41afe60fa041a0f37389a7fbe4cfa8101",
            "execution": "2 nodes; SHA-256 25f50749c60009bb8422c37624e924d2e843717ed527a7c044452e899fdb19e3"
          },
          "warnings": []
        },
        "after": {
          "sha256": "794222b6f9a382a00b70bc1baf6e819a053b066d0798726aacf1b0a647a273af",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 13371
          },
          "warnings": []
        },
        "identical_files": false,
        "rows": [
          {
            "field": "format",
            "before": "png",
            "after": "png",
            "state": "same"
          },
          {
            "field": "width",
            "before": 640,
            "after": 640,
            "state": "same"
          },
          {
            "field": "height",
            "before": 400,
            "after": 400,
            "state": "same"
          },
          {
            "field": "bytes",
            "before": 14013,
            "after": 13371,
            "state": "changed"
          },
          {
            "field": "prompt",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "negative_prompt",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "recorded_model",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "source",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "seed",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "steps",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "sampler",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "scheduler",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "cfg_scale",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "generation_width",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "generation_height",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "denoise",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "workflow",
            "before": "2 nodes; SHA-256 1be6dac2830ab4af8ad6f65733adada41afe60fa041a0f37389a7fbe4cfa8101",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "execution",
            "before": "2 nodes; SHA-256 25f50749c60009bb8422c37624e924d2e843717ed527a7c044452e899fdb19e3",
            "after": null,
            "state": "unreadable_after"
          }
        ]
      }
    },
    {
      "source": "comfyui",
      "source_label": "ComfyUI editor and API graphs",
      "operation": "jpeg",
      "operation_label": "JPEG export, quality 90",
      "code": "sharp(input).jpeg({ quality: 90 }).toBuffer()",
      "original_file": "comfyui-original.png",
      "output_file": "comfyui-jpeg.jpg",
      "original_sha256": "427aa019b768aaaeb2fb59724a4e49772e041ee6091f47cffc7ec6a35867dc08",
      "output_sha256": "4d5069e2ce4493045ac523e9266321ac2b25c501ec1bf75a59a94d62a67d45e7",
      "original_bytes": 14013,
      "output_bytes": 11622,
      "decoded_rgba_pixels_equal": false,
      "readable_fields_before": 2,
      "same_fields_after": 0,
      "missing_fields_after": 2,
      "comparison": {
        "before": {
          "sha256": "427aa019b768aaaeb2fb59724a4e49772e041ee6091f47cffc7ec6a35867dc08",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 14013,
            "workflow": "2 nodes; SHA-256 1be6dac2830ab4af8ad6f65733adada41afe60fa041a0f37389a7fbe4cfa8101",
            "execution": "2 nodes; SHA-256 25f50749c60009bb8422c37624e924d2e843717ed527a7c044452e899fdb19e3"
          },
          "warnings": []
        },
        "after": {
          "sha256": "4d5069e2ce4493045ac523e9266321ac2b25c501ec1bf75a59a94d62a67d45e7",
          "values": {
            "format": "jpeg",
            "width": 640,
            "height": 400,
            "bytes": 11622
          },
          "warnings": []
        },
        "identical_files": false,
        "rows": [
          {
            "field": "format",
            "before": "png",
            "after": "jpeg",
            "state": "changed"
          },
          {
            "field": "width",
            "before": 640,
            "after": 640,
            "state": "same"
          },
          {
            "field": "height",
            "before": 400,
            "after": 400,
            "state": "same"
          },
          {
            "field": "bytes",
            "before": 14013,
            "after": 11622,
            "state": "changed"
          },
          {
            "field": "prompt",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "negative_prompt",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "recorded_model",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "source",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "seed",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "steps",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "sampler",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "scheduler",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "cfg_scale",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "generation_width",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "generation_height",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "denoise",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "workflow",
            "before": "2 nodes; SHA-256 1be6dac2830ab4af8ad6f65733adada41afe60fa041a0f37389a7fbe4cfa8101",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "execution",
            "before": "2 nodes; SHA-256 25f50749c60009bb8422c37624e924d2e843717ed527a7c044452e899fdb19e3",
            "after": null,
            "state": "unreadable_after"
          }
        ]
      }
    },
    {
      "source": "comfyui",
      "source_label": "ComfyUI editor and API graphs",
      "operation": "webp",
      "operation_label": "Lossless WebP export",
      "code": "sharp(input).webp({ lossless: true }).toBuffer()",
      "original_file": "comfyui-original.png",
      "output_file": "comfyui-webp.webp",
      "original_sha256": "427aa019b768aaaeb2fb59724a4e49772e041ee6091f47cffc7ec6a35867dc08",
      "output_sha256": "a16df94b670034d28fe0f1280e40610f5194403858b5ed593f868f11218650d6",
      "original_bytes": 14013,
      "output_bytes": 4044,
      "decoded_rgba_pixels_equal": true,
      "readable_fields_before": 2,
      "same_fields_after": 0,
      "missing_fields_after": 2,
      "comparison": {
        "before": {
          "sha256": "427aa019b768aaaeb2fb59724a4e49772e041ee6091f47cffc7ec6a35867dc08",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 14013,
            "workflow": "2 nodes; SHA-256 1be6dac2830ab4af8ad6f65733adada41afe60fa041a0f37389a7fbe4cfa8101",
            "execution": "2 nodes; SHA-256 25f50749c60009bb8422c37624e924d2e843717ed527a7c044452e899fdb19e3"
          },
          "warnings": []
        },
        "after": {
          "sha256": "a16df94b670034d28fe0f1280e40610f5194403858b5ed593f868f11218650d6",
          "values": {
            "format": "webp",
            "width": 640,
            "height": 400,
            "bytes": 4044
          },
          "warnings": []
        },
        "identical_files": false,
        "rows": [
          {
            "field": "format",
            "before": "png",
            "after": "webp",
            "state": "changed"
          },
          {
            "field": "width",
            "before": 640,
            "after": 640,
            "state": "same"
          },
          {
            "field": "height",
            "before": 400,
            "after": 400,
            "state": "same"
          },
          {
            "field": "bytes",
            "before": 14013,
            "after": 4044,
            "state": "changed"
          },
          {
            "field": "prompt",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "negative_prompt",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "recorded_model",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "source",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "seed",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "steps",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "sampler",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "scheduler",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "cfg_scale",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "generation_width",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "generation_height",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "denoise",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "workflow",
            "before": "2 nodes; SHA-256 1be6dac2830ab4af8ad6f65733adada41afe60fa041a0f37389a7fbe4cfa8101",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "execution",
            "before": "2 nodes; SHA-256 25f50749c60009bb8422c37624e924d2e843717ed527a7c044452e899fdb19e3",
            "after": null,
            "state": "unreadable_after"
          }
        ]
      }
    },
    {
      "source": "comfyui",
      "source_label": "ComfyUI editor and API graphs",
      "operation": "pixel-roundtrip",
      "operation_label": "Raw pixels to a new PNG",
      "code": "Decode to raw pixels, then sharp(data, { raw: info }).png().toBuffer()",
      "original_file": "comfyui-original.png",
      "output_file": "comfyui-pixel-roundtrip.png",
      "original_sha256": "427aa019b768aaaeb2fb59724a4e49772e041ee6091f47cffc7ec6a35867dc08",
      "output_sha256": "13912d9d0427ecc9f6cf243a050110dc6996eacce6a921d03f44a14d41029353",
      "original_bytes": 14013,
      "output_bytes": 13179,
      "decoded_rgba_pixels_equal": true,
      "readable_fields_before": 2,
      "same_fields_after": 0,
      "missing_fields_after": 2,
      "comparison": {
        "before": {
          "sha256": "427aa019b768aaaeb2fb59724a4e49772e041ee6091f47cffc7ec6a35867dc08",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 14013,
            "workflow": "2 nodes; SHA-256 1be6dac2830ab4af8ad6f65733adada41afe60fa041a0f37389a7fbe4cfa8101",
            "execution": "2 nodes; SHA-256 25f50749c60009bb8422c37624e924d2e843717ed527a7c044452e899fdb19e3"
          },
          "warnings": []
        },
        "after": {
          "sha256": "13912d9d0427ecc9f6cf243a050110dc6996eacce6a921d03f44a14d41029353",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 13179
          },
          "warnings": []
        },
        "identical_files": false,
        "rows": [
          {
            "field": "format",
            "before": "png",
            "after": "png",
            "state": "same"
          },
          {
            "field": "width",
            "before": 640,
            "after": 640,
            "state": "same"
          },
          {
            "field": "height",
            "before": 400,
            "after": 400,
            "state": "same"
          },
          {
            "field": "bytes",
            "before": 14013,
            "after": 13179,
            "state": "changed"
          },
          {
            "field": "prompt",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "negative_prompt",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "recorded_model",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "source",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "seed",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "steps",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "sampler",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "scheduler",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "cfg_scale",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "generation_width",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "generation_height",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "denoise",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "workflow",
            "before": "2 nodes; SHA-256 1be6dac2830ab4af8ad6f65733adada41afe60fa041a0f37389a7fbe4cfa8101",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "execution",
            "before": "2 nodes; SHA-256 25f50749c60009bb8422c37624e924d2e843717ed527a7c044452e899fdb19e3",
            "after": null,
            "state": "unreadable_after"
          }
        ]
      }
    },
    {
      "source": "invokeai",
      "source_label": "InvokeAI generation record",
      "operation": "byte-copy",
      "operation_label": "Copy original bytes",
      "code": "Buffer.from(input)",
      "original_file": "invokeai-original.png",
      "output_file": "invokeai-byte-copy.png",
      "original_sha256": "f66f6fff5606a6635cea7296e4ddf474886de98c252f094fdb1396ab4e964e6b",
      "output_sha256": "f66f6fff5606a6635cea7296e4ddf474886de98c252f094fdb1396ab4e964e6b",
      "original_bytes": 13467,
      "output_bytes": 13467,
      "decoded_rgba_pixels_equal": true,
      "readable_fields_before": 10,
      "same_fields_after": 10,
      "missing_fields_after": 0,
      "comparison": {
        "before": {
          "sha256": "f66f6fff5606a6635cea7296e4ddf474886de98c252f094fdb1396ab4e964e6b",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 13467,
            "prompt": "Synthetic example: a geometric landscape",
            "negative_prompt": "text",
            "recorded_model": "demonstration-only",
            "source": "invokeai",
            "seed": "42",
            "steps": 30,
            "scheduler": "euler",
            "cfg_scale": 4.5,
            "generation_width": 1024,
            "generation_height": 768
          },
          "warnings": []
        },
        "after": {
          "sha256": "f66f6fff5606a6635cea7296e4ddf474886de98c252f094fdb1396ab4e964e6b",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 13467,
            "prompt": "Synthetic example: a geometric landscape",
            "negative_prompt": "text",
            "recorded_model": "demonstration-only",
            "source": "invokeai",
            "seed": "42",
            "steps": 30,
            "scheduler": "euler",
            "cfg_scale": 4.5,
            "generation_width": 1024,
            "generation_height": 768
          },
          "warnings": []
        },
        "identical_files": true,
        "rows": [
          {
            "field": "format",
            "before": "png",
            "after": "png",
            "state": "same"
          },
          {
            "field": "width",
            "before": 640,
            "after": 640,
            "state": "same"
          },
          {
            "field": "height",
            "before": 400,
            "after": 400,
            "state": "same"
          },
          {
            "field": "bytes",
            "before": 13467,
            "after": 13467,
            "state": "same"
          },
          {
            "field": "prompt",
            "before": "Synthetic example: a geometric landscape",
            "after": "Synthetic example: a geometric landscape",
            "state": "same"
          },
          {
            "field": "negative_prompt",
            "before": "text",
            "after": "text",
            "state": "same"
          },
          {
            "field": "recorded_model",
            "before": "demonstration-only",
            "after": "demonstration-only",
            "state": "same"
          },
          {
            "field": "source",
            "before": "invokeai",
            "after": "invokeai",
            "state": "same"
          },
          {
            "field": "seed",
            "before": "42",
            "after": "42",
            "state": "same"
          },
          {
            "field": "steps",
            "before": 30,
            "after": 30,
            "state": "same"
          },
          {
            "field": "sampler",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "scheduler",
            "before": "euler",
            "after": "euler",
            "state": "same"
          },
          {
            "field": "cfg_scale",
            "before": 4.5,
            "after": 4.5,
            "state": "same"
          },
          {
            "field": "generation_width",
            "before": 1024,
            "after": 1024,
            "state": "same"
          },
          {
            "field": "generation_height",
            "before": 768,
            "after": 768,
            "state": "same"
          },
          {
            "field": "denoise",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "workflow",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "execution",
            "before": null,
            "after": null,
            "state": "not_found"
          }
        ]
      }
    },
    {
      "source": "invokeai",
      "source_label": "InvokeAI generation record",
      "operation": "png-reencode",
      "operation_label": "PNG re-encode (default metadata)",
      "code": "sharp(input).png().toBuffer()",
      "original_file": "invokeai-original.png",
      "output_file": "invokeai-png-reencode.png",
      "original_sha256": "f66f6fff5606a6635cea7296e4ddf474886de98c252f094fdb1396ab4e964e6b",
      "output_sha256": "acdc3a0a5e011cf57af9bf0f1da74c75c2d280a2cc9af9297410c529f86932cf",
      "original_bytes": 13467,
      "output_bytes": 13179,
      "decoded_rgba_pixels_equal": true,
      "readable_fields_before": 10,
      "same_fields_after": 0,
      "missing_fields_after": 10,
      "comparison": {
        "before": {
          "sha256": "f66f6fff5606a6635cea7296e4ddf474886de98c252f094fdb1396ab4e964e6b",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 13467,
            "prompt": "Synthetic example: a geometric landscape",
            "negative_prompt": "text",
            "recorded_model": "demonstration-only",
            "source": "invokeai",
            "seed": "42",
            "steps": 30,
            "scheduler": "euler",
            "cfg_scale": 4.5,
            "generation_width": 1024,
            "generation_height": 768
          },
          "warnings": []
        },
        "after": {
          "sha256": "acdc3a0a5e011cf57af9bf0f1da74c75c2d280a2cc9af9297410c529f86932cf",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 13179
          },
          "warnings": []
        },
        "identical_files": false,
        "rows": [
          {
            "field": "format",
            "before": "png",
            "after": "png",
            "state": "same"
          },
          {
            "field": "width",
            "before": 640,
            "after": 640,
            "state": "same"
          },
          {
            "field": "height",
            "before": 400,
            "after": 400,
            "state": "same"
          },
          {
            "field": "bytes",
            "before": 13467,
            "after": 13179,
            "state": "changed"
          },
          {
            "field": "prompt",
            "before": "Synthetic example: a geometric landscape",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "negative_prompt",
            "before": "text",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "recorded_model",
            "before": "demonstration-only",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "source",
            "before": "invokeai",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "seed",
            "before": "42",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "steps",
            "before": 30,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "sampler",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "scheduler",
            "before": "euler",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "cfg_scale",
            "before": 4.5,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "generation_width",
            "before": 1024,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "generation_height",
            "before": 768,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "denoise",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "workflow",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "execution",
            "before": null,
            "after": null,
            "state": "not_found"
          }
        ]
      }
    },
    {
      "source": "invokeai",
      "source_label": "InvokeAI generation record",
      "operation": "png-keep-metadata",
      "operation_label": "PNG with keepMetadata",
      "code": "sharp(input).keepMetadata().png().toBuffer()",
      "original_file": "invokeai-original.png",
      "output_file": "invokeai-png-keep-metadata.png",
      "original_sha256": "f66f6fff5606a6635cea7296e4ddf474886de98c252f094fdb1396ab4e964e6b",
      "output_sha256": "794222b6f9a382a00b70bc1baf6e819a053b066d0798726aacf1b0a647a273af",
      "original_bytes": 13467,
      "output_bytes": 13371,
      "decoded_rgba_pixels_equal": true,
      "readable_fields_before": 10,
      "same_fields_after": 0,
      "missing_fields_after": 10,
      "comparison": {
        "before": {
          "sha256": "f66f6fff5606a6635cea7296e4ddf474886de98c252f094fdb1396ab4e964e6b",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 13467,
            "prompt": "Synthetic example: a geometric landscape",
            "negative_prompt": "text",
            "recorded_model": "demonstration-only",
            "source": "invokeai",
            "seed": "42",
            "steps": 30,
            "scheduler": "euler",
            "cfg_scale": 4.5,
            "generation_width": 1024,
            "generation_height": 768
          },
          "warnings": []
        },
        "after": {
          "sha256": "794222b6f9a382a00b70bc1baf6e819a053b066d0798726aacf1b0a647a273af",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 13371
          },
          "warnings": []
        },
        "identical_files": false,
        "rows": [
          {
            "field": "format",
            "before": "png",
            "after": "png",
            "state": "same"
          },
          {
            "field": "width",
            "before": 640,
            "after": 640,
            "state": "same"
          },
          {
            "field": "height",
            "before": 400,
            "after": 400,
            "state": "same"
          },
          {
            "field": "bytes",
            "before": 13467,
            "after": 13371,
            "state": "changed"
          },
          {
            "field": "prompt",
            "before": "Synthetic example: a geometric landscape",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "negative_prompt",
            "before": "text",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "recorded_model",
            "before": "demonstration-only",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "source",
            "before": "invokeai",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "seed",
            "before": "42",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "steps",
            "before": 30,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "sampler",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "scheduler",
            "before": "euler",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "cfg_scale",
            "before": 4.5,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "generation_width",
            "before": 1024,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "generation_height",
            "before": 768,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "denoise",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "workflow",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "execution",
            "before": null,
            "after": null,
            "state": "not_found"
          }
        ]
      }
    },
    {
      "source": "invokeai",
      "source_label": "InvokeAI generation record",
      "operation": "jpeg",
      "operation_label": "JPEG export, quality 90",
      "code": "sharp(input).jpeg({ quality: 90 }).toBuffer()",
      "original_file": "invokeai-original.png",
      "output_file": "invokeai-jpeg.jpg",
      "original_sha256": "f66f6fff5606a6635cea7296e4ddf474886de98c252f094fdb1396ab4e964e6b",
      "output_sha256": "4d5069e2ce4493045ac523e9266321ac2b25c501ec1bf75a59a94d62a67d45e7",
      "original_bytes": 13467,
      "output_bytes": 11622,
      "decoded_rgba_pixels_equal": false,
      "readable_fields_before": 10,
      "same_fields_after": 0,
      "missing_fields_after": 10,
      "comparison": {
        "before": {
          "sha256": "f66f6fff5606a6635cea7296e4ddf474886de98c252f094fdb1396ab4e964e6b",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 13467,
            "prompt": "Synthetic example: a geometric landscape",
            "negative_prompt": "text",
            "recorded_model": "demonstration-only",
            "source": "invokeai",
            "seed": "42",
            "steps": 30,
            "scheduler": "euler",
            "cfg_scale": 4.5,
            "generation_width": 1024,
            "generation_height": 768
          },
          "warnings": []
        },
        "after": {
          "sha256": "4d5069e2ce4493045ac523e9266321ac2b25c501ec1bf75a59a94d62a67d45e7",
          "values": {
            "format": "jpeg",
            "width": 640,
            "height": 400,
            "bytes": 11622
          },
          "warnings": []
        },
        "identical_files": false,
        "rows": [
          {
            "field": "format",
            "before": "png",
            "after": "jpeg",
            "state": "changed"
          },
          {
            "field": "width",
            "before": 640,
            "after": 640,
            "state": "same"
          },
          {
            "field": "height",
            "before": 400,
            "after": 400,
            "state": "same"
          },
          {
            "field": "bytes",
            "before": 13467,
            "after": 11622,
            "state": "changed"
          },
          {
            "field": "prompt",
            "before": "Synthetic example: a geometric landscape",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "negative_prompt",
            "before": "text",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "recorded_model",
            "before": "demonstration-only",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "source",
            "before": "invokeai",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "seed",
            "before": "42",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "steps",
            "before": 30,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "sampler",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "scheduler",
            "before": "euler",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "cfg_scale",
            "before": 4.5,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "generation_width",
            "before": 1024,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "generation_height",
            "before": 768,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "denoise",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "workflow",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "execution",
            "before": null,
            "after": null,
            "state": "not_found"
          }
        ]
      }
    },
    {
      "source": "invokeai",
      "source_label": "InvokeAI generation record",
      "operation": "webp",
      "operation_label": "Lossless WebP export",
      "code": "sharp(input).webp({ lossless: true }).toBuffer()",
      "original_file": "invokeai-original.png",
      "output_file": "invokeai-webp.webp",
      "original_sha256": "f66f6fff5606a6635cea7296e4ddf474886de98c252f094fdb1396ab4e964e6b",
      "output_sha256": "a16df94b670034d28fe0f1280e40610f5194403858b5ed593f868f11218650d6",
      "original_bytes": 13467,
      "output_bytes": 4044,
      "decoded_rgba_pixels_equal": true,
      "readable_fields_before": 10,
      "same_fields_after": 0,
      "missing_fields_after": 10,
      "comparison": {
        "before": {
          "sha256": "f66f6fff5606a6635cea7296e4ddf474886de98c252f094fdb1396ab4e964e6b",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 13467,
            "prompt": "Synthetic example: a geometric landscape",
            "negative_prompt": "text",
            "recorded_model": "demonstration-only",
            "source": "invokeai",
            "seed": "42",
            "steps": 30,
            "scheduler": "euler",
            "cfg_scale": 4.5,
            "generation_width": 1024,
            "generation_height": 768
          },
          "warnings": []
        },
        "after": {
          "sha256": "a16df94b670034d28fe0f1280e40610f5194403858b5ed593f868f11218650d6",
          "values": {
            "format": "webp",
            "width": 640,
            "height": 400,
            "bytes": 4044
          },
          "warnings": []
        },
        "identical_files": false,
        "rows": [
          {
            "field": "format",
            "before": "png",
            "after": "webp",
            "state": "changed"
          },
          {
            "field": "width",
            "before": 640,
            "after": 640,
            "state": "same"
          },
          {
            "field": "height",
            "before": 400,
            "after": 400,
            "state": "same"
          },
          {
            "field": "bytes",
            "before": 13467,
            "after": 4044,
            "state": "changed"
          },
          {
            "field": "prompt",
            "before": "Synthetic example: a geometric landscape",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "negative_prompt",
            "before": "text",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "recorded_model",
            "before": "demonstration-only",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "source",
            "before": "invokeai",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "seed",
            "before": "42",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "steps",
            "before": 30,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "sampler",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "scheduler",
            "before": "euler",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "cfg_scale",
            "before": 4.5,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "generation_width",
            "before": 1024,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "generation_height",
            "before": 768,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "denoise",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "workflow",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "execution",
            "before": null,
            "after": null,
            "state": "not_found"
          }
        ]
      }
    },
    {
      "source": "invokeai",
      "source_label": "InvokeAI generation record",
      "operation": "pixel-roundtrip",
      "operation_label": "Raw pixels to a new PNG",
      "code": "Decode to raw pixels, then sharp(data, { raw: info }).png().toBuffer()",
      "original_file": "invokeai-original.png",
      "output_file": "invokeai-pixel-roundtrip.png",
      "original_sha256": "f66f6fff5606a6635cea7296e4ddf474886de98c252f094fdb1396ab4e964e6b",
      "output_sha256": "13912d9d0427ecc9f6cf243a050110dc6996eacce6a921d03f44a14d41029353",
      "original_bytes": 13467,
      "output_bytes": 13179,
      "decoded_rgba_pixels_equal": true,
      "readable_fields_before": 10,
      "same_fields_after": 0,
      "missing_fields_after": 10,
      "comparison": {
        "before": {
          "sha256": "f66f6fff5606a6635cea7296e4ddf474886de98c252f094fdb1396ab4e964e6b",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 13467,
            "prompt": "Synthetic example: a geometric landscape",
            "negative_prompt": "text",
            "recorded_model": "demonstration-only",
            "source": "invokeai",
            "seed": "42",
            "steps": 30,
            "scheduler": "euler",
            "cfg_scale": 4.5,
            "generation_width": 1024,
            "generation_height": 768
          },
          "warnings": []
        },
        "after": {
          "sha256": "13912d9d0427ecc9f6cf243a050110dc6996eacce6a921d03f44a14d41029353",
          "values": {
            "format": "png",
            "width": 640,
            "height": 400,
            "bytes": 13179
          },
          "warnings": []
        },
        "identical_files": false,
        "rows": [
          {
            "field": "format",
            "before": "png",
            "after": "png",
            "state": "same"
          },
          {
            "field": "width",
            "before": 640,
            "after": 640,
            "state": "same"
          },
          {
            "field": "height",
            "before": 400,
            "after": 400,
            "state": "same"
          },
          {
            "field": "bytes",
            "before": 13467,
            "after": 13179,
            "state": "changed"
          },
          {
            "field": "prompt",
            "before": "Synthetic example: a geometric landscape",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "negative_prompt",
            "before": "text",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "recorded_model",
            "before": "demonstration-only",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "source",
            "before": "invokeai",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "seed",
            "before": "42",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "steps",
            "before": 30,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "sampler",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "scheduler",
            "before": "euler",
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "cfg_scale",
            "before": 4.5,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "generation_width",
            "before": 1024,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "generation_height",
            "before": 768,
            "after": null,
            "state": "unreadable_after"
          },
          {
            "field": "denoise",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "workflow",
            "before": null,
            "after": null,
            "state": "not_found"
          },
          {
            "field": "execution",
            "before": null,
            "after": null,
            "state": "not_found"
          }
        ]
      }
    }
  ]
}
