Restructure documentation, validate metadata removal, consolidate assets

This commit is contained in:
Victor Kuznetsov
2026-07-25 21:08:04 -07:00
parent 214c9bb3e7
commit 03cd00f132
172 changed files with 2356 additions and 2863 deletions
+11 -7
View File
@@ -1,11 +1,11 @@
"""Ingest and inspect the local SynthID reference corpus.
Copies images into ``data/synthid_corpus/images/<label>/`` and records one row
Copies images into ``data/synthid/originals/`` and records one row
per image in ``manifest.csv`` (sha256, resolution, format, C2PA issuer, and the
external verification level). Dogfoods the project's own C2PA detector so the
recorded metadata matches what the library sees.
See ``data/synthid_corpus/README.md`` for the collection protocol.
See ``data/synthid/README.md`` for the collection protocol.
Usage:
uv run python scripts/synthid_corpus.py ingest IMAGES... --label pos \\
@@ -34,8 +34,8 @@ from remove_ai_watermarks.noai.c2pa import extract_c2pa_info
log = logging.getLogger(__name__)
console = Console()
DEFAULT_ROOT = Path(__file__).resolve().parent.parent / "data" / "synthid_corpus"
LABELS = ("pos", "neg", "cleaned")
DEFAULT_ROOT = Path(__file__).resolve().parent.parent / "data" / "synthid"
LABELS = ("pos", "neg")
VERIFIED_VIA = ("gemini-app", "openai-verify", "synthid-portal", "c2pa-metadata", "third-party", "none")
FIELDNAMES = [
"sha256",
@@ -144,7 +144,7 @@ def ingest(
root: Path,
) -> None:
"""Copy IMAGES into the corpus and append rows to the manifest."""
dest_dir = root / "images" / label
dest_dir = root / "originals"
dest_dir.mkdir(parents=True, exist_ok=True)
rows = _read_manifest(root)
@@ -160,8 +160,12 @@ def ingest(
seen.add(digest)
width, height, fmt, issuer, synthid = _probe(src)
stored_name = f"{digest[:8]}-{src.name}"
shutil.copy2(src, dest_dir / stored_name)
stored_name = src.name
destination = dest_dir / stored_name
if destination.exists() and _sha256(destination) != digest:
raise click.ClickException(f"filename already exists with different content: {stored_name}")
if not destination.exists():
shutil.copy2(src, destination)
new_rows.append(
{