# Prompt Recipes — 6 Image Types

> Tài liệu này là "thực đơn công thức" cho từng loại ảnh. AI đọc đúng section trước khi viết prompt. Designer/marketer đọc để biết mỗi loại ảnh phải có gì trước khi paste vào Nano Banana Pro / GPT Image / Midjourney.

---

## Cách dùng

- **AI:** khi user nói "viết prompt cho [hero / lifestyle / banner / infographic / interior / one-pager]" — đọc đúng section dưới đây. KHÔNG viết theo trí nhớ chung.
- **Mỗi recipe có 5 mục cố định:**
  1. Khi nào dùng
  2. Reference images cần (filename trong `/refs/`)
  3. CRAFT-V template (paste-ready)
  4. Persona match (P1–P5)
  5. Output spec (size / aspect / tool)
- **Sau khi sinh ảnh** — luôn tự chấm 7-point Visual Rubric (xem `00-project-instructions.md` §rubric) và ghi `Rubric: X/7` cuối output.

---

## Index

- §1 — Hero render (canonical aerial / signature shot)
- §2 — Lifestyle (people in scene)
- §3 — Banner ads (text-heavy, social/print)
- §4 — Infographic (data + visual)
- §5 — Interior detail (room render close-up)
- §6 — One-pager (sales sheet, mixed visual + text)
- §7 — Recipe × Persona matrix
- §8 — Choosing a recipe (1-min decision tree)
- §9 — Cross-recipe rules (áp dụng cho TẤT CẢ)

---

## Quy tắc bất biến across all recipes

- **≥1 reference image always** (real-estate rule — không bao giờ để model tự bịa kiến trúc)
- **ONE camera/composition move only** (không stack "aerial + low-angle + dolly" trong cùng prompt)
- **Persona named per output** — ghi rõ P1–P5 ở đầu prompt
- **Constraint line includes ≥3 banned items**
- **Output ends `Rubric: X/7`**

---

## §0 — Edit-chain vs Regenerate (decide BEFORE writing prompt)

> Đa số học viên mặc định "regenerate everything" mỗi lần cần variant — sai. GPT Image 2 hỗ trợ multi-turn editing chính thức qua OpenAI Responses API (có reasoning built-in, ra mắt 21/04/2026). Nhưng editing **không rẻ hơn** — nó mua **consistency**, không mua **savings**. Quyết định edit hay regen phải làm TRƯỚC khi viết prompt, không phải sau khi ra ảnh xấu.

### Decision rule

| Task | Approach | Why |
|---|---|---|
| Time-of-day swap (sunset → sunrise) | **Edit-chain** (GPT Image 2) | Preserves architecture + composition |
| Staging swap (empty room → with family) | Edit-chain | Identity locked across turns |
| Format swap (1:1 → 9:16) | Edit-chain | Crop with intelligence |
| Camera angle swap | **Regenerate** | Edit can't change viewpoint |
| Different room / different building | Regenerate | Subject change = new image |
| Single hero shot, no variants needed | Single-shot Nano Banana Pro | Simpler, photoreal |

**The single hard rule:** *"Don't try to edit your way to a different camera angle."*

---

## §0.1 — The Preserve-List Pattern (multi-turn editing template)

> Khi chain edits, AI mất "memory" giữa các turn. Solution: mỗi turn phải **lặp lại verbatim** WHAT CHANGES + WHAT STAYS IDENTICAL. Không assume model nhớ — nó không nhớ.

**Template (paste vào GPT Image 2 chat mỗi turn):**

```
TURN [N]:

CHANGE:
- [1 specific thing changing this turn — vd: "shift lighting to late golden hour"]

KEEP IDENTICAL (must not change):
- Architecture: towers, villa cluster, palm belt, beach, sailboat horizon
- Composition: wide aerial, rule of thirds, towers off-center frame right
- Color palette: [verified hex từ 02-fact-anchors.md §1 — vd "#F4B97A sunset, #4A90B8 sea, #F0E6D2 sand"]
- Reference: refs/01-aerial-hero-9x16.jpg + refs/03-aerial-alt-9x16.jpg
- Style: architectural CGI render, photoreal but pristine

DRIFT GUARD:
- This is turn [N] of max 5. After turn 5, snapshot best output, restart fresh chain.
```

**Why repeat KEEP IDENTICAL every turn:** GPT Image 2 không có implicit memory giữa các turn. Verbatim repetition là cách duy nhất lock identity.

---

## §0.2 — Drift threshold + reset rule

- **5–6 turns reliable** cho Maia subject (towers + villa cluster — moderate complexity)
- **10–12 turns** cho simple subjects (single object, plain background)
- **Color temp drift** thường xuất hiện ở turn 5–6
- **Reset rule:** snapshot best output ở turn 5, restart fresh chain với snapshot đó làm new base

---

## §0.3 — Cost reality (anti-hype)

- Editing **không rẻ hơn**. Edits process refs ở high fidelity → 2–3× per-image cost so với single-shot.
- Edit-chains mua **consistency**, không mua **savings**.
- Cost-control trick: explore variants ở low quality ($0.006/image), winners ở high quality ($0.21/image).

---

## §0.4 — Real estate caveat (kills over-promise)

GPT Image 2 staging là **generative, không phải segment-and-inpaint**. Architecture được preserve **probabilistically** — geometry CÓ THỂ drift across edits. Với Maia developer-grade renders nơi geometry tuyệt đối không được shift:

- Dùng single-shot Nano Banana Pro (locked output, không có chain drift)
- Accept rằng GPT Image 2 = lifestyle / banner / mood swaps, KHÔNG phải master CGI fidelity
- Đừng promise "edit Maia render này để add 50 family compositions" — drift sẽ visible từ turn 8

---

## §1 — Hero render (canonical signature shot)

### Khi nào dùng
- Landing page hero · brochure cover · ads thumbnail
- Khi cần 1 ảnh đại diện brand Maia (signature shot)
- Persona match: **ALL P1–P5** (universal — không nhân vật nên không lệch persona)

### Reference images required
- `refs/01-aerial-hero-9x16.jpg` (mandatory — lock tower silhouette + sunset palette)
- Optional: `refs/03-aerial-alt-9x16.jpg` (alt angle — giảm drift khi re-roll nhiều lần)

### CRAFT-V template

```
Persona: [P1–P5 tuỳ surface]

Subject: coastal luxury resort with two curved-glass beachfront towers + low-rise villa cluster, rectilinear architectural language
Action: static, environmental — no human action
Location: Hồ Tràm coastline at golden hour, palm trees, turquoise water, white sand beach
Composition: wide aerial pulling back, rule of thirds, towers off-center on right third
Lighting: late golden hour, warm amber side-light, long shadows on pool deck, soft pink-amber sunset sky
Style: architectural CGI render aesthetic, photoreal but pristine, Architectural Digest editorial register
Constraint: no warped facades, no sinuous architecture, no people in frame, no text overlay, no neon

Reference images: refs/01-aerial-hero-9x16.jpg, refs/03-aerial-alt-9x16.jpg
Aspect: 9:16 vertical (TikTok/Reels) HOẶC 16:9 horizontal (landing/brochure) — pick one
Tool: Nano Banana Pro (text accuracy mạnh, photoreal)
```

### Output spec
- Aspect: 9:16 hoặc 16:9 (pick by surface — KHÔNG generate cả hai trong 1 prompt)
- Resolution: 2048+ minimum (upscale trước khi feed M4 video)
- Persona: universal — work for all P1–P5

### Variants — edit-chain vs regen
- Time-of-day swap (golden hour → blue hour / sunrise) → **edit-chain** (preserve architecture + composition)
- Aspect swap (9:16 → 16:9) → **edit-chain** (intelligent crop với safe-zone preservation)
- Different angle (aerial → eye-level) → **REGEN** (don't edit your way to new angle — geometry drift)

---

## §2 — Lifestyle (people in scene)

### Khi nào dùng
- Cần emotional connection (FB feed, IG carousel, video first-frame)
- Sales muốn show "ai đang dùng resort" — gia đình, cặp đôi
- Persona match: **P1 (gia đình) · P3 (cặp đôi) · P4 (Việt kiều về dưỡng già)** · ⚠ tránh P2/P5 (yield-first, không cảm xúc)

### Reference images required
- `refs/02-exterior-eye-level-9x16.jpg` (lock eye-level register + scale)
- `refs/amenity-pool-9x16.jpg` (lock amenity context — pool deck, beach club)

### CRAFT-V template

```
Persona: P1 (Anh Hùng — gia đình 4 người, cuối tuần) HOẶC P3 (Linh & Phát — cặp đôi DINK)

Subject: 1–2 người Việt Nam, identity-light (silhouette hoặc back-3/4), trang phục resort tone trung tính (linen, cream, navy)
Action: walking slowly along pool edge, OR standing at villa balcony looking at sea — single calm action only
Location: Maia pool deck OR private villa terrace at golden hour, palm trees frame, ocean visible
Composition: eye-level medium shot, subject occupies left third, architecture occupies right two-thirds
Lighting: late golden hour, warm rim-light on subject, soft fill, no harsh midday
Style: editorial lifestyle photography register, Kinfolk magazine palette, photoreal not stylized
Constraint: natural hand pose, no warped fingers, no extra people in background, no stock-photo laughing-family pose, no logo on clothing

Reference images: refs/02-exterior-eye-level-9x16.jpg, refs/amenity-pool-9x16.jpg
Aspect: 4:5 (FB feed) HOẶC 9:16 (IG story / Reels)
Tool: Nano Banana Pro (face/hand consistency mạnh)
```

### Output spec
- Aspect: 4:5 hoặc 9:16
- Resolution: 1536+ (face consistency cần res cao)
- Persona: P1 / P3 / P4
- M2 pillar match (xem `maia-project/07-content-pillars.md`): PL3 Lifestyle

### Variants — edit-chain vs regen
- Same scene, swap outfit / prop on subject (linen → áo dài) → **edit-chain** (preserve architecture + pose)
- Same composition, shift mood (golden hour → dawn haze) → **edit-chain** (lock subject + frame)
- Different persona (gia đình P1 → cặp đôi P3) → **REGEN** (subject change = new image, dùng shared ref)

---

## §3 — Banner ads (text-heavy, social/print)

### Khi nào dùng
- FB/Google paid ads · email header · social post có CTA text
- Cần ảnh có Vietnamese headline + 1 sub-line + button-style CTA
- Persona match: **ALL** — vary the pivot (P2/P5 dùng số yield, P1/P3/P4 dùng emotional hook)

### Reference images required
- `refs/01-aerial-hero-9x16.jpg` (mandatory — brand anchor cho mọi banner)
- Optional: `refs/02-exterior-eye-level-9x16.jpg` nếu banner emotional

### CRAFT-V template

```
Persona: [P1–P5] · USP focus: [Location / Yield / Operator]

Subject: Maia hero shot composited as background + foreground typography block, brand color palette (cream + warm gold + deep navy)
Action: static layout — no motion implied
Location: Maia coastline aerial, blurred to 30% to make text legible
Composition: text-safe zone left half OR top third, headline 1 line ≤ 8 words, sub-line ≤ 12 words, CTA chip bottom right
Lighting: golden hour background, neutral text overlay color (cream on darkened image area)
Style: editorial real-estate ads, Architectural Digest meets Vietnamese diacritic-respect typography (Inter / IBM Plex Sans Vietnamese)
Constraint: Vietnamese diacritics intact (ố ấ ề ữ), no warped letters, no overlapping text, no stock-photo cliché, no urgency-fake "ƯU ĐÃI CUỐI"

Reference images: refs/01-aerial-hero-9x16.jpg
Aspect: 1:1 (FB feed) · 4:5 (FB feed tall) · 16:9 (FB cover / Google display)
Tool: Nano Banana Pro (Vietnamese text best-in-class — vẫn fallback overlay Canva nếu diacritic lệch)
```

### Output spec
- Aspect: 1:1 / 4:5 / 16:9 (pick by ad surface)
- Resolution: 1080+ minimum
- Persona: tất cả — pivot vary
- M2 pillar match: bất kỳ PL1-PL6 (banner là delivery vehicle, không phải content type riêng)

### Variants — edit-chain vs regen
- Same banner, swap headline copy (giữ nguyên hero + layout) → **edit-chain** (lock background + safe zones), nhưng text cuối → overlay Canva
- Format swap (1:1 FB → 16:9 Google display) → **edit-chain** (recompose với safe-zone preservation)
- Different USP pivot (Location → Yield, đổi cả hero crop) → **REGEN** (composition fundamentally khác)

---

## §4 — Infographic (data + visual)

### Khi nào dùng
- Show số liệu yield / occupancy / payment terms / timeline tiến độ
- Email newsletter section "Cập nhật dự án" · brochure trang đầu tư
- Persona match: **P2 (yield-first) · P5 (cash-flow)** ✓ · ⚠ P1/P3/P4 (số liệu là phụ chú với họ)

### Reference images required
- `refs/01-aerial-hero-9x16.jpg` (brand visual anchor — corner accent)
- Note: `/refs/` không có color swatch sheet — student/AI tự generate swatch riêng (cream #F5EDE0 + warm gold #C9A961 + deep navy #1A2B3C) hoặc tham chiếu `03-visual-vocabulary.md` §lighting register

### CRAFT-V template

```
Persona: P2 (Anh Khoa — yield) HOẶC P5 (Bác Tâm — cash-flow)

Subject: data visualization layout — 3–5 key numbers from fact-anchors (vd "70–75% occupancy", "40% rev share", "50% payment", "5–7 triệu/đêm")
Action: static infographic — no motion
Location: framed canvas, Maia hero render as 20% corner accent (not full background)
Composition: title top, 3 stat blocks middle row, source/footer bottom; rule of thirds for stat placement
Lighting: even, neutral — no dramatic lighting (data needs legibility)
Style: editorial finance-grade infographic, Bloomberg/Economist register, Maia palette (cream + gold + navy), Inter/IBM Plex Sans Vietnamese typography
Constraint: clear data labels, no warped numbers, no fake/placeholder data, no Lorem Ipsum, real numbers from 02-fact-anchors only, Vietnamese diacritics intact

Reference images: refs/01-aerial-hero-9x16.jpg
Aspect: 4:5 (FB feed) · 9:16 (IG story) · 1:1 (carousel page)
Tool: Nano Banana Pro (text accuracy mạnh, photoreal). Layout/text overlay finishing → Canva.
```

### Output spec
- Aspect: 4:5 / 9:16 / 1:1
- Resolution: 1536+ (numbers cần sharp)
- Persona: P2 / P5
- M2 pillar match: PL4 Yield · PL6 The Grand parent

### Variants — edit-chain vs regen
- Same layout, update 1 stat number (vd 70% → 75%) → **edit-chain** (lock layout + palette), nhưng số cuối → overlay Canva
- Aspect swap (4:5 carousel → 9:16 story) → **edit-chain** (recompose stat blocks, giữ palette)
- Khác bộ data hoàn toàn (yield → timeline tiến độ) → **REGEN** (data structure đổi = layout đổi)

---

## §5 — Interior detail (room render close-up)

### Khi nào dùng
- Show vật liệu / furniture / view-from-balcony
- Brochure trang "Sản phẩm" · IG carousel page 3–4
- Persona match: **P1 (gia đình ở thật) · P3 (cặp đôi lifestyle) · P4 (về VN dưỡng già)** ✓ · ⚠ P2/P5 (không quan tâm interior chi tiết)

### Reference images required
- Note: `/refs/` HIỆN TẠI không có ảnh interior canonical — student/AI cần upload Maia villa interior render từ developer site (nếu có) làm ref riêng cho prompt này
- Fallback: dùng `refs/02-exterior-eye-level-9x16.jpg` để lock palette + lighting register, accept rằng AI sẽ "vibes" interior

### CRAFT-V template

```
Persona: P1 (Anh Hùng — gia đình) HOẶC P3 (Linh & Phát — cặp đôi)

Subject: Maia villa living room OR master bedroom OR balcony with sea view — rectilinear furniture, neutral palette (oak wood + linen + cream + soft navy accents)
Action: static interior scene, empty (no people) OR 1 silhouette at balcony
Location: villa interior with floor-to-ceiling glass facing ocean, late afternoon sun raking across floor
Composition: ONE camera move only — eye-level wide shot OR low-angle balcony POV (pick one, not both)
Lighting: warm afternoon side-light through glass, soft ambient fill, no overhead harsh
Style: Architectural Digest interior register, photoreal CGI, Kinfolk-adjacent material palette
Constraint: no warped furniture, no impossible reflections, accurate scale (door height ~2.1m, ceiling 2.7–3m), no floating objects, no extra rooms visible

Reference images: [upload Maia villa interior render từ developer asset], optional refs/02-exterior-eye-level-9x16.jpg for palette lock
Aspect: 4:5 (carousel) · 16:9 (brochure spread) · 9:16 (IG story)
Tool: Nano Banana Pro (interior photoreal mạnh)
```

### Output spec
- Aspect: 4:5 / 16:9 / 9:16
- Resolution: 1536+ (material detail cần res cao)
- Persona: P1 / P3 / P4
- M2 pillar match: PL3 Lifestyle

### Variants — edit-chain vs regen
- Empty room → staged with furniture (preserve walls/windows/floor) → **edit-chain** (preserve-list pattern §0.1, nhưng nhớ §0.4 — geometry probabilistic)
- Same room, time-of-day swap (afternoon → dawn) → **edit-chain** (lock furniture + camera)
- Different room (living room → master bedroom) → **REGEN** ("doesn't track multiple images of same listing")

---

## §6 — One-pager (sales sheet, mixed visual + text)

### Khi nào dùng
- Sales document gửi warm lead · event handout · pitch deck slide đầu
- Cần MỘT trang gói: hero + 3 stats + 1 paragraph + CTA
- Persona match: **ALL** — vary the section weights (P2/P5 nặng stats, P1/P3 nặng emotional)

### Reference images required
- `refs/01-aerial-hero-9x16.jpg` (mandatory — top hero block)
- Optional: `refs/amenity-pool-9x16.jpg` (lifestyle accent dưới)

### CRAFT-V template

```
Persona: [P1–P5] · Section weighting: [stats-heavy / emotion-heavy]

Subject: A4 portrait sales sheet — top 40% hero image block + middle 35% stats + paragraph + bottom 25% CTA + contact + legal disclaimer
Action: static layout — no motion
Location: framed page, Maia hero crops top, brand palette throughout
Composition: hero image top, headline overlay "30 phút sân bay Long Thành — 10 km bãi biển Hồ Tràm", 3 stat tiles middle, lead paragraph 2–3 câu, CTA chip + QR bottom
Lighting: golden hour in hero crop only, neutral elsewhere
Style: real-estate sales sheet — Maia palette (cream + warm gold + deep navy), Inter/IBM Plex Sans Vietnamese, editorial register, không stock-template feel
Constraint: brand-fit color palette, accurate Vietnamese text with diacritics, no Lorem Ipsum, real numbers from 02-fact-anchors only, legal disclaimer block bottom (font 8pt), no urgency-fake

Reference images: refs/01-aerial-hero-9x16.jpg, refs/amenity-pool-9x16.jpg
Aspect: A4 portrait (1:1.414) HOẶC US Letter
Tool: workflow 2 bước — (1) Nano Banana Pro generate hero image + key visuals; (2) Canva paste vô template A4 + add text overlay với Vietnamese diacritics intact + brand color palette. KHÔNG generate one-pager full bằng image model — text accuracy fail.
```

### Output spec
- Aspect: A4 portrait
- Resolution: 300 DPI nếu in giấy, 150 DPI nếu PDF gửi email
- Persona: tất cả — section weight vary
- M2 pillar match: composite — combine ≥2 PL (vd PL1 vị trí + PL4 yield, hoặc PL3 lifestyle + PL2 tiến độ)

### Variants — edit-chain vs regen
- Same one-pager, swap section weighting (P2 stats-heavy → P1 emotion-heavy) → **edit-chain** trên hero block, layout text → re-do trong Canva
- Format swap (A4 portrait → US Letter) → **edit-chain** hero crop, Canva re-flow
- Different USP composite (PL1+PL4 → PL3+PL2) → **REGEN** hero (subject/mood đổi), Canva rebuild text

---

## §7 — Recipe × Persona matrix

| Recipe | P1 | P2 | P3 | P4 | P5 |
|---|---|---|---|---|---|
| §1 Hero render | ✓ | ✓ | ✓ | ✓ | ✓ |
| §2 Lifestyle | ✓ | ⚠ | ✓ | ✓ | ⚠ |
| §3 Banner ads | ✓ | ✓ | ✓ | ✓ | ✓ |
| §4 Infographic | ⚠ | ✓ | ⚠ | ⚠ | ✓ |
| §5 Interior detail | ✓ | ⚠ | ✓ | ✓ | ⚠ |
| §6 One-pager | ✓ | ✓ | ✓ | ✓ | ✓ |

- ✓ = recipe khớp persona, paste-ready
- ⚠ = recipe có thể dùng nhưng cần điều chỉnh weighting (vd §4 cho P1 → giảm số, tăng emotional context)

---

## §8 — Choosing a recipe (1-min decision tree)

- Cần 1 ảnh đại diện brand → **§1 Hero render**
- Cần emotional connection, người trong scene → **§2 Lifestyle**
- Paid ads / social post có CTA text → **§3 Banner ads**
- Show số liệu yield / tiến độ → **§4 Infographic**
- Show vật liệu / view-from-balcony → **§5 Interior detail**
- Sales document gói trong 1 trang → **§6 One-pager**

Nếu không chắc → mặc định **§1 Hero render** (universal, ít rủi ro nhất).

---

## §9 — Cross-recipe rules

> Áp dụng cho **TẤT CẢ** 6 recipes trên. Không có ngoại lệ.

### Trước khi viết prompt
- **Persona lock:** ghi rõ P1–P5 ở đầu prompt block
- **Reference filename verify:** ref filename phải khớp `/refs/` thật, không bịa tên
- **Number bank verify:** mọi số trong prompt phải có trong `02-fact-anchors.md`

### Trong khi viết prompt
- **ONE camera move only** — không stack "aerial + low-angle + dolly" trong cùng prompt
- **CRAFT-V đủ 7 elements** — Subject · Action · Location · Composition · Lighting · Style · Constraint (không thêm element thứ 8)
- **Constraint line ≥3 banned items** — luôn liệt kê tối thiểu 3 thứ cấm
- **Vietnamese diacritics intact** trong mọi text overlay

### Sau khi sinh ảnh
- Luôn link sang `image-video-bridge.md` nếu output sẽ feed M4 video (M3→M4 chain)
- Tự chấm 7-point Visual Rubric (xem `00-project-instructions.md`)
- Cuối output ghi: `Rubric: X/7 — [ghi chú điểm yếu]`
- 5/7 = pass · 6+/7 = sharper than Maia's site

### Universal banned (mọi recipe)
- "4k, masterpiece, trending on artstation" spam (2023-era, không cần)
- Sinuous facades, organic curves, futurist forms (vi phạm Maia rectilinear language)
- Stock-photo laughing-family-on-beach pose
- Neon, oversaturated sunsets, flat midday
- Future-tense-promise text overlay ("sẽ kiến tạo", "hứa hẹn")

---

**End of file.** AI scan đến đúng section trong < 5 giây. Recipes paste-ready vào Nano Banana Pro / GPT Image 2. Layout finishing (one-pager / brochure) → Canva post-step.
