# Visual Vocabulary — Cấm-từ + Cho phép cho Image Prompts

> Lexicon đầy đủ cho image prompts Maia. Aesthetic words cấm, vocabulary lighting/composition cho phép, AI-tell artifacts né, và Cmd+F lookup card.
> Source: research §3 (banned aesthetics) + §5 (real-estate failure modes) + seedance-prompt/traps.md + camera-vocab.md.

---

## Cách dùng

- **AI**: trước khi ship prompt, scan output theo §1 (cấm aesthetic words) + §3 (AI-tell artifacts). Hit cấm → tự sửa, không ship.
- **Người**: kiểm tra prompt AI bằng Cmd+F search top 10 từ cấm ở §9.
- **Quy tắc vàng**: aesthetic adjective standalone = ban. Pair với fact cụ thể (camera body, lighting time, named place) thì xét lại.

---

## §1 · Cấm aesthetic words — TUYỆT ĐỐI

Aesthetic adjectives đứng một mình hoặc trong adjective stack. Không nói gì về visual cụ thể, là filler default của AI.

| Cấm | Vì sao | Replace by |
|---|---|---|
| `luxury` | Generic, không nói gì về visual | concrete amenity (vd "hồ bơi vô cực 800m²") |
| `elegant` | Vague, default AI filler | concrete material (vd "dark walnut joinery") |
| `stunning` | Abstract, không phải visual | named lighting (vd "golden hour rake light") |
| `breathtaking` | Adjective filler | concrete vista (vd "wide shot, ocean horizon") |
| `iconic` | Maia EN site phân tích: zero hits, intentionally avoided | specific landmark phrasing |
| `exclusive` | Empty marketing register | concrete privacy detail (vd "private garden, separate entry") |
| `premium` | Empty register | named tier (vd "5-sao operating standard") |
| `high-end` | Empty | concrete fixture (vd "Hansgrohe fittings") |
| `world-class` | Back-translate test fail | named partner/brand (vd "Fusion-managed") |
| `amazing` | Banned, abstract filler | concrete sensory anchor |
| `beautiful` | Quá general | concrete visual (vd "soft pink-amber sky") |
| `perfect` | Lazy, Maia EN copy avoids | cắt hoặc replace with concrete fact |
| `epic` | Generic AI tell | named camera body |
| `cinematic` (standalone) | Meaningless alone, default AI look | named camera body (vd "Sony Venice 35mm") |
| `dramatic` (lighting) | Abstract, AI defaults to flat | concrete lighting time (vd "low amber light") |
| `moody` (lighting) | Abstract | concrete atmosphere (vd "dawn haze, soft fill") |

**Rule**: nếu output có 1 trong các từ trên đứng làm aesthetic descriptor thuần → cắt. Pair với named camera body / lighting time / material thì OK.

---

## §2 · Cấm visual concepts — Impossible geometry

Architecture/physics violations AI fail-mode. Maia là rectilinear, low-rise, beachfront — không sinuous, không floating, không twisted.

- ❌ **Sinuous facades** / **organic curves** / **waving glass** — research §5c verbatim: "diffusion model treats flat pixel = curved pixel identical… economically infeasible"
- ❌ **Impossible cantilevers** / **physics-defying overhangs** — research §5a "balconies defy physics"
- ❌ **Infinity pool merging into ocean horizon** — common AI distortion, edge blends incorrectly
- ❌ **Floating buildings** / **buildings hovering above ground** — AI fail mode
- ❌ **Glass-bottomed swimming pool above void** — render fail, reflection geometry breaks
- ❌ **Twisted/spiral towers** — Maia tower không có spiral, đừng thêm
- ❌ **Inconsistent window intervals** — research §5a "windows appear at inconsistent intervals"
- ❌ **Material transitions không hợp lý** — research §5a "material transitions make no constructional sense"

**Rule**: Maia = rectilinear + low-rise + beachfront. Bất kỳ form nào lệch khỏi 3 cái này → reject.

---

## §3 · Cấm AI-tell artifacts

Visual signs ảnh là AI-generated. Hurt brand, lộ ngay với architect/buyer.

- ❌ **Six fingers** / **warped hands** → thêm Constraint: "no warped fingers, natural hand pose"
- ❌ **Asymmetric eyes** / **warped facial features** → "natural facial features, symmetric"
- ❌ **Floating objects with no shadow** → "physical lighting, accurate shadows"
- ❌ **Text/letters smeared on signs** → "no text on signs, no letters in frame" (post-overlay text in Canva — research §8)
- ❌ **Reflections that don't match scene** → "accurate reflections matching scene geometry"
- ❌ **VN diacritics mangled** trên text on-image → remove text, post-overlay (traps.md workshop-specific)
- ❌ **Stretched limbs / bent body** từ subject motion + camera motion conflict → slow at least one (traps.md trap #7)
- ❌ **Identity drift** giữa multiple views — research §5b "8-12 coordinated renderings, materials drift" → use ref image canonical hero làm ref #1

**Rule**: Constraint line phải có ≥3 banned items list cho mỗi prompt có người trong frame.

---

## §4 · Allowed lighting register

Concrete lighting vocabulary — student paste được vào Lighting slot.

**Allowed**:
- `golden hour` / `late afternoon golden light`
- `warm side-light from frame right`
- `soft daylight, balanced fill`
- `blue hour` (just before sunset)
- `dawn haze, soft pink fill`
- `long shadows pointing toward camera`
- `low amber light` (Maia signature register)
- `soft pink-amber sky` (sunset Hồ Tràm verified)
- `low sun raking across facade`
- `dusk, warm filmic rolloff`

**NOT allowed** (abstract):
- ❌ `amazing lighting`
- ❌ `dramatic lighting`
- ❌ `moody lighting`
- ❌ `epic lighting`
- ❌ `cinematic lighting` (standalone)
- ❌ `flat midday` (Maia register cấm — luôn golden/dawn/dusk)
- ❌ `neon lighting` (wrong register, cấm bởi research §9b)

---

## §5 · Allowed composition vocabulary

Pull từ camera-vocab.md. Concrete shot types, ONE camera move per prompt.

**Allowed shot types**:
- `wide shot` / `wide drone shot`
- `low angle near pool`
- `eye-level frame`
- `medium close-up`
- `high-altitude bird's-eye view`
- `rule of thirds, [subject] off-center`
- `shallow depth of field`
- `long lens compression`
- `wide angle, slight distortion`

**Allowed camera moves (ONE per prompt — camera-vocab.md rule zero)**:
- `slow push-in` / `slow dolly in`
- `slow pull-back` / `slow dolly out`
- `slow orbit around subject`
- `camera pans horizontally`
- `tracking from behind/side`
- `static shot, locked tripod`
- `slight natural handheld shake` (documentary register)

**NOT allowed — stacking moves**:
- ❌ `pan and zoom`
- ❌ `orbit then push-in`
- ❌ `fast cut`
- ❌ Any phrase combining 2 moves — multi-move = AI fails (traps.md trap #1)

**NOT allowed — camera-vocab.md banned in Camera slot**:
- ❌ `24fps` / `60fps` (model treats as content)
- ❌ `f/1.4` / f-stop values
- ❌ Shutter speed
- ❌ `cinematic` standalone (use named body instead)

---

## §6 · Allowed style references

Concrete style anchors — named camera bodies + named grades. Faster than describing color science manually.

**Allowed (camera-vocab.md verified)**:
- `Sony Venice 35mm anamorphic` — filmic warmth, deep shadows, modern cinema
- `ARRI Alexa` — Hollywood color, rich highlights
- `Hasselblad H6D, medium format` — interior detail, premium stills
- `Sony A7S3` — clean digital, mid-tier doc/commercial
- `Canon EOS C70` — documentary-realistic, neutral
- `35mm film` — grain, slight halation, warm rolloff
- `16mm film` — heavier grain, vintage doc
- `anamorphic flare on light source` — horizontal streaks for cinema feel

**Allowed grades**:
- `warm filmic grade`
- `neutral color grade with warm skin tones` (lifestyle)
- `Architectural Digest aesthetic` (editorial register)
- `architectural CGI render aesthetic, photoreal but pristine` — Maia's own register, hero shots are CGI (research §6 + §8.1)

**Combine pattern**: `Sony Venice, 35mm anamorphic, warm filmic grade, 16:9` = closing style stamp.

---

## §7 · Per-persona extra bans

Aesthetic register hợp persona này có thể phá persona khác. Sau khi check §1-6, check thêm:

| Persona | Extra cấm aesthetic | Vì sao |
|---|---|---|
| **P1** 45t doanh nhân, gia đình | `party scene` / `champagne nightlife` | Anti-USP — họ muốn yên bình, second home |
| **P2** 38t yield-first | `family at sunset` / `wellness scene` | Họ không care lifestyle, dilutes pitch |
| **P3** 32t cặp đôi mới cưới | `investment portfolio overlay` / `yield chart` | Cuts the romance, sai register |
| **P4** 55t Việt kiều | `trendy / TikTok aesthetic` / `neon` | Sai age register, back-translate fail |
| **P5** 60t cash-flow | `energetic` / `vibrant` / `youthful` | Sai palette cho stability message |

**Rule**: mỗi prompt name persona ngay đầu comment. Persona-specific check chạy sau check chung §1-6.

---

## §8 · Self-check trước khi ship prompt

5 câu hỏi (theo thứ tự):

1. **Output có generic aesthetic adjective không** (`luxury` / `elegant` / `stunning` / `cinematic` standalone)? → cắt, replace by concrete.
2. **Có ≥1 reference image filename không** (canonical hero phải đứng đầu)? → nếu không, add. Real estate rule: never skip refs (traps.md).
3. **Lighting có concrete không** (named time như `golden hour` / `dawn haze`, không phải `amazing`/`dramatic`)?
4. **Composition có ONE move only** (không stack `pan and zoom` / `orbit then push-in`)?
5. **Constraint line có ≥3 banned items** (no warped fingers / no text on signs / no AI-tell artifacts)?

**Bonus**:
- Architectural form rectilinear không (no sinuous/floating/twisted)?
- Persona named (P1-P5)?
- Aspect ratio đúng format?

---

## §9 · Cmd+F quick-card (top 10 từ cấm)

Scan trước khi ship. AI / người Cmd+F trong 5 giây.

```
1. luxury
2. elegant
3. stunning
4. breathtaking
5. iconic
6. exclusive
7. premium
8. world-class
9. amazing
10. cinematic       (standalone — without named body)
```

**Bonus 5 cấm visual concepts** (Cmd+F luôn):

```
1. sinuous facade
2. floating building
3. impossible cantilever
4. twisted tower
5. flat midday
```

---

## End

Lexical fast-lookup priority. AI scan trong 5 giây. Nghi ngờ → cắt, không ship. Rubric 7-point lives trong `00-project-instructions.md` — pair với file này để close loop.
