Skip to content

v0.15.0

Choose a tag to compare

@wiltodelta wiltodelta released this 13 Jul 07:55
v0.15.0
1dc6fee

Fixes

  • Metadata strip parity across every marker placement — IPTC digitalSourceType in XMP, the Samsung post-EOI trailer, the China TC260 AIGC block in EXIF UserComment, a bare AIGC{…} block in a non-standard APP segment, and the ISOBMFF EXIF path (AIGC + xAI) are all now stripped. Anything a scanner flags, the strip reaches.
  • Samsung genAIType is now detected when its trailer sits past the 512 KB scan window (large phone photos).
  • Crash fixes on edge inputs: the Gemini detector on images with a short side < 16 px, footprint_mask on a zero-size array, the humanizer on chromatic_shift ≥ width, and the CLI on unreadable/corrupt/empty input (clean error instead of a traceback).
  • WebP is now written losslessly (it was lossy at quality 100).
  • IPTC algorithmicMedia (procedural — an algorithm not trained on sampled data) is no longer flagged as AI-generated, so clean procedural content is not scrubbed.
  • C2PA source-type: compositeWithTrainedAlgorithmicMedia is resolved before the bare algorithmicMedia token.

Detection

  • Integrity-clash detection now normalizes ByteDance / Canva / ElevenLabs / Black Forest Labs, so a transplanted manifest next to an independent conflicting stamp is caught. The generic China TC260 AIGC label is attributed to a co-present TC260 vendor, so a legitimate Doubao image (its own C2PA plus its own TC260 label) does not clash. Corpus-validated: 0 new clashes on 5000 carriers.

CLI

  • batch now exits non-zero (with a warning) when any image errors or a GPU-missing SynthID scrub is skipped, and copies the input through so the output directory stays complete — it used to always exit 0 and could silently drop the files that most needed processing.

Performance

  • GeminiEngine is reused as a process-wide singleton with a precomputed template ladder: about 24% faster on the identify sparkle path, with byte-identical detection.

Full changelog: v0.14.1...v0.15.0