การแนะนำ
เวอร์ชัน Google Colab (การประมวลผลบนคลาวด์ฟรีในเบราว์เซอร์)
การติดตั้งในท้องถิ่น
สนับสนุน
แนวทางปฏิบัติที่ดีที่สุด
การตั้งค่าและการดำเนินการที่ง่ายดาย - ภายในและผ่าน colab
ไม่ต้องวุ่นวายกับการดาวน์โหลดและติดตั้งข้อกำหนดเบื้องต้นด้วยตนเอง
Google Colab มีเพียง 2 เซลล์ที่จะดำเนินการ
ผู้ใช้ Windows ต้องการเพียงไฟล์เดียวในการติดตั้ง อัปเดต และรัน
ตัวเลือกที่บันทึกไว้อย่างดีด้านล่าง
ไม่ต้องสงสัยอีกต่อไปว่ามีอะไรทำ!
สำหรับคลิปทดสอบ 720p 60fps 9 วินาทีของฉันผ่าน Colab T4:
Wav2Lip ต้นฉบับ | อีซี่-Wav2Lip |
---|---|
เวลาดำเนินการ: 6 นาที 53 วินาที | เวลาดำเนินการ: 56 วินาที |
นั่นไม่ใช่การพิมพ์ผิด! คลิปของฉันเปลี่ยนจากเกือบ 7 นาทีเหลือเพียงไม่ถึง 1 นาที!
ข้อมูลการติดตามจะถูกบันทึกไว้ระหว่างรุ่นของวิดีโอเดียวกัน ซึ่งช่วยประหยัดเวลาได้มากขึ้น:
Easy-Wav2Lip ในวิดีโอเดิมอีกครั้ง |
---|
เวลาดำเนินการ: 25 วินาที |
Easy-Wav2Lip แก้ไขข้อบกพร่องด้านการมองเห็นบนริมฝีปาก:
3 ตัวเลือกสำหรับคุณภาพ:
รวดเร็ว: Wav2Lip
ปรับปรุง: Wav2Lip พร้อมหน้ากากขนนกรอบๆ ปากเพื่อคืนความละเอียดดั้งเดิมสำหรับส่วนที่เหลือของใบหน้า
ปรับปรุงแล้ว: Wav2Lip + มาส์ก + การลดขนาด GFPGAN บนใบหน้า
https://colab.research.google.com/github/anothermartz/Easy-Wav2Lip/blob/v8.3/Easy_Wav2Lip_v8.3.ipynb
ข้อกำหนด: การ์ด Nvidia ที่รองรับ cuda 12.2 หรืออุปกรณ์ MacOS ที่รองรับ mps ผ่าน Apple Silicon หรือ AMD GPU
ดาวน์โหลด Easy-Wav2Lip.bat
วางไว้ในโฟลเดอร์บนพีซีของคุณ (เช่น: ในเอกสาร)
เรียกใช้และทำตามคำแนะนำ มันจะสร้างโฟลเดอร์ชื่อ Easy-Wav2Lip ภายในโฟลเดอร์ใดก็ตามที่คุณเรียกใช้
เรียกใช้ไฟล์นี้ทุกครั้งที่คุณต้องการใช้ Easy-Wav2Lip
สิ่งนี้ควรจัดการการติดตั้งส่วนประกอบที่จำเป็นทั้งหมด
ตรวจสอบให้แน่ใจว่าได้ติดตั้งสิ่งต่อไปนี้แล้วและสามารถเข้าถึงได้ผ่านเทอร์มินัลของคุณ:
Python 3.10 (ฉันทดสอบเฉพาะ 3.10.11 - เวอร์ชันอื่นอาจไม่ทำงาน!)
คอมไพล์
Windows & Linux: Cuda (แค่มีไดรเวอร์ Nvidia ล่าสุดก็ทำได้ ฉันทดสอบแค่ 12.2 เท่านั้น)
เรียกใช้สิ่งต่อไปนี้ในเทอร์มินัลของคุณเมื่อคุณได้นำทางไปยังโฟลเดอร์ที่คุณต้องการติดตั้ง Easy-Wav2Lip:
ตั้งค่า venv ติดตั้ง ffmpeg จากนั้นติดตั้ง Easy-Wav2Lip:
เปิด cmd และนำทางไปยังโฟลเดอร์ที่คุณต้องการติดตั้ง EasyWav2Lip โดยใช้ cd EG: cd Documents
คัดลอกและวางโค้ดต่อไปนี้ลงในหน้าต่าง cmd ของคุณ: หมายเหตุ: จะมีการสร้าง 2 โฟลเดอร์ในตำแหน่งนี้: Easy-Wav2Lip และ Easy-Wav2Lip-venv (การติดตั้ง python แบบแยก)
py -3.10 -m venv Easy-Wav2Lip-venv Easy-Wav2Lip-venvScriptsactivate python -m pip install --upgrade pip python -m pip install requests set url=https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-win64-gpl.zip python -c "import requests; r = requests.get('%url%', stream=True); open('ffmpeg.zip', 'wb').write(r.content)" powershell -Command "Expand-Archive -Path .\ffmpeg.zip -DestinationPath .\" xcopy /e /i /y "ffmpeg-master-latest-win64-gplbin*" .Easy-Wav2Lip-venvScripts del ffmpeg.zip rmdir /s /q ffmpeg-master-latest-win64-gpl git clone https://github.com/anothermartz/Easy-Wav2Lip.git cd Easy-Wav2Lip pip install -r requirements.txt python install.py
ตอนนี้ให้รัน Easy-Wav2Lip:
3. ปิดและเปิด cmd อีกครั้ง จากนั้น cd ไปยังไดเร็กทอรีเดียวกันกับในขั้นตอนที่ 1
4. วางรหัสต่อไปนี้:
Easy-Wav2Lip-venvScriptsactivate cd Easy-Wav2Lip call run_loop.bat
ดูการใช้งานสำหรับคำแนะนำเพิ่มเติม
ตั้งค่า venv ติดตั้ง ffmpeg จากนั้นติดตั้ง Easy-Wav2Lip:
เปิด Terminal และนำทางไปยังโฟลเดอร์ที่คุณต้องการติดตั้ง Easy0Wav2Kip โดยใช้ cd EG: cd ~/Documents
คัดลอกและวางโค้ดต่อไปนี้ลงในหน้าต่างเทอร์มินัลของคุณ: หมายเหตุ: จะมีการสร้าง 2 โฟลเดอร์ในตำแหน่งนี้: Easy-Wav2Lip และ Easy-Wav2Lip-venv (การติดตั้ง python แบบแยก)
python3.10 -m venv Easy-Wav2Lip-venv source EW2Lvenv/bin/activate python -m pip install --upgrade pip python -m pip install requests for file in ffmpeg ffprobe ffplay; do curl -O "https://evermeet.cx/ffmpeg/${file}-6.1.1.zip" unzip "${file}-6.1.1.zip" done mv -f ffmpeg ffprobe ffplay /Easy-Wav2Lip-venv/bin/ rm -f ffmpeg-6.1.1.zip ffprobe-6.1.1.zip ffplay-6.1.1.zip source EW2Lvenv/bin/activate git clone https://github.com/anothermartz/Easy-Wav2Lip.git cd Easy-Wav2Lip pip install -r requirements.txt python install.py
ตอนนี้ให้รัน Easy-Wav2Lip:
3. ปิดและเปิดเทอร์มินัลอีกครั้ง จากนั้น cd ไปยังไดเร็กทอรีเดียวกันกับในขั้นตอนที่ 1
4. วางรหัสต่อไปนี้:
source Easy-Wav2Lip-venv/bin/activate cd Easy-Wav2Lip ./run_loop.sh
เมื่อติดตั้งทุกอย่างแล้ว ไฟล์ชื่อ config.ini จะปรากฏขึ้น
เพิ่มเส้นทางไปยังไฟล์วิดีโอและเสียงของคุณที่นี่ และกำหนดการตั้งค่าตามที่คุณต้องการ
เคล็ดลับสำหรับมือโปร:
บน Windows ให้กด Shift ค้างไว้เมื่อคลิกขวาที่ไฟล์ที่คุณต้องการใช้ จากนั้นกด "a" หรือคลิก "copy as path" จากนั้นจะได้เส้นทางที่คุณสามารถวางเป็น video_file หรือ Vocal_file
MacOS: คลิกขวาที่ไฟล์ กดปุ่ม Option (Alt) ค้างไว้แล้วเลือก “คัดลอก [ชื่อไฟล์] เป็นชื่อพาธ” จากเมนูบริบท
บันทึก config.ini แล้วปิด ซึ่งจะเริ่มกระบวนการ Wav2Lip และไฟล์ของคุณจะถูกบันทึกในไดเร็กทอรีเดียวกันกับไฟล์ video_path ของคุณ
config.ini จะเปิดขึ้นอีกครั้ง และคุณสามารถเปลี่ยนอินพุตและการตั้งค่าได้
ดูแนวทางปฏิบัติที่ดีที่สุดด้านล่างสำหรับเคล็ดลับในการเริ่มต้น
ดูการปรับแต่งขั้นสูงด้านล่างสำหรับคำอธิบายการตั้งค่าที่ไม่ได้อธิบายไว้ใน config.ini
Wav2Lip ดั้งเดิมแน่นอน
ความเร็วที่เพิ่มขึ้นอย่างมากและคุณภาพฐานที่ได้รับการปรับปรุงนั้นมาจาก cog-Wav2Lip
โค้ดที่จะยกระดับด้วย GFPGAN ส่วนใหญ่มาจาก wav2lip-hq-updated-ESRGAN
ฉันไม่สามารถทำสิ่งนี้ได้หากไม่มีความช่วยเหลือจาก AI; ก่อนที่จะทำสิ่งนี้ ฉันมีประสบการณ์เกี่ยวกับ Python น้อยมาก! LLM ที่เลือก: Bing Chat (ปัจจุบันเรียกว่า 'Copilot')
ขอขอบคุณ JustinJohn ที่สร้าง Wav2Lip_siplified colabs ซึ่งเป็นแรงบันดาลใจให้ฉันสร้างเวอร์ชันของตัวเองที่เรียบง่ายยิ่งขึ้น
หากคุณมีปัญหาในการดำเนินการนี้ โปรดดูแท็บปัญหาเพื่อดูว่ามีใครเขียนเกี่ยวกับเรื่องนี้หรือไม่ ถ้าไม่เช่นนั้น ให้ตั้งกระทู้ใหม่ แต่ต้องแน่ใจว่าคุณได้รวมสิ่งต่อไปนี้:
ถ้า colab:
หมายเลขเวอร์ชัน colab ของ Easy-Wav2Lip
ข้อมูลเกี่ยวกับไฟล์ที่ใช้
หากติดตั้งในเครื่อง:
EasyWav2Lip.bat หรือการติดตั้งด้วยตนเอง
ระบบปฏิบัติการ (windows 11, linux ฯลฯ)
รุ่นจีพียู
เวอร์ชันไดรเวอร์ GPU
เวอร์ชันหลาม
ข้อมูลเกี่ยวกับไฟล์ที่ใช้และไฟล์อื่นใช้งานได้หรือไม่
หากไม่มีข้อมูลนี้ ฉันก็จะขอข้อมูลดังกล่าวต่อไป ดังนั้นการตอบกลับเกี่ยวกับปัญหานี้จะใช้เวลานานกว่านี้
มีโอกาสที่หากมีสิ่งใดที่แตกต่างจากข้อกำหนด นั่นอาจเป็นสาเหตุที่ทำให้ใช้งานไม่ได้ และคุณอาจต้องใช้เวอร์ชัน Colab หากยังไม่ได้ใช้
สำหรับการพูดคุยทั่วไปเกี่ยวกับเรื่องนี้และการพูดคุยแบบ lipync อื่น ๆ ฉันจะอยู่ในความไม่ลงรอยกัน:
ลิงค์เชิญ: https://discord.gg/FNZR9ETwKY
ช่อง Wav2Lip: https://discord.com/channels/667279414681272320/1076077584330280991
ผลลัพธ์ที่ดีที่สุดมาจากการจัดลำดับคำพูดไปจนถึงการกระทำและการแสดงออกของผู้พูดก่อนที่จะส่งผ่าน wav2lip!
ไฟล์วิดีโอ:
ต้องมีใบหน้าในทุกเฟรม ไม่เช่นนั้น Wav2Lip จะล้มเหลว
ครอบตัดหรือมาสก์ใบหน้าที่คุณไม่ต้องการลิปซิงค์ ไม่เช่นนั้นระบบจะเลือกแบบสุ่ม
ใช้ h264 .mp4 - อาจรองรับไฟล์ประเภทอื่น แต่ผลลัพธ์จะเป็นดังนี้
รูปภาพยังไม่ผ่านการทดสอบ
ใช้ไฟล์ขนาดเล็กในทุก ๆ ด้าน (ลอง <720p, <30 วินาที, 30fps เป็นต้น - ไฟล์ที่ใหญ่กว่าอาจใช้งานได้ แต่โดยปกติแล้วสาเหตุมักเป็นสาเหตุที่ทำให้ไฟล์ล้มเหลว)
ในการลองครั้งแรก ให้ใช้คลิปเล็กๆ เพื่อทำความคุ้นเคยกับกระบวนการ เฉพาะเมื่อคุณคุ้นเคยแล้วเท่านั้น คุณควรลองใช้ไฟล์ที่ใหญ่กว่าเพื่อดูว่ามันใช้งานได้หรือไม่
ไฟล์เสียง:
บันทึกเป็น .wav และมีความยาวเท่ากับวิดีโออินพุตของคุณ
หมายเหตุ: ฉันสังเกตเห็นว่าประมาณ 80 มิลลิวินาที ถูกตัดออกจากวิดีโอ/เสียงที่ประมวลผล และฉันไม่แน่ใจว่าจะแก้ไขปัญหานี้อย่างไร ดังนั้นตรวจสอบให้แน่ใจว่าคุณมีสิ่งพิเศษมากกว่าที่คุณต้องการจริงๆ เล็กน้อย!
คุณสามารถเข้ารหัสลงในไฟล์วิดีโอของคุณและปล่อย Vocal_path ว่างไว้ได้ แต่การดำเนินการนี้จะเพิ่มสองสามวินาทีให้กับเวลาในการประมวลผลเนื่องจากจะแยกเสียงออกจากวิดีโอ
หรือ
เลือกไฟล์เสียงของคุณแยกกัน
ฉันไม่แน่ใจว่าไฟล์ประเภทใดที่รองรับ อย่างน้อยก็ใช้งานได้ .wav และ .mp3
ตัวเลือก | ข้อดี | ข้อเสีย |
---|---|---|
Wav2Lip | + ลิปซิงค์ที่แม่นยำยิ่งขึ้น + พยายามปิดปากเมื่อไม่มีเสียง | - บางครั้งทำให้ฟันที่หายไป (ผิดปกติ) |
Wav2Lip_GAN | + ดูสวยขึ้น + คงสำนวนดั้งเดิมของผู้พูดมากขึ้น | - ปกปิดการเคลื่อนไหวของริมฝีปากเดิมได้ไม่ดีเท่าโดยเฉพาะเมื่อไม่มีเสียง |
ฉันขอแนะนำให้ลองใช้ Wav2Lip ก่อนแล้วเปลี่ยนไปใช้เวอร์ชัน GAN หากคุณประสบกับผลกระทบที่ดูเหมือนว่าผู้พูดมีช่องว่างขนาดใหญ่ในฟัน
เมื่อเปิดใช้งาน wav2lip จะครอบตัดใบหน้าในแต่ละเฟรมโดยแยกจากกัน
เหมาะสำหรับการเคลื่อนไหวอย่างรวดเร็วหรือตัดวิดีโอ
อาจมีอาการกระตุกได้หากใบหน้าอยู่ในมุมแปลกๆ
เมื่อปิดใช้งาน wav2lip จะผสมผสานตำแหน่งใบหน้าที่ตรวจพบระหว่าง 5 เฟรม
เหมาะสำหรับการเคลื่อนไหวช้าๆ โดยเฉพาะใบหน้าในมุมที่ไม่ธรรมดา
ปากสามารถชดเชยได้เมื่อใบหน้าเคลื่อนไหวภายในเฟรมอย่างรวดเร็ว ดูน่ากลัวระหว่างการตัด
ตัวเลือกนี้ควบคุมจำนวนพิกเซลที่จะเพิ่มหรือลบออกจากการครอบตัดใบหน้าในแต่ละทิศทาง
ค่า | ตัวอย่าง | ผล |
---|---|---|
คุณ | ยู = -5 | ลบ 5 พิกเซลจากด้านบนของใบหน้า |
ดี | ด = 10 | เพิ่ม 10 พิกเซลที่ด้านล่างของใบหน้า |
ล | ล = 0 | ไม่มีการเปลี่ยนแปลงไปทางด้านซ้ายของใบหน้า |
ร | ร = 15 | เพิ่ม 15 พิกเซลทางด้านขวาของใบหน้า |
การบุนวมสามารถช่วยลบเส้นแข็งที่คางหรือขอบอื่นๆ ของใบหน้าได้ แต่การบุนวมมากเกินไปหรือน้อยเกินไปสามารถเปลี่ยนขนาดหรือตำแหน่งของปากได้ เป็นเรื่องปกติที่จะเพิ่ม 10 พิกเซลที่ด้านล่าง แต่คุณควรทดลองใช้ค่าต่างๆ เพื่อหาสมดุลที่ดีที่สุดสำหรับคลิปของคุณ
ตัวเลือกนี้จะควบคุมวิธีการผสมผสานใบหน้าที่ประมวลผลแล้วกับใบหน้าดั้งเดิม การดำเนินการนี้ไม่มีผลกับตัวเลือกคุณภาพ "เร็ว"
ขนาด จะเพิ่มขนาดของพื้นที่ที่หน้ากากครอบคลุม
การขนนก จะกำหนดปริมาณการเกลี่ยระหว่างกึ่งกลางของมาส์กและขอบ
Mouth_tracking จะอัพเดตตำแหน่งของมาส์กให้ตรงตำแหน่งที่ปากอยู่ทุกเฟรม (ช้าลง)
หมายเหตุ: ตำแหน่งปากได้รับการประมาณไว้อย่างดีอยู่แล้ว เนื่องจากกรอบถูกครอบตัดไปที่ใบหน้า เปิดใช้งานได้เฉพาะในกรณีที่คุณพบวิดีโอที่หน้ากากไม่สอดคล้องกับปาก
debug_mask จะทำให้พื้นหลังเป็นโทนสีเทาและมาสก์เป็นสี เพื่อให้คุณมองเห็นตำแหน่งของมาสก์ในเฟรมได้อย่างง่ายดาย
ตัวเลือกนี้ช่วยให้คุณสามารถประมวลผลไฟล์วิดีโอและ/หรือไฟล์เสียงหลายไฟล์ได้โดยอัตโนมัติ
ตั้งชื่อไฟล์ของคุณด้วยตัวเลขต่อท้าย เช่น Video1.mp4, Video2.mp4 ฯลฯ และรวมไว้ในโฟลเดอร์เดียวกัน
ไฟล์จะถูกประมวลผลตามลำดับตัวเลขโดยเริ่มจากไฟล์ที่คุณเลือก ตัวอย่างเช่น หากคุณเลือก Video3.mp4 ระบบจะประมวลผล Video3.mp4, Video4.mp4 และอื่นๆ
หากคุณเลือกไฟล์วิดีโอที่มีหมายเลขและไฟล์เสียงที่ไม่ใช่ตัวเลข ระบบจะประมวลผลวิดีโอแต่ละรายการด้วยไฟล์เสียงเดียวกัน มีประโยชน์สำหรับการสร้างภาพ/วิดีโอที่แตกต่างกันให้เป็นบรรทัดเดียวกัน
ในทำนองเดียวกัน หากคุณเลือกไฟล์วิดีโอที่ไม่มีหมายเลขและไฟล์เสียงที่มีหมายเลข ก็จะใช้วิดีโอเดียวกันสำหรับไฟล์เสียงแต่ละไฟล์ มีประโยชน์สำหรับการทำภาพ/วิดีโอเดียวกันแต่บอกสิ่งที่แตกต่างกัน
ซึ่งจะเป็นการเพิ่มส่วนต่อท้ายให้กับไฟล์เอาท์พุตของคุณ เพื่อไม่ให้มันทับต้นฉบับของคุณ
เพิ่มการตั้งค่าที่ใช้ ซึ่งเหมาะสำหรับการเปรียบเทียบการตั้งค่าต่างๆ เนื่องจากคุณจะรู้ว่าคุณใช้อะไรในการเรนเดอร์แต่ละครั้ง จะเพิ่ม: Qualty_solution_nosmooth_pads-UDLR เช่น: _Enhanced_720_nosmooth1_pads-U15D10L-15R30 pads_UDLR จะไม่ถูกรวมไว้หากตั้งค่าเป็น 0 ความละเอียดจะไม่ถูกรวมไว้หากเอาต์พุต_ความสูงถูกตั้งค่าเป็นความละเอียดเต็ม
แสดงวิดีโอ/เสียงอินพุตก่อนการประมวลผล เพื่อให้คุณสามารถตรวจสอบได้เพื่อให้แน่ใจว่าคุณเลือกไฟล์ที่ถูกต้อง อาจใช้งานได้กับ .mp4 เท่านั้น ฉันรู้แค่ว่ามันใช้ไม่ได้กับ .avi ที่ฉันลองใช้ การปิดใช้สิ่งนี้จะช่วยประหยัดเวลาในการประมวลผลไม่กี่วินาทีสำหรับวิดีโอแต่ละรายการ
การดำเนินการนี้จะแสดงผลวิดีโอของคุณเพียง 1 เฟรมและแสดงเป็นขนาดเต็ม เพื่อให้คุณสามารถปรับแต่งการตั้งค่าโดยไม่ต้องแสดงผลวิดีโอทั้งหมดในแต่ละครั้ง frame_to_preview ใช้สำหรับเลือกเฟรมเฉพาะที่คุณต้องการเช็คเอาท์ - อาจไม่แม่นยำกับเฟรมจริงทั้งหมด