# Hands-on 2 · Build Maia Image Project + Edit-chain workflow trong 30 phút

## Mục tiêu sau 30 phút

- Bạn có 1 Project Maia Image trên Claude / ChatGPT / Gemini (chọn 1 surface).
- Bạn upload 7 KB files + 4 ref images vào Project — AI đã ngấm visual identity của Maia.
- Bạn ship 1 hero image bằng đúng **1 dòng Aim** — Project tự retrieve persona + ref + style.
- Bạn chạy 1 edit-chain 3-turn (sunset → blue hour → 16:9 → thêm boat) bằng GPT Image 2 + preserve-list pattern.
- Bạn cảm được: Project = CRAFT-V automation. Edit-chain = consistency tool. Không phải saving tool.

## Bạn cần chuẩn bị

- 1 trong 3 account (chọn 1, đăng nhập sẵn trước workshop):
  - **Claude Pro** (claude.ai) — Project feature mạnh, retrieval mượt cho 7 file.
  - **ChatGPT Plus** (chatgpt.com) — Custom GPT + GPT Image 2 multi-turn editing (recommended cho Bước 6).
  - **Gemini Advanced** (gemini.google.com) — Gem + Nano Banana Pro single-shot.
- 7 KB files + folder `refs/` (4 ảnh) — BTC chia link Drive.
- File này (Google Doc) mở song song trên màn hình thứ 2 hoặc tab khác.
- 30 phút làm liền tay.

---

## Bước 1 · Tạo Image Project / Custom GPT / Gem (3 phút)

### Nếu dùng Claude (recommended cho retrieval)

1. Mở **claude.ai**, đăng nhập.
2. Sidebar trái → click **Projects**.
3. Click **Create project** (góc trên bên phải).
4. Ô **Name**: gõ `Maia Image Prompt Writer`.
5. Ô **What are you trying to achieve?**: gõ `Viết PROMPT ảnh hero / lifestyle / banner / infographic / interior / one-pager cho Maia Resort Hồ Tràm — paste-ready cho Nano Banana Pro / GPT Image 2.`
6. Click **Create project** → bạn đang ở trong Project mới.

### Nếu dùng ChatGPT (recommended cho Bước 6 edit-chain)

1. Mở **chatgpt.com**, đăng nhập.
2. Sidebar trái → click **GPTs** (hoặc **Explore GPTs**).
3. Click **+ Create** (góc trên bên phải).
4. Bỏ qua tab **Create**. Click thẳng sang tab **Configure**.
5. Ô **Name**: gõ `Maia Image Prompt Writer`.
6. Ô **Description**: gõ `Viết PROMPT ảnh hero / lifestyle / banner / infographic / interior / one-pager cho Maia Resort Hồ Tràm — paste-ready cho Nano Banana Pro / GPT Image 2.`

### Nếu dùng Gemini

1. Mở **gemini.google.com**, đăng nhập.
2. Sidebar trái → click **Gem manager**.
3. Click **+ New Gem** (góc trên bên phải).
4. Ô **Name your Gem**: gõ `Maia Image Prompt Writer`.
5. Tạm thời để trống Instructions, qua Bước 2 sẽ paste vô.

---

## Bước 2 · Paste Project Instructions (3 phút)

Mở file `00-project-instructions.md` (BTC share trong link Drive). Tìm section **`## Quy tắc bất biến (paste vào Project)`**. Bên dưới có 1 fenced code block (~70 dòng, bắt đầu bằng "Bạn là image prompt writer cho Maia Resort Hồ Tràm…"). **Copy NGUYÊN code block đó** — bao gồm VISUAL VOICE, 3 IS, 3 ISN'T, CRAFT-V FRAMEWORK, REFERENCE IMAGE RULE, BANNED AESTHETIC WORDS, OUTPUT PROTOCOL, 7-POINT IMAGE RUBRIC.

### Claude Project

1. Trong Project, mục **Project instructions** (khung phải hoặc giữa).
2. Click **Edit** hoặc **Set custom instructions**.
3. Paste vào textarea.
4. Click **Save instructions**.

### ChatGPT Custom GPT

1. Tab **Configure** → ô **Instructions** (textarea lớn nhất).
2. Paste vào.
3. Click **Save** (góc trên bên phải) → chọn **Only me** → **Confirm**.

### Gemini Gem

1. Trong Gem editor → ô **Instructions** (textarea lớn).
2. Paste vào.
3. Click **Save** (góc dưới bên phải).

✅ Check: Instructions có CRAFT-V framework (7 elements), 7-point rubric, banned aesthetic words list. Nếu bị cắt ngắn → paste lại.

---

## Bước 3 · Upload 7 KB files + 4 ref images (5 phút)

BTC share link Google Drive: **[BTC ĐIỀN LINK]**

Download folder → giải nén. Bạn có 7 markdown + folder `refs/` chứa 4 jpg.

**7 KB files:**

1. `01-personas.md` — 5 personas P1–P5 (reused từ M2).
2. `02-fact-anchors.md` — visual anchors (hex codes, architectural details, geo specs).
3. `03-visual-vocabulary.md` — banned aesthetic + allowed lighting/composition vocab.
4. `04-prompt-recipes.md` — 6 image type recipes + edit-chain decision rules (§0).
5. `05-examples.md` — slop vs sharp prompt pairs.
6. `06-anti-aesthetic.md` — failure mode catalog (impossible geometry, AI-tells, generic-luxury trap).
7. `07-image-video-bridge.md` — frame chaining M3 → M4 video.

**4 ref images** (trong folder `refs/`):

- `refs/01-aerial-hero-9x16.jpg` — canonical Maia identity.
- `refs/02-exterior-eye-level-9x16.jpg` — eye-level facade detail.
- `refs/03-aerial-alt-9x16.jpg` — aerial alt angle, golf + forest belt.
- `refs/amenity-pool-9x16.jpg` — pool deck, loungers.

### Claude Project

1. Trong Project → khung **Project knowledge**.
2. Click **Add content** → **Upload from device**.
3. Chọn cả 7 markdown + 4 jpg cùng lúc (Cmd+A trong dialog).
4. Đợi index xong (~45 giây). Khi hết spinner là OK.

### ChatGPT Custom GPT

1. Tab **Configure** → section **Knowledge**.
2. Click **Upload files** → chọn cả 7 markdown + 4 jpg.
3. Đợi mỗi file hiển thị tên + size.
4. Click **Save** lần nữa để confirm Knowledge.

### Gemini Gem

1. Trong Gem editor → mục **Knowledge** (bấm **Add knowledge** nếu chưa thấy).
2. Click **Upload files** → chọn 7 markdown + 4 jpg.
3. Đợi load xong → click **Save**.

✅ Check: Project Knowledge giờ có 7 markdown + 4 image, ~12MB tổng. Nếu thiếu file → upload thêm.

---

## Bước 4 · Test Project trong 1 dòng Aim (3 phút)

Trong khung chat của Project (KHÔNG phải New Chat raw), gõ duy nhất 1 dòng:

```
Viết prompt hero render Maia cho FB cover, persona P1.
```

Enter. Đợi output.

So sánh với Hands-on 1: lúc đó bạn gõ 12–15 dòng CRAFT-V tay (Subject + Action + Location + Composition + Lighting + Style + Constraint + ref filename + aspect + tool). Bây giờ **1 dòng Aim**, mọi thứ còn lại Project tự kéo:

- Persona P1 từ `01-personas.md`.
- Hex codes (`#F4B97A`, `#7B5BA1`, `#4A90B8`) từ `02-fact-anchors.md` §1.
- Ref filenames (`refs/01-aerial-hero-9x16.jpg`, `refs/03-aerial-alt-9x16.jpg`) từ §5.
- Hero recipe template từ `04-prompt-recipes.md` §1.
- Banned aesthetic check từ `03-visual-vocabulary.md` §1.

Output là full CRAFT-V prompt paste-ready, kết bằng dòng `Rubric: X/7`. **Đây là Harness.**

---

## Bước 5 · Ship 1 ảnh hero (single-shot) (5 phút)

Copy nguyên prompt CRAFT-V mà Project vừa generate.

- **Nếu có Gemini Advanced:** mở **gemini.google.com** → New chat (KHÔNG phải Gem) → paste prompt → upload 2 ref images (`01-aerial-hero-9x16.jpg` + `03-aerial-alt-9x16.jpg`) → Send. Nano Banana Pro generate 10–15 giây.
- **Nếu có ChatGPT Plus:** mở **chatgpt.com** → New chat → paste prompt → upload 2 ref images → Send. GPT Image 2 generate.

Lưu output vào folder cá nhân: `Maia-images/hero-attempt-1.jpg`.

Tự chấm rubric 7-point (xem `00-project-instructions.md` cuối):

1. Persona named (P1).
2. CRAFT-V đủ 7 slot.
3. ≥1 ref filename, hero đứng đầu.
4. Lighting concrete (golden hour, named hex).
5. ONE composition move (không stack).
6. Constraint ≥3 banned items.
7. Tool-ready (paste-ready, không placeholder).

Nếu < 5/7 → quay về Project, reply: `Improve constraint line, add 2 more banned items, regenerate.` AI sẽ sửa.

---

## Bước 6 · Edit-chain 3-turn workflow (8 phút)

**Đây là điểm mạnh của M3** — multi-turn editing với GPT Image 2 + preserve-list pattern. Project teach AI viết prompt; bước này teach BẠN viết edit chain.

### 6.1 — Setup edit chain

Mở **ChatGPT Plus** → **New chat** (raw chat, KHÔNG phải Custom GPT). Upload `hero-attempt-1.jpg` (ảnh vừa generate ở Bước 5). Gõ:

```
Original image (Turn 0): [upload hero-attempt-1.jpg]

Tôi sẽ chain 3 edits — mỗi turn change ONE thing, keep architecture + composition + ref identity. Mỗi turn tôi sẽ paste preserve-list verbatim.
```

Send.

### 6.2 — Turn 1: time-of-day swap (golden hour → blue hour)

Paste vào ChatGPT cùng chat:

```
TURN 1:

CHANGE:
- Shift lighting from late golden hour to blue hour (~30 phút sau sunset, sky deep teal #1A5F7A, lit windows on towers prominent, water reflects cool blue)

KEEP IDENTICAL (must not change):
- Architecture: two curved blue-glass condotel towers, low-rise villa cluster, palm tree belt, beach, sailboat horizon
- Composition: wide aerial, rule of thirds, towers off-center frame right
- Reference: refs/01-aerial-hero-9x16.jpg + refs/03-aerial-alt-9x16.jpg
- Style: architectural CGI render aesthetic, photoreal but pristine

DRIFT GUARD: This is turn 1 of max 5.
```

Đợi GPT Image 2 generate. Lưu `hero-blue-hour.jpg`.

### 6.3 — Turn 2: aspect swap (9:16 → 16:9)

Paste tiếp trong cùng chat:

```
TURN 2:

CHANGE:
- Recompose to 16:9 horizontal aspect (intelligent crop preserving towers + horizon line + sailboat in frame)

KEEP IDENTICAL (must not change):
- Architecture: two curved blue-glass towers, villa cluster, palm belt, beach, sailboat
- Lighting: blue hour palette từ Turn 1, deep teal sky #1A5F7A, lit tower windows
- Reference: refs/01-aerial-hero-9x16.jpg
- Style: architectural CGI render aesthetic, photoreal but pristine

DRIFT GUARD: This is turn 2 of max 5.
```

Lưu `hero-blue-hour-16x9.jpg`.

### 6.4 — Turn 3: staging swap (thêm 1 silent fishing boat)

```
TURN 3:

CHANGE:
- Add 1 silent fishing boat silhouette in mid-distance (between beach and horizon, far enough to read as small dark shape, not focal subject)

KEEP IDENTICAL (must not change):
- Architecture, blue hour lighting, 16:9 composition từ Turn 2
- Reference: refs/01-aerial-hero-9x16.jpg
- Style: architectural CGI render aesthetic

DRIFT GUARD: This is turn 3 of max 5. Drift threshold ở turn 5–6, đang ở turn 3 — safe.
```

Lưu `hero-blue-hour-16x9-boat.jpg`.

### 6.5 — Compare 3 outputs

Mở 3 file cạnh nhau (Quick Look hoặc Preview app):

- `hero-attempt-1.jpg` — golden hour, 9:16, no boat.
- `hero-blue-hour.jpg` — blue hour, 9:16, no boat.
- `hero-blue-hour-16x9-boat.jpg` — blue hour, 16:9, with boat.

Cùng 1 building, cùng composition cốt lõi, cùng style — chỉ thay 3 thứ theo từng turn. **Đó là edit-chain consistency.**

So với regen blind 3 lần (chạy hero prompt 3 lần khác nhau): building drift, lighting random, composition random, sailboat lúc có lúc không. Edit-chain mua **consistency**, không mua **savings**.

---

## Bước 7 · Câu hỏi nhanh + bookmark Project (3 phút)

Tự trả lời 3 câu trong Google Doc cá nhân:

- Hands-on 1 mất bao lâu để ship 1 ảnh hero (12–15 dòng CRAFT-V tay)?
- Hands-on 2 mất bao lâu để ship 1 hero + 3 variants (4 output từ 1 dòng Aim + 3 turn edit)?
- Edit-chain consistency có rõ không khi mở 3 ảnh cạnh nhau?

Bookmark URL của Project (Cmd+D). Đây là asset compound — tuần sau bạn vào thẳng, ship 5 ảnh khác nhau trong 10 phút.

---

## Câu hỏi thường gặp

### Q: Em không có ChatGPT Plus, làm sao chạy edit-chain ở Bước 6?

A: Edit-chain best với GPT Image 2 (ChatGPT Plus, $20/tháng). Alternative: Nano Banana Pro qua Gemini Advanced cũng support iterative editing nhưng yếu hơn — drift sớm hơn turn 3. Nếu không có account nào → skip Bước 6, ship 3 single-shot regen, accept drift. Đầu tư $20/tháng nếu bạn dùng nghiêm túc.

### Q: Sao edit-chain đắt hơn? Em tưởng edit là tiết kiệm?

A: Per `04-prompt-recipes.md` §0.3: editing process refs ở high fidelity → 2–3× per-image cost so với single-shot. Edit-chain mua **consistency** (cùng building xuyên 3 ảnh), KHÔNG mua **savings**. Cost-control trick: explore variants ở low quality (~$0.006/image), winners regen ở high quality (~$0.21/image).

### Q: Em chain quá 5 turn được không?

A: Drift threshold ở turn 5–6 cho subject phức tạp như Maia (towers + villa cluster). Turn 7+ → color temp drift, geometry drift visible. **Reset rule:** snapshot best output ở turn 5, restart fresh chain với snapshot làm Turn 0 mới.

### Q: Em muốn change camera angle (aerial → eye-level) qua edit, được không?

A: KHÔNG. **The single hard rule** từ `04-prompt-recipes.md` §0: *"Don't try to edit your way to a different camera angle."* Camera angle change = subject geometry change = REGEN, không edit. Mở Project, gõ aim mới `Viết prompt eye-level exterior persona P3` → ship single-shot riêng.

### Q: GPT Image 2 staging có generate "fake furniture" trong real Maia render không?

A: Có rủi ro. Per `04-prompt-recipes.md` §0.4: GPT Image 2 staging là **generative, không phải segment-and-inpaint**. Architecture preserved **probabilistically** — geometry CÓ THỂ shift. Với Maia developer-grade renders nơi geometry tuyệt đối không được drift — dùng single-shot Nano Banana Pro hoặc dedicated tool (RoomLift / Pedra). GPT Image 2 = lifestyle / banner / mood swaps, không phải master CGI fidelity.

### Q: Em copy 7 file vô Notion / Google Docs cho đẹp được không?

A: Được nhưng KÉM. AI retrieval tối ưu với Markdown raw. Notion / Docs export thêm formatting noise (HTML tag, bullet ký tự lạ) làm AI search dở hơn. **Giữ Markdown.**

### Q: AI viết prompt nhưng không chấm rubric ở cuối, vì sao?

A: Project Instructions đã có rule "OUTPUT PROTOCOL — mọi output kết thúc bằng Rubric: X/7". Nếu AI quên → reply 1 dòng: `Chấm rubric 7 điểm cho prompt trên.` AI tự chấm.

### Q: Mai em update file `02-fact-anchors.md` (CĐT gửi brand book mới), có cần build lại Project không?

A: Không. Vào Project Knowledge, **xoá file cũ** (icon thùng rác cạnh tên file), **upload file mới**. Project tự index lại trong ~30 giây.

---

## Sau Hands-on 2

Bạn vừa build xong **harness cá nhân** cho Maia image. Trong 30 ngày tới:

- **Daily:** dùng Project ship FB cover / IG story / banner ads single-shot — mỗi cái 1 dòng Aim, 30 giây ra prompt, 15 giây ra ảnh.
- **Weekly:** dùng edit-chain cho variant sets (time-of-day, aspect, staging) — preserve-list pattern + drift guard.
- **Monthly:** snapshot best outputs, build personal style library; update KB nếu CĐT phát hành asset mới.

**Bài học M3:** Prompt là kỹ thuật. Project là cơ sở hạ tầng. Edit-chain là consistency tool. **Harness > prompt. Edit > regen (khi đúng case). Reset > drift.**
