PaddleGAN快速让你的照片动起来

本文介绍了如何利用PaddleGAN的FirstOrder和Wav2lip技术,将静态照片转化为动态视频,通过输入模板视频和音频,实现照片人物的动作和语音同步。详细步骤包括下载代码、迁移驱动视频至照片、添加音乐以及使用Wav2lip进行唇形合成。
摘要由CSDN通过智能技术生成

一个不知名大学生,江湖人称菜狗
original author: Jacky Li
Email : 3435673055@qq.com

Time of completion:2024.03.30
Last edited: 2024.03.30

目录

PaddleGAN快速让你的照片动起来

两个方案让照片动起来

方案一:FirstOrder

下载PaddleGAN代码

2.将驱动视频迁移至照片中

3.为生成的视频加上音乐

方案二:Wav2lip

安装必要的资源包

2.根据音频直接合成唇形动作

效果展示

作者有言


PaddleGAN快速让你的照片动起来

本项目基于PaddleGAN实现的FirstOrder与Wav2lip,。FirstOrder是输入一个模板视频与一张照片,就可以使照片里面的人物唱出模板视频里的歌曲,前段时间很火的 「蚂蚁呀嘿」就是用这个方法做的;还有另一个方法就是使用Wav2lip,输入照片和音频就可以直接让照片根据音频的内容动起来。

两个方案让照片动起来

方案一:FirstOrder

  1. 下载PaddleGAN代码

git clone https://gitee.com/paddlepaddle/PaddleGAN

# 安装所需安装包%cd PaddleGAN/ !pip install -r requirements.txt !pip install imageio-ffmpeg %cd applications/

2.将驱动视频迁移至照片中

大家可以上传自己准备的视频和图片,并在下面的代码中source_image参数和driving_video参数分别换成自己的图片和视频路径,然后点击运行,就可以完成动作表情迁移,程序运行成功后,会在ouput文件夹生成名为result.mp4的视频文件,该文件即为动作迁移后的视频。

本项目中提供了原始图片和驱动视频供展示使用。具体的各参数使用说明如下

  • driving_video: 驱动视频,视频中人物的表情动作作为待迁移的对象

  • source_image: 原始图片,视频中人物的表情动作将迁移到该原始图片中的人物上

  • relative: 指示程序中使用视频和图片中人物关键点的相对坐标还是绝对坐标,建议使用相对坐标,若使用绝对坐标,会导致迁移后人物扭曲变形

  • adapt_scale: 根据关键点凸包自适应运动尺度

  • output:设置输出视频的存放文件夹

    !export PYTHONPATH=$PYTHONPATH:/home/aistudio/PaddleGAN && python -u tools/first-order-demo.py  --driving_video /home/aistudio/PlanA_FirstOrder/zhiming.mp4 \                                                                                                --source_image /home/aistudio/PlanA_FirstOrder/trumps.png \                                                                                                --relative \                                                                                                --adapt_scale \                                                                                                --output /home/aistudio/PlanA_FirstOrder/output/

3.为生成的视频加上音乐

!pip install moviepy

#为生成的视频加上音乐
from moviepy.editor import *

videoclip_driving = VideoFileClip("/home/aistudio/PlanA_FirstOrder/zhiming.mp4") # 打开驱动视频
videoclip_result = VideoFileClip("/home/aistudio/PlanA_FirstOrder/output/result.mp4") # 打开PaddleGan刚刚生成的视频

audio_driving = videoclip_driving.audio # 提取驱动视频里的声音
video = videoclip_result.set_audio(audio_driving) # 将提取出来的声音加到生成视频的音轨中

video.write_videofile("/home/aistudio/PlanA_FirstOrder/output/final_result.mp4", audio_codec="aac") # 保存视频

生成的视频将放置在“PlanA_FirstOrder/output/”目录下,下载后即可查看效果~

方案二:Wav2lip

  1. 安装必要的资源包

%cd /home/aistudio/work# 安装所需安装包!mkdir sndfile %cd sndfile !wget http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28.tar.gz !tar xzvf libsndfile-1.0.28.tar.gz %cd libsndfile-1.0.28!./configure --prefix=/home/aistudio/build_libs CFLAGS=-fPIC --enable-shared !make !make install

%cd /home/aistudio/PaddleGAN !pip install -r requirements.txt %cd applications/

2.根据音频直接合成唇形动作

只需在如下命令中的face参数和audio参数分别换成自己的视频和音频路径,然后运行如下命令,就可以生成和音频同步的视频。

程序运行完成后,会在当前文件夹下生成文件名为outfile参数指定的视频文件,该文件即为和音频同步的视频文件。本项目中提供了demo展示所用到的视频和音频文件。具体的参数使用说明如下:

  • face: 原始视频,视频中的人物的唇形将根据音频进行唇形合成--通俗来说,想让谁说话

  • audio:驱动唇形合成的音频,视频中的人物将根据此音频进行唇形合成--通俗来说,想让这个人说什么

!export PYTHONPATH=$PYTHONPATH:/home/aistudio/PaddleGAN && python tools/wav2lip.py --face /home/aistudio/PlanB_Wav2lip/MonaLisa.jpeg \                                                                                    --audio /home/aistudio/PlanB_Wav2lip/TA.mp3 \                                                                                    --outfile /home/aistudio/PlanB_Wav2lip/output/result.mp4

效果展示

作者有言

如果感觉博主讲的对您有用,请点个关注支持一下吧,将会对此类问题持续更新……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羁旅少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值