พื้นฐานที่ต้องรู้ก่อนเริ่ม (อ่าน 5 นาที)
ก่อนเริ่ม เรามาทำความรู้จักคำศัพท์ที่จะเจอตลอดทั้งเล่มกันก่อน — อ่านช้า ๆ ครั้งเดียว แล้วทุกอย่างข้างหน้าจะเข้าใจง่ายขึ้นมาก
Agent คือโปรแกรม AI ที่ไม่ได้แค่ "ตอบคำถาม" แบบแชตบอตทั่วไป แต่ ลงมือทำงานให้จริง ได้ — สร้างไฟล์ รันคำสั่ง เรียกใช้บริการภายนอก (เช่นสั่งสร้างภาพ/วิดีโอ) ตามที่เราสั่ง ในคู่มือนี้ agent ที่เราใช้คือ Claude Code เปิดใช้งานผ่านโปรแกรม Terminal (Mac) หรือ PowerShell (Windows) — พิมพ์สั่งเป็นภาษาพูดธรรมดา ไม่ต้องเขียนโค้ดเป็นเอง
งานนี้เราจะสั่งให้ agent ไปเรียกใช้บริการสร้างภาพ/วิดีโอจากเว็บชื่อ fal.ai (ตัวกลางที่รวมโมเดล AI สร้างภาพ/วิดีโอหลายเจ้าไว้ที่เดียว) การจะเรียกใช้ได้ต้องมี "รหัสผ่าน" เฉพาะของเราเรียกว่า API key — เหมือนบัตรสมาชิกที่ใช้แล้วเก็บเงินจากบัญชีเรา ต้องเก็บให้ดี ห้ามหลุดไปอยู่ในมือคนอื่น (วิธีตั้งแบบปลอดภัยอยู่ใน Session 1)
AI agent จำบทสนทนาได้ จำกัด เปรียบเหมือนโต๊ะทำงานที่มีพื้นที่จำกัด — คุยกันยาว ๆ ไปเรื่อย ๆ ของเก่าจะถูกดันตกโต๊ะ (= มัน "ลืม" สิ่งที่คุยตอนต้น) และยิ่งบทสนทนายาว ยิ่งเปลือง token
👉 ปัญหานี้คือเหตุผลที่เราต้องมี 2 เครื่องมือข้างล่าง เพื่อ "ฝากความจำ" ไว้นอกโต๊ะ
เป็นไฟล์ข้อความธรรมดาที่ agent อ่านทุกครั้งที่เปิดงานใหม่ ใช้จดกฎ/วิธีทำงาน/ค่าตั้งต้นสำคัญไว้ → พอเปิด session (1 รอบการคุยกับ agent) ใหม่ มันอ่านสมุดนี้แล้ว "จำได้" ทันที ไม่ต้องเล่าใหม่
(
.md = ไฟล์ Markdown ข้อความล้วน · CLAUDE.md คือชื่อไฟล์ที่ Claude Code อ่านอัตโนมัติ)
เมื่อเราสอน agent ทำอะไรจนนิ่งแล้ว เก็บวิธีนั้นเป็น skill (ไฟล์ชุดคำสั่ง) ครั้งหน้าเรียกครั้งเดียวมันทำครบเลย ไม่ต้องอธิบายใหม่ทุกครั้ง เช่นพิมพ์
/nanobanana2forProduction แล้ว agent จะรู้เองว่าต้องทำอะไรข้อดี: ประหยัด context + ได้ผลสม่ำเสมอ เพราะความฉลาดถูกฝังในไฟล์ ไม่ต้องพึ่งความจำชั่วคราว
งานวิดีโอ ไม่จบในขั้นเดียว แต่เป็นสายพาน 4 ทอด:
① ภาพนิ่ง (frame) → ② ร้อยเป็น Storyboard ต่อเนื่อง → ③ แปลงภาพเป็นวิดีโอ (image-to-video) → ④ ตัดต่อ + ใส่เสียง
แต่ละทอดมี skill ของตัวเอง และ ผลของทอดก่อนหน้าเป็นวัตถุดิบของทอดถัดไป — นี่คือเหตุผลที่เราต้องคุม "ความต่อเนื่อง" (ตัวละคร/ฉากเดิม) ให้ดีตั้งแต่ต้นทาง
| Session | โฟกัส | Skill ปลายทาง |
|---|---|---|
| 1 | ต่อ API key + ผูกโมเดลภาพ+วิดีโอทั้งหมดในคำสั่งเดียว | ฐานร่วม (สคริปต์ 2 ตัว) |
| 2 | ตั้ง default ภาพนิ่ง + สร้าง skill ยิงภาพ | nanobanana2forProduction |
| 3 | Production Board ส่งงาน — เริ่มง่าย → อัปเกรดเป็นระบบรีวิว | BoardforProduction |
| 4 | Storyboard ต่อเนื่อง (เรียนจากบทเรียนจริง) | storyboard-builder |
| 5 | เจนวิดีโอ + skill เรียนรู้อัตโนมัติ + orchestrator รวมงาน | VideoForProduction / Update / Film Director |
| 6 | ตัดต่อวิดีโอ: พื้นฐาน + ขั้นสูง | editor (ffmpeg) / remotion-editor |
| ต่อไป | งานโปรเจกต์จริง → เรียก Film Director | (วนใช้) |
ใช้กับทุก session
หลักคิดง่าย ๆ ที่ทำให้สั่งงาน agent แล้วได้งานตรงใจ ไม่ต้องแก้วนหลายรอบ:
- บอกให้ครบ 3 อย่างในคำสั่งเดียว: บริบท → เป้าหมาย → ข้อจำกัด
เช่น "ผมทำวิดีโอโฆษณา (บริบท) อยากได้สตอรี่บอร์ด 6 ช็อต (เป้าหมาย) ตัวละครเด็กผู้หญิงคนเดิมทุกช็อต (ข้อจำกัด)" ยิ่งบอกครบ agent ยิ่งเดาใจถูก - งานใหญ่ ให้สั่งวางแผนก่อนเสมอ — เติมท้ายคำสั่งว่า "วางแผนให้ดูก่อน อย่าเพิ่งเขียนโค้ด"
- ทำให้นิ่งก่อน แล้วค่อยเก็บเป็น skill — ลองสั่งจนได้ผลลัพธ์ที่พอใจซ้ำ ๆ ก่อน แล้วค่อยบอกให้มันจำเป็น "skill"
- ปิดท้ายทุก session ด้วยการให้มันจดบันทึก — สั่งให้ อัปเดต CLAUDE.md หรือ pack skill เสมอ ถ้าไม่จด พอเปิด session ใหม่มันจะลืม
การยิงวิดีโอ 1 คลิป แพงกว่าภาพนิ่งหลายเท่า และกินเวลานาน ดังนั้นก่อนยิงวิดีโอทุกครั้ง agent ต้องถามยืนยันก่อน:
(1) ใช้โมเดลอะไร · (2) ความยาวกี่วินาที · (3) ต้องการเสียงไหม (วิดีโอ default ปิดเสียง) · (4) ยิงกี่ช็อต — แล้วโชว์ราคารวมโดยประมาณเป็นบาทก่อนเริ่ม
อ่าน CLAUDE.md แล้วบอกผมว่าตอนนี้มี skill อะไรบ้าง และ pipeline ยิงภาพ/วิดีโอทำงานยังไง
แต่ละขั้นมีป้ายบอกว่าควรใช้โมเดล Claude ตัวไหนรัน เพื่อให้ได้คุณภาพดี + ประหยัด token
หลักคิด: จ่ายแพง (Opus/high) ตอน "สร้างของยาก" · ประหยัด (Sonnet) ตอน "ใช้ของที่สร้างไว้แล้ว"
/model — สลับกลาง session ได้ ไม่เสีย context · ป้ายนี้คือโมเดล Claude ที่รันงาน คนละตัวกับโมเดลสร้างภาพ/วิดีโอบน fal.ai
ต่อ API key + ผูกโมเดลภาพ+วิดีโอทั้งหมดในคำสั่งเดียว
หลักการเก็บให้ปลอดภัย: เราจะให้ Claude ตั้งโครงไฟล์ให้ → เราเป็นคนเอา key ไปวางเอง → สคริปต์จะอ่าน key จากที่ซ่อนไว้ ผลคือ Claude ไม่เคยเห็นค่า key ของเราเลย
1.1Sonnet · highขั้น A — ให้ Claude ตั้งโครงโปรเจกต์ให้ก่อน (ยังไม่ต้องมี 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 ไม่ยุ่งด้วย)
cd เข้าโฟลเดอร์โปรเจกต์ก่อนเสมอ!ก่อนพิมพ์คำสั่ง
cp/Copy-Item ต้องพา Terminal "เข้าไปอยู่ใน" โฟลเดอร์โปรเจกต์ก่อนด้วย cd ถ้าข้ามขั้นนี้จะเจอ error .env.example: No such file or directory🍎 สำหรับ macOS
เปิด Terminal พิมพ์ cd เว้นวรรค แล้ว ลากโฟลเดอร์โปรเจกต์จาก Finder มาวาง แล้วกด Enter:
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) จากนั้น:
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 ทดสอบว่าใช้ได้จริง (ยิงภาพก่อน)
สร้างสคริปต์ยิงภาพ scripts/generate.ts ที่อ่าน FAL_KEY จาก env เท่านั้น ห้ามอ่านหรือ print ค่าใน .env แล้วทดสอบยิง nano banana 2 มา 1 ภาพ ถ้าได้ภาพ = key ใช้งานได้
1.4📖 อ่านเอง✅ กฎกันพลาดเรื่อง key (อ่านครั้งเดียว จำไว้ตลอด)
- ❌ อย่าพิมพ์ key ลงช่องแชต Claude โดยตรง
- ❌ อย่าสั่ง Claude ว่า
cat .envหรือ "เปิดอ่านไฟล์ .env ให้หน่อย" (key จะไหลเข้าแชต) - ❌ อย่าส่ง path ของไฟล์ key ให้ Claude เปิดดู
- ✅ ไฟล์
.envถูกกันด้วย .gitignore แล้ว จะไม่หลุดขึ้น git/อินเทอร์เน็ต - ⚠️ ถ้าเผลอทำ key โผล่ที่ไหน → เข้า fal dashboard กด regenerate สร้าง key ใหม่ ตัวเก่าจะใช้ไม่ได้ทันที
1.5🙋 ทำเอง(ตัวเลือกเสริม) อยากใช้ key เดียวกันกับทุกโปรเจกต์
🍎 macOS
echo 'export FAL_KEY="[API KEY]"' >> ~/.zshrc source ~/.zshrc
🪟 Windows
setx FAL_KEY "[API KEY]"
1.6🔴 Opus · highผูกโมเดลภาพ+วิดีโอ "ทั้งหมด" ในคำสั่งเดียว
⚠️ สำคัญ: ชื่อโมเดล/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) กติกาสำคัญ: ห้ามยิง/สร้างภาพหรือวิดีโอเองโดยที่ผมไม่ได้สั่ง, ห้ามเจน "ตัวอย่าง" เอง, จะยิงต้องถามก่อนทุกครั้ง, ตอนวางแผนใช้ข้อความเท่านั้นไม่ต้องยิงภาพประกอบ
ตั้ง default ภาพนิ่ง + สร้าง skill ยิงภาพ
nanobanana2forProduction + ทดสอบ img-to-image2.1Sonnet · mediumทดสอบว่า key ยังใช้ได้ข้าม session
คุณลองทดสอบสร้างภาพด้วย nano banana 2 จำนวน 1 ภาพ ผ่าน API key ของ fal.ai ที่ผมเชื่อมไว้ให้หน่อยครับ
2.2Sonnet · mediumขอดูค่า default ปัจจุบัน
ช่วยบอก default ในการตั้งค่าก่อนที่จะยิงภาพ โมเดล nano banana 2 ให้หน่อยครับ ว่าตั้ง default ยังไง เพื่อที่ผมจะได้ปรับเปลี่ยนการตั้งค่าตามที่ผมต้องการ
2.3Sonnet · highปรับ default ให้เป็นมาตรฐานถาวร
- resolution = 1K เสมอ เว้นแต่สั่งให้ตั้งแบบอื่น
- aspect_ratio = 16:9 เสมอ (สัดส่วนจอวิดีโอ) เว้นแต่สั่งให้ตั้งแบบอื่น
- safety_tolerance = ระดับ 6 (หลวมสุด) เป็น default ถาวร
- โหมด default = text-to-image เสมอ ถ้าไม่ได้แนบภาพ ref (
--image) — ถ้าแนบภาพมาให้สลับเป็น image-to-image อัตโนมัติ
คุณช่วยปรับ 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 เจนภาพผ่าน Nano banana 2 ตั้งค่า default setting ตามที่ตกลงกันไว้ ตั้งชื่อ skill ว่า /nanobanana2forProduction และให้ผมเรียกใช้ skill นี้ได้ในทุก session ใส่ allowed-tools ให้รันได้ไม่ต้องกดอนุญาต, ใส่กฎในตัว skill ว่า: ยิงภาพเฉพาะเมื่อถูกสั่งชัดเจนเท่านั้น ไม่เจนเองตอนถูกโหลดหรือตอนวางแผน
2.5🔴 Opus · highตรวจว่าแนบรูปอ้างอิงได้ไหม (img-to-image)
⚠️ จุดที่พังบ่อย: 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 เองติดไหม)
Production Board ส่งงาน
BoardforProduction3.1Sonnet · mediumลองยิงภาพตัวอย่างขึ้นมาก่อน
/nanobanana2forProduction ทำภาพผู้หญิงเอเชียกำลังนั่งที่สวนสาธารณะกับผู้ชายเอเชีย 3 ภาพ
3.2🔴 Opus · highสร้าง Production Board (1 รอบสั่งเจน = 1 ชุด · รองรับภาพและวิดีโอ)
สร้าง 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
เพิ่มระบบรีวิวต่อภาพ/ช็อต: ผ่าน / ไม่ผ่าน / ทำใหม่ / แก้ไขเดิม (เปลี่ยนสถานะได้ตลอด ไม่ล็อกตาย) ช่องคอมเมนต์ 2 ช่อง (แก้งาน / ปรับ skill) + ปุ่ม "คัดลอกคอมเมนต์ JSON" ปุ่มเดียวต่อรอบ รวมทุกภาพ/ช็อต แล้วทำให้ผมเปิด preview บอร์ดบน Claude Code ได้เลย
3.4Sonnet · highเก็บเป็น skill ชื่อ BoardforProduction
สร้าง skill ชื่อ BoardforProduction — จำการส่งงานขึ้น Production Board แบบ 1 รอบสั่งเจน = 1 ชุด (รองรับทั้งภาพและวิดีโอด้วย template เดียวกัน) + ระบบรีวิว อัปเดต CLAUDE.md ลิสต์ skill นี้ และสรุปสถานะ pipeline ปัจจุบันให้ครบ
BoardforProduction ที่ส่งงานได้ทั้งภาพและวิดีโอ พร้อมระบบรีวิวในตัว พร้อมใช้กับทุก session ถัดจากนี้Storyboard ต่อเนื่อง — เรียนจากบทเรียนจริง
storyboard-builder4.1Sonnet · highลองยิงครั้งแรก — 6 ช็อตพร้อมกัน (parallel)
[แนบลิงก์โฟลเดอร์อ้างอิง/บรีฟเรื่อง] คุณสร้าง 6 shot storyboard เกี่ยวกับผู้หญิงเอเชียตื่นนอน ออกไปสวนสาธารณะ และนั่งดูพระอาทิตย์ตกตอนเย็น จำนวน 6 ภาพ โดยใช้ตัวละครในภาพนี้ "[path ไฟล์ภาพตัวละคร]" แล้วส่งผมผ่านบอร์ดส่งงาน ให้รัน/สร้างภาพทั้ง 6 ภาพพร้อมกัน (parallel) ไม่ใช่ยิงทีละภาพ
4.2🔴 Opus · highแก้ปัญหาที่เจอ — ลำดับ, ชื่อช็อต, resolution, โทน, มุมกล้อง
คุณต้องปรับปรุงดังนี้: 1. Storyboard ไม่เรียงตามเนื้อเรื่อง ให้เรียงตามเนื้อเรื่อง 2. ชื่อกำกับแต่ละช็อตควรเป็น "ชื่อฉาก" ไม่ใช่เอา prompt มาเขียน 3. Resolution ไม่ถูกต้อง ต้องทำภาพตาม default ของ /nanobanana2forProduction เสมอ 4. Mood tone ทำออกมาให้โทนที่ต่อเนื่องกันทั้ง 6 ช็อต 5. มุมกล้องต้องหลากหลาย
4.3Sonnet · highเพิ่ม cinematic reference คุมโทนทั้งชุด
คุณช่วยทำมาใหม่ทั้งหมด โดยให้ reference cinematic style จากภาพนี้ด้วย "[path ไฟล์ภาพสไตล์ภาพยนตร์]" โดยใช้วิธีแนบภาพเป็น ref และ เขียน prompt อธิบายคุมโทนกำกับด้วย
ตอน 4.1 เราขอให้ยิงพร้อมกัน (parallel) เพื่อความเร็ว แต่พอใช้งานจริงหลายรอบพบว่า การยิงพร้อมกันเสี่ยงชื่อไฟล์/รหัสงานชนกัน (ถ้าเวลาเริ่มยิงตรงกันเป๊ะ) ทำให้ภาพผิดช็อตหรือหายได้ — บทสรุปที่ใช้งานจริงจึงเปลี่ยนเป็น ยิงทีละช็อตเรียงตามลำดับ แทน (ช้ากว่าเล็กน้อย แต่ชัวร์กว่ามาก) นี่คือเหตุผลที่บางครั้ง "เร็วที่สุด" ไม่ใช่ตัวเลือกที่ดีที่สุดเสมอไป
กฎ reference ที่พิสูจน์แล้วว่าได้ผลจริง — ใช้ ref 2 ชั้นต่อช็อต ไม่ใช่ 1:
- Character sheet (ภาพตัวละครตั้งต้น) — แนบทุกช็อตเสมอ เพื่อล็อกหน้า/ทรงผม/เสื้อผ้าให้เหมือนกันหมด
- Anchor frame (ภาพช็อตก่อนหน้าที่ "ผ่าน" แล้ว ของฉาก/สถานที่เดียวกัน) — แนบเพิ่มเฉพาะตอนช็อตนั้นอยู่ในฉากเดิมกับช็อตก่อน เพื่อล็อกฉาก/พร็อพ/แสงให้ต่อเนื่อง ถ้าขึ้นฉากใหม่ใช้แค่ character sheet ก็พอ
the woman from the image reference, sitting on the same bench as the previous frame, golden hour light, medium shot from a slightly low angle4.4Sonnet · mediumให้ Claude สรุปบทเรียนก่อนส่ง final
ให้คุณสรุปการทำงานก่อน ว่าคุณได้เรียนรู้อะไรจากการแก้ไขปรับแต่งตามการทำงานของผม จนมาส่ง final storyboard เวอร์ชั่นล่าสุดบ้าง
4.5🔴 Opus · highCrystallize เป็น skill "storyboard-builder" (ต้องถามให้ครบก่อนเริ่มงานเสมอ)
ผมต้องการให้คุณสร้างออกมาเป็น 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 นี้แล้ว
storyboard-builder ที่ถามครบก่อนเริ่มงานทุกครั้ง และมีกฎความต่อเนื่องที่พิสูจน์จากการใช้งานจริงฝังอยู่ในตัวเจนวิดีโอ + skill เรียนรู้อัตโนมัติ + orchestrator รวมงาน
VideoForProduction เพื่อแปลง storyboard เป็นวิดีโอ + สร้าง skill Update ที่เรียนรู้และอัปเดต skill อื่นให้เองอัตโนมัติ + สร้าง skill Film Director ที่รวมทั้งสายงานให้จบในคำสั่งเดียวอ่าน 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 ตายตัว ว่าต้องใช้โมเดลไหน/ยาวเท่าไร/มีเสียงไหม — เพราะวิดีโอแพงและตัวแปรเยอะ ให้ ถามผู้ใช้ทุกครั้งก่อนยิง (กฎใน 5.3)
5.2Sonnet · mediumทบทวนบทเรียนจาก storyboard ก่อนเริ่มงานวิดีโอ
ผมต้องการให้คุณใช้ storyboard builder ทำงานให้ผม [ใส่บรีฟงานจริง]
เรียนรู้และปรับปรุง จากการทำงานที่แก้ไขล่าสุด อะไรควรจำ ควรปรับปรุงบ้าง และแก้ไข skill ที่เกี่ยวข้อง
ปรับปรุง skill เลย และบอกผมว่าปรับปรุง skill ที่เกี่ยวข้องอะไรไปบ้าง ตามนี้
5.3🔴 Opus · highสร้าง skill VideoForProduction (แยกจาก storyboard)
ผมต้องการให้คุณสร้าง 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 อื่นให้เอง
คุณช่วยสร้าง skill ชื่อว่า "Update" หน้าที่: อัปเดตและเรียนรู้การทำงานที่ผมปรับแก้มา ให้เป็นแบบล่าสุด และปรับปรุง skill ที่เกี่ยวข้อง ตามการใช้งานของผม ให้ทันสมัยล่าสุดและสะดวกที่สุด เมื่อเรียกใช้ ให้อัปเดต skill ที่เกี่ยวข้องทั้งหมด ให้เป็นแบบที่ผมชอบ และเป็นเวอร์ชันที่ผ่านการปรับปรุงแก้ไข การทำงานแล้ว — แล้วบอกผมว่าปรับปรุง skill อะไรไปบ้าง
5.6🔴 Opus · highรวมทุกอย่างเป็น skill "Film Director" (orchestrator จบในคำสั่งเดียว)
ผมต้องการสร้าง skill ที่ทำงานได้ตั้งแต่ต้นจนจบ โดยไม่ต้องทริกเกอร์หลายรอบ ชื่อ "Film Director" เมื่อกดใช้แล้ว: 1. ให้เรียก skill storyboard-builder ออกมาโดยอัตโนมัติ ทำงานตาม process จนจบ 2. ต้องถาม user เสมอเมื่อจบแต่ละขั้นตอน พร้อมบอกชัดเจนว่าจะทำอะไรต่อ — ห้ามเดินยาวไปเองโดยไม่หยุดถาม 3. พอเสร็จก็เรียก skill VideoForProduction และทำงานต่อจนจบ กฎ: ทุกขั้นที่มีค่าใช้จ่าย (ยิงภาพ/วิดีโอ) ต้องสรุปแผน + ราคารวมโดยประมาณให้ผมยืนยันก่อนเริ่มเสมอ อัปเดต CLAUDE.md ว่าตอนนี้มี skill นี้แล้ว
VideoForProduction (เจนวิดีโอ), Update (เรียนรู้+อัปเดต skill อื่นอัตโนมัติ), Film Director (สั่งครั้งเดียวเดินสายงานทั้งหมด)ตัดต่อวิดีโอ — พื้นฐาน (ffmpeg) + ขั้นสูง (Remotion)
6.1📖 อ่านเองเลือก engine ให้ตรงกับงาน
| Engine | จุดเด่น | เหมาะเมื่อ |
|---|---|---|
| ffmpeg | เบาสุด ฟรี รันในเครื่อง ไม่ต้องลง framework | ต่อคลิป+เสียง+เบิร์นซับ+transition พื้นฐาน — งานทั่วไป 80% |
| Remotion | วิดีโอเชิงโปรแกรมด้วย React — motion graphics/title/animation ขั้นสูง | งานต้องการกราฟิกซับซ้อน/template ทำซ้ำได้ (หนักกว่า ffmpeg) |
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
สร้าง 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 + ราคารวมให้ผมยืนยันก่อนเริ่ม