Add reference-anchored concept generation
Full build / Import + headless tests (push) Successful in 49s
Full build / Full desktop build + optional release (push) Skipped

This commit is contained in:
zwitschi committed 2026-11-03 14:59:53 +01:00
1 parent 5b306b1c52
commit e21ff30783
8 files changed
+305 -31

No files matched your search

+14 -10
View File
@@ -404,19 +404,23 @@ facade evidence is still the 2009 CC BY frame. The 8 downloaded candidates are i
**Tool plan for reference-anchored generation (plan first, implement after this section's review):**
- [ ] Add `scene_concepts.py generate --reference <photo.png>`: attach a licence-cleared real photo
as a source image to the OpenRouter image request (image-edit/image-to-image endpoint), with
a prompt suffix that preserves the photographed facade geometry ("keep the building's column
count, spacing, band heights and sign placement exactly"). Record the reference file, its
licence and the model/prompt/spend in the sidecar.
- [ ] Extend `generate_textures.generate_image()` with an optional `reference_url` (base64 data URL
of the photo) and a `strength` argument; keep every existing call signature unchanged and
gate the new path behind the reference being licence-cleared in the sidecar.
- [x] Add `scene_concepts.py generate --reference <photo.png>`: attach a licence-cleared real photo
as a source image to the OpenRouter image request (multimodal chat endpoint with a base64
data URL), with a prompt suffix that preserves the photographed facade geometry. Record the
reference file, its licence and page in the `.refgen.json` provenance sidecar next to the
generated frame.
- [x] Extend `generate_textures.generate_image()` with an optional `reference_path` argument
(base64 data URL of the photo); existing call signatures unchanged, and the path is gated by
`scene_concepts._reference_source` requiring a refs-board `SIDECAR.md` row (or an explicit
`--reference-unchecked`). Verified live on the El Capitan day concept anchored on the CC BY
2.0 2009 facade photo; tests in `ReferenceGateTests`.
- [ ] Add a sidecar-driven variant pass: for each real photo, generate day, night and weathered
variants of the same framing so the concept board stays comparable with the photo board.
- [ ] Generate facade, street and signage concept frames for the target block
- [-] Generate facade, street and signage concept frames for the target block
(`scene_concepts.py generate --reference ...`), commit only the selected frames, and record
model, prompt, spend **and source photo** in the block sidecar.
model, prompt, spend **and source photo** in the block sidecar. (First frame done:
`hollywood_boulevard_entrance_day-v2`, anchored on the facade photo; remaining framings
pending.)
- [ ] Derive palette, lighting and material targets from the real-photo board and the generated
concepts, and record the deltas the facade kit has to close.
- [ ] Generate signage, awning and poster texture candidates with `asset_pipeline.py`; run the