From 3eb2ae5e3c48c8846136c14bfbe337cc95e31046 Mon Sep 17 00:00:00 2001 From: Zwitschi Date: Tue, 3 Nov 2026 18:24:35 +0100 Subject: [PATCH] Collect Jimmy Kimmel Live and Hollywood block references; skip AVIF frames in the contact sheet --- MEMORY.md | 8 ++++++++ tools/refcollect.py | 10 ++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/MEMORY.md b/MEMORY.md index a426c3a..4217e96 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -18,6 +18,14 @@ Session memory for durable decisions, state, and gotchas. Keep concise, remove o was titled "Ramada hotel" but is actually an interior stage shot — Gemini refused it with a text-only message; the hotel/parking ramp reference is still missing from the local set. The map-recreation plan is tracked in `TODO.md` §Local map development → Comedy Store map recreation. +- **Jimmy Kimmel Live research (2026-11-03):** three new local-only DDG sets — + `tmp/research/jimmy-kimmel-stage/` (15 frames, stage/audience), `tmp/research/jimmy-kimmel-entrance/` + (12 frames, the El Capitan entrance with the Kimmel marquee/signs) and + `tmp/research/hollywood-block/` (11 frames, the Masonic Temple/El Capitan block). The Kimmel + entrance frames confirm the starting-point building is the El Capitan Entertainment Centre with + "Jimmy Kimmel Live!" signage over the same six-column facade. Some DDG frames arrive as AVIF + mislabeled `.png`/`.jpg`; `refcollect.py sheet` now skips unreadable files and the AVIF frames + were converted with `ffmpeg` for the contact sheets. - **Local-only reference override (2026-11-03, owner decision):** for development-only photo research the licence gate does **not** apply. Downloads for this track live in `tmp/research/` (gitignored) and may come from DuckDuckGo image search, street-view frames, neighbouring diff --git a/tools/refcollect.py b/tools/refcollect.py index 461a551..41677a1 100644 --- a/tools/refcollect.py +++ b/tools/refcollect.py @@ -339,12 +339,18 @@ def cmd_sheet(args) -> int: images = [] for row in rows: path = out_dir / row["file"] - if path.is_file(): + if not path.is_file(): + continue + try: with Image.open(path) as img: img.load() images.append(img.convert("RGB")) + except Exception as exc: # noqa: BLE001 - AVIF/misnamed or corrupt frames + print(f" skip unreadable {path.name}: {exc.__class__.__name__}", + file=sys.stderr) if not images: - sys.exit("error: no downloaded frames in this folder") + sys.exit("error: no readable frames in this folder (convert AVIF/webp " + "files with ffmpeg first)") cell = 320 cols = 4 rows_count = (len(images) + cols - 1) // cols