ComfyUI  >  เวิร์กโฟลว์  >  LivePortrait | อนิเมทภาพเหมือน | Img2Vid

LivePortrait | อนิเมทภาพเหมือน | Img2Vid

เวิร์กโฟลว์ ComfyUI LivePortrait Img2Vid นี้นำภาพเหมือนที่นิ่งมาเป็นภาพเคลื่อนไหวโดยการรวมเฟรมเวิร์ก LivePortrait ที่มีประสิทธิภาพ ทำให้คุณสามารถสร้างวิดีโอเคลื่อนไหวที่มีความสมจริงสูง โดยมีการควบคุมเต็มรูปแบบในด้านการแสดงอารมณ์ การเคลื่อนไหวของศีรษะ และรายละเอียดเล็ก ๆ น้อย ๆ เช่น ตาและปาก

ComfyUI LivePortrait เวิร์กโฟลว์

ComfyUI LivePortrait Workflow
ต้องการเรียกใช้เวิร์กโฟลว์นี้หรือไม่?
  • เวิร์กโฟลว์ที่ทำงานได้เต็มที่
  • ไม่มีโหนดหรือโมเดลที่ขาดหายไป
  • ไม่จำเป็นต้องตั้งค่าด้วยตนเอง
  • มีภาพที่น่าทึ่ง

ComfyUI LivePortrait ตัวอย่าง

ComfyUI LivePortrait คำอธิบาย

LivePortrait คืออะไร?

LivePortrait เป็นเฟรมเวิร์กการอนิเมทภาพเหมือนที่มีประสิทธิภาพที่พัฒนาโดย Kuaishou Technology ซึ่งมีเป้าหมายในการสังเคราะห์วิดีโอที่สมจริงจากภาพต้นฉบับเพียงภาพเดียว มันใช้ภาพต้นฉบับเป็นการอ้างอิงลักษณะและดึงการเคลื่อนไหว (การแสดงอารมณ์และท่าศีรษะ) จากวิดีโอขับเคลื่อน เสียง ข้อความ หรือการสร้าง

ต่างจากวิธีการแพร่กระจายทั่วไป LivePortrait สำรวจและขยายเฟรมเวิร์กที่ใช้คีย์พอยต์โดยนัยเพื่อปรับสมดุลประสิทธิภาพการคำนวณและการควบคุมได้อย่างมีประสิทธิภาพ มันเน้นการทำให้เกิดการทั่วไปที่ดีขึ้น การควบคุมได้ และประสิทธิภาพสำหรับการใช้งานจริง LivePortrait มีคุณภาพการสร้างที่สูงแม้เมื่อเทียบกับวิธีการแพร่กระจาย ในขณะที่เร็วมาก - ประมาณ 12.8ms ต่อเฟรมบน GPU RTX 4090 พร้อม PyTorch

สำหรับรายละเอียดเพิ่มเติม โปรดเยี่ยมชม

LivePortrait ทำงานอย่างไร

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

ส่วนประกอบหลักใน LivePortrait ได้แก่:

  1. ตัวดึงคุณสมบัติลักษณะ: เข้ารหัสข้อมูลเอกลักษณ์และลักษณะจากภาพต้นฉบับ
  2. ตัวดึงการเคลื่อนไหว: ดึงคุณสมบัติการเคลื่อนไหว (คีย์พอยต์ใบหน้า) จากเฟรมวิดีโอขับเคลื่อน
  3. โมดูลการบิดเบือน: ใช้การเคลื่อนไหวที่ดึงออกมาเพื่อบิดเบือนคุณสมบัติของภาพต้นฉบับ โดยจัดให้ตรงกับท่าทางและการแสดงอารมณ์ของการขับเคลื่อน
  4. ตัวสร้างภาพ: นำคุณสมบัติที่บิดเบือนแล้วมาสังเคราะห์เฟรมเคลื่อนไหวที่สมจริง
  5. โมดูลการเย็บและการกำหนดเป้าหมายใหม่: เย็บภาพเหมือนที่สร้างขึ้นกลับไปยังภาพต้นฉบับและอนุญาตให้ควบคุมพื้นที่ใบหน้าเฉพาะเช่น ตาและปาก

โมดูลเหล่านี้ออกแบบมาอย่างมีประสิทธิภาพและทำงานร่วมกันเพื่อให้เกิดการอนิเมท LivePortrait ที่มีคุณภาพสูงและควบคุมได้

วิธีใช้ ComfyUI LivePortrait

ขอบคุณ node และเวิร์กโฟลว์ การสร้างอนิเมทภาพเหมือนที่สมจริงใน ComfyUI ง่ายขึ้นมาก ต่อไปนี้เป็นการสรุปส่วนประกอบและพารามิเตอร์หลักของเวิร์กโฟลว์ ComfyUI LivePortrait ของเขา

ขั้นตอนสำคัญของเวิร์กโฟลว์ ComfyUI LivePortrait Img2Vid

1. โหลดโมเดล Live Portrait

  • เพิ่ม "DownloadAndLoadLivePortraitModels" node
  • ตั้งค่าความแม่นยำเป็น auto หรือ fp16 เพื่อประสิทธิภาพที่ดีที่สุด

2. เลือกตัวตรวจจับใบหน้าสำหรับ LivePortrait

  • คุณมีตัวเลือกระหว่าง "LivePortraitLoadCropper" (InsightFace) และ "LivePortraitLoadMediaPipeCropper" nodes
  • InsightFace มีความแม่นยำมากกว่าแต่มีใบอนุญาตที่ไม่ใช่เชิงพาณิชย์ ในขณะที่ MediaPipe เร็วกว่าใน CPU แต่มีความแม่นยำน้อยกว่า
  • ทั้งสองส่งออก "cropper" ที่จะใช้ตรวจจับและครอบตัดใบหน้า

3. โหลดและเตรียมภาพต้นฉบับสำหรับ LivePortrait

  • โหลดภาพเหมือนต้นฉบับของคุณโดยใช้ "Load Image" node
  • ปรับขนาดเป็น 512x512 โดยใช้ "ImageResize" node
  • เชื่อมต่อภาพที่ปรับขนาดแล้วกับ "LivePortraitCropper" node
  • เชื่อมต่อเอาท์พุต "cropper" ของตัวตรวจจับใบหน้าที่คุณเลือกกับ node นี้
  • พารามิเตอร์หลักใน "LivePortraitCropper" Node

"dsize": กำหนดความละเอียดของภาพใบหน้าที่ครอบตัด

  • ค่าเริ่มต้นคือ 512 หมายถึงใบหน้าจะถูกครอบตัดเป็น 512x512 พิกเซล
  • ค่าที่สูงกว่าจะครอบตัดใบหน้าในความละเอียดที่สูงกว่า แต่กระบวนการอาจช้าลง
  • ค่าที่ต่ำกว่าจะเร็วกว่าแต่รายละเอียดอาจหายไปบ้าง

"scale": ควบคุมการซูมเข้าในภาพใบหน้าที่ครอบตัด

  • ค่าเริ่มต้นคือ 2.3 ค่าที่สูงกว่าจะซูมเข้าใกล้ใบหน้ามากขึ้น ค่าที่ต่ำกว่าจะรวมส่วนของศีรษะ/พื้นหลังมากขึ้น
  • คุณต้องปรับสิ่งนี้เพื่อให้การครอบตัดรวมใบหน้าและพื้นหลังบางส่วน แต่ไม่มากเกินไป
  • การครอบตัดใบหน้าที่ดีเป็นสิ่งสำคัญสำหรับการโอนย้ายการเคลื่อนไหวให้ทำงานได้ดี
  • ค่าทั่วไปอยู่ระหว่าง 1.8 ถึง 2.5 ขึ้นอยู่กับการจัดกรอบของภาพต้นฉบับ

"face_index": หากมีการตรวจจับใบหน้าหลายใบในภาพนี้ เลือกใบหน้าที่จะครอบตัด

  • ค่าเริ่มต้นคือ 0 ซึ่งเลือกใบหน้าแรกที่ตรวจจับได้
  • เพิ่มค่านี้หากคุณต้องการเลือกใบหน้าอื่นในภาพ
  • ใบหน้าที่ตรวจจับได้จะเรียงลำดับตามการตั้งค่า "face_index_order" (ค่าเริ่มต้นคือจากใหญ่ไปเล็ก)

"vx_ratio" และ "vy_ratio" (ไม่บังคับ): อนุญาตให้คุณเลื่อนการครอบตัดในแนวตั้ง (vy) หรือแนวนอน (vx)

  • ค่าช่วงจาก -1 ถึง 1
  • ตัวอย่างเช่น การตั้งค่า vy เป็น 0.1 จะเลื่อนการครอบตัดขึ้น 10% ของขนาดเฟรม
  • สิ่งนี้สามารถช่วยได้หากการครอบตัดอัตโนมัติไม่ตรงแนวเล็กน้อย

"face_index_order": กำหนดการเรียงลำดับใบหน้าที่ตรวจจับได้เมื่อเลือกด้วย face_index

  • ค่าเริ่มต้นคือ "large-small" ซึ่งเรียงลำดับจากใบหน้าที่ใหญ่ที่สุดไปเล็กที่สุด
  • สามารถเรียงลำดับจากซ้ายไปขวา บนลงล่าง ฯลฯ
  • สิ่งนี้เกี่ยวข้องเฉพาะเมื่อคุณมีใบหน้าหลายใบในภาพของคุณ

4. โหลดและเตรียมวิดีโอขับเคลื่อนสำหรับ LivePortrait

  • โหลดวิดีโอขับเคลื่อนของคุณโดยใช้ "VHS_LoadVideo" node
  • ปรับ num_frames โดยใช้ primitive "frame_load_cap"
  • ปรับขนาดเฟรมวิดีโอเป็น 480x480 โดยใช้ "GetImageSizeAndCount" node
  • คุณสามารถครอบตัดเฟรมวิดีโอขับเคลื่อนได้โดยใช้ "LivePortraitCropper" node อีกตัวหนึ่ง

5. ใช้การโอนย้ายการเคลื่อนไหวสำหรับ LivePortrait

  • เพิ่ม "LivePortraitProcess" node
  • เชื่อมต่อ pipeline ที่โหลด ภาพต้นฉบับ crop_info ภาพต้นฉบับที่ครอบตัด และเฟรมขับเคลื่อนไปยัง "LivePortraitProcess" node
  • พารามิเตอร์หลักใน "LivePortraitProcess" Node

"lip_zero": เมื่อเปิดใช้งาน สิ่งนี้จะตั้งค่าพารามิเตอร์ปากเป็นศูนย์หากต่ำกว่าค่าที่กำหนด

  • สิ่งนี้สามารถช่วยลดการเคลื่อนไหวของปากที่ไม่เป็นธรรมชาติและปรับปรุงการซิงค์ปาก
  • แนะนำให้เปิดใช้งานสิ่งนี้เว้นแต่คุณต้องการรักษาการเคลื่อนไหวของปากทั้งหมด

"lip_zero_threshold": กำหนดเกณฑ์ที่พารามิเตอร์ปากจะถูกตั้งค่าเป็นศูนย์เมื่อเปิดใช้งาน "lip_zero"

  • ค่าเริ่มต้นคือ 0.03 ค่าที่สูงกว่าจะตั้งค่าการเคลื่อนไหวของปากมากขึ้น ค่าที่ต่ำกว่าจะรักษาไว้มากขึ้น
  • ปรับสิ่งนี้หากคุณต้องการเปลี่ยนแปลงปริมาณการเคลื่อนไหวของปากที่ถูกระงับ

"stitching": เมื่อเปิดใช้งาน สิ่งนี้จะผสมใบหน้าที่เคลื่อนไหวกลับไปยังภาพต้นฉบับโดยใช้กระบวนการเย็บ

  • สิ่งนี้สามารถช่วยสร้างการเปลี่ยนแปลงที่ราบรื่นระหว่างใบหน้าที่เคลื่อนไหวและพื้นหลัง
  • แนะนำให้เปิดใช้งานสิ่งนี้เพื่อผลลัพธ์ที่ดูเป็นธรรมชาติที่สุด

"delta_multiplier": ปรับขนาดพารามิเตอร์การเคลื่อนไหวด้วยตัวคูณ

  • ค่าเริ่มต้นคือ 1.0 ค่าที่สูงกว่าจะเพิ่มการเคลื่อนไหว ค่าที่ต่ำกว่าจะลดลง
  • สามารถใช้ปรับความเข้มของการเคลื่อนไหวของใบหน้าโดยรวม
  • ค่าทั่วไปอยู่ระหว่าง 0.8 ถึง 1.5 ขึ้นอยู่กับผลที่ต้องการ

"mismatch_method": กำหนดวิธีการที่เวิร์กโฟลว์จัดการกับการไม่ตรงกันระหว่างจำนวนเฟรมต้นฉบับและเฟรมขับเคลื่อน

  • ตัวเลือกได้แก่ "constant", "cycle", "mirror", และ "cut"
  • "constant" จะค้างอยู่ที่เฟรมสุดท้าย "cycle" จะวนกลับ "mirror" จะเล่นไปข้างหน้าแล้วถอยหลัง "cut" จะหยุด
  • ค่าเริ่มต้นคือ "constant" เปลี่ยนสิ่งนี้หากคุณต้องการพฤติกรรมที่แตกต่างเมื่อวิดีโอขับเคลื่อนยาวกว่าหรือสั้นกว่าต้นฉบับ

"relative_motion_mode": ควบคุมวิธีการโอนย้ายการเคลื่อนไหวจากวิดีโอขับเคลื่อนไปยังภาพต้นฉบับ

  • ตัวเลือกได้แก่ "relative", "source_video_smoothed", "relative_rotation_only", "single_frame", และ "off"
  • "relative" เป็นค่าเริ่มต้นและใช้การโอนย้ายการเคลื่อนไหวแบบสัมพัทธ์
  • "off" จะปิดการโอนย้ายการเคลื่อนไหวทั้งหมด
  • ทดลองกับโหมดต่าง ๆ เพื่อดูว่าโหมดใดให้ผลลัพธ์ที่ดีที่สุดสำหรับการใช้งานเฉพาะของคุณ

"driving_smooth_observation_variance": ควบคุมความราบรื่นของการเคลื่อนไหวขับเคลื่อนเมื่อใช้โหมดการเคลื่อนไหว "source_video_smoothed"

  • ค่าที่สูงกว่าจะทำให้การเคลื่อนไหวราบรื่นขึ้น ค่าที่ต่ำกว่าจะรักษาการเคลื่อนไหวต้นฉบับมากขึ้น
  • ค่าเริ่มต้นคือ 0.000003 ปรับสิ่งนี้หากคุณต้องการเปลี่ยนแปลงความราบรื่นของการโอนย้ายการเคลื่อนไหว

6. ประกอบผลลัพธ์ (ไม่บังคับ) สำหรับ LivePortrait

  • เพื่อประกอบใบหน้าที่เคลื่อนไหวกลับไปยังภาพต้นฉบับ ใช้ "LivePortraitComposite" node
  • เชื่อมต่อภาพต้นฉบับ ภาพที่ครอบตัดที่เคลื่อนไหว ข้อมูลเอาต์พุต LivePortrait และหน้ากากที่ไม่บังคับ
  • สิ่งนี้จะส่งออกเฟรมเต็มพร้อมใบหน้าที่เคลื่อนไหวผสมอยู่

7. กำหนดเป้าหมายใหม่ (ไม่บังคับ) สำหรับ LivePortrait

  • สำหรับการควบคุมที่ละเอียดกว่าบนตาและปาก ใช้ "LivePortraitRetargeting" node
  • เปิดใช้งานการกำหนดเป้าหมายใหม่สำหรับตาและ/หรือปากและปรับตัวคูณของพวกเขา
  • เชื่อมต่อข้อมูลการกำหนดเป้าหมายใหม่กับ "LivePortraitProcess"

โปรดทราบว่าโมเดล Insightface เป็นสิ่งจำเป็นในเวิร์กโฟลว์นี้ ใบอนุญาตโมเดล Insightface (https://github.com/deepinsight/insightface/releases/download/v0.7/buffalo_l.zip) มีลักษณะไม่ใช่เชิงพาณิชย์

หากคุณสนใจใน LivePortrait Vid2Vid โปรดใช้

ต้องการเวิร์กโฟลว์ ComfyUI เพิ่มเติมหรือไม่?

RunComfy

© ลิขสิทธิ์ 2024 RunComfy. สงวนลิขสิทธิ์

RunComfy เป็นผู้นำ ComfyUI แพลตฟอร์มที่นำเสนอ ComfyUI ออนไลน์ สภาพแวดล้อมและบริการ พร้อมด้วย เวิร์กโฟลว์ ComfyUI ที่มีภาพที่น่าทึ่ง