การเขียน Prompt และควบคุมการทำงานของ OmniHuman 2.0

1. หลักการสำคัญในการเขียน Prompt (Core Principles)

การเขียน Prompt สำหรับ OmniHuman 2.0 แตกต่างจากการสั่งงานโมเดลทั่วไป เนื่องจากโมเดลนี้เน้นความลื่นไหลในการแสดงบทบาทและการกำกับภาพ:

  • เน้นการเล่าเรื่องแบบต่อเนื่อง (Storytelling Approach): เขียนในลักษณะเล่าประโยคสละสลวยและเป็นธรรมชาติ หลีกเลี่ยงการใส่คำคีย์เวิร์ดเดี่ยวๆ ซ้อนกัน (Isolated keywords)
  • อธิบายเฉพาะการเคลื่อนไหวที่เป็นไดนามิก (Dynamic Events Only): ไม่ต้องเขียนอธิบายคุณลักษณะนิ่งที่มีอยู่แล้วในภาพอ้างอิง เช่น เสื้อผ้า หน้าตา เครื่องประดับ หรือฉากหลังที่เป็นภาพนิ่ง
  • ชัดเจน ไม่ขัดแย้ง และหลีกเลี่ยงคำปฏิเสธ (Clarity & Minimal Negation): ใช้วิธีอธิบายสิ่งที่ต้องการให้เกิดขึ้นอย่างเจาะจง หลีกเลี่ยงการใช้ Negative Prompt หรือคำปฏิเสธ
  • ระบุสถานะการพูด/ร้องเพลงเสมอ (Trigger Keywords): ควรใส่คำว่า “talking”, “speaking”, “crying” หรือ “singing” ไว้ใน Prompt เสมอ เพื่อช่วยให้โมเดลประมวลผลการขยับปาก (Lip-sync) และท่าทางประกอบการพูดได้สมจริงยิ่งขึ้น

2. โครงสร้างแม่แบบ Prompt มาตรฐาน (Recommended Template)

เพื่อให้โมเดลเข้าใจทิศทาง การลำดับภาพ และการแสดงอารมณ์ได้ครบบริบท แนะนำให้จัดลำดับองค์ประกอบตามโครงสร้างนี้:

[Camera Movement] + [Emotion of Speaking Character] + [Speaking State] + [Specific Actions] + [(Optional) Background Events]

ตัวอย่าง Prompt สมบูรณ์:

“The camera slowly moves from the side to a medium-front shot. A young woman is sitting by the window, calm, gently picking up the coffee cup and smiling as she talks to the camera. A boy beside her quietly watches her and occasionally turns to the camera and smiles. The lights in the background are gently flickering.”

3. เทคนิคการควบคุมโมเดลเชิงลึก (In-Depth Model Control)

3.1 การจัดลำดับท่าทางและการเคลื่อนไหวแบบต่อเนื่อง (Action Sequence Control)

  • ใช้คำระบุลำดับเวลา เช่น “first” และ “then” เพื่อสั่งงานท่าทางที่ซับซ้อนตามลำดับ
  • ตัวอย่าง: “The man walks forward first, then stops and puts his hands on his hips while speaking. Then, he turns around to look at the explosion behind him…”

3.2 การกำหนดช่วงเวลาของท่าทางกับการพูด (Choreographing Gestures Relative to Speech)

  • สามารถสั่งให้ตัวละครทำท่าทาง ก่อน เริ่มพูด หรือ พูดเสร็จแล้วค่อย แสดงท่าทางได้
  • ตัวอย่างทำท่าทางก่อนพูด: “The man quickly took out the cigarette from his mouth and then started speaking to the camera.”
  • ตัวอย่างทำท่าทางหลังพูด: “The woman spoke to the camera, and after finishing, she quickly turned around and ran backward.”

3.3 การควบคุมมุมกล้อง และจังหวะความเร็ว (Camera Movement & Rhythm)

  • กำหนดทิศทาง ความเร็ว และจุดสิ้นสุดของกล้องได้ชัดเจน เช่น “The camera moves forward and focuses on [character]”
  • ใส่คำว่า “rapidly” เพื่อเพิ่มความเร็วและการตอบสนองในการเปลี่ยนมุมกล้อง
  • ข้อระวัง: หลีกเลี่ยงการสั่งให้กล้องแพนหลบจนตัวละครหลุดออกจากเฟรมเป็นเวลานานแล้วกลับเข้ามาใหม่ เพราะอาจเกิดปัญหาความต่อเนื่องของลักษณะตัวละคร (Consistency changes)

3.4 การสลับจุดโฟกัสกล้องระหว่างตัวละคร (Camera Focus Shift Control)

  • ควบคุมการเปลี่ยนจุดโฟกัสของกล้องระหว่างตัวละครฉากหน้า (Foreground) และฉากหลัง (Background) ตามเนื้อเรื่อง
  • ตัวอย่าง: “The reporter is reporting to the camera. Meanwhile, the king behind suddenly collapses. The camera focuses on the collapsed king behind the reporter. The reporter turns around incredibly quickly and speaks while looking behind.”

3.5 การควบคุมระดับอารมณ์และไมโครเอ็กซ์เพรสชัน (Emotion & Micro-expression Control)

  • สั่งให้ตัวละครเปลี่ยนสีหน้าและอารมณ์อย่างละเอียดสอดคล้องกับเนื้อหาในไฟล์เสียง
  • ตัวอย่าง: “First, the man looked calm and spoke to the camera. Then, he suddenly became nervous and panicked, frowning tightly.”

3.6 การโต้ตอบกับสภาพแวดล้อม (Environmental Interaction & Background Events)

  • ควบคุมการปฏิสัมพันธ์ระหว่างตัวละครกับฉากหลัง เช่น ลมพัด หรือเหตุการณ์ที่เกิดขึ้นรอบข้าง
  • ตัวอย่าง: “Holding the camera, the woman looks into the distance. In the distance behind her, fireworks are going off, and the wind blows her hair and clothes.”

3.7 การสร้างเอฟเฟกต์พิเศษและองค์ประกอบใหม่ (Special Effects & Visual Elements)

  • สามารถสั่งเพิ่มวัตถุหรือเอฟเฟกต์ที่ไม่มีในภาพต้นฉบับได้ผ่าน Prompt
  • ตัวอย่าง: “The chick put on sunglasses and held two guns in hand and spoke evilly.”

4. ข้อควรระวังและแนวทางปฏิบัติที่ดีที่สุด (Best Practices & Limitations)

  1. คุณภาพของภาพตั้งต้น (Image Clarity): ความชัดของวิดีโอผลลัพธ์ขึ้นอยู่กับความคมชัดของภาพอ้างอิงอินพุตโดยตรง
  2. สัดส่วนใบหน้าในเฟรม (Face Proportion): หลีกเลี่ยงภาพมุมไกลสุดขอบ (Extreme long-range shots) เพราะหากใบหน้ามีขนาดเล็กเกินไปในเฟรม อาจเกิดอาการขยับปากไม่ตรงกับเสียง
  3. ความสุ่มของผลลัพธ์ (Randomness): การเจนวิดีโอในแต่ละครั้งมีความสุ่ม หากฉากนั้นมีรายละเอียดซับซ้อน แนะนำให้ทดลองเจนหลายครั้ง
  4. ลองไม่ใส่ Prompt (Audio Comprehension Test): เนื่องจาก OmniHuman 2.0 มีระบบเข้าใจบริบทเสียงอัตโนมัติ หากเขียน Prompt แล้วผลลัพธ์ยังไม่ตรงใจ สามารถลองส่งงานโดย ไม่ใส่ Prompt เพื่อปล่อยให้โมเดลวิเคราะห์อารมณ์และท่าทางจากไฟล์เสียงโดยตรงได้