Prompt Playbook

AI Agent for Graphic Design

คู่มือ prompt สำหรับสั่งงาน AI Agent (Claude Code) ให้ทำงานกราฟิกดีไซน์ให้เรา — ก๊อปข้อความในกล่องดำไปวางใน Claude Code ตามลำดับแต่ละ session ได้เลย กดปุ่ม Copy มุมขวาบนของแต่ละกล่อง

เริ่มที่นี่

พื้นฐานที่ต้องรู้ก่อนเริ่ม (อ่าน 2 นาที)

3 คำนี้จะโผล่ตลอดทั้งเล่ม เข้าใจก่อนแล้วทุกอย่างจะง่ายขึ้นมาก — และมันเชื่อมโยงกันด้วยเหตุผลเดียว

🧠 Context window — "ความจำชั่วคราว" ของ AI (ต้นตอของทุกอย่าง)
AI agent จำบทสนทนาได้ จำกัด เปรียบเหมือนโต๊ะทำงานที่มีพื้นที่จำกัด — คุยกันยาว ๆ ไปเรื่อย ๆ ของเก่าจะถูกดันตกโต๊ะ (= มัน "ลืม" สิ่งที่คุยตอนต้น) และยิ่งบทสนทนายาว ยิ่งเปลือง token
👉 ปัญหานี้คือเหตุผลที่เราต้องมี 2 เครื่องมือข้างล่าง เพื่อ "ฝากความจำ" ไว้นอกโต๊ะ
📓 ไฟล์ .md (CLAUDE.md) — "สมุดโน้ตถาวร" ของโปรเจกต์
เป็นไฟล์ข้อความธรรมดาที่ agent อ่านทุกครั้งที่เปิดงานใหม่ ใช้จดกฎ/วิธีทำงาน/ค่าตั้งต้นสำคัญไว้ → พอเปิด session ใหม่ มันอ่านสมุดนี้แล้ว "จำได้" ทันที ไม่ต้องเล่าใหม่
(.md = ไฟล์ Markdown ข้อความล้วน เปิด/แก้ด้วยโปรแกรมอะไรก็ได้ · CLAUDE.md คือชื่อไฟล์ที่ Claude Code อ่านอัตโนมัติ)
⚡ Skill — "ปุ่มลัดสำเร็จรูป"
เมื่อเราสอน agent ทำอะไรจนนิ่งแล้ว เก็บวิธีนั้นเป็น skill (ไฟล์ชุดคำสั่ง) ครั้งหน้าเรียกครั้งเดียวมันทำครบเลย ไม่ต้องอธิบายใหม่ทุกครั้ง
ข้อดี: ประหยัด context + ได้ผลสม่ำเสมอ เพราะความฉลาดถูกฝังในไฟล์ ไม่ต้องพึ่งความจำชั่วคราว
สรุปความเชื่อมโยง: เพราะ context จำกัด (ลืมง่าย + เปลือง token) เราเลย จด CLAUDE.md ให้อ่านทุก session และ เก็บงานที่ทำซ้ำเป็น skill — ทั้งเล่มนี้คือการค่อย ๆ สร้าง 2 อย่างนี้ขึ้นมาให้แน่น

กฎทอง

ใช้กับทุก session

หลักคิดง่าย ๆ ที่ทำให้สั่งงาน agent แล้วได้งานตรงใจ ไม่ต้องแก้วนหลายรอบ:

  1. บอกให้ครบ 3 อย่างในคำสั่งเดียว: บริบท → เป้าหมาย → ข้อจำกัด
    เช่น "ผมทำงานโฆษณา (บริบท) อยากได้โปสเตอร์ 2 ภาพ (เป้าหมาย) ห้ามใช้ภาพคนจริง (ข้อจำกัด)" ยิ่งบอกครบ agent ยิ่งเดาใจถูก
  2. งานใหญ่ ให้สั่งวางแผนก่อนเสมอ — เติมท้ายคำสั่งว่า "วางแผนให้ดูก่อน อย่าเพิ่งเขียนโค้ด" จะได้เห็นว่ามันเข้าใจตรงกับเราไหม ก่อนลงมือทำจริงแล้วเสียเวลา
  3. ทำให้นิ่งก่อน แล้วค่อยเก็บเป็น skill — ลองสั่งจนได้ผลลัพธ์ที่พอใจซ้ำ ๆ ก่อน แล้วค่อยบอกให้มันจำเป็น "skill" (เหมือนปุ่มลัด) เพื่อเรียกใช้ครั้งหน้าได้เลย
  4. ปิดท้ายทุก session ด้วยการให้มันจดบันทึก — สั่งให้ อัปเดต CLAUDE.md หรือ pack skill เสมอ CLAUDE.md คือสมุดโน้ตของโปรเจกต์ที่ agent อ่านทุกครั้งที่เปิดงานใหม่ ถ้าไม่จด พอเปิด session ใหม่มันจะลืม
เคล็ดลับกันลืม: ทุกครั้งที่เปิด session ใหม่ ให้พิมพ์ prompt นี้เป็นอันแรก เพื่อให้ agent ทบทวนว่ามีปุ่มลัด (skill) อะไรให้ใช้บ้าง
อ่าน CLAUDE.md แล้วบอกผมว่าตอนนี้มี skill อะไรบ้าง และยิงภาพยังไง
ข้อควรรู้เรื่องโมเดล (agent จะจัดการให้ แต่เรารู้ไว้กันงง):
  • Nano Banana 2 (เร็ว ถูก) — ค่าโรงงานมันจะสร้างแค่ 1 ภาพต่อครั้ง แม้สั่ง 2 ภาพ ต้องตั้งค่าให้ปลดล็อกก่อนถึงจะได้หลายภาพ และมีปุ่มปรับความเข้มงวดเนื้อหา (safety) ที่ GPT ไม่มี
  • GPT Image 2 (คุณภาพสูง เหมาะงาน commercial) — กำหนดสัดส่วนภาพด้วยขนาดพิกเซลจริง ไม่ใช่เลือกจากตัวเลือกสำเร็จ และคุมคุณภาพได้ ควรล็อกไว้ที่ระดับกลางเพื่อกัน credit บานปลาย
เรื่องพวกนี้เราจะไปตั้งค่าให้ครบใน Session 2 ตอนนี้แค่รู้ว่ามันมีอยู่ก็พอ
🤖 ป้ายแนะนำโมเดล Claude (มุมขวาของแต่ละหัวข้อ)
แต่ละขั้นมีป้ายบอกว่าควรใช้โมเดล Claude ตัวไหนรัน เพื่อให้ได้คุณภาพดี + ประหยัด token
หลักคิด: จ่ายแพง (Opus/high) ตอน "สร้างของยาก" · ประหยัด (Sonnet) ตอน "ใช้ของที่สร้างไว้แล้ว"
🔴 Opus · high งานยาก/ตรรกะสำคัญ (มี 3 จุด: 1.6, 2.6, 3.2) Sonnet · high สร้าง skill/โครงสร้าง Sonnet · medium รัน skill / แก้เล็ก / งานสร้างสรรค์ 🙋 ทำเอง เราพิมพ์ใน Terminal เอง 📖 อ่านเอง ส่วนอ่านอย่างเดียว ไม่ต้องสั่ง AI
สลับโมเดลใน Claude Code: พิมพ์ /model — สลับกลาง session ได้ ไม่เสีย context · ป้ายนี้คือโมเดล Claude ที่รันงาน คนละตัวกับโมเดลสร้างภาพ (Nano/GPT) ด้านบน

SESSION 1

ตั้งค่าเชื่อมต่อ fal.ai (API key)

🎯 เป้าหมาย: ตั้ง API key แบบปลอดภัย + สร้างสคริปต์กลางสำหรับยิงภาพ + ทดสอบยิง 1 ภาพ + ให้ agent จดบันทึกลง CLAUDE.md
API key คืออะไร? มันคือ "รหัสผ่าน" ที่ใช้เชื่อมต่อกับบริการ fal.ai (ที่เราเอาไว้สั่งให้ AI สร้างภาพ) ถ้ารหัสนี้หลุดไปอยู่ในมือคนอื่น เขาเอาไปใช้แล้วเราจ่ายเงินแทน ดังนั้นต้องเก็บให้ดี

หลักการเก็บให้ปลอดภัย: เราจะให้ Claude ตั้งโครงไฟล์ให้ → เราเป็นคนเอา key ไปวางเอง → สคริปต์จะอ่าน key จากที่ซ่อนไว้ ผลคือ Claude ไม่เคยเห็นค่า key ของเราเลย ปลอดภัยตั้งแต่ต้น

1.1Sonnet · highขั้น A — ให้ Claude ตั้งโครงโปรเจกต์ให้ก่อน (ยังไม่ต้องมี key)

กำลังทำอะไร: สั่งให้ Claude เตรียมไฟล์โครงสร้างพื้นฐานของโปรเจกต์ — ไฟล์ตัวอย่างสำหรับใส่ key, ไฟล์ป้องกัน key หลุดขึ้นอินเทอร์เน็ต และติดตั้งเครื่องมือที่จำเป็น โดยที่ยังไม่มีการแตะ key จริงเลย
ผมทำ agent ยิงภาพผ่าน fal.ai ช่วยตั้งโครงโปรเจกต์ให้ใช้ได้ข้าม session:
- สร้าง .env.example (มีบรรทัด FAL_KEY=your_fal_key_here)
- สร้าง .gitignore กัน .env / node_modules / output หลุด git
- package.json type module + ติดตั้ง @fal-ai/client และ tsx
ผมจะใส่ FAL_KEY เองทีหลัง ห้ามถาม/อ่าน/พิมพ์ค่า key ของผม วางแผนให้ดูก่อน

1.2🙋 ทำเองขั้น B — เราวาง key เอง (Claude ไม่ยุ่งด้วย)

กำลังทำอะไร: ตรงนี้เราทำเองในหน้าต่าง Terminal (โปรแกรมพิมพ์คำสั่งของเครื่อง) เพื่อก๊อปไฟล์ตัวอย่างเป็นไฟล์จริง แล้วเปิดมันขึ้นมาเอา key ของเราไปวาง วิธีต่างกันเล็กน้อยระหว่าง Mac กับ Windows ทำตามฝั่งที่ตรงกับเครื่องตัวเอง
⚠️ จุดที่พลาดบ่อยที่สุด — ต้อง cd เข้าโฟลเดอร์โปรเจกต์ก่อนเสมอ!
ก่อนพิมพ์คำสั่ง cp/Copy-Item ข้างล่าง ต้องพา Terminal "เข้าไปอยู่ใน" โฟลเดอร์โปรเจกต์ก่อน ด้วยคำสั่ง cd
ถ้าข้ามขั้นนี้ Terminal จะยังอยู่ที่โฟลเดอร์บ้าน (สังเกตเห็น ~ % หน้าบรรทัด) แล้วจะเจอ error ว่า .env.example: No such file or directory เพราะมันไปหาไฟล์ผิดโฟลเดอร์
เงื่อนไข: ขั้น 1.1 (ให้ Claude สร้าง .env.example) ต้องทำเสร็จในโฟลเดอร์นี้ก่อน ไฟล์ถึงจะมีให้ก๊อป

🍎 สำหรับ macOS

ขั้นแรก เข้าโฟลเดอร์โปรเจกต์ — เปิด Terminal แล้วพิมพ์ cd เว้นวรรค 1 ที จากนั้น ลากโฟลเดอร์โปรเจกต์จาก Finder มาวางในหน้าต่าง Terminal (มันจะเติม path ให้เองอัตโนมัติ) แล้วกด Enter:

macOS Terminal
cd '/path/to/โฟลเดอร์โปรเจกต์ของคุณ'   # ← ลากโฟลเดอร์จาก Finder มาวางแทน path นี้
ls -a                                  # เช็คว่ามาถูกที่ ต้องเห็นไฟล์ .env.example ในลิสต์
ถ้าชื่อโฟลเดอร์มีเว้นวรรค ให้ครอบ path ด้วยเครื่องหมาย '...' (การลากจาก Finder จะใส่ให้เองอยู่แล้ว) · ถ้า ls -a แล้ว ไม่เห็น .env.example แปลว่ายังไม่ได้ทำขั้น 1.1 ในโฟลเดอร์นี้

เห็น .env.example แล้วค่อยรันต่อ ทีละบรรทัด:

macOS Terminal
cp .env.example .env       # ก๊อปไฟล์ตัวอย่างเป็นไฟล์จริงชื่อ .env
open -e .env               # เปิดไฟล์ .env ด้วยโปรแกรม TextEdit

🪟 สำหรับ Windows

ขั้นแรก เข้าโฟลเดอร์โปรเจกต์ — เปิด PowerShell (เปิดโฟลเดอร์โปรเจกต์ใน File Explorer → พิมพ์ powershell ในแถบ address ด้านบนแล้วกด Enter — วิธีนี้จะพาเข้าโฟลเดอร์ให้เลย) หรือพิมพ์ cd เว้นวรรค แล้ว ลากโฟลเดอร์จาก File Explorer มาวาง แล้วกด Enter:

Windows PowerShell
cd 'C:\path\to\โฟลเดอร์โปรเจกต์ของคุณ'   # ← ลากโฟลเดอร์มาวางแทน path นี้
dir -Force                               # เช็คว่ามาถูกที่ ต้องเห็นไฟล์ .env.example ในลิสต์
ถ้าชื่อโฟลเดอร์มีเว้นวรรค ให้ครอบ path ด้วยเครื่องหมาย '...' · ถ้า dir -Force แล้ว ไม่เห็น .env.example แปลว่ายังไม่ได้ทำขั้น 1.1 ในโฟลเดอร์นี้

เห็น .env.example แล้วค่อยรันต่อ ทีละบรรทัด:

Windows PowerShell
Copy-Item .env.example .env    # ก๊อปไฟล์ตัวอย่างเป็นไฟล์จริงชื่อ .env
notepad .env                   # เปิดไฟล์ .env ด้วยโปรแกรม Notepad

จากนั้น (ทั้ง Mac และ Windows เหมือนกัน)

ในไฟล์ที่เปิดขึ้นมา จะเห็นข้อความว่า FAL_KEY=your_fal_key_here ให้แก้ให้เป็นแบบนี้ แล้ว เซฟ (กด Ctrl+S บน Windows / Cmd+S บน Mac):

FAL_KEY=[API KEY]
👉 ตรงคำว่า [API KEY] คือจุดที่เราเอา key จริงไปวางทับ — ไป copy key มาจาก https://fal.ai/dashboard/keys
วางทับให้เหลือแค่ FAL_KEY=fal_xxxxxxxx (ไม่ต้องมีวงเล็บเหลี่ยม ไม่ต้องมีเครื่องหมายคำพูด)

1.3Sonnet · highขั้น C — กลับมาให้ Claude ทดสอบว่าใช้ได้จริง

กำลังทำอะไร: กลับมาที่หน้าต่าง Claude Code สั่งให้มันสร้างสคริปต์ยิงภาพ แล้วลองยิงภาพทดสอบ 1 ภาพ ถ้าภาพออกมาได้ = key เราเชื่อมต่อสำเร็จแล้ว
สร้างสคริปต์ยิงภาพ scripts/generate.ts ที่อ่าน FAL_KEY จาก env เท่านั้น
ห้ามอ่านหรือ print ค่าใน .env แล้วทดสอบยิง nano banana 2 มา 1 ภาพ
ถ้าได้ภาพ = key ใช้งานได้

ถ้าภาพออก = เสร็จ! key พร้อมใช้ทุก session ในโฟลเดอร์นี้แล้ว

1.4📖 อ่านเอง✅ กฎกันพลาดเรื่อง key (อ่านครั้งเดียว จำไว้ตลอด)

1.5🙋 ทำเอง(ตัวเลือกเสริม) อยากใช้ key เดียวกันกับทุกโปรเจกต์

เหมาะกับใคร: ถ้าเราจะทำหลายโปรเจกต์และไม่อยากตั้ง key ซ้ำทุกครั้ง สามารถตั้ง key ไว้ที่ระดับเครื่อง (global) ครั้งเดียว แล้วทุกโปรเจกต์เรียกใช้ได้เลย โดย key ไม่ต้องอยู่ในโฟลเดอร์โปรเจกต์

🍎 macOS

เปิด Terminal พิมพ์:

macOS Terminal
echo 'export FAL_KEY="[API KEY]"' >> ~/.zshrc
source ~/.zshrc

🪟 Windows

เปิด PowerShell พิมพ์ (วาง key จริงทับ [API KEY]):

Windows PowerShell
setx FAL_KEY "[API KEY]"
หลังตั้งบน Windows ต้อง ปิดแล้วเปิด Terminal/Claude Code ใหม่ ค่าถึงจะมีผล
👉 วาง key จริงทับ [API KEY] แล้วทุกโปรเจกต์/ทุก session อ่าน key นี้ได้เลย ไม่ต้องทำไฟล์ .env รายโปรเจกต์

1.6🔴 Opus · highทำสคริปต์กลางให้สมบูรณ์ (หัวใจที่ทำให้ตั้งค่าครั้งเดียวอยู่ถาวร)

กำลังทำอะไร: ขั้น C สร้างสคริปต์เวอร์ชันง่าย ๆ ไว้แล้ว รอบนี้เราจะให้มันสมบูรณ์ขึ้น — รวม "ค่าตั้งต้น" (DEFAULTS) ของแต่ละโมเดลไว้ที่เดียว และรองรับทั้ง 2 โมเดล การมีศูนย์กลางแบบนี้ทำให้เราแก้ค่าครั้งเดียว ใช้ได้ทุกที่ ไม่ต้องมาตั้งซ้ำ

เรื่องการเก็บไฟล์: ภาพที่ยิงในการคุย (session) เดียวกันจะเซฟ รวมอยู่โฟลเดอร์เดียว โฟลเดอร์ไม่รก พอเปิดการคุยใหม่ค่อยแยกโฟลเดอร์ใหม่ ตั้งชื่อไฟล์เป็นวันเวลาที่เจนเพื่อกันไฟล์ทับกัน · ส่วน setting + prompt ของแต่ละภาพยังถูกเก็บไว้เพื่อใช้ต่อภายหลัง
ปรับ scripts/generate.ts ให้สมบูรณ์:
- บล็อก DEFAULTS เก็บค่า default ต่อโมเดลไว้ที่เดียว (aspect/resolution/quality/safety)
- nano-banana-2 = fal-ai/nano-banana-2 , GPT image2 = openai/gpt-image-2 รองรับทั้ง gen และ edit
- รับ args: --model --prompt --n --image
- img-to-image (สำคัญ): --image รองรับทั้ง URL และ path ในเครื่อง ถ้าเป็น path ในเครื่องให้ auto-upload ขึ้น fal storage ก่อน (fal รับภาพอ้างอิงเป็น URL เท่านั้น — ใช้ fal.storage.upload) ใส่ซ้ำได้หลายรูป; เมื่อมี --image ให้สลับไปใช้ endpoint /edit ของโมเดลอัตโนมัติ (เช่น fal-ai/nano-banana-2/edit) ห้ามส่งภาพเข้า endpoint สร้างภาพปกติ
- เซฟภาพลง output/<ชื่อ-session>/ — แยกโฟลเดอร์ "ตาม session" เท่านั้น (ขึ้น session ใหม่ค่อยสร้างโฟลเดอร์ใหม่ / อยู่ session เดิมเซฟรวมโฟลเดอร์เดิม) ห้ามแยกซับโฟลเดอร์รายรอบ
- ตั้งชื่อไฟล์ภาพเป็นวันเวลาที่เจน เช่น 2026-06-19_14-30-05.png เพื่อกันชื่อชนกัน
- เขียน manifest.json ไฟล์เดียวไว้ในโฟลเดอร์ session เดียวกับภาพ — เก็บเป็นรายการ ภาพละ 1 entry (ชื่อไฟล์ + prompt + setting ที่ใช้จริง + ระบุว่ามาจากคำสั่งเจนครั้งไหน/batch ไหน) ยิงภาพใหม่ในโฟลเดอร์เดิมให้ append ต่อท้าย ไม่เขียนทับ
เปิดหน้า model บน fal.ai เช็คชื่อ param ล่าสุดก่อนแก้ โดยเฉพาะ limit_generations ของ nano-banana-2

1.7Sonnet · mediumให้ Claude จดบันทึกลง CLAUDE.md ก่อนปิด session

กำลังทำอะไร: ให้ agent เขียนสรุปวิธีทำงานของโปรเจกต์ลงสมุดโน้ต (CLAUDE.md) เพื่อที่พอเปิด session ใหม่คราวหน้า มันจะอ่านแล้วจำได้ว่าโปรเจกต์นี้ทำงานยังไง
เขียน CLAUDE.md: โปรเจกต์ใช้ fal.ai, key อยู่ .env (ผมเติมเอง ห้ามอ่าน),
ยิงภาพผ่าน scripts/generate.ts เท่านั้น, default อยู่ที่ DEFAULTS
เพิ่มกติกาสำคัญลง CLAUDE.md ด้วย: ห้ามยิง/สร้างภาพเองโดยที่ผมไม่ได้สั่ง — ยิงเฉพาะเมื่อผมสั่งชัดเจนเท่านั้น, ห้ามเจนภาพ "ตัวอย่าง/ทดลอง/มาให้ดูเฉย ๆ", ถ้าคิดว่าควรเจนเพื่อทดสอบให้ถามผมก่อนทุกครั้งแล้วรอผมตอบตกลง, ตอนวางแผน/อธิบายให้ใช้ข้อความเท่านั้นไม่ต้องยิงภาพประกอบ

SESSION 2

ตั้งค่า default + สร้าง skill ของ 2 โมเดล

🎯 เป้าหมาย: ปรับค่าตั้งต้น (default) ในการยิงภาพให้นิ่งและตรงใจก่อน แล้วค่อยเก็บวิธีทำงานเป็น "skill" (ปุ่มลัด) แยกของแต่ละโมเดล

2.1Sonnet · mediumทดสอบว่า key ยังใช้ได้ข้าม session

กำลังทำอะไร: เปิด session ใหม่แล้วลองยิงภาพ 1 ภาพ เพื่อยืนยันว่าการตั้งค่า key จาก Session 1 ยังอยู่และใช้งานได้ ไม่หายไปไหน
คุณลองทดสอบสร้างภาพด้วย nano banana 2 จำนวน 1 ภาพ ผ่าน key api ของ Fal ai ที่ผมเชื่อมไว้

2.2Sonnet · mediumขอดูค่า default ปัจจุบันของแต่ละโมเดล

กำลังทำอะไร: ให้ agent รายงานว่าตอนนี้แต่ละโมเดลตั้งค่าเริ่มต้นไว้ยังไงบ้าง (คุณภาพ สัดส่วน ความละเอียด ฯลฯ) เราจะได้รู้ว่าจุดไหนต้องปรับ
ผมอยากทราบ default เริ่มต้นในการยิงภาพของแต่ละโมเดล ทั้งคุณภาพ, สัดส่วน, ความละเอียด,
และ safety tolerance เพื่อที่ผมจะปรับเปลี่ยนได้ตามต้องการ

2.3Sonnet · highปรับ default ให้นิ่งถาวร

กำลังทำอะไร: ตรงนี้คือหัวใจของ session — เราตั้ง "กติกา" ให้ agent จำว่าจะยิงภาพแบบไหนเป็นมาตรฐาน เพื่อที่ครั้งต่อ ๆ ไปจะได้ไม่ต้องสั่งซ้ำทุกครั้ง กติกาแต่ละข้อมีเหตุผลกำกับ:
  • ข้อ 1 สั่งให้ภาพชัดระดับ 4K เสมอ (ถ้าโมเดลทำไม่ได้ก็ให้เอาที่สูงสุดเท่าที่ได้)
  • ข้อ 2 กำหนดสัดส่วนเริ่มต้นของแต่ละโมเดล — GPT Image 2 ต้องแปลงสัดส่วนเป็นขนาดพิกเซลจริง เพราะมันไม่ได้เลือกสัดส่วนจากตัวเลือกสำเร็จเหมือน Nano Banana
  • ข้อ 3 ล็อกคุณภาพ GPT ไว้ที่ระดับกลาง เพราะระดับสูงกิน credit เยอะมาก ป้องกันค่าใช้จ่ายบานปลายโดยไม่ตั้งใจ
  • ข้อ 4 เปิดปุ่ม safety ของ Nano ให้กว้างสุด (GPT ไม่มีปุ่มนี้)
  • ข้อ 5 ปลดล็อก Nano ให้ยิงได้มากกว่า 1 ภาพจริง (ค่าโรงงานมันล็อกไว้ที่ 1 ภาพ)
ปรับ default ถาวรตามกติกานี้ — แก้ทั้งใน DEFAULTS ของ scripts/generate.ts และเขียนเป็นกติกาภาษาคนใน CLAUDE.md ด้วย:
1) สร้างภาพระดับ 4K เสมอ ถ้าติดเงื่อนไขของโมเดล ให้ใช้ความละเอียดสูงสุดเท่าที่ทำได้
2) nano banana 2 → default ratio 4:5 | GPT image2 → default ratio 3:4
   (GPT image2 ใช้ image_size กำหนดขนาดเอง ขอบหาร 16 ลงตัว ให้แปลง 3:4 เป็นขนาดจริง)
3) GPT image2 → quality "medium" เท่านั้น แม้ผมสั่ง "คุณภาพสูงสุด" ก็ห้ามตีความเป็น high (กัน credit บาน)
4) nano banana 2 → safety_tolerance = 6 (GPT image2 ไม่มี param นี้)
5) nano banana 2 → ตั้ง limit_generations = false เพื่อให้ยิงได้มากกว่า 1 ภาพจริง
ทำเสร็จสรุปให้ผมว่าแก้ตรงไหนบ้าง

2.4Sonnet · mediumยิงภาพยืนยันว่า default ใหม่ทำงานจริง

กำลังทำอะไร: ลองยิงทั้ง 2 โมเดล โมเดลละ 2 ภาพ ด้วยคำสั่งเดียวกัน เพื่อพิสูจน์ว่าค่าที่เพิ่งตั้งมีผลจริง — ได้ 2 ภาพจริง (ไม่ใช่ 1) และออกมาตรงตามกติกา
ยิง nano-banana-2 และ gpt-image-2 อย่างละ 2 ภาพ ด้วย prompt เดียวกัน "premium product KV, studio bg"
เพื่อเช็คว่าออกมา 2 ภาพจริง และตรงตาม default ใหม่

2.5Sonnet · highสร้าง skill แยกของแต่ละโมเดล

กำลังทำอะไร: เปลี่ยนวิธีทำงานที่ตั้งไว้ให้กลายเป็น "ปุ่มลัด" (skill) — แยกเป็นของ Nano Banana 2 และของ GPT Image 2 คนละอัน เพื่อให้เราตั้งกติกาแต่ละโมเดลต่างกันได้ และเรียกใช้ง่าย ๆ แค่พิมพ์คำว่า "ยิงภาพ/เจนภาพ/แก้ภาพ" agent ก็จะรู้เองว่าต้องทำอะไร
คุณช่วยสร้าง skill ยิงภาพ nano banana2 และ GPTimage2 โดยแยกเป็นคนละ skill กัน
เพื่อที่ผมจะตั้งค่าและกำหนดกติกาได้แตกต่างกัน — ทั้งคู่เรียก scripts/generate.ts,
ใส่ allowed-tools ให้รันได้ไม่ต้องกดอนุญาต, description ให้ trigger ด้วยคำว่า "ยิงภาพ/เจนภาพ/แก้ภาพ"
ใส่กฎในตัว skill ด้วยว่า: ยิงภาพเฉพาะเมื่อถูกเรียกพร้อมคำสั่งชัดเจนเท่านั้น ไม่เจนเองตอนถูกโหลดหรือตอนวางแผน

2.6🔴 Opus · highตรวจว่าแนบรูปอ้างอิงได้ไหม (img-to-image)

กำลังทำอะไร: เช็คว่าทั้ง 2 skill รองรับการ "แนบรูปต้นแบบ" เพื่อให้ AI สร้างภาพต่อยอดจากรูปที่เราให้ไป (เรียกว่า image-to-image) — สำคัญมากเวลาต้องแก้ภาพเดิมหรือทำงานให้ตรงสไตล์ตัวอย่าง

⚠️ จุดที่พังบ่อย: fal.ai รับภาพอ้างอิงเป็น ลิงก์ (URL) เท่านั้น ไม่รับไฟล์ในเครื่อง และต้องยิงผ่านโหมด "แก้ภาพ" (endpoint /edit) คนละช่องกับการสร้างภาพใหม่ ถ้าสคริปต์ไม่ได้ทำ 2 อย่างนี้ การแนบรูปจะใช้ไม่ได้ — prompt ด้านล่างจึงสั่งให้ตรวจและแก้ให้ครบ พร้อมทดสอบจริง
คุณช่วยตรวจสอบให้หน่อยว่า ทั้ง 2 skill นี้สามารถยิงภาพแบบแนบ ref หรือ img to img ได้ไหม
ถ้ายังทำไม่ได้ ให้แก้ scripts/generate.ts ให้รองรับ:
1) --image เป็น path ในเครื่องแล้ว auto-upload ขึ้น fal storage (fal รับภาพอ้างอิงเป็น URL เท่านั้น — ใช้ fal.storage.upload)
2) เมื่อมี --image ให้สลับไปใช้ endpoint /edit ของโมเดลอัตโนมัติ ไม่ใช่ส่งภาพเข้า endpoint สร้างภาพปกติ
เปิดหน้า model บน fal.ai เช็คชื่อ edit endpoint + ชื่อ param ภาพ (image_url/image_urls) ล่าสุดก่อนแก้ แล้วทดสอบยิง img-to-image จริงอย่างละ 1 ภาพให้ดู
💡 เทคนิคสำคัญ: เขียน prompt ตอนแก้ภาพ (img2img) ให้ภาพ "เหมือน ref"

พอท่อส่งรูปทำงานแล้ว ยังมีอีกด่าน — วิธีเขียน prompt ถ้าเขียนผิด ภาพที่ออกมาจะ "ไม่เหมือนรูปต้นแบบ" เพราะโมเดลจะวาดใหม่หมดแทนที่จะแก้จากของเดิม

สาเหตุ: ถ้า prompt ยาว/บรรยายฉากทั้งหมด โมเดลจะเข้าใจว่า "อยากได้ภาพใหม่ตามคำบรรยาย" แล้วทิ้ง ref → ต้องเขียนแบบ "สั่งแก้" ไม่ใช่ "สั่งสร้าง"

สูตรเขียน prompt แก้ภาพ:
  1. ขึ้นต้นด้วย "จากภาพที่แนบ..." (based on the attached image...)
  2. บอก เฉพาะส่วนที่จะเปลี่ยน ส่วนเดิมไม่ต้องบรรยายซ้ำ
  3. เติมท้าย "เก็บองค์ประกอบเดิม (ตัวแบบ/มุม/สี/สัดส่วน) ให้เหมือนเดิม"
  4. ใช้ รูปหลักรูปเดียว ก่อน (แนบหลายรูปพร้อมกันทำให้โมเดลงงว่าจะเกาะอันไหน)
❌ แบบที่ทำให้ไม่เหมือน ref✅ แบบที่เกาะ ref
product on white backgroundจากภาพที่แนบ เปลี่ยนพื้นหลังเป็นสีขาว เก็บตัวสินค้าให้เหมือนเดิมทุกอย่าง
add a crown to the productจากภาพที่แนบ เพิ่มมงกุฎบนตัวสินค้า ห้ามเปลี่ยนรูปทรง/สี/มุมของสินค้าเดิม
กำลังทำอะไร: ฝัง "สูตรเขียน prompt แก้ภาพ" ข้างบนลงในตัว skill เลย เพื่อให้ทุกครั้งที่มี --image agent เขียน prompt แบบเกาะ ref ให้อัตโนมัติ ผู้ใช้คนอื่นจะได้ไม่เจอปัญหาภาพไม่เหมือนต้นแบบ
ฝังกฎ "วิธีเขียน prompt ตอนมี --image (img2img)" ลงในทั้ง 2 skill และ CLAUDE.md:
1) prompt ต้องสั้น บอกเฉพาะสิ่งที่จะเปลี่ยน ไม่บรรยายฉากทั้งหมดใหม่
2) ขึ้นต้นด้วย "จากภาพที่แนบ..." แล้วต่อด้วยสิ่งที่ต้องการเปลี่ยน
3) เติมท้ายว่า "เก็บองค์ประกอบเดิม (ตัวแบบ/มุม/สี/สัดส่วน) ให้เหมือนเดิม"
4) ใช้รูปหลักรูปเดียวก่อน เว้นแต่จำเป็นต้องใช้หลายรูป
แก้ตัวอย่าง command ใน CLAUDE.md ให้เป็น prompt แบบแก้ภาพตามกฎนี้ (เลิกใช้ prompt แบบสร้างใหม่)
แล้วยิงทดสอบ img2img จริง 1 ภาพด้วย prompt แบบใหม่ ให้ผมเทียบกับ ref ว่าเกาะต้นแบบไหม

2.7Sonnet · mediumอัปเดต CLAUDE.md + ทดสอบว่า skill ทำงานเอง

กำลังทำอะไร: ให้ agent จดลงสมุดโน้ตว่ามี skill 2 ตัวนี้แล้ว จากนั้นลองพิมพ์สั่งแบบภาษาพูดธรรมดา ๆ เพื่อดูว่า agent เรียก skill ขึ้นมาใช้เองได้ถูกต้องหรือเปล่า
อัปเดต CLAUDE.md ลิสต์ skill 2 ตัวนี้
ยิงภาพ poster ด้วย gpt image มา 2 ภาพ

(พิมพ์แบบธรรมชาติ เพื่อเช็คว่า Claude เรียก skill เองติดไหม)


SESSION 3

สร้าง Web Board สำหรับส่งงาน + skill รวม

🎯 เป้าหมาย: สร้างหน้าเว็บ (board) ไว้ดูและรีวิวงานทุกภาพในที่เดียว แล้วเก็บทั้งระบบเป็น skill ชื่อ board graphic ที่เรียกใช้ครั้งเดียวจบ

3.1Sonnet · mediumลองทำงานตัวอย่างขึ้นมาก่อน

กำลังทำอะไร: สั่งทำงานชุดตัวอย่าง (โปสเตอร์ + แบนเนอร์) เพื่อให้มี "ของจริง" ไว้ทดลองสร้าง board ในขั้นถัดไป
คุณช่วยทำ poster 2 ภาพ banner 2 ภาพ มีข้อความ "ต่อ API เป็นแล้ว ไม่ยากเลย ถ้ากลัวลืมก็แค่ย้อนแชทขึ้นไปอ่านดู"
คิด concept ให้เลย ผมเอาเป็นตัวอย่างเฉยๆ ใช้ GPTimage2 ในการสร้าง

3.2🔴 Opus · highสร้าง Web Board ไว้ตรวจงาน

กำลังทำอะไร: ให้ agent ทำหน้าเว็บที่เปิดดูในเครื่องเรา (local host) เพื่อรวมทุกภาพไว้ดูง่าย ๆ พร้อมโชว์ prompt + settings ของแต่ละภาพแบบครบจบในขั้นเดียว เราใส่ "วางแผนให้ดูก่อน" เพื่อให้มันเสนอวิธีทำมาให้เราดูก่อนลงมือ

รอบนี้เราล็อก stack (เครื่องมือที่ใช้สร้าง) ไว้ให้เลย ไม่ปล่อยให้ agent เลือกเอง: หน้าเว็บใช้ HTML ธรรมดา (เบา ไม่ต้องลง framework), เสิร์ฟด้วย Node.js (เครื่องมือตัวเดียวกับที่ยิงภาพอยู่แล้ว ไม่ต้องลง Python เพิ่ม), เก็บข้อมูลเป็น ไฟล์ JSON ธรรมดา (ไม่ต้องมีฐานข้อมูลให้ยุ่งยาก) — แต่ยังให้มันวางแผนมาให้ดูก่อนเริ่มเขียนเหมือนเดิม

📋 รายละเอียด settings ที่ต้องโชว์ (ป้ายกำกับเป็นภาษาอังกฤษ แยกช่อง อ่านง่าย ไม่ใช่ JSON ดิบ): Model · Mode (Text-to-Image / Image-to-Image) · Aspect Ratio · Image Size (แยกช่องกับ Aspect Ratio) · Resolution (โชว์เป็นกี่ K) · Quality · Cost (ค่ายิงต่อภาพ แปลงเป็นเงินบาท)
หมายเหตุ Cost: ราคาต่อภาพของแต่ละโมเดลอ่านจาก fal.ai แล้วคูณอัตราแลกเปลี่ยน USD→THB ที่ตั้งไว้จุดเดียว ปรับได้
ช่วยส่งงานขึ้น web board แบบ local host ให้ผมตรวจง่ายขึ้น แต่ละภาพต้องโชว์ prompt (มีปุ่ม copy) + settings ทั้งหมดที่ใช้
แสดง settings แยกเป็นช่อง ๆ ป้ายกำกับเป็นภาษาอังกฤษ อ่านง่าย ห้ามโชว์เป็นโค้ด JSON ดิบ (เบื้องหลังอ่านจาก manifest.json ได้ แต่ต้องแปลงเป็นข้อความก่อนแสดง) ประกอบด้วย:
- Model       : ชื่อโมเดล เช่น GPT Image 2 / Nano Banana 2
- Mode        : Text-to-Image หรือ Image-to-Image (ดูจากว่ามี --image ไหม)
- Aspect Ratio: เช่น 3:4  (แยกช่องกับ Image Size)
- Image Size  : ขนาดพิกเซลจริง เช่น 2448×3264
- Resolution  : โชว์เป็นกี่ K (1K/2K/4K/8K)
- Quality     : เช่น medium
- Cost        : ค่ายิงต่อภาพแปลงเป็นเงินบาท เช่น "~1.8 บาท" — อ่านราคาต่อภาพของแต่ละโมเดลจาก fal.ai แล้วคูณอัตราแลกเปลี่ยน USD→THB (ตั้งค่า rate ไว้จุดเดียว ปรับได้)
ให้แยกการส่งขึ้นบอร์ดเป็น "แต่ละครั้งที่สั่งเจน" (1 คำสั่งเจน = 1 ชุดงานบนบอร์ด) แม้ภาพจะอยู่ในโฟลเดอร์ session เดียวกัน
ใช้ stack แบบนี้: หน้าเว็บเป็น HTML ธรรมดา (CSS/JS ในไฟล์ ไม่ต้องใช้ framework), เสิร์ฟด้วย Node.js ให้เข้ากับ scripts/generate.ts ที่เป็น Node/TypeScript อยู่แล้ว (ไม่ต้องลง Python), เก็บข้อมูลเป็นไฟล์ JSON ธรรมดา (อ่านจาก manifest.json, รีวิวเซฟเป็น JSON) ไม่ต้องมีฐานข้อมูล
วางแผนให้ดูก่อน อย่าเพิ่งเขียน

3.3Sonnet · highเปิด preview ดูภาพได้ในตัว

กำลังทำอะไร: ทำให้เรากดดูภาพตัวอย่างได้เลยจากใน Claude Code โดยภาพแสดงตามสัดส่วนจริง และกดเพื่อดูภาพขนาดเต็มได้
ช่วยทำให้ผมเปิด preview ดูภาพบน web board บน claude code ได้เลย ภาพ preview แสดงตามสัดส่วนจริง กดแล้วเห็นภาพเต็ม

3.4Sonnet · mediumรอบกำกับทิศทางงาน (art direction)

กำลังทำอะไร: สั่งแก้งานเชิงศิลป์ของ poster ชุด "ต่อ API เป็นแล้ว" ที่เพิ่งทำในขั้น 3.1 — บอกให้ชัดว่าอยากได้แนวไหน (ลายเส้น ไม่เอาภาพเหมือนจริง, เพิ่มมิติ, คุมโทนสีให้ดูพรีเมียม) แล้วให้ยิงใหม่ทับของเดิมบน board เป็นตัวอย่างการ "วนแก้งาน" ที่ต่อเนื่องจากของจริงในขั้น 3.1
แก้ภาพ poster ชุด "ต่อ API เป็นแล้ว" ที่เพิ่งทำ ให้ดูทรงพลังขึ้น: 1) เปลี่ยนเป็นลายเส้น/graphic ไม่เอา realistic
2) มีมิติมากขึ้น เล่นระยะข้อความกับตัวแบบ 3) แบ่งสัดส่วนสีให้ภาพรวมโดดเด่น พรีเมียม เป็นโฆษณา
ใช้ nano banana2 และ GPT image2 อย่างละ 2 ภาพ สร้างใน board แทนที่ภาพเก่า

3.5Sonnet · highเก็บทั้งระบบเป็น skill ชื่อ board graphic

กำลังทำอะไร: รวบวิธีทำงานทั้งหมดที่ทำมา (ยิงภาพ + ขึ้น board) ให้เป็นปุ่มลัดเดียวชื่อ board graphic ครั้งหน้าเรียกอันเดียว มันจะทำให้ครบ และเราเลือกโมเดลได้
ช่วยสร้าง skill ชื่อ board graphic เมื่อเรียกใช้ คุณจะจดจำการทำงานที่เราทำกันไป
และสร้างภาพออกมาให้ โดยผมระบุโมเดลได้

3.6Sonnet · highใส่ระบบรีวิวลงในบอร์ด

กำลังทำอะไร: อัปเกรด board ให้มีปุ่มรีวิวรายภาพ — กดได้ว่า ผ่าน / ไม่ผ่าน / ทำใหม่ / แก้ไขภาพเดิม พร้อมช่องคอมเมนต์ 2 ช่อง (ช่องหนึ่งบอกแก้ภาพ อีกช่องบอกปรับปรุงวิธีทำงาน) และมีปุ่ม "คัดลอกคอมเมนต์ JSON" เพียงปุ่มเดียวต่อรอบงาน ที่รวมคอมเมนต์ทุกภาพไว้ในก้อนเดียว (ไม่ใช่แยกปุ่มรายภาพ) เพื่อก๊อปส่งกลับให้ agent ทำตามในรอบถัดไป
ปรับการส่งบอร์ด: แต่ละภาพกดเลือกได้ ผ่าน / ไม่ผ่าน / ทำใหม่ / แก้ไขภาพเดิม
(ผ่าน = ล็อกไว้ไม่คอมเมนต์ซ้ำ, ทำใหม่ = สร้างใหม่, ไม่ผ่าน = ตัดทิ้ง, แก้ไขภาพเดิม = ใช้ภาพล่าสุดเป็น ref img2img)
สถานะที่เลือกของแต่ละภาพต้องเปลี่ยนได้ตลอด — ถ้ากดผิด (เช่นเผลอกด "ผ่าน" แต่จริง ๆ อยากได้ "ทำใหม่") ให้กดปุ่มอื่นทับเพื่อเปลี่ยนสถานะได้เลย ไม่ล็อกตาย
ใส่ช่องคอมเมนต์ 2 ช่อง: ช่อง 1 คอมเมนต์แก้ภาพ (กรณีเลือกแก้ไขเดิม), ช่อง 2 คอมเมนต์ปรับปรุง skill
และเพิ่มปุ่ม "คัดลอกคอมเมนต์ JSON" เป็นปุ่มเดียวต่อ 1 ชุดงาน/รอบ ที่รวมคอมเมนต์ของทุกภาพในรอบนั้นไว้ใน JSON ก้อนเดียว กดครั้งเดียวคัดลอกทั้งหมดส่งกลับให้คุณได้สะดวก — ห้ามทำปุ่มคัดลอก JSON แยกรายภาพ

3.7Sonnet · mediumฝังกติกาเลือกโมเดลลงใน skill

กำลังทำอะไร: กำหนดให้ skill รู้เองว่างานสร้างใหม่ใช้ GPT Image 2 ส่วนงานแก้ภาพเดิมใช้ Nano Banana 2 เป็นมาตรฐาน เราจะได้ไม่ต้องระบุโมเดลทุกครั้ง
/board graphic ปรับปรุง skill: งาน graphic ใช้ GPT-image2 ตลอด เว้นแต่ผมจะสั่งให้ใช้โมเดลอื่น;

กรณีแก้ไขภาพเดิมใช้ nano banana 2 ตลอด เว้นแต่ผมจะสั่งให้ใช้โมเดลอื่น

3.8Sonnet · mediumให้ Claude สะท้อนบทเรียน

กำลังทำอะไร: ถาม agent ว่าจากการทำงานที่ผ่านมาได้เรียนรู้อะไร และมีจุดไหนที่ skill ควรปรับปรุง เป็นการให้มันช่วยมองหาจุดอ่อนเอง
ถึงตรงนี้คุณได้เรียนรู้อะไร และตรงไหนที่ต้องปรับปรุง skill ช่วยวิเคราะห์ให้ผมอ่าน

3.9Sonnet · highPack skill ให้ใช้ข้ามโปรเจกต์ได้จริง

กำลังทำอะไร: ย้าย skill ไปเก็บไว้ที่ส่วนกลางของเครื่อง พร้อมรวบไฟล์ที่มันต้องใช้ (สคริปต์ยิงภาพ + ไฟล์ board) ไปด้วย เพื่อให้เรียกใช้จากโปรเจกต์ไหนก็ได้โดยไม่พัง — ถ้าย้ายแค่ตัว skill อย่างเดียวมันจะหาไฟล์ที่ต้องใช้ไม่เจอ
ช่วย pack skill board graphic ให้ใช้ได้ทุกโปรเจกต์จริง:
- ย้าย skill ไป ~/.claude/skills/board-graphic/
- bundle สคริปต์ยิงภาพ + ไฟล์ board เข้าไปในโฟลเดอร์ skill แล้วอ้างผ่าน ${CLAUDE_SKILL_DIR}/...
- ให้สคริปต์อ่าน FAL_KEY จาก global env (บอกวิธีตั้งใน ~/.zshrc ให้ด้วย)
- อัปเดต CLAUDE.md ของโปรเจกต์ว่ามี skill นี้แล้ว
ทดสอบโดยจำลองเรียกจากนอกโฟลเดอร์

SESSION 4

งานลูกค้าจริง (ตั้งชื่อ session ตามชื่อแบรนด์)

🎯 เป้าหมาย: เอาทุกอย่างที่สร้างมาใช้กับงานลูกค้าจริง แล้วตกผลึกเป็น skill เฉพาะของแบรนด์นั้น เพื่อให้งานครั้งหน้าของแบรนด์เดิมทำได้เร็วโดยไม่ต้องเริ่มใหม่

4.1Sonnet · highป้อนบรีฟ + ตัวอย่างอ้างอิงให้ครบในก้อนเดียว

กำลังทำอะไร: ให้ข้อมูลแบรนด์กับ agent ครบ ๆ ในคราวเดียว — บรีฟงาน, โฟลเดอร์ภาพสไตล์ที่ลูกค้าชอบ, และเว็บลูกค้า (เพื่อดูสีโทนโลโก้ฟอนต์ของแบรนด์) แล้วให้มันสรุปแนวทางมาให้เรายืนยันก่อนเริ่มยิงจริง จะได้ไม่หลงทิศ
งานลูกค้าแบรนด์ [ชื่อแบรนด์] บรีฟ: [วางบรีฟ]
- โฟลเดอร์สไตล์อ้างอิง (pathname): [path]  ← อ่านดูแนวภาพที่ลูกค้าชอบ
- เว็บลูกค้า: [URL]  ← ดู CI ของแบรนด์ (สี โทน โลโก้ ฟอนต์)
ศึกษาทั้งสามอย่างก่อน แล้วสรุป CI + ทิศทางภาพให้ผมยืนยัน ก่อนเริ่มยิง

4.2Sonnet · mediumยิงงานตามบรีฟผ่าน skill

กำลังทำอะไร: สั่งให้ skill board graphic ยิงงานตามบรีฟแบรนด์ที่เพิ่งตกลงกันไว้ แล้วส่งขึ้น board ให้เราตรวจ
/board graphic ยิงงานตามบรีฟแบรนด์ [ชื่อแบรนด์] ส่งขึ้น board ให้ผมตรวจ

4.3Sonnet · mediumวนรีวิวผ่านบอร์ด

กำลังทำอะไร: ใช้ระบบรีวิวที่สร้างไว้ใน Session 3 — กดปุ่ม ผ่าน/ไม่ผ่าน/ทำใหม่/แก้เดิม ใส่คอมเมนต์ แล้วกดปุ่ม "คัดลอก JSON" เอาผลไปวางกลับให้ agent ทำตามในรอบถัดไป วนแบบนี้จนพอใจ
นี่คอมเมนต์รอบนี้ครับ [วาง JSON]  ทำตามนี้แล้วส่งบอร์ดใหม่

4.4Sonnet · highตกผลึกเป็น skill ของแบรนด์

กำลังทำอะไร: พอได้งานที่พอใจแล้ว ให้ agent สร้าง skill เฉพาะของแบรนด์นี้ ที่ล็อกสไตล์ สี โทน และอ้างอิงภาพที่ "ผ่าน" ไว้เป็นตัวอย่าง ครั้งหน้าเรียก skill นี้แล้วยิงงานแบรนด์นี้ได้เลยโดยไม่ต้องบรีฟใหม่
งานเป็นที่พอใจแล้ว สร้าง skill ชื่อ [brand-name] ที่ล็อก CI + สไตล์ prompt ของแบรนด์นี้ไว้
อ้างอิงภาพที่ "ผ่าน" เป็นตัวอย่าง ครั้งหน้าเรียกแล้วยิงงานแบรนด์นี้ได้เลยโดยไม่ต้องบรีฟใหม่
แล้วอัปเดต CLAUDE.md เพิ่ม skill แบรนด์นี้

ต่อไป

งานลูกค้าใหม่ในอนาคต

เปิด session ใหม่ ตั้งชื่อตามแบรนด์ แล้วทำซ้ำขั้นตอนใน Session 4
ส่วนแบรนด์เดิมที่เคยทำ skill ไว้แล้ว เรียก skill ของแบรนด์ได้เลย:

/[brand-name] ทำ IG post 3 ภาพ ธีมโปรโมชั่นสงกรานต์