คู่มือฉบับเต็ม end-to-end: หาหัวข้อด้วย NotebookLM + Gemini → เขียนสคริปต์ → แปลงเป็น prompt ภาพด้วย Claude → สร้างภาพจริงใน Google Flow → ทำเสียงพากย์ → ตัดต่อออกมาเป็นคลิป doodle ทั้งแนวนอน (16:9) และแนวตั้ง (9:16) พร้อมโพสต์ ทุกอย่างมี prompt และคำสั่งจริงให้ก๊อปไปทำตามได้เลย
~10
คลิปอ้างอิง
6
เครื่องมือหลัก
2
วิธีทำเสียง
16:9 + 9:16
ได้คลิป
คู่มือนี้ไม่ได้เล่าแค่ทฤษฎี แต่ให้ system prompt จริง คำสั่งจริง และสคริปต์ตัดต่อจริงทั้งตัว ตั้งแต่หาหัวข้อไปจนเรนเดอร์ออกมาเป็นไฟล์ .mp4 ทั้งแนวนอนและแนวตั้ง พร้อมโพสต์ลงทุกแพลตฟอร์ม
NOTEBOOKLM + GEMINI
หาหัวข้อจากคลิปที่สนใจ
แทนที่จะคิดหัวข้อเอง ให้ AI ช่วยกลั่นไอเดียจากคลิปที่เราสนใจประมาณ 10 คลิป
- 01เลือกคลิป YouTube ที่มีเนื้อหาเกี่ยวข้อง/ที่เราสนใจ ประมาณ 10 คลิป แล้วก๊อป URL
- 02เอา URL ไปใส่ใน NotebookLM แล้วรอโหลดจนเสร็จ
- 03กลับไปที่ Gemini เปิดแชทใหม่ กด ➕ เพิ่ม NotebookLM เลือก source ที่เพิ่งใส่คลิปเข้าไป
- 04สั่งว่า "แนะนำหัวข้อสำหรับนำไปทำคอนเทนต์ต่อ"
ทำไมใช้ NotebookLM
มันอ่านหลายคลิปพร้อมกันแล้วสรุป/จัดกลุ่มไอเดียให้ ทำให้เราได้หัวข้อที่ 'มีของ' และตรงกลุ่มเป้าหมาย แทนการนั่งคิดเอง
GEMINI
เลือกหัวข้อ แล้วเขียนสคริปต์ + Caption
พอ Gemini แนะนำหัวข้อมา ก็เลือกอันที่อยากทำ แล้วสั่งต่อประมาณนี้:
ช่วยเขียนเป็นสคริปต์สำหรับสร้างเสียงใน ElevenLabs หรือ Google TTS ให้ด้วย พร้อมกับ caption สำหรับโพสต์ลง Facebook
จะได้ทั้งสคริปต์แบ่งช่วงเวลา (timestamp) และ caption พร้อมโพสต์ คลิปตัวอย่างชุดนี้คือเรื่อง "The Psychology of Desperation" แบ่งได้ 9 ท่อน
จุดสำคัญ
timestamp คือ 'โครง' ที่ทุกอย่าง (ภาพ/เสียง/ซับ) ยึดร่วมกัน ยิ่งแบ่งละเอียดสม่ำเสมอ งานปลายทางยิ่งตรงจังหวะ
NOTION · SYSTEM PROMPT
Prompt ตัวแม่ (ฉบับเต็ม)
หัวใจของระบบคือ prompt ตัวเดียวที่แปลง 'สคริปต์มี timestamp' เป็น 'prompt สร้างภาพ' เก็บไว้ใช้ซ้ำได้ตลอด นี่คือข้อความเต็มทั้งตัว กดปุ่มคัดลอกไปใช้ได้เลย:
You are an AI automation assistant running inside Claude Code. Your task is to convert a timestamped YouTube script into image generation prompts. You must read the script carefully and create exactly ONE image prompt for EACH timestamp in the script. Do not skip any timestamp. Do not merge timestamps. Do not create extra timestamps. Do not explain your reasoning. Do not add headings, notes, summaries, bullets, markdown text, or comments outside the final code block. # ================================================== TASK LOGIC For each timestamp: 1. Identify the exact timestamp. 2. Read the script text connected to that timestamp. 3. Convert that moment into one clear visual scene. 4. Keep the scene simple, funny, readable, and easy to draw. 5. Write one image prompt for that timestamp using the required output format. If the script text is abstract, turn it into a simple visual metaphor. Examples: - "make money" -> a stick figure happily holding a money bag - "AI tool" -> a simple computer screen labeled "AI" - "confused beginner" -> a stick figure scratching their head with red question marks - "automation" -> a robot pressing buttons on a simple machine # ================================================== GLOBAL IMAGE STYLE Every image prompt must describe the same consistent visual style: Hand-drawn 2D doodle cartoon animation. Flat colors only. Bold black outlines. Slightly imperfect sketchy marker lines. Beginner MS Paint style. Simple stick-figure characters. Round heads and line bodies. Dot eyes or circle eyes. Very basic facial expressions. White or plain simple background. Mostly empty space. Centered composition. Simple objects made from basic shapes. Funny, amateur, intentionally bad drawing style. Educational YouTube explainer doodle style. # ================================================== STRICT NEGATIVE STYLE RULES Every image must avoid: gradients / shadows / textures / photorealism / 3D / cinematic lighting / realistic humans / anime style / Disney style / professional vector art / polished illustration / complex backgrounds / high detail / glossy modern design / realistic shading / detailed anatomy / realistic faces / premium design / studio lighting # ================================================== SCENE DESCRIPTION RULES Inside the scene description, include: - main character or characters - their facial expression - their action - important objects - simple background color - any short on-screen text or labels if useful Keep scene descriptions specific and visual. Do NOT write vague scenes like: "a person thinking about success" INSTEAD write: "a confused stick figure scratching his head beside a simple laptop screen labeled AI, with three red question marks above his head, plain white background" # ================================================== TIMESTAMP FORMAT RULES Convert all timestamps into this format: [MM:SS] 0s -> [00:00] · 5s -> [00:05] · 1m12s -> [01:12] · 10m3s -> [10:03] Keep the timestamp order exactly the same as the original script. # ================================================== FINAL OUTPUT FORMAT Your final answer must contain ONLY ONE code block. Inside it: - 1 prompt = 1 timestamp = 1 image - Every prompt separated by exactly ONE blank line - No headings / no bullets / no numbers / no labels / no explanations Every prompt must follow this exact structure: [TIMESTAMP] Hand-drawn 2D doodle cartoon animation, flat colors, bold black outlines, slightly imperfect sketchy marker lines, [FULL SCENE DESCRIPTION], no gradients, no shadows, no textures, no photorealism, no 3D, 16:9 aspect ratio, educational YouTube explainer doodle style. # ================================================== EXACT OUTPUT EXAMPLE [00:00] Hand-drawn 2D doodle cartoon animation, flat colors, bold black outlines, slightly imperfect sketchy marker lines, a confused stick figure scratching his head beside a simple laptop screen labeled "AI", three red question marks floating above his head, plain white background, centered composition with lots of empty space, no gradients, no shadows, no textures, no photorealism, no 3D, 16:9 aspect ratio, educational YouTube explainer doodle style. # ================================================== IMPORTANT RULES Output only the generated prompts inside one code block, each separated by exactly ONE blank line. Nothing before/after the code block.
ก๊อปทั้งก้อนไปวางเป็น system prompt ใน Claude / GPT / Gemini
🎨 เคล็ดลับเด็ด: เปลี่ยนสไตล์ภาพได้ตามใจ
ก๊อป system prompt นี้ไปวางใน GPT / Gemini / Claude แล้วสั่งว่า "จาก system prompt นี้ ช่วยเปลี่ยนสไตล์ของรูปภาพให้เป็น …" ใส่สไตล์ที่อยากได้ AI จะเขียน GLOBAL IMAGE STYLE + NEGATIVE RULES ใหม่ให้เข้ากับสไตล์นั้น ที่เหลือทำเหมือนเดิมทุกขั้น
CLAUDE CODE
แปลงสคริปต์เป็น Image Prompt
วางสคริปต์ใน Claude Code แล้วสั่งให้ใช้ prompt จาก Notion Claude จะไล่อ่านทีละ timestamp เขียน prompt ภาพครบทุกช่วงในรอบเดียว ทุก prompt ใช้โครงเดียวกัน ต่างแค่ 'ฉาก'
| เวลา | ฉากจริงที่ Claude เขียน |
|---|---|
| 00:02 | stick figure ตาวิงวอน เอื้อมสองมือหาหัวใจแดงลอยได้ ป้าย LOVE |
| 00:04 | stick figure วิ่งเหงื่อแตกไล่หัวใจที่ลอยหนี มีเส้น motion |
| 00:06 | stick figure นั่งเหงา มีเมฆฝนเทาเหนือหัว หัวใจแตกข้างตัว |
| 00:10 | stick figure ถือหัวใจแตกสองซีก ป้าย DESPERATION |
| 00:15 | stick figure สมองใหญ่ในหัว แผ่คลื่นสัญญาณ ป้าย SUBCONSCIOUS |
GOOGLE FLOW
สร้างภาพจริงจาก Prompt
เอา prompt ทั้งชุดไปยิงสร้างภาพจริงใน Google Flow (labs.google/fx) ได้ภาพชื่อ P001, P002, …
- 01สั่งทำทีละ 20 ภาพ/รอบ เพื่อความเร็ว
- 02ยิงถี่ไปเจอ 429 Too Many Requests = โดนจำกัดจำนวนครั้ง → รอสักครู่แล้วยิงใหม่
- 03เก็บภาพ H (แนวนอน) และ V (แนวตั้ง) ในโฟลเดอร์เดียวกัน ระบบตัดต่อจะแยกแนวเองตามอัตราส่วน
ตั้งชื่อไฟล์ให้ดี
แนวนอนตั้งชื่อเป็นเลข set05-01..30 (แมปไล่ตามลำดับบท) · แนวตั้งตั้งชื่อบอกเนื้อหา เช่น Girl_with_balance_scale (แมปตามคอนเทนต์)
เสียงพากย์
สร้างเสียง เลือก 2 วิธี
วิธีที่ 1 ทำเองใน ElevenLabs
เอาสคริปต์ไปวางสร้างเสียงเองที่ elevenlabs.io โหลด mp3 มาใช้
วิธีที่ 2 ให้ Claude ทำให้ (อัตโนมัติ)
เอา API key + voice id ให้ Claude แล้วแนบไฟล์ WORKFLOW.md เป็นขั้นตอน Claude จะสร้างเสียง → แบ่งเสียงให้เข้ากับเนื้อหา → รวมเสียงกับรูป → เรนเดอร์เป็น .mp4 พร้อมโพสต์ คลิปชุดนี้ใช้ Gemini TTS เสียง Leda (โทนเรียบ) คำสั่งจริง:
GEMINI_TTS_KEY=AIza... GEMINI_TTS_STYLE=none \ python3 ~/.claude/skills/doodle-video-editor/scripts/gemini_tts.py \ script.txt Leda out_voice.mp3 out_voice_ts.json # STYLE=none = โทนเรียบสม่ำเสมอ ไม่สวิงอารมณ์ # ได้ MP3 (normalize -16 LUFS) + *_ts.json = timestamp ระดับย่อหน้า # ต้องเปิด Generative Language API บน project ของ key
timestamp สำคัญ
ไฟล์ *_ts.json ที่ได้มา บอกเวลาเริ่ม–จบของแต่ละย่อหน้า เอาไปใช้ทั้งทำซับและสั่งภาพเปลี่ยนตรงจังหวะ · ทางเลือกอื่น: elevenlabs_v3.py หรือ google_tts.py
CLAUDE CODE
Map เวลา → ภาพ (หัวใจ)
สร้างตารางจับคู่ว่าช่วงเวลาไหนใช้ภาพใด เก็บเป็น map_H.json / map_V.json
| ท่อน | ช่วงเวลา | ภาพ |
|---|---|---|
| 1 · Hook | 0–18s | P001–P005 |
| 2 · Desperation | 18–39s | P006–P010 |
| 3 · พลังงานความต้องการ | 39–58s | P011–P015 |
| 4 · เกริ่น 3 เหตุผล | 58–65s | P016 |
| 5 · สูญเสียตัวตน | 65–75s | P017–P019 |
| 6 · ทางออก/หยุดวิ่ง | 101–123s | P026–P032 |
กติกาสำคัญ
แนวนอน (H) แมปไล่ตามลำดับเลขไฟล์ · แนวตั้ง (V) แมปตามเนื้อหาของภาพ (จับคอนเซ็ปต์ภาพเข้ากับใจความบท) ไม่ใช่ตามเลขไฟล์ เพราะโฟลเดอร์ H/V ตั้งชื่อคนละแบบ
/DOODLE-VIDEO-EDITOR
ตัดต่อ 6 ขั้น (WORKFLOW.md)
สคริปต์ทั้งหมดอยู่ในสกิล ~/.claude/skills/doodle-video-editor/scripts/ Claude ทำ 6 ขั้นนี้ต่อเนื่องให้เอง: สคริปต์เสียง → สร้างเสียง + timestamps → แบ่งบท (beats) → แมปภาพเข้าบท → เรนเดอร์ (Ken Burns + crossfade) + ประกอบข้อความ + มิกซ์เพลง → เช็ค storyboard → ไฟล์ final
python3 ~/.claude/skills/doodle-video-editor/scripts/render.py \ map_V.json 1080 1920 out_vertical.mp4 voice.mp3 # แนวนอนใช้: ... 1920 1080 ... # ซูมไม่สั่น: ซูมเชิงเส้น + supersample 3x + lanczos ย่อ # ไม่ตัดท้าย: tpad clone เฟรมสุดท้าย + round() -> วิดีโอ >= เสียงเสมอ
TEXT_Y=230 python3 ~/.claude/skills/doodle-video-editor/scripts/compose_text.py \ out_vertical.mp4 out_vertical_text.mp4 /tmp/overlays.json # TEXT_Y = ตำแหน่งข้อความ (แนวนอน ~140 / แนวตั้ง ~230) # ใช้ hbtext.py (HarfBuzz) เรนเดอร์ Kanit ให้วรรณยุกต์ไทยเรียงถูก
bash ~/.claude/skills/doodle-video-editor/scripts/mix_music.sh \ out_vertical_text.mp4 bgm.wav out_vertical_final.mp4 # เพลงถูก duck ใต้เสียงพูดด้วย sidechaincompress # amix duration=first = ตัดตามความยาววิดีโอ ไม่ยืดเสียงพูด
ผลลัพธ์ & เคล็ดลับ
ไฟล์ที่ได้ + ข้อควรระวัง
| ไฟล์ | รายละเอียด |
|---|---|
| …_horizontal_final.mp4 | 1920×1080 คลิปแนวนอน (YouTube) |
| …_vertical_final.mp4 | 1080×1920 คลิปแนวตั้ง (Reels/TikTok/Shorts) |
| voice_leda.mp3 | เสียงพากย์ไทย Gemini Leda โทนเรียบ |
| map_H / map_V.json | ตารางจับคู่ภาพ–เวลา |
| storyboard_*.png | ภาพตรวจการซิงก์ |
บทเรียน / ข้อควรระวัง (จาก WORKFLOW.md จริง)
- ▸อย่าตัดท้ายคลิป วิดีโอต้อง ≥ เสียงเสมอ (freeze-hold เฟรมท้าย + round frames)
- ▸เสียงไทยใช้ eleven_v3 หรือ Gemini Google Cloud มาตรฐานตัดเว้นวรรคไทยเพี้ยน
- ▸โทนเสียงชอบโทนเรียบไม่สวิงอารมณ์ → GEMINI_TTS_STYLE=none
- ▸วรรณยุกต์ไทยต้องเรนเดอร์ผ่าน HarfBuzz (hbtext.py) ไม่ใช่ PIL ตรงๆ
- ▸ซูมสั่น ต้องซูมเชิงเส้น + supersample + lanczos
- ▸แมปภาพตามเนื้อหา ไม่ใช่ตามเลขไฟล์ (โดยเฉพาะแนวตั้ง)
- ▸เจอ 429 รอสักครู่แล้วยิงใหม่ ทำทีละ 20 ภาพ
- ▸rotate API key ในไฟล์ .env หลังใช้เสร็จเสมอ
🔒 ห้องลับคนทำคลิป AI
อยากทำคลิป AI ให้ปังกว่านี้?
รวมคนทำคลิปด้วย AI มาแชร์เทคนิค prompt, workflow, สกิลตัดต่อ และอัปเดตเครื่องมือใหม่ๆ ก่อนใคร เข้าไปเรียนรู้และถามได้เต็มที่
เข้ากลุ่มเลย →

