Prompt Playbook

AI Agent for Video Production

คู่มือ prompt สำหรับสั่งงาน AI Agent (Claude Code) ให้ผลิตวิดีโอให้เรา — ตั้งแต่ยิงภาพสตอรี่บอร์ด → แปลงเป็นวิดีโอ → ตัดต่อ เขียนไว้สำหรับคนที่ ไม่เคยใช้ AI agent มาก่อน ไม่เคยต่อ API key มาก่อน และไม่เคยเรียนคลาส AI Agent for Graphic Design มาก่อน — อ่านจากบนลงล่างแล้วทำตามได้เลย ก๊อปข้อความในกล่องดำไปวางใน Claude Code ตามลำดับแต่ละ session กดปุ่ม Copy มุมขวาบนของแต่ละกล่อง

เริ่มที่นี่

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

ก่อนเริ่ม เรามาทำความรู้จักคำศัพท์ที่จะเจอตลอดทั้งเล่มกันก่อน — อ่านช้า ๆ ครั้งเดียว แล้วทุกอย่างข้างหน้าจะเข้าใจง่ายขึ้นมาก

🤖 "Agent" คืออะไร?
Agent คือโปรแกรม AI ที่ไม่ได้แค่ "ตอบคำถาม" แบบแชตบอตทั่วไป แต่ ลงมือทำงานให้จริง ได้ — สร้างไฟล์ รันคำสั่ง เรียกใช้บริการภายนอก (เช่นสั่งสร้างภาพ/วิดีโอ) ตามที่เราสั่ง ในคู่มือนี้ agent ที่เราใช้คือ Claude Code เปิดใช้งานผ่านโปรแกรม Terminal (Mac) หรือ PowerShell (Windows) — พิมพ์สั่งเป็นภาษาพูดธรรมดา ไม่ต้องเขียนโค้ดเป็นเอง
🔌 "API key" คืออะไร?
งานนี้เราจะสั่งให้ agent ไปเรียกใช้บริการสร้างภาพ/วิดีโอจากเว็บชื่อ fal.ai (ตัวกลางที่รวมโมเดล AI สร้างภาพ/วิดีโอหลายเจ้าไว้ที่เดียว) การจะเรียกใช้ได้ต้องมี "รหัสผ่าน" เฉพาะของเราเรียกว่า API key — เหมือนบัตรสมาชิกที่ใช้แล้วเก็บเงินจากบัญชีเรา ต้องเก็บให้ดี ห้ามหลุดไปอยู่ในมือคนอื่น (วิธีตั้งแบบปลอดภัยอยู่ใน Session 1)
🧠 Context window — "ความจำชั่วคราว" ของ AI (ต้นตอของทุกอย่าง)
AI agent จำบทสนทนาได้ จำกัด เปรียบเหมือนโต๊ะทำงานที่มีพื้นที่จำกัด — คุยกันยาว ๆ ไปเรื่อย ๆ ของเก่าจะถูกดันตกโต๊ะ (= มัน "ลืม" สิ่งที่คุยตอนต้น) และยิ่งบทสนทนายาว ยิ่งเปลือง token
👉 ปัญหานี้คือเหตุผลที่เราต้องมี 2 เครื่องมือข้างล่าง เพื่อ "ฝากความจำ" ไว้นอกโต๊ะ
📓 ไฟล์ .md (CLAUDE.md) — "สมุดโน้ตถาวร" ของโปรเจกต์
เป็นไฟล์ข้อความธรรมดาที่ agent อ่านทุกครั้งที่เปิดงานใหม่ ใช้จดกฎ/วิธีทำงาน/ค่าตั้งต้นสำคัญไว้ → พอเปิด session (1 รอบการคุยกับ agent) ใหม่ มันอ่านสมุดนี้แล้ว "จำได้" ทันที ไม่ต้องเล่าใหม่
(.md = ไฟล์ Markdown ข้อความล้วน · CLAUDE.md คือชื่อไฟล์ที่ Claude Code อ่านอัตโนมัติ)
⚡ Skill — "ปุ่มลัดสำเร็จรูป"
เมื่อเราสอน agent ทำอะไรจนนิ่งแล้ว เก็บวิธีนั้นเป็น skill (ไฟล์ชุดคำสั่ง) ครั้งหน้าเรียกครั้งเดียวมันทำครบเลย ไม่ต้องอธิบายใหม่ทุกครั้ง เช่นพิมพ์ /nanobanana2forProduction แล้ว agent จะรู้เองว่าต้องทำอะไร
ข้อดี: ประหยัด context + ได้ผลสม่ำเสมอ เพราะความฉลาดถูกฝังในไฟล์ ไม่ต้องพึ่งความจำชั่วคราว
🎬 กล่องสำคัญเฉพาะวิดีโอ — "Pipeline การผลิตวิดีโอ"
งานวิดีโอ ไม่จบในขั้นเดียว แต่เป็นสายพาน 4 ทอด:
① ภาพนิ่ง (frame)② ร้อยเป็น Storyboard ต่อเนื่อง③ แปลงภาพเป็นวิดีโอ (image-to-video)④ ตัดต่อ + ใส่เสียง
แต่ละทอดมี skill ของตัวเอง และ ผลของทอดก่อนหน้าเป็นวัตถุดิบของทอดถัดไป — นี่คือเหตุผลที่เราต้องคุม "ความต่อเนื่อง" (ตัวละคร/ฉากเดิม) ให้ดีตั้งแต่ต้นทาง
🗺️ แผนภาพรวมทั้งเล่ม
SessionโฟกัสSkill ปลายทาง
1ต่อ API key + ผูกโมเดลภาพ+วิดีโอทั้งหมดในคำสั่งเดียวฐานร่วม (สคริปต์ 2 ตัว)
2ตั้ง default ภาพนิ่ง + สร้าง skill ยิงภาพnanobanana2forProduction
3Production Board ส่งงาน — เริ่มง่าย → อัปเกรดเป็นระบบรีวิวBoardforProduction
4Storyboard ต่อเนื่อง (เรียนจากบทเรียนจริง)storyboard-builder
5เจนวิดีโอ + skill เรียนรู้อัตโนมัติ + orchestrator รวมงานVideoForProduction / Update / Film Director
6ตัดต่อวิดีโอ: พื้นฐาน + ขั้นสูงeditor (ffmpeg) / remotion-editor
ต่อไปงานโปรเจกต์จริง → เรียก Film Director(วนใช้)

กฎทอง

ใช้กับทุก session

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

  1. บอกให้ครบ 3 อย่างในคำสั่งเดียว: บริบท → เป้าหมาย → ข้อจำกัด
    เช่น "ผมทำวิดีโอโฆษณา (บริบท) อยากได้สตอรี่บอร์ด 6 ช็อต (เป้าหมาย) ตัวละครเด็กผู้หญิงคนเดิมทุกช็อต (ข้อจำกัด)" ยิ่งบอกครบ agent ยิ่งเดาใจถูก
  2. งานใหญ่ ให้สั่งวางแผนก่อนเสมอ — เติมท้ายคำสั่งว่า "วางแผนให้ดูก่อน อย่าเพิ่งเขียนโค้ด"
  3. ทำให้นิ่งก่อน แล้วค่อยเก็บเป็น skill — ลองสั่งจนได้ผลลัพธ์ที่พอใจซ้ำ ๆ ก่อน แล้วค่อยบอกให้มันจำเป็น "skill"
  4. ปิดท้ายทุก session ด้วยการให้มันจดบันทึก — สั่งให้ อัปเดต CLAUDE.md หรือ pack skill เสมอ ถ้าไม่จด พอเปิด session ใหม่มันจะลืม
🆕 ข้อ 5 เฉพาะวิดีโอ — "วิดีโอแพง ต้อง confirm ก่อนยิงเสมอ"
การยิงวิดีโอ 1 คลิป แพงกว่าภาพนิ่งหลายเท่า และกินเวลานาน ดังนั้นก่อนยิงวิดีโอทุกครั้ง agent ต้องถามยืนยันก่อน:
(1) ใช้โมเดลอะไร · (2) ความยาวกี่วินาที · (3) ต้องการเสียงไหม (วิดีโอ default ปิดเสียง) · (4) ยิงกี่ช็อต — แล้วโชว์ราคารวมโดยประมาณเป็นบาทก่อนเริ่ม
เคล็ดลับกันลืม: ทุกครั้งที่เปิด session ใหม่ ให้พิมพ์ prompt นี้เป็นอันแรก เพื่อให้ agent ทบทวนว่ามีปุ่มลัด (skill) อะไรให้ใช้บ้าง และ pipeline ตอนนี้ทำงานยังไง
อ่าน CLAUDE.md แล้วบอกผมว่าตอนนี้มี skill อะไรบ้าง และ pipeline ยิงภาพ/วิดีโอทำงานยังไง
🤖 ป้ายแนะนำโมเดล Claude (มุมขวาของแต่ละหัวข้อ)
แต่ละขั้นมีป้ายบอกว่าควรใช้โมเดล Claude ตัวไหนรัน เพื่อให้ได้คุณภาพดี + ประหยัด token
หลักคิด: จ่ายแพง (Opus/high) ตอน "สร้างของยาก" · ประหยัด (Sonnet) ตอน "ใช้ของที่สร้างไว้แล้ว"
🔴 Opus · high งานยาก/ตรรกะสำคัญ Sonnet · high สร้าง skill/โครงสร้าง Sonnet · medium รัน skill / แก้เล็ก / งานสร้างสรรค์ 🙋 ทำเอง เราพิมพ์ใน Terminal เอง 📖 อ่านเอง ส่วนอ่านอย่างเดียว ไม่ต้องสั่ง AI
สลับโมเดลใน Claude Code: พิมพ์ /model — สลับกลาง session ได้ ไม่เสีย context · ป้ายนี้คือโมเดล Claude ที่รันงาน คนละตัวกับโมเดลสร้างภาพ/วิดีโอบน fal.ai

SESSION 1

ต่อ API key + ผูกโมเดลภาพ+วิดีโอทั้งหมดในคำสั่งเดียว

🎯 เป้าหมาย: ตั้ง API key แบบปลอดภัย + สร้างสคริปต์กลาง 2 ตัว (ยิงภาพ / ยิงวิดีโอ) + ผูกโมเดลทั้งหมดที่จะใช้ทั้งเล่มไว้ในคราวเดียว + ทดสอบยิง 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 ของเราไปวาง ทำตามฝั่งที่ตรงกับเครื่องตัวเอง
⚠️ จุดที่พลาดบ่อยที่สุด — ต้อง cd เข้าโฟลเดอร์โปรเจกต์ก่อนเสมอ!
ก่อนพิมพ์คำสั่ง cp/Copy-Item ต้องพา Terminal "เข้าไปอยู่ใน" โฟลเดอร์โปรเจกต์ก่อนด้วย cd ถ้าข้ามขั้นนี้จะเจอ error .env.example: No such file or directory

🍎 สำหรับ macOS

เปิด Terminal พิมพ์ cd เว้นวรรค แล้ว ลากโฟลเดอร์โปรเจกต์จาก Finder มาวาง แล้วกด Enter:

macOS Terminal
cd '/path/to/โฟลเดอร์โปรเจกต์ของคุณ'   # ← ลากโฟลเดอร์จาก Finder มาวางแทน path นี้
ls -a                                  # ต้องเห็นไฟล์ .env.example ในลิสต์
cp .env.example .env                   # ก๊อปไฟล์ตัวอย่างเป็นไฟล์จริงชื่อ .env
open -e .env                           # เปิดไฟล์ .env ด้วย TextEdit

🪟 สำหรับ Windows

เปิด PowerShell (ในโฟลเดอร์โปรเจกต์ พิมพ์ powershell ในแถบ address ของ File Explorer แล้ว Enter) จากนั้น:

Windows PowerShell
cd 'C:\path\to\โฟลเดอร์โปรเจกต์ของคุณ'   # ← ลากโฟลเดอร์มาวางแทน path นี้
dir -Force                               # ต้องเห็นไฟล์ .env.example ในลิสต์
Copy-Item .env.example .env              # ก๊อปไฟล์ตัวอย่างเป็นไฟล์จริง
notepad .env                             # เปิดไฟล์ .env ด้วย Notepad

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

ในไฟล์ที่เปิดขึ้นมา จะเห็น FAL_KEY=your_fal_key_here ให้แก้เป็นแบบนี้ แล้ว เซฟ:

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 ใช้งานได้

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

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

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

🍎 macOS

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

🪟 Windows

Windows PowerShell
setx FAL_KEY "[API KEY]"
หลังตั้งบน Windows ต้อง ปิดแล้วเปิด Terminal/Claude Code ใหม่ ค่าถึงจะมีผล

1.6🔴 Opus · highผูกโมเดลภาพ+วิดีโอ "ทั้งหมด" ในคำสั่งเดียว

กำลังทำอะไร: คลาสนี้จะใช้โมเดลสร้างภาพ 1 ตัว และโมเดลสร้างวิดีโออีก 5 ตัว — แทนที่จะผูกทีละตัวทีละ session เราให้ Claude ทำสคริปต์กลาง 2 ไฟล์ (ยิงภาพ / ยิงวิดีโอ) แล้วลงทะเบียนโมเดลทั้งหมดไว้รอเลยตั้งแต่ต้น ครั้งหน้าจะสลับใช้โมเดลไหนก็พิมพ์ชื่อสั่งได้ทันที ไม่ต้องมาผูกใหม่

⚠️ สำคัญ: ชื่อโมเดล/endpoint บน fal.ai อาจเปลี่ยนหรือมีตัวสะกดหลายแบบ ให้ Claude เปิดหน้าโมเดลจริงบน fal.ai เช็คชื่อ endpoint + พารามิเตอร์ล่าสุดก่อนผูกโค้ดเสมอ อย่าเดา
ต่อ API key จาก fal.ai แล้วเรียกโมเดลทั้งหมดที่จะใช้ในคลาสนี้ให้ผมหน่อยครับ:
- ภาพนิ่ง: nano banana 2
- วิดีโอ: Veo 3.1 lite, Google Omni Flash, Kling 2.6, Kling 3.0, Seedance 2.0 mini

ทำสคริปต์กลาง 2 ไฟล์:
1) scripts/generate.ts — ยิงภาพ รองรับ nano banana 2 (text-to-image และ image-to-image)
2) scripts/generate-video.ts — ยิงวิดีโอ รองรับโมเดลทั้ง 5 ตัวข้างบน ในไฟล์เดียวกัน (เลือกด้วย --model)
เก็บ "ทะเบียนโมเดล" (ชื่อ → endpoint จริงบน fal.ai) ไว้ที่จุดเดียวในแต่ละไฟล์ ก่อนผูกโค้ดให้เปิดหน้าโมเดลแต่ละตัวบน fal.ai เช็คชื่อ endpoint และพารามิเตอร์ล่าสุดก่อนเสมอ อย่าเดาชื่อเอง ถ้าโมเดลไหนหาบน fal.ai ไม่เจอให้บอกผมแทนที่จะข้ามเงียบ ๆ

เรื่องการเก็บไฟล์ผลลัพธ์ (ใช้กับทั้ง 2 สคริปต์):
- เซฟไฟล์ลง output/<ชื่อ session>/ — แยกโฟลเดอร์ตาม session (ขึ้น session ใหม่ค่อยสร้างโฟลเดอร์ใหม่ / อยู่ session เดิมเซฟรวมโฟลเดอร์เดิม)
- ตั้งชื่อไฟล์ตามภาพ/วิดีโอที่สั่งในรอบนั้น (เช่นวันเวลาที่เจน) กันชื่อไฟล์ชนกัน
- เขียนไฟล์ manifest.json ไฟล์เดียวต่อ session (append ต่อท้ายเสมอ ไม่เขียนทับ): เก็บชื่อไฟล์ + prompt + setting จริงที่ใช้ยิง ของทุกไฟล์ที่เจนในนั้น

ทั้งสองสคริปต์อ่าน FAL_KEY จาก env เท่านั้น ห้ามอ่าน/print ค่าใน .env
วางแผนให้ดูก่อนว่าจะ map ชื่อโมเดลแต่ละตัวไป endpoint ไหน แล้วค่อยลงมือ

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

เขียน CLAUDE.md: โปรเจกต์ผลิตวิดีโอ ใช้ fal.ai, key อยู่ .env (ผมเติมเอง ห้ามอ่าน)
ยิงภาพผ่าน scripts/generate.ts (nano banana 2), ยิงวิดีโอผ่าน scripts/generate-video.ts
(Veo 3.1 lite / Google Omni Flash / Kling 2.6 / Kling 3.0 / Seedance 2.0 mini)
กติกาสำคัญ: ห้ามยิง/สร้างภาพหรือวิดีโอเองโดยที่ผมไม่ได้สั่ง, ห้ามเจน "ตัวอย่าง" เอง,
จะยิงต้องถามก่อนทุกครั้ง, ตอนวางแผนใช้ข้อความเท่านั้นไม่ต้องยิงภาพประกอบ

SESSION 2

ตั้ง default ภาพนิ่ง + สร้าง skill ยิงภาพ

🎯 เป้าหมาย: ตั้ง default ภาพนิ่งให้เหมาะกับ frame วิดีโอ (16:9) + สร้าง skill nanobanana2forProduction + ทดสอบ img-to-image

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

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

2.2Sonnet · mediumขอดูค่า default ปัจจุบัน

กำลังทำอะไร: ให้ agent รายงานว่าตอนนี้ตั้งค่าเริ่มต้นในการยิงภาพไว้ยังไงบ้าง จะได้รู้ว่าจุดไหนต้องปรับ
ช่วยบอก default ในการตั้งค่าก่อนที่จะยิงภาพ โมเดล nano banana 2 ให้หน่อยครับ
ว่าตั้ง default ยังไง เพื่อที่ผมจะได้ปรับเปลี่ยนการตั้งค่าตามที่ผมต้องการ

2.3Sonnet · highปรับ default ให้เป็นมาตรฐานถาวร

กำลังทำอะไร: ตั้ง "กติกา" ให้ agent จำว่าจะยิงภาพแบบไหนเป็นมาตรฐาน เพื่อที่ครั้งต่อ ๆ ไปไม่ต้องสั่งซ้ำทุกครั้ง — สังเกตว่า resolution ตั้งไว้ที่ 1K เท่านั้น ไม่ใช่ 4K เหมือนงานกราฟิกทั่วไป เพราะภาพพวกนี้เป็น "เฟรมตั้งต้น" ที่จะถูกเอาไปแปลงเป็นวิดีโอต่อใน Session 5 — ยิง 4K ไปก็เปลืองโดยไม่จำเป็น
  • resolution = 1K เสมอ เว้นแต่สั่งให้ตั้งแบบอื่น
  • aspect_ratio = 16:9 เสมอ (สัดส่วนจอวิดีโอ) เว้นแต่สั่งให้ตั้งแบบอื่น
  • safety_tolerance = ระดับ 6 (หลวมสุด) เป็น default ถาวร
  • โหมด default = text-to-image เสมอ ถ้าไม่ได้แนบภาพ ref (--image) — ถ้าแนบภาพมาให้สลับเป็น image-to-image อัตโนมัติ
หมายเหตุ: ไม่ตั้ง default ให้เรื่องจำนวนภาพต่อครั้ง (limit ของจำนวน batch) — ปล่อยตามพฤติกรรมปกติของโมเดล ไม่ต้อง lock ค่านี้
คุณช่วยปรับ default ถาวรให้ผมตามกติกาของผมดังนี้:
1. ค่า resolution ตั้งค่าเป็น 1K เสมอ เว้นแต่ผมจะสั่งให้ตั้งแบบอื่น
2. aspect_ratio ตั้งค่าเป็นขนาด 16:9 เสมอ เว้นแต่ผมจะสั่งให้ตั้งแบบอื่น
3. ตั้งค่า default safety tolerance เป็นระดับ 6 ปรับเป็น default ถาวรหลังจากนี้เมื่อเรียกใช้ nano banana 2
4. โมเดล nano banana 2 สามารถแนบภาพ ref ในการยิงภาพได้ และใช้งานแบบ img to img ได้
   แต่ถ้าไม่ได้สั่งให้ยิงภาพแบบ img to img ให้ set default เป็น text to img
แก้ทั้งใน DEFAULTS ของ scripts/generate.ts และเขียนเป็นกติกาภาษาคนใน CLAUDE.md ด้วย
ทำเสร็จสรุปให้ผมว่าแก้ตรงไหนบ้าง

2.4Sonnet · highสร้าง skill ยิงภาพ ชื่อ /nanobanana2forProduction

กำลังทำอะไร: เปลี่ยนวิธีทำงานที่ตั้งไว้ให้กลายเป็น "ปุ่มลัด" (skill) ตั้งชื่อให้ชัดว่าใช้กับงานโปรดักชันวิดีโอ เรียกใช้ได้ทุก session ต่อจากนี้โดยไม่ต้องอธิบายซ้ำ
ช่วยสร้าง skill เจนภาพผ่าน Nano banana 2 ตั้งค่า default setting ตามที่ตกลงกันไว้
ตั้งชื่อ skill ว่า /nanobanana2forProduction และให้ผมเรียกใช้ skill นี้ได้ในทุก session
ใส่ allowed-tools ให้รันได้ไม่ต้องกดอนุญาต, ใส่กฎในตัว skill ว่า: ยิงภาพเฉพาะเมื่อถูกสั่งชัดเจนเท่านั้น
ไม่เจนเองตอนถูกโหลดหรือตอนวางแผน

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

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

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

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

อัปเดต CLAUDE.md ลิสต์ skill /nanobanana2forProduction นี้
ยิงภาพ frame เมืองกลางคืน 2 ภาพ

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


SESSION 3

Production Board ส่งงาน

🎯 เป้าหมาย: สร้างหน้าเว็บ (board) ที่ส่งงานได้ทั้งภาพและวิดีโอ (template เดียวกัน) พร้อมระบบรีวิวในตัว แล้วเก็บทั้งหมดเป็น skill BoardforProduction

3.1Sonnet · mediumลองยิงภาพตัวอย่างขึ้นมาก่อน

กำลังทำอะไร: สั่งยิงภาพชุดตัวอย่าง เพื่อให้มี "ของจริง" ไว้ทดลองสร้าง board ในขั้นถัดไป
/nanobanana2forProduction ทำภาพผู้หญิงเอเชียกำลังนั่งที่สวนสาธารณะกับผู้ชายเอเชีย 3 ภาพ

3.2🔴 Opus · highสร้าง Production Board (1 รอบสั่งเจน = 1 ชุด · รองรับภาพและวิดีโอ)

กำลังทำอะไร: สร้างบอร์ดที่ส่งงาน แยกเป็นรอบ — รอบไหนเจนภาพก็ส่งบอร์ดเป็นภาพ, รอบไหนเจนวิดีโอ (จะมาถึงใน Session 5) ก็ส่งบอร์ด (template เดียวกัน) เป็นวิดีโอเล่นได้ ล็อก stack ให้เลย: HTML ธรรมดา + เสิร์ฟด้วย Node.js + เก็บข้อมูลเป็น JSON ไม่ต้องมีฐานข้อมูล
สร้าง Production Board แบบ local host (HTML ธรรมดา + เสิร์ฟด้วย Node.js + เก็บข้อมูลเป็น JSON ไม่ต้องมี DB):
- ส่งงานแยกเป็น "แต่ละครั้งที่สั่งเจน" (1 คำสั่งเจน = 1 ชุดงาน/รอบ บนบอร์ด) แม้อยู่ session เดียวกัน
- การ์ดแต่ละช็อตแสดง media 1 ชิ้น และ template เดียวกันรองรับทั้ง 2 แบบ:
  รอบที่เจนภาพ → การ์ดโชว์ "ภาพ", รอบที่เจนวิดีโอ → การ์ดโชว์ "วิดีโอเล่นได้"
  (ใช้หน้าตา/เลย์เอาต์เดียวกัน ไม่แยกช่องภาพ-วิดีโอในการ์ดเดียว — ดูจากชนิดงานของรอบนั้น)
- เรียงตามลำดับที่สั่งเจน พร้อมชื่อกำกับแต่ละภาพ/ช็อต
- แต่ละการ์ดโชว์ prompt (ปุ่ม copy) + settings แยกช่อง ป้ายอังกฤษ ไม่โชว์ JSON ดิบ:
  Model · Mode (text-to-image/image-to-image/text-to-video/image-to-video) · Aspect Ratio · Resolution (1K/2K/4K/8K · 480p/720p/1080p) · File Type · Duration (เฉพาะรอบวิดีโอ) · Cost (บาท)
- ภาพแสดงตามสัดส่วนจริง คลิกดูเต็ม · วิดีโอเล่นในบอร์ด + คลิกดูเต็ม
- อ่าน Cost จากราคาต่อหน่วยบน fal.ai × อัตรา USD→THB (ตั้ง rate จุดเดียว)
ส่งชุดภาพทดสอบรอบนี้ขึ้นบอร์ดเป็นชุดแรก วางแผนให้ดูก่อน อย่าเพิ่งเขียน

3.3Sonnet · highใส่ระบบรีวิว + เปิด preview บน Claude Code

กำลังทำอะไร: เพิ่มปุ่มรีวิวรายภาพ/ช็อต — กดได้ว่า ผ่าน / ไม่ผ่าน / ทำใหม่ / แก้ไขเดิม พร้อมช่องคอมเมนต์ และมีปุ่ม "คัดลอกคอมเมนต์ JSON" รวมทุกภาพในรอบนั้นไว้ก้อนเดียว เพื่อก๊อปส่งกลับให้ agent ทำตามในรอบถัดไป แล้วทำให้เราเปิดดูบอร์ดได้เลยจากใน Claude Code
เพิ่มระบบรีวิวต่อภาพ/ช็อต: ผ่าน / ไม่ผ่าน / ทำใหม่ / แก้ไขเดิม (เปลี่ยนสถานะได้ตลอด ไม่ล็อกตาย)
ช่องคอมเมนต์ 2 ช่อง (แก้งาน / ปรับ skill) + ปุ่ม "คัดลอกคอมเมนต์ JSON" ปุ่มเดียวต่อรอบ รวมทุกภาพ/ช็อต
แล้วทำให้ผมเปิด preview บอร์ดบน Claude Code ได้เลย

3.4Sonnet · highเก็บเป็น skill ชื่อ BoardforProduction

กำลังทำอะไร: รวบวิธีทำงานที่เพิ่งทำทั้งหมดให้เป็นปุ่มลัดเดียว ครั้งหน้าเรียกอันเดียวมันทำให้ครบ (สังเกตว่ายังไม่รวม skill ทำ storyboard เข้ามาด้วย — ตัวนั้นจะสร้างแยกใน Session 4)
สร้าง skill ชื่อ BoardforProduction — จำการส่งงานขึ้น Production Board แบบ 1 รอบสั่งเจน = 1 ชุด
(รองรับทั้งภาพและวิดีโอด้วย template เดียวกัน) + ระบบรีวิว
อัปเดต CLAUDE.md ลิสต์ skill นี้ และสรุปสถานะ pipeline ปัจจุบันให้ครบ
✅ จบ Session 3: มี skill BoardforProduction ที่ส่งงานได้ทั้งภาพและวิดีโอ พร้อมระบบรีวิวในตัว พร้อมใช้กับทุก session ถัดจากนี้

SESSION 4

Storyboard ต่อเนื่อง — เรียนจากบทเรียนจริง

🎯 เป้าหมาย: ยิงสตอรี่บอร์ดหลายช็อตที่ตัวละคร/ฉาก/โทนต่อเนื่องกันจริง ผ่านการลองผิดลองถูกทีละจุด แล้วสรุปเป็นกฎถาวร เก็บเป็น skill storyboard-builder
📌 วิธีอ่าน session นี้: ตั้งใจเขียนให้เห็น "ของจริง" ว่าตอนสั่งงานครั้งแรกมักไม่ได้ผลลัพธ์ที่สมบูรณ์ในทีเดียว — ค่อย ๆ สั่งแก้ทีละจุดตามลำดับด้านล่าง แล้วท้าย session จะรวบทุกบทเรียนเป็นกฎถาวรในตัว skill เพื่อไม่ต้องแก้ปัญหาเดิมซ้ำอีกในอนาคต

4.1Sonnet · highลองยิงครั้งแรก — 6 ช็อตพร้อมกัน (parallel)

กำลังทำอะไร: แนบลิงก์อ้างอิงเรื่อง/บรีฟ + ภาพตัวละครที่ต้องใช้ แล้วขอให้ยิงทั้ง 6 ช็อตพร้อมกันในคราวเดียวเพื่อความเร็ว
[แนบลิงก์โฟลเดอร์อ้างอิง/บรีฟเรื่อง]
คุณสร้าง 6 shot storyboard เกี่ยวกับผู้หญิงเอเชียตื่นนอน ออกไปสวนสาธารณะ และนั่งดูพระอาทิตย์ตกตอนเย็น
จำนวน 6 ภาพ โดยใช้ตัวละครในภาพนี้ "[path ไฟล์ภาพตัวละคร]" แล้วส่งผมผ่านบอร์ดส่งงาน
ให้รัน/สร้างภาพทั้ง 6 ภาพพร้อมกัน (parallel) ไม่ใช่ยิงทีละภาพ

4.2🔴 Opus · highแก้ปัญหาที่เจอ — ลำดับ, ชื่อช็อต, resolution, โทน, มุมกล้อง

เจออะไร: พอเปิดบอร์ดมาดูละเอียด เจอหลายจุด — ลำดับช็อตไม่ตรงเนื้อเรื่อง, ชื่อกำกับแต่ละช็อตเอา prompt มาเขียนแทนที่จะเป็นชื่อฉาก, resolution ไม่ตรงกับ default ของ skill, โทนภาพแต่ละช็อตไม่ต่อเนื่องกัน, มุมกล้องซ้ำเดิมไม่หลากหลาย
คุณต้องปรับปรุงดังนี้:
1. Storyboard ไม่เรียงตามเนื้อเรื่อง ให้เรียงตามเนื้อเรื่อง
2. ชื่อกำกับแต่ละช็อตควรเป็น "ชื่อฉาก" ไม่ใช่เอา prompt มาเขียน
3. Resolution ไม่ถูกต้อง ต้องทำภาพตาม default ของ /nanobanana2forProduction เสมอ
4. Mood tone ทำออกมาให้โทนที่ต่อเนื่องกันทั้ง 6 ช็อต
5. มุมกล้องต้องหลากหลาย

4.3Sonnet · highเพิ่ม cinematic reference คุมโทนทั้งชุด

กำลังทำอะไร: แนบภาพสไตล์ภาพยนตร์ (cinematic reference) เพื่อคุมโทนทั้ง 6 ช็อตให้ดูเป็นมืออาชีพขึ้น — สั่งให้ใช้ทั้งภาพอ้างอิงและคำบรรยายโทนไปพร้อมกันตั้งแต่คำสั่งแรก ไม่ต้องรอให้ agent ถามกลับ
คุณช่วยทำมาใหม่ทั้งหมด โดยให้ reference cinematic style จากภาพนี้ด้วย "[path ไฟล์ภาพสไตล์ภาพยนตร์]"
โดยใช้วิธีแนบภาพเป็น ref และ เขียน prompt อธิบายคุมโทนกำกับด้วย
💡 บทเรียนสำคัญที่สุดของ session นี้ — ทำไมสุดท้ายไม่ใช้ parallel
ตอน 4.1 เราขอให้ยิงพร้อมกัน (parallel) เพื่อความเร็ว แต่พอใช้งานจริงหลายรอบพบว่า การยิงพร้อมกันเสี่ยงชื่อไฟล์/รหัสงานชนกัน (ถ้าเวลาเริ่มยิงตรงกันเป๊ะ) ทำให้ภาพผิดช็อตหรือหายได้ — บทสรุปที่ใช้งานจริงจึงเปลี่ยนเป็น ยิงทีละช็อตเรียงตามลำดับ แทน (ช้ากว่าเล็กน้อย แต่ชัวร์กว่ามาก) นี่คือเหตุผลที่บางครั้ง "เร็วที่สุด" ไม่ใช่ตัวเลือกที่ดีที่สุดเสมอไป

กฎ reference ที่พิสูจน์แล้วว่าได้ผลจริง — ใช้ ref 2 ชั้นต่อช็อต ไม่ใช่ 1:
  1. Character sheet (ภาพตัวละครตั้งต้น) — แนบทุกช็อตเสมอ เพื่อล็อกหน้า/ทรงผม/เสื้อผ้าให้เหมือนกันหมด
  2. Anchor frame (ภาพช็อตก่อนหน้าที่ "ผ่าน" แล้ว ของฉาก/สถานที่เดียวกัน) — แนบเพิ่มเฉพาะตอนช็อตนั้นอยู่ในฉากเดิมกับช็อตก่อน เพื่อล็อกฉาก/พร็อพ/แสงให้ต่อเนื่อง ถ้าขึ้นฉากใหม่ใช้แค่ character sheet ก็พอ
เขียน prompt แบบสั้น ให้ภาพ ref เป็นคนนำ ไม่บรรยายตัวละครซ้ำยาว ๆ เช่น the woman from the image reference, sitting on the same bench as the previous frame, golden hour light, medium shot from a slightly low angle

4.4Sonnet · mediumให้ Claude สรุปบทเรียนก่อนส่ง final

ให้คุณสรุปการทำงานก่อน ว่าคุณได้เรียนรู้อะไรจากการแก้ไขปรับแต่งตามการทำงานของผม
จนมาส่ง final storyboard เวอร์ชั่นล่าสุดบ้าง

4.5🔴 Opus · highCrystallize เป็น skill "storyboard-builder" (ต้องถามให้ครบก่อนเริ่มงานเสมอ)

กำลังทำอะไร: จุดสำคัญที่สุดของ skill นี้คือ — เมื่อเรียกใช้แล้ว agent ต้อง "ยังไม่ลงมือทำทันที" ต้องถามข้อมูลให้ครบก่อนเสมอถ้ายังไม่ครบ (เหมือนช่างภาพมืออาชีพที่ถามบรีฟให้ครบก่อนเริ่มงาน ไม่ใช่เดาเอาเอง)
ผมต้องการให้คุณสร้างออกมาเป็น skill ที่พร้อมนำไปใช้งาน ชื่อ "storyboard-builder"
เมื่อเรียกใช้แล้ว ต้องสร้าง storyboard ออกมาให้ดีที่สุดตามที่เคยสอนกันมาทั้งหมดใน session นี้
(ref 2 ชั้น ยิงทีละช็อตตามลำดับ ไม่ parallel, ลำดับตามเนื้อเรื่อง, ชื่อช็อต=ชื่อฉาก, ตาม default resolution เสมอ,
โทนต่อเนื่อง, มุมกล้องหลากหลาย, text-to-image เป็น default, ห้ามลืม reference ที่แนบ)

สิ่งสำคัญ - กำหนด process การใช้งาน:
เมื่อเรียกใช้ คุณจะ "ยังไม่ลงมือทำทันที" แต่ต้องมีข้อมูลจากผู้ใช้ให้ครบก่อน หากไม่ครบให้ถามทุกครั้ง:
1. ตัวละครที่ต้องการแนบ — จะให้คิดใหม่ หรือมีลิงก์ให้
2. เนื้อเรื่องเกี่ยวกับอะไร
3. ต้องการสร้างกี่ช็อต
4. Mood/Cinematic สไตล์แบบไหน
5. ต้องการใช้โมเดลอะไร (default แนะนำ Nano Banana 2)
6. ขนาด 1K / 2K / 4K
7. อัตราส่วน (เรโช)
เวลาถามผู้ใช้ ให้มีช่องสำหรับใส่คำตอบอื่น ๆ เสมอ

จบด้วยการส่งมอบผ่าน BoardforProduction เสมอ
อัปเดต CLAUDE.md ว่าตอนนี้มี skill นี้แล้ว
✅ จบ Session 4: ได้ skill storyboard-builder ที่ถามครบก่อนเริ่มงานทุกครั้ง และมีกฎความต่อเนื่องที่พิสูจน์จากการใช้งานจริงฝังอยู่ในตัว

SESSION 5

เจนวิดีโอ + skill เรียนรู้อัตโนมัติ + orchestrator รวมงาน

🎯 เป้าหมาย: สร้าง skill VideoForProduction เพื่อแปลง storyboard เป็นวิดีโอ + สร้าง skill Update ที่เรียนรู้และอัปเดต skill อื่นให้เองอัตโนมัติ + สร้าง skill Film Director ที่รวมทั้งสายงานให้จบในคำสั่งเดียว
🔄 เปิดแชตใหม่แล้วพิมพ์ prompt ทบทวนก่อนเริ่ม: อ่าน CLAUDE.md แล้วบอกผมว่ามี skill อะไรบ้าง บอร์ดและ pipeline ตอนนี้ทำงานยังไง

5.1📖 อ่านเองโมเดลวิดีโอที่มีให้เลือก (รู้ไว้ก่อนเลือก)

  • Veo 3.1 lite — คุณภาพสูง สมจริง cinematic, รองรับเสียง
  • Google Omni Flash — โมเดลตระกูล Google อีกตัว เร็ว
  • Kling 2.6 — สมดุล คุ้มราคา การเคลื่อนไหวลื่น (แนะนำเป็นค่าเริ่มต้น)
  • Kling 3.0 — รุ่นใหม่ เด่นการเคลื่อนไหว/คน คุณภาพสูงขึ้น
  • Seedance 2.0 mini — เร็ว คุ้ม เหมาะงานปริมาณ/หลายช็อต
⚠️ วิดีโอ default ปิดเสียง · ความยาวคิดเป็นวินาที · ยิ่งยาว+คุณภาพสูง = ยิ่งแพง
🔑 ไม่ตั้ง default ตายตัว ว่าต้องใช้โมเดลไหน/ยาวเท่าไร/มีเสียงไหม — เพราะวิดีโอแพงและตัวแปรเยอะ ให้ ถามผู้ใช้ทุกครั้งก่อนยิง (กฎใน 5.3)

5.2Sonnet · mediumทบทวนบทเรียนจาก storyboard ก่อนเริ่มงานวิดีโอ

กำลังทำอะไร: ก่อนสร้าง skill วิดีโอ ให้ agent ใช้ storyboard-builder ทำงานจริงอีกสักรอบ แล้วถามให้มันสะท้อนว่าจากงานล่าสุด มีอะไรที่ควรจำ/ควรปรับปรุงเพิ่มอีกไหม เพื่อให้ skill เดิมสมบูรณ์ก่อนต่อยอด — สั่งเป็น 3 prompt แยกกันทีละอัน
ผมต้องการให้คุณใช้ storyboard builder ทำงานให้ผม [ใส่บรีฟงานจริง]
เรียนรู้และปรับปรุง จากการทำงานที่แก้ไขล่าสุด อะไรควรจำ ควรปรับปรุงบ้าง และแก้ไข skill ที่เกี่ยวข้อง
ปรับปรุง skill เลย และบอกผมว่าปรับปรุง skill ที่เกี่ยวข้องอะไรไปบ้าง ตามนี้

5.3🔴 Opus · highสร้าง skill VideoForProduction (แยกจาก storyboard)

กำลังทำอะไร: สร้าง skill สำหรับแปลงภาพเป็นวิดีโอโดยเฉพาะ แยกออกจาก storyboard-builder ชัดเจน — workflow บังคับคือ confirm ช็อตก่อนเสมอ แล้วค่อยยิง แล้วส่งบอร์ดพร้อมข้อมูลการยิงกำกับทุกช็อต สั่งเป็น 4 prompt แยกกันทีละอัน
ผมต้องการให้คุณสร้าง skill สำหรับการสร้างวิดีโอ (แยกเป็นอีก skill) ชื่อ VideoForProduction
การทำงานของ skill นี้:
1. confirm ช็อตที่ต้องการจะทำ video prompt ก่อนเสมอ ห้ามยิงจนกว่าผมจะยืนยันรายการช็อต
2. จากนั้นจึงสร้างวิดีโอคู่กับช็อตนั้น ๆ
3. บอร์ดส่งงานต้องเขียน "Video setting" ที่ใช้สร้างวิดีโอของแต่ละช็อตด้วย
โดยต้องถาม user ก่อนทุกครั้งว่า: จะสร้างวิดีโอด้วยโมเดลอะไร, ความยาวกี่วินาที,
และถามว่าต้องการให้ generate เสียงด้วยหรือไม่ (วิดีโอปิดเสียงเป็น default)
นำภาพทั้งหมดจาก storyboard-builder ไปเจนวิดีโอใน fal.ai ผ่าน API key ที่ผมเชื่อมไว้ได้เลย
โดยคุณต้องใช้โมเดล Kling 2.6 หรือ 3.0
ช่วยปรับปรุงการเคลื่อนไหว camera movement ให้ไม่ใช้ static เยอะมากเกินไป
แต่ให้พิจารณาใช้จำพวก: Slow Push-in, Dolly in/out, Slow Staging Arc เป็นต้น
จดจำการทำงานตาม workflow นี้ไว้ และตั้งชื่อ skill นี้ว่า VideoForProduction ทุกครั้งที่ผมเรียกใช้
คุณต้องเอาภาพจาก storyboard-builder ไปทำเป็นวิดีโอมาด้วย skill VideoForProduction โดยคุณต้องจดจำ
และปรับปรุงสิ่งที่ผมชอบและไม่ชอบด้วย เพื่อที่ผมจะสามารถนำไปใช้ได้ในทุก session
จบด้วยการส่งมอบผ่าน BoardforProduction เสมอ อัปเดต CLAUDE.md

5.4Sonnet · mediumทดสอบยิงวิดีโอจริง 1 ช็อต

/VideoForProduction เอาช็อตที่ "ผ่าน" จากบอร์ดมา 1 ช็อต ลองทำวิดีโอให้ดูหน่อย

(ปล่อยให้ agent ถามครบตาม workflow ที่สอนไว้ — โมเดล / ความยาว / เสียง — แล้วยืนยันราคาก่อนยิงจริง)

5.5🔴 Opus · highสร้าง skill "Update" — เรียนรู้จากคำแก้ไข แล้วอัปเดต skill อื่นให้เอง

ทำไมต้องมี: ตลอด Session 4–5 เราต้องคอยพิมพ์บอกซ้ำ ๆ ว่า "อย่าลืมเรื่องนี้อีกนะ" — skill นี้จะทำหน้าที่นั้นแทนเราโดยอัตโนมัติ ทุกครั้งที่เราแก้ไขงาน มันจะจับสิ่งที่เราชอบ/ไม่ชอบ แล้วไปปรับปรุง skill อื่นที่เกี่ยวข้องให้เองเลย
คุณช่วยสร้าง skill ชื่อว่า "Update"
หน้าที่: อัปเดตและเรียนรู้การทำงานที่ผมปรับแก้มา ให้เป็นแบบล่าสุด และปรับปรุง skill ที่เกี่ยวข้อง
ตามการใช้งานของผม ให้ทันสมัยล่าสุดและสะดวกที่สุด
เมื่อเรียกใช้ ให้อัปเดต skill ที่เกี่ยวข้องทั้งหมด ให้เป็นแบบที่ผมชอบ และเป็นเวอร์ชันที่ผ่านการปรับปรุงแก้ไข
การทำงานแล้ว — แล้วบอกผมว่าปรับปรุง skill อะไรไปบ้าง

5.6🔴 Opus · highรวมทุกอย่างเป็น skill "Film Director" (orchestrator จบในคำสั่งเดียว)

กำลังทำอะไร: รวมทุกสายงานที่มี (storyboard → video) ให้เดินต่อกันเองในคำสั่งเดียว โดยยังต้อง หยุดถามเราทุกจบขั้นตอน ไม่ใช่รันยาวไปเองจนจบโดยไม่ให้เราเช็ค
ผมต้องการสร้าง skill ที่ทำงานได้ตั้งแต่ต้นจนจบ โดยไม่ต้องทริกเกอร์หลายรอบ ชื่อ "Film Director"
เมื่อกดใช้แล้ว:
1. ให้เรียก skill storyboard-builder ออกมาโดยอัตโนมัติ ทำงานตาม process จนจบ
2. ต้องถาม user เสมอเมื่อจบแต่ละขั้นตอน พร้อมบอกชัดเจนว่าจะทำอะไรต่อ — ห้ามเดินยาวไปเองโดยไม่หยุดถาม
3. พอเสร็จก็เรียก skill VideoForProduction และทำงานต่อจนจบ
กฎ: ทุกขั้นที่มีค่าใช้จ่าย (ยิงภาพ/วิดีโอ) ต้องสรุปแผน + ราคารวมโดยประมาณให้ผมยืนยันก่อนเริ่มเสมอ
อัปเดต CLAUDE.md ว่าตอนนี้มี skill นี้แล้ว
✅ จบ Session 5: มี skill ครบ 3 ตัวใหม่ — VideoForProduction (เจนวิดีโอ), Update (เรียนรู้+อัปเดต skill อื่นอัตโนมัติ), Film Director (สั่งครั้งเดียวเดินสายงานทั้งหมด)

SESSION 6

ตัดต่อวิดีโอ — พื้นฐาน (ffmpeg) + ขั้นสูง (Remotion)

🎯 เป้าหมาย: เอาคลิปวิดีโอจาก Session 5 มาต่อกันเป็นเรื่องราวเดียว ใส่เพลง/เสียงประกอบให้เหมาะกับอารมณ์ ด้วย 2 skill ตามระดับความซับซ้อนของงาน
⚠️ ส่วนตัดต่อต้องมี "engine" จริงที่ render ออกเป็นไฟล์วิดีโอ — Claude สั่งงานเฉย ๆ ไม่ได้ ต้องเชื่อมเครื่องมือตัดต่อจริง ในเล่มนี้ใช้ 2 engine คู่กัน: ffmpeg สำหรับงานทั่วไป และ Remotion สำหรับงานที่ต้องการกราฟิก/แอนิเมชันขั้นสูง

6.1📖 อ่านเองเลือก engine ให้ตรงกับงาน

Engineจุดเด่นเหมาะเมื่อ
ffmpegเบาสุด ฟรี รันในเครื่อง ไม่ต้องลง frameworkต่อคลิป+เสียง+เบิร์นซับ+transition พื้นฐาน — งานทั่วไป 80%
Remotionวิดีโอเชิงโปรแกรมด้วย React — motion graphics/title/animation ขั้นสูงงานต้องการกราฟิกซับซ้อน/template ทำซ้ำได้ (หนักกว่า ffmpeg)
💡 เริ่มที่ ffmpeg ก่อนเสมอ แล้วค่อยอัปเกรดไป Remotion ตอนงานต้องการภาพเคลื่อนไหว/กราฟิกมากขึ้น

6.2Sonnet · highสร้าง skill "editor" — ต่อคลิปด้วย ffmpeg (งานทั่วไป)

สร้าง skill ชื่อ editor ที่ใช้ ffmpeg เป็น engine ตัดต่อ:
- รับคลิป mp4 หลายช็อตที่ "ผ่าน" จากบอร์ด เรียงตามลำดับซีน → ต่อเป็นวิดีโอเดียว
- รองรับ: เบิร์น caption/ซับ, ใส่ voiceover/เพลงประกอบ (mux audio track), crossfade ระหว่างช็อต
- เช็ค/ติดตั้ง ffmpeg ในเครื่องก่อน ถ้ายังไม่มีบอกวิธีติดตั้ง (mac: brew / win: winget)
- export เป็น mp4 ลง output/<session>/final/ , allowed-tools ให้รันได้
อัปเดต CLAUDE.md วางแผนให้ดูก่อน

6.3🔴 Opus · highสร้าง skill "remotion-editor" — ตัดต่อขั้นสูงด้วย Remotion

กำลังทำอะไร: ใช้เมื่อของ ffmpeg ไม่พอ (ต้องการ title/motion graphics/แอนิเมชัน) — ตัวอย่างการใช้งานจริงคือเอาคลิปทั้งหมดมาตัดต่อเรียงเป็นเรื่องราว ใส่เพลง/เสียงประกอบบรรยากาศให้เข้ากับอารมณ์ของวิดีโอ โดยไม่ใส่ตัวหนังสือทับภาพ
สร้าง skill ชื่อ remotion-editor ที่ใช้ Remotion (React video) เป็น engine ตัดต่อขั้นสูง:
- ตั้งโปรเจกต์ Remotion, สร้าง composition ที่ import คลิป mp4 ที่ "ผ่าน" เรียงตามซีน
- ทำ title/lower-third/motion graphics ได้เมื่อสั่ง, transition ระหว่างคลิป, ใส่ audio track
- render ออกเป็น mp4 ลง output/<session>/final/
อัปเดต CLAUDE.md วางแผนให้ดูก่อน

6.4Sonnet · mediumตัวอย่างใช้งานจริง — รวมคลิปเป็นเรื่องราวด้วย Remotion

/remotion-editor นำวิดีโอทั้งหมดในโฟลเดอร์นี้ไปตัดต่อให้เป็นเรื่องราวด้วย remotion
ใส่เพลง/เสียงประกอบบรรยากาศให้เหมาะสมกับอารมณ์ของวิดีโอ ไม่ต้องใส่ text ในวิดีโอ

6.5Sonnet · highskill "developer" (ปรับปรุงคุณภาพ)

สร้าง skill ชื่อ developer: ยกระดับคุณภาพงานที่ผ่านแล้ว — upscale ภาพ/วิดีโอ (2K/4K),
ปรับความคมชัด, (ถ้ามี) วิเคราะห์ virality/engagement ของวิดีโอ
ใช้เฉพาะกับช็อตที่ผมสั่ง ไม่รันเองทั้งโปรเจกต์

6.6Sonnet · mediumPack skill ทั้งหมดให้ใช้ข้ามโปรเจกต์ได้

ช่วย pack skill ทั้งหมด (nanobanana2forProduction / BoardforProduction / storyboard-builder /
VideoForProduction / Update / Film Director / editor / remotion-editor / developer) ให้ใช้ได้ทุกโปรเจกต์:
- ย้าย skill ไป ~/.claude/skills/ แล้ว bundle สคริปต์ + ไฟล์ board ที่ต้องใช้เข้าไป อ้างผ่าน ${CLAUDE_SKILL_DIR}/...
- ให้สคริปต์อ่าน FAL_KEY จาก global env
- อัปเดต CLAUDE.md ของโปรเจกต์ว่ามี skill เหล่านี้แล้ว
ทดสอบโดยจำลองเรียกจากนอกโฟลเดอร์

ต่อไป

งานโปรเจกต์วิดีโอจริง

เปิด session ใหม่ ตั้งชื่อตามโปรเจกต์/ลูกค้า แล้วเรียก Film Director ป้อนบรีฟ → ตกผลึกเป็น skill เฉพาะงานนั้นได้ตามต้องการ

/Film Director ทำวิดีโอโฆษณา 15 วิ แบรนด์ [ชื่อ] บรีฟ: [วางบรีฟ] โทน: [อ้างอิง]
วางแผน shot list + ราคารวมให้ผมยืนยันก่อนเริ่ม