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

+15
View File
@@ -192,6 +192,21 @@ Caveats:
Blender still prints its own version banner before the script runs, so intake scripts should use
`--json --out <file>` rather than parsing stdout.
### Reference-anchored concept generation
`tools/scene_concepts.py generate --reference <photo>` anchors a concept frame on a real
photograph: the photo is sent to the OpenRouter multimodal chat endpoint as a base64 data URL
(`generate_textures.generate_image(reference_path=...)`) with a prompt suffix that pins the
photographed geometry (column rhythm, band heights, signage placement, camera angle) while the
prompt restages lighting, weather and people.
Licence gate: the reference must be listed in its `docs/screens/refs/<venue>/SIDECAR.md` row
(which also supplies the licence and Commons page for provenance). A photo from anywhere else
requires `--reference-unchecked`, which records `unchecked` in the provenance. Each anchored
generation writes a `.refgen.json` sidecar next to the frame (`model`, reference file/licence/page,
geometry suffix) so a concept frame can always be traced back to its evidence photo. Where a
generated frame and its reference photo disagree, the photo wins for shape.
### Reference-board research (`refboard`)
`tools/refboard.py` searches, fetches and documents Wikimedia Commons photos of a real location for
@@ -10,6 +10,18 @@ game textures. The geometry mapping and source links are in
![El Capitan Entertainment Centre entrance in daylight](hollywood_boulevard_entrance_day.png)
## Entrance — day, photo-anchored
![El Capitan Entertainment Centre entrance in daylight, anchored on the 2009 facade photo](hollywood_boulevard_entrance_day-v2.png)
Generated with `generate --reference`, anchored on the licence-cleared
[`el-capitan-facade-day-wikimedia-2009-10-27.jpg`](../../refs/hollywood/el-capitan-facade-day-wikimedia-2009-10-27.jpg)
board photo (CC BY 2.0); provenance in
[`hollywood_boulevard_entrance_day-v2.refgen.json`](hollywood_boulevard_entrance_day-v2.refgen.json).
The facade geometry (motto band, column rhythm, lattice windows, banner slots,
blade sign) follows the photograph; the street is restaged clean for art
direction.
## Entrance — night
![El Capitan Entertainment Centre entrance at night](hollywood_boulevard_entrance_night.png)
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

@@ -0,0 +1,12 @@
{
"concept": "hollywood_boulevard_entrance_day",
"generated": "hollywood_boulevard_entrance_day-v2.png",
"model": "google/gemini-2.5-flash-image",
"reference": {
"file": "docs/screens/refs/hollywood/el-capitan-facade-day-wikimedia-2009-10-27.jpg",
"licence": "CC BY 2.0",
"page": "https://commons.wikimedia.org/wiki/File:El_Capitan_Theater_frontal_fachade-The_Masonic_Temple.jpg",
"licence_checked": true
},
"suffix": "Use the attached reference photograph as the fixed source of geometry and composition: keep the building's proportions, column rhythm, band heights, signage placement and camera angle exactly as photographed. Only restage lighting, weather, people and surface condition where the prompt asks for it. Do not invent extra storeys, wings or ornaments that the photo does not show."
}