国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于Wav2Lip+GFPGAN的高清版AI主播

這篇具有很好參考價值的文章主要介紹了基于Wav2Lip+GFPGAN的高清版AI主播。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

繼上一篇 基于Wav2Lip的AI主播 的內(nèi)容之后很多小伙伴反應(yīng)一個問題就是生成的AI人物并不是很清晰,尤其是放到編輯器里會出現(xiàn)明顯的痕跡,因此這次帶來的了 Wav2Lip+GFPGAN 高清版的內(nèi)容,如果不太了解這個項目實做什么的可以來先看一下效果。該項目暫時沒有中文介紹,我這個應(yīng)該是首發(fā)。

這個項目是基于基于Wav2Lip的AI主播 項目的環(huán)境延伸,如果沒有該環(huán)境的請先去該文章進行配置。

基于Wav2Lip自制高清版,用自己形象做數(shù)字人清楚多了

雖然說是自制但是也基于git大佬的源代碼按照自己的需求進行的修改,整體的原理就是基于視頻的每一幀進行高清處理,然后進行合并拼接成視頻,最后拼接音頻形成完整的視頻。

準備工作

  1. Python環(huán)境需要基于 Anaconda 環(huán)境。Python初學者在不同系統(tǒng)上安裝Python的保姆級指引
  2. 配置好 GPU 的 Pytorch 環(huán)境。Win10+Python3.9+GPU版pytorch環(huán)境搭建最簡流程
  3. github上下載源碼,對應(yīng)預(yù)訓(xùn)練模型不用著急,在第一次啟動的時候沒有預(yù)訓(xùn)練模型會自動進行下載。如果網(wǎng)絡(luò)太慢可以將對應(yīng)的下載地址放到迅雷中下載,并復(fù)制到對應(yīng)的項目地址中即可。
  4. 自行創(chuàng)建虛擬環(huán)境。Python虛擬環(huán)境的安裝和使用
  5. 如果都不會或者懶的話,直接看文章最下方的的網(wǎng)盤分享一鍵包。

pip 項目依賴

pip install basicsr>=1.3.4.0
pip install facexlib>=0.2.3
pip install lmdb
pip install pyyaml
pip install scipy
pip install tb-nightly
pip install yapf
pip install realesrgan
pip install ffmpeg

pip install torch==1.10.2+cu113 torchvision==0.3.0 --extra-index-url https://download.pytorch.org/whl/cu113

生產(chǎn)流程

首先你要確定幾個生產(chǎn)目錄,即下面代碼中需要使用到的。

  • inputs:制作口播視頻的基礎(chǔ)視頻。
  • outputs:輸出制作好成品以及基礎(chǔ)數(shù)據(jù)。

inputs 數(shù)據(jù)文件

創(chuàng)建一個自己的項目,例如用自己的昵稱作為文件夾。這里需要將音頻文件和數(shù)字人的視頻文件分開存儲。

wav2lip-gfpgan,Python AI數(shù)字人,人工智能,python,深度學習,數(shù)字人
腳本會自動的搜索 source_audio 下的文件并在 output 中創(chuàng)建對應(yīng)的文件目錄。

wav2lip-gfpgan,Python AI數(shù)字人,人工智能,python,深度學習,數(shù)字人

source_video 是你制作數(shù)字人的視頻素材,建議不要超過1分鐘,具體為什么不多說。

wav2lip-gfpgan,Python AI數(shù)字人,人工智能,python,深度學習,數(shù)字人

執(zhí)行代碼脫手制作

如果對自己機器性能有信心的話可以在下面多進程那個地方解開注釋,使用多進程進行高清處理。

import os
import random
import shutil
import cv2
from tqdm import tqdm
from os import path
import numpy as np
import threading

basePath = "."

# 需要的算法框架目錄
wav2lipFolderName = 'Wav2Lip-master'
gfpganFolderName = 'GFPGAN-master'
wav2lipPath = basePath + '/' + wav2lipFolderName
gfpganPath = basePath + '/' + gfpganFolderName

# 確定需要制作的用戶視頻
userPath = "Mr數(shù)據(jù)楊"

# 獲取本次需要合成視頻的音頻文件
userAudioPathList = os.listdir("inputs/" + userPath + "/source_audio")

for sourceAudioName in userAudioPathList:
    # 獲取每個音頻的名稱
    title = sourceAudioName.split(".")[-2]
    # 每次隨機從用戶的原始文件中提取一個視頻作為素材文件
    userVideoPathList = os.listdir("inputs/" + userPath + "/source_video")
    sourceVideoName = random.sample(userVideoPathList, 1)[0]

    # 輸出項目目錄
    outputPath = basePath + "/outputs/" + title
    if not os.path.exists(outputPath):
        os.makedirs(outputPath)
    # 輸入音頻目錄
    inputAudioPath = basePath + "/inputs/" + userPath + "/source_audio/" + sourceAudioName
    # 輸入視頻目錄
    inputVideoPath = basePath + "/inputs/" + userPath + "/source_video/" + sourceVideoName
    # 視頻數(shù)據(jù)輸出目錄
    lipSyncedOutputPath = basePath + '/outputs/' + title + "/result.mp4"

    # wav2lip生成cmd命令行處理數(shù)據(jù)
    cmd = "F:\MyEnvsProject\Wav2Lip\python.exe {}/inference.py --checkpoint_path {}/checkpoints/wav2lip_gan.pth --face {} --audio {} --outfile {} --resize_factor 2 --fps 60  --face_det_batch_size 8 --wav2lip_batch_size 128".format(
        wav2lipFolderName, wav2lipFolderName, inputVideoPath, inputAudioPath, lipSyncedOutputPath)
    os.system(cmd)

    # 將視頻中的每一幀生成圖片到目錄中
    inputVideoPath = outputPath + '/result.mp4'
    unProcessedFramesFolderPath = outputPath + '/frames'

    if not os.path.exists(unProcessedFramesFolderPath):
        os.makedirs(unProcessedFramesFolderPath)

    # gpu_frame = cv2.cuda_GpuMat()

    vidcap = cv2.VideoCapture(inputVideoPath)
    numberOfFrames = int(vidcap.get(cv2.CAP_PROP_FRAME_COUNT))
    fps = vidcap.get(cv2.CAP_PROP_FPS)
    # print("FPS: ", fps, "Frames: ", numberOfFrames)

    for frameNumber in tqdm(range(numberOfFrames)):
        _, image = vidcap.read()
        cv2.imwrite(path.join(unProcessedFramesFolderPath, str(frameNumber).zfill(4) + '.jpg'), image)

    # 高清處理每一幀圖片
    cmd = "F:\MyEnvsProject\Wav2Lip\python.exe {}/inference_gfpgan.py -i {} -o {} -v 1.3 -s 2 --only_center_face --bg_upsampler None".format(
        gfpganPath,
        unProcessedFramesFolderPath,
        outputPath)
    os.system(cmd)

    restoredFramesPath = outputPath + '/restored_imgs/'
    if not os.path.exists(restoredFramesPath):
        os.makedirs(restoredFramesPath)
    processedVideoOutputPath = outputPath

    dir_list = os.listdir(restoredFramesPath)
    dir_list.sort()

    batch = 0
    batchSize = 600

    for i in tqdm(range(0, len(dir_list), batchSize)):
        img_array = []
        start, end = i, i + batchSize
        print("processing ", start, end)
        for filename in tqdm(dir_list[start:end]):
            filename = restoredFramesPath + filename;
            img = cv2.imread(filename)
            if img is None:
                continue
            height, width, layers = img.shape
            size = (width, height)
            img_array.append(img)

        out = cv2.VideoWriter(processedVideoOutputPath + '/batch_' + str(batch).zfill(4) + '.mp4',
                              cv2.VideoWriter_fourcc(*'DIVX'), 60, size)
        batch = batch + 1

        for i in range(len(img_array)):
            out.write(img_array[i])
        out.release()

    # 最終合成視頻
    concatTextFilePath = outputPath + "/concat.txt"
    concatTextFile = open(concatTextFilePath, "w", encoding='utf8')
    for ips in range(batch):
        concatTextFile.write("file batch_" + str(ips).zfill(4) + ".mp4\n")
    concatTextFile.close()

    concatedVideoOutputPath = outputPath + "/concated_output.mp4"
    cmd = "ffmpeg -y -f concat -i {} -c copy {}".format(concatTextFilePath, concatedVideoOutputPath)
    os.system(cmd)

    finalProcessedOutputVideo = processedVideoOutputPath + '/final_with_audio.mp4'
    cmd = "ffmpeg -y -i {} -i {} -map 0 -map 1:a -c:v copy -shortest {}".format(concatedVideoOutputPath, inputAudioPath,
                                                                                finalProcessedOutputVideo)
    os.system(cmd)

outputs 數(shù)據(jù)文件

腳本執(zhí)行完畢之后會在對應(yīng)的 output 文件夾生成對應(yīng)的文件目錄。

wav2lip-gfpgan,Python AI數(shù)字人,人工智能,python,深度學習,數(shù)字人
紅框的文件即最后合成高清的視頻文件。

【分享】Wav2Lip-GFPGAN

百度網(wǎng)盤
夸克網(wǎng)盤 提取碼:3DSr文章來源地址http://www.zghlxwxcb.cn/news/detail-806684.html

到了這里,關(guān)于基于Wav2Lip+GFPGAN的高清版AI主播的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • AI數(shù)字人:語音驅(qū)動人臉模型Wav2Lip

    AI數(shù)字人:語音驅(qū)動人臉模型Wav2Lip

    2020年,來自印度海德拉巴大學和英國巴斯大學的團隊,在ACM MM2020發(fā)表了的一篇論文《A Lip Sync Expert Is All You Need for Speech to Lip Generation In The Wild 》,在文章中,他們提出一個叫做Wav2Lip的AI模型,只需要一段人物視頻和一段目標語音,就能夠讓音頻和視頻合二為一,人物嘴型與

    2024年02月11日
    瀏覽(22)
  • Wav2Lip:深度解析、實現(xiàn)與應(yīng)用AI數(shù)字人語音驅(qū)動模型

    Wav2Lip:深度解析、實現(xiàn)與應(yīng)用AI數(shù)字人語音驅(qū)動模型

    Wav2Lip模型作為一種將音頻波形轉(zhuǎn)換為面部動畫的深度學習技術(shù)的重要性。本文將深入探討Wav2Lip模型的搭建原理、搭建流程以及應(yīng)用場景,以期為讀者提供更具技術(shù)深度的理解。 一、Wav2Lip的搭建原理 Wav2Lip模型的搭建基于生成對抗網(wǎng)絡(luò)(GAN)的原理。GAN由兩個主要部分組成:

    2024年03月09日
    瀏覽(46)
  • Wav2Lip使用教程

    提示:基本準備工作: 項目名稱: Wav2Lip git地址 : https://github.com/Rudrabha/Wav2Lip.git Python 3.6 語言環(huán)境 ffmpeg: sudo apt-get install ffmpeg 安裝 pip install -r requirements.txt 【系統(tǒng)用要求安裝的依賴包】 人臉檢測預(yù)訓(xùn)練模型應(yīng)下載到Face_detection/detection/sfd/s3fd.pth。如果以上內(nèi)容不起作用,請選

    2024年02月07日
    瀏覽(26)
  • 基于 Wav2Lip-GFPGAN 深度學習模型的數(shù)字人Demo

    基于 Wav2Lip-GFPGAN 深度學習模型的數(shù)字人Demo

    工作中遇到簡單整理 博文為 Wav2Lip-GFPGAN 環(huán)境搭建運行的 Demo 理解不足小伙伴幫忙指正 對每個人而言,真正的職責只有一個:找到自我。然后在心中堅守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是對大眾理想的懦弱回歸,是隨波逐流,是

    2024年02月08日
    瀏覽(27)
  • 最新能讓老外對口型講中文的AI 視頻教程,免費開源AI工具——Wav2Lip

    最新能讓老外對口型講中文的AI 視頻教程,免費開源AI工具——Wav2Lip

    本期就來教大家制作海外大佬們新年祝福視頻吧!對口型視頻一直在全網(wǎng)都非常的火爆,隨便一個視頻都是幾千贊以上,簡直堪稱漲粉利器! 是不是很有意思,口型完全對得上,表情也很自然逼真,不懂內(nèi)行的人,還真的以為是大佬中文說得非常溜! 這種內(nèi)容形態(tài)非常適合

    2024年04月25日
    瀏覽(24)
  • Wav2Lip視頻人臉口型同步(Win10)

    最近比較火的一個AI場景,就是用原聲講外語,嘴型同步,網(wǎng)上找了些資料,今天也跑起來了,推薦 Wav2Lip,官網(wǎng)地址:Github Wav2Lip Python3.6 ffmpeg git clone https://github.com/Rudrabha/Wav2Lip.git pip install -r requirements.txt 下載人臉檢測模型,并放在路徑 face_detection/detection/sfd/s3fd.pth Wav2Lip模

    2024年02月01日
    瀏覽(25)
  • stable-diffusion-webui安裝Wav2Lip

    stable-diffusion-webui安裝Wav2Lip

    常見錯誤 1.錯誤:Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check 修改代碼: 刪除三個地方:

    2024年01月22日
    瀏覽(19)
  • wav2lip:Accurately Lip-syncing Videos In The Wild

    wav2lip:Accurately Lip-syncing Videos In The Wild

    飛槳AI Studio - 人工智能學習與實訓(xùn)社區(qū) 集開放數(shù)據(jù)、開源算法、免費算力三位一體,為開發(fā)者提供高效學習和開發(fā)環(huán)境、高價值高獎金競賽項目,支撐高校老師輕松實現(xiàn)AI教學,并助力開發(fā)者學習交流,加速落地AI業(yè)務(wù)場景 https://aistudio.baidu.com/aistudio/education/group/info/16651 wav

    2024年02月06日
    瀏覽(26)
  • 超寫實虛擬數(shù)字人再升級:Wav2Lip-GFPGAN完整版教程及效果視頻評測【手把手】

    超寫實虛擬數(shù)字人再升級:Wav2Lip-GFPGAN完整版教程及效果視頻評測【手把手】

    在前面的一篇數(shù)字人文章中,我們介紹了AI主播虛擬人技術(shù)中的一項重要技術(shù)——Wav2Lip,并附上了完整版教程和效果評測,具體可見AI數(shù)字人虛擬主播技術(shù)實現(xiàn)Wav2Lip及效果演示評測【附完整版教程】。然而,我們也發(fā)現(xiàn)了一個問題,生成的視頻中面部的畫質(zhì)相對模糊,缺乏細

    2024年02月16日
    瀏覽(19)
  • AI數(shù)字人:語音驅(qū)動面部模型及超分辨率重建Wav2Lip-HD

    AI數(shù)字人:語音驅(qū)動面部模型及超分辨率重建Wav2Lip-HD

    數(shù)字人打造中語音驅(qū)動人臉和超分辨率重建兩種必備的模型,它們被用于實現(xiàn)數(shù)字人的語音和圖像方面的功能。通過Wav2Lip-HD項目可以快速使用這兩種模型,完成高清數(shù)字人形象的打造。 項目代碼地址:github地址 1.1 語音驅(qū)動面部模型wav2lip 語音驅(qū)動人臉技術(shù)主要是通過語音信

    2024年02月16日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包