PROCITY/pipeline/SKIN_PROMPTS.md
m3ultra 063a959e29 Lane E (assets): pipeline, manifest + 23 on-device facade skins
Audit -> normalize (16 GLBs + thumbs) -> web/assets/manifest.json (the
contract Lanes B/C/D read) -> facade gap-fill.

Step 4 facades generated locally on the M3 Ultra via MODELBEAST
flux_local (FLUX.2-klein-4B / MLX on MPS): 23 skins, free, ~5.7s each,
blank signboard, eyeballed, harvested, mapped to shop types. Every
registry type now has >=3 facades (stall 2->4, closing the Lane A gap).
Corner-lot -side walls tagged face:"side" with empty types so no shop
front ever selects a windowless wall. manifest validates green.

Still gated on John (both optional -- the game runs asset-free):
publish the 16 GLBs to 3GOD (needs GOD3_PW), MeshGod hero props (~$2.70).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14 13:48:25 +10:00

94 lines
5.8 KiB
Markdown

# PROCITY facade skins — manual prompt pack (Step 4, route 2)
> Free route: paste these into the house image flow (Gemini / Flow) by hand. Route 1
> (`pipeline/gen_skins.py`) generates the *identical* set automatically for ~9¢ if the
> OpenRouter key is available. Either way, review, then save into `web/assets/gen/` under the
> **exact filenames** below and re-run `python3 pipeline/build_manifest.py` to catalogue them.
## LOCK — prepend to every prompt (the style + POLY bible)
```
1990s Australian op-shop aesthetic, slightly faded and worn, warm fluorescent lighting,
kitsch but loving, no text unless specified, no watermarks.
```
**Golden rules (why these match the existing 25):**
- **Blank signboard** above the entrance — the game overlays the shop name (never bake text in).
- **Flat front elevation, edge to edge** — it's a texture on a plane, not a hero shot. No angle,
no sky margin, no ground margin (except the wide/house variants which include a sliver).
- **Straight-on, overcast daylight.** Landscape framing (~16:9) for shopfronts.
- Downsize to ≤1024px before saving (`sips -Z 1024 in.png --out out.jpg`).
---
## Shop-type facades (registry gaps) → `facade-<name>.jpg`
Template: *"Straight-on photograph of a small single-storey Australian suburban shop facade,
**{desc}**, blank empty signboard above the entrance, glass shop window and a door, no text or
lettering anywhere, overcast daylight, flat front elevation filling the entire frame edge to edge,
nothing else visible."*
| save as | {desc} |
|---|---|
| `facade-toy-brights.jpg` | cheerful toy shop, primary-colour painted render, big low display window |
| `facade-toy-lolly.jpg` | old-fashioned lolly and toy shop, pastel candy-stripe painted front |
| `facade-book-barn.jpg` | a crammed secondhand book barn, tall dusty windows stacked with books, dark timber |
| `facade-book-scholarly.jpg` | a genteel antiquarian bookshop, dark green paint, gold-line window, brass fittings |
| `facade-video-neon.jpg` | a 1990s video rental store, glossy red and blue plastic signage band, poster light-boxes (all blank) |
| `facade-video-suburban.jpg` | a suburban strip video shop, cream brick, glass double doors, returns chute |
| `facade-milkbar-corner.jpg` | a classic corner milk bar, cream and green wall tiles, wide wrap-around window, ice-cream awning |
| `facade-milkbar-fibro.jpg` | a little fibro milk bar with a fly-screen door, a bench out front, faded soft-drink colours |
| `facade-milkbar-deco.jpg` | a streamline-deco milk bar, curved rendered corner, chrome trim, pastel mint paint |
| `facade-arcade-entry.jpg` | a covered pedestrian shopping arcade entrance, tiled archway, terrazzo floor, patterned ceiling |
| `facade-warehouse-roller.jpg` | an industrial discount warehouse shop, red brick with a big corrugated steel roller door, blank banner |
| `facade-warehouse-tin.jpg` | a corrugated-tin clearance shed shopfront, roller door half up, concrete apron |
| `facade-market-fruit.jpg` | an open fruit-and-veg shopfront, empty produce crates and astro-turf steps, striped awning |
| `facade-market-edge.jpg` | a row of humble market-square edge shopfronts under one shared posted verandah, mixed paint colours |
## Wide department-store anchors → `facade-<name>.jpg` (Lane B maps onto a WIDE plane)
Template: *"Straight-on photograph of a **WIDE two-storey** Australian department-store anchor
building facade, **{desc}**, a long blank signboard band across the top, rows of ground-floor
display windows and a central entrance, no text or lettering anywhere, overcast daylight, flat
front elevation filling the entire frame edge to edge, nothing else visible."*
| save as | {desc} |
|---|---|
| `facade-dept-anchor.jpg` | mid-century mustard-render and glass, cantilevered awning, grand central doors |
| `facade-dept-emporium.jpg` | a federation-era brick emporium, arched upper windows, ornate parapet |
## Corner-lot second faces → `facade-<name>-side.jpg` (the `-side` convention)
> **Corner-lot decision:** in v1 Lane B reuses the *front* facade skin on the side face (documented
> in `manifest.json` → `conventions.corner_lots`). These blank `-side` walls are the upgrade: a
> windowless side elevation so corner buildings don't show a duplicated shopfront down the lane.
Template: *"Straight-on photograph of the **plain windowless side wall** of an Australian shop
building, **{desc}**, no shopfront, no door, a faded blank rectangular ghost-sign area, no text or
lettering anywhere, overcast daylight, flat elevation filling the entire frame edge to edge."*
| save as | {desc} |
|---|---|
| `facade-brick-side.jpg` | painted red brick, a downpipe, one small high window |
| `facade-weatherboard-side.jpg` | cream weatherboard boards, a rain downpipe |
| `facade-render-side.jpg` | weathered pastel painted render with hairline cracks |
## Residential fronts → `facade-<name>.jpg` (lots with `use:'house'`)
Template: *"Straight-on photograph of a modest Australian suburban house front, **{desc}**, front
path and a bit of fence, no text anywhere, overcast daylight, flat front elevation filling the
entire frame edge to edge, nothing else visible."*
| save as | {desc} |
|---|---|
| `facade-res-terrace.jpg` | a single-fronted Victorian terrace, iron-lace verandah, dark brick, tiny front garden |
| `facade-res-weatherboard.jpg` | a modest weatherboard cottage, bull-nose verandah, picket fence |
| `facade-res-fibro.jpg` | a 1950s cream fibro house, hip roof, small steel-framed windows |
| `facade-res-brickveneer.jpg` | a 1970s brown brick-veneer house, aluminium sliding windows, carport edge |
---
**23 skins total.** After harvesting, `build_manifest.py` auto-catalogues any `facade-*.jpg`
(new shop-type ones get their `types` from the map in `build_manifest.py` — add the new keys
there so they attach to the right shop types; unmapped ones default to `["general"]`).