开源AI项目爆火!大叔秒变少女,强大且开源的可控人像AI视频生成 LivePortrait 本地部署教程,以及Llama 3.1 最新开源大模型!全球最大、功能最强大的开放式基础模型,附免费下载链接!

开源AI项目爆火!大叔秒变少女,强大且开源的可控人像AI视频生成 LivePortrait 本地部署教程,以及Llama 3.1 最新开源大模型!全球最大、功能最强大的开放式基础模型,附免费下载链接!

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

根据一张静态图片生成视频或模拟视频中人物动作,主要涉及以下几个实现原理和技术方案:

实现原理:

  1. 图像分割

    • 首先对静态图片进行分析,区分前景(如人物)和背景。
  2. 关键点检测

    • 使用计算机视觉技术检测图片中人物的关键点,如头部、肩膀、肘部、手腕、髋部、膝盖和脚踝。
  3. 姿态估计

    • 估计人物的姿态,确定身体各部分的空间位置和方向。
  4. 运动建模

    • 根据姿态估计结果,对人物的运动进行建模,预测其在视频中的动作。
  5. 图像合成

    • 将分割出的前景与背景重新合成,确保在生成的视频帧中人物与背景的一致性。
  6. 时间序列预测

    • 利用时间序列预测技术,生成连续的视频帧。

技术方案:

  1. 基于深度学习的图像生成

    • 使用生成对抗网络(GANs)或变分自编码器(VAEs)生成逼真的图像序列。
  2. 姿态驱动的动画

    • 利用已知的姿态序列作为输入,通过神经网络预测中间帧的姿态,进而生成动画。
  3. 3D重建与动画

    • 将2D图像转换为3D模型,然后使用3D动画技术模拟人物动作。
  4. 光流法

    • 通过分析图像序列中物体的运动方向和速度,预测并生成新帧。
  5. 插值技术

    • 在已知的静态图片之间使用插值技术生成中间帧。
  6. 循环神经网络(RNN)

    • 使用RNN对视频帧进行建模,捕捉时间序列中的动态特征。
  7. 卷积循环生成网络(CR-GAN)

    • 结合CNN的特征提取能力和RNN的时间序列建模能力,生成视频。
  8. 物理模拟

    • 利用物理引擎模拟衣物、头发等随动作变化的物理特性。
  9. 条件变分自编码器(CVAE)

    • 通过编码器将条件信息(如动作标签)编码到潜在空间,然后通过解码器生成相应的图像序列。
  10. 双路网络

    • 一个网络处理图像内容,另一个网络处理运动信息,两者结合生成视频。

详细介绍:

  • 数据集准备

    • 需要大量的图像和视频数据来训练模型,以便模型学习到人物动作和场景变化的规律。
  • 预处理

    • 对输入的静态图片进行预处理,如去噪、标准化等。
  • 模型训练

    • 使用标注好的数据训练深度学习模型,学习如何从静态图片生成动态视频。
  • 动作转移

    • 如果有源动作视频,可以通过动作转移技术将动作应用到静态图片上。
  • 后处理

    • 对生成的视频进行后处理,如颜色校正、模糊去除等,以提高视频质量。
  • 评估与优化

    • 使用定量和定性的指标评估生成视频的质量,并根据反馈优化模型。
  • 用户界面

    • 开发用户友好的界面,允许用户上传静态图片、选择动作、调整参数等。

这些技术方案各有优势和局限性,通常需要根据具体应用场景和需求选择合适的方法。随着深度学习技术的不断进步,从静态图片生成视频的方法也在不断发展和完善。

在这里插入图片描述

1,准备工作,本地下载代码并准备环境,运行命令前需安装git

https://git-scm.com/downloads

git clone https://github.com/KwaiVGI/LivePortrait
cd LivePortrait

# create env using conda
conda create -n LivePortrait python=3.9
conda activate LivePortrait

# install dependencies with pip
# for Linux and Windows users
pip install -r requirements.txt
# for macOS with Apple Silicon users
pip install -r requirements_macOS.txt

注意:确保您的系统已安装FFmpeg,包括ffmpeg和ffprobe!

https://ffmpeg.org/download.html

一、下载官方的FFmpeg

访问 FFmpeg的官网链接:https://ffmpeg.org ,然后点击右侧的下载按钮。

在这里插入图片描述

然后找到适合自己系统的版本,比如我选择 Windows 版,如下所示

在这里插入图片描述

接着点击下方的第一个链接:

在这里插入图片描述
进去以后,选择左边的 release builds ,右边出现如下内容:

在这里插入图片描述

选择带 shared 的还是不带 shared 的版本,其实都是可以的。功能是完全一样的。

只不过带 shared 的里面,多了 include、lib 目录。把 FFmpeg 依赖的模块包单独的放在的 lib 目录中。ffmpeg.exe,ffplay.exe,ffprobe.exe 作为可执行文件的入口,文件体积很小,他们在运行的时候,如果需要,会到 lib 中调用相应的功能。

不带 shared 的里面,bin 目录中有 ffmpeg.exe,ffplay.exe,ffprobe.exe 三个可执行文件,每个 exe 的体积都稍大一点,因为它已经把相关的需要用的模块包编译到exe里面去了。

解压后的内容,如下图所示:

在这里插入图片描述

进入 bin 目录,复制 bin 目录路径。

在这里插入图片描述

二、配置环境变量

1、在电脑桌面上,鼠标右键我的电脑,接着选择里面的属性,如下所示:

在这里插入图片描述

3、打开后点击右侧的高级系统设置

在这里插入图片描述

接着依次点击 高级 -> 环境变量:

在这里插入图片描述

4、在系统变量中,选择里面的 Path

在这里插入图片描述

5、然后点击下方的编辑:在出来的[编辑环境变量]表中,新建一个,最后将刚才复制的 bin 目录路径粘贴进去,保存即可。

在这里插入图片描述

三、验证是否安装成功

在CMD命令终端下,输入: ffmpeg -version,有类似如下版本信息输出,就说明配置成功了!

在这里插入图片描述

当然如果你不需要安装多种版本的ffmpeg,那么在Windows 电脑上,你可以直接将解压的ffmpeg文件放到系统的 system32 目录中去,就不用配置环境变量了。会更简单、方便!


  1. 下载预训练权重
    下载预训练权重的最简单方法是从 HuggingFace 下载:
# first, ensure git-lfs is installed, see: https://docs.github.com/en/repositories/working-with-files/managing-large-files/installing-git-large-file-storage
git lfs install
# clone and move the weights
git clone https://huggingface.co/KwaiVGI/LivePortrait temp_pretrained_weights
mv temp_pretrained_weights/* pretrained_weights/
rm -rf temp_pretrained_weights

非海外用户,没有外网环境的朋友,你可以从【Google Drive】或【百度云】网盘下载所有预训练权重。解压并将它们放在 中./pretrained_weights。

确保目录结构如下,或包含:

pretrained_weights
├── insightface
│   └── models
│       └── buffalo_l
│           ├── 2d106det.onnx
│           └── det_10g.onnx
└── liveportrait
    ├── base_models
    │   ├── appearance_feature_extractor.pth
    │   ├── motion_extractor.pth
    │   ├── spade_generator.pth
    │   └── warping_module.pth
    ├── landmark.onnx
    └── retargeting_models
        └── stitching_retargeting_module.pth

3.推理使用

# For Linux and Windows
python inference.py

# For macOS with Apple Silicon, Intel not supported, this maybe 20x slower than RTX 4090
PYTORCH_ENABLE_MPS_FALLBACK=1 python inference.py

如果脚本成功运行,你会得到一个名为 的输出mp4文件animations/s6–d0_concat.mp4。此文件包含以下结果:驾驶视频,输入图像或视频,以及生成的结果。

在这里插入图片描述

或者您可以通过指定-s和参数-d来更改输入

# source input is an image
python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d0.mp4

# source input is a video ✨
python inference.py -s assets/examples/source/s13.mp4 -d assets/examples/driving/d0.mp4

# more options to see
python inference.py -h

参照视频自动裁剪 📢📢📢

要使用您自己的参照视频,我们建议:⬇️

将其裁剪为1:1 的宽高比(例如 512×512 或 256×256 像素),或通过 启用自动裁剪–flag_crop_driving_video。
重点关注头部区域,与示例视频类似。
尽量减少肩部运动。
确保参照视频的第一帧是正面且表情中性。

以下是自动裁剪的案例–flag_crop_driving_video:

python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d13.mp4 --flag_crop_driving_video

如果觉得自动裁剪的效果不好,您可以修改–scale_crop_driving_video、–vy_ratio_crop_driving_video选项来调整比例和偏移量,或者手动进行调整。

动作模板制作

您还可以使用自动生成的以 结尾的运动模板文件来.pkl加速推理,并保护隐私,例如:

python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d5.pkl # portrait animation
python inference.py -s assets/examples/source/s13.mp4 -d assets/examples/driving/d5.pkl # portrait video editing
  1. Gradio 可视化界面操作
    在Gradio的可视化界面下可以获得更好的体验,适合新手使用,只需运行下面安装代码即可:
# For Linux and Windows users (and macOS with Intel??)
python app.py

# For macOS with Apple Silicon users, Intel not supported, this maybe 20x slower than RTX 4090
PYTORCH_ENABLE_MPS_FALLBACK=1 python app.py

您可以指定–server_port、、–share参数–server_name来满足您的需求!

🚀 它们还提供了加速选项–flag_do_torch_compile。首次推理会触发优化过程(约一分钟),使后续推理速度提高 20-30%。性能提升可能因 CUDA 版本的不同而有所差异。

# enable torch.compile for faster inference
python app.py --flag_do_torch_compile

注意:Windows 和 macOS 不支持此方法。或者,在HuggingFace上轻松尝试一下🤗

  1. 推理速度评估

下方提供了一个脚本来评估每个模块的推理速度:

# For NVIDIA GPU
python speed.py

以下是使用原生 PyTorch 框架在 RTX 4090 GPU 上推断一帧的结果torch.compile:

在这里插入图片描述

注意:拼接和重定向模块的值代表三个连续 MLP 网络的组合参数数量和总推理时间。

当然如果你没有一张好的显卡,无法本地运行,那么可以在huggingface上免费体验:【点击前往】在线使用


Llama 3.1 最新开源大模型!全球最大、功能最强大的开放式基础模型,附免费下载链接!

在这里插入图片描述

正如预期的那样,Meta 今天发布了 Llama 3.1 系列 AI 模型。Llama 3.1 系列包括三种模型:Llama 3.1 8B、Llama 3.1 70B 和 Llama 3.1 405B。这三种模型现在都具有改进的 128K 上下文长度。此外,Meta 现在允许开发人员使用 Llama 模型的输出来改进其他模型。

Meta 在 150 多个基准数据集上评估了 Llama 3.1 系列模型的性能。Meta 还进行了几次人工评估,以将这些模型与现实场景中的其他竞争模型进行比较。根据结果,Llama 3.1 405B 与领先的基础模型(包括 GPT-4、GPT-4o 和 Claude 3.5 Sonnet)具有竞争力。因此,Meta 现在声称 Llama 3.1 405B 是世界上最大、功能最强大的公开基础模型。此外,较小的 Llama 3.1 模型与大小相似的封闭和开放模型都具有竞争力。

Llama 3.1 405B 与其他领先型号的基准比较:

在这里插入图片描述

Llama 3.1 8B 和 Llama 3.1 70B 与其他领先型号的基准比较:

在这里插入图片描述

开发人员现在可以通过 AWS、NVIDIA、Databricks、Groq、Dell、Azure 和 Google Cloud 使用新的 Llama 3.1 系列模型。Llama 3.1 405B 可通过 Azure AI 的模型即服务作为无服务器 API 端点使用。此外,Llama 3.1 8B 和 Llama 3.1 70B 的最新微调版本现已在 Azure AI 模型目录中提供。

Meta 创始人兼首席执行官马克·扎克伯格 (Mark Zuckerberg) 针对 Llama 3.1 版本发表了以下看法:

“如今,许多科技公司正在开发领先的封闭模型。但开源正在迅速缩小差距。去年,Llama 2 仅与落后的上一代模型相当。今年,Llama 3 可以与最先进的模型相媲美,并在某些领域处于领先地位。从明年开始,我们预计未来的 Llama 模型将成为业内最先进的。但即使在此之前,Llama 已经在开放性、可修改性和成本效益方面处于领先地位。”

Meta 的 Llama 3.1 版本标志着开源 AI 行业的一个重要里程碑。Meta 的性能可与领先的封闭模型相媲美,并致力于实现可访问性,从而实现 AI 功能的民主化,促进创新,并为协作和透明度树立新标准。

Llama 3.1 免费下载链接:【点击前往


中国歌曲电影:https://www.transocks.com/payment

AI 生成对口型视频(支持多语言):https://www.heygen.com/

GraphRAG共学相关文档:https://techdiylife.github.io/blog/blog.html?category1=c01&blogid=0061

相关项目:

  1. Neural Style Transfer (NST)

    • 特点:使用深度学习来迁移风格,可以用于生成艺术风格的视频。
    • 功能:风格迁移,图像处理。
    • 使用方法:提供图像和风格参考,模型生成风格化的图像或视频。
    • 访问链接:NST GitHub
  2. DeepArt.io

    • 特点:基于NST,提供Web界面进行风格迁移。
    • 功能:用户可以通过网页上传图片并选择风格进行迁移。
    • 使用方法:Web界面操作。
    • 访问链接:DeepArt.io
  3. CycleGAN

    • 特点:无需成对数据的风格迁移模型,可用于生成不同域的视频。
    • 功能:跨域图像转换。
    • 使用方法:训练模型以实现不同风格或域之间的转换。
    • 访问链接:CycleGAN GitHub
  4. pix2pixHD

    • 特点:用于高分辨率图像转换的GAN,可从草图生成真实图像。
    • 功能:图像到图像的转换。
    • 使用方法:提供草图和相应的真实图像进行训练。
    • 访问链接:pix2pixHD GitHub
  5. First-Order Motion Model

    • 特点:通过学习源对象和目标对象之间的对应关系来迁移动作。
    • 功能:动作迁移。
    • 使用方法:提供源视频和目标图像,模型生成动作迁移后的视频。
    • 访问链接:FOMM GitHub
  6. DAIN

    • 特点:用于视频插值的先进算法,可以实现更平滑的动态效果。
    • 功能:视频插值,生成中间帧。
    • 使用方法:提供视频序列,模型生成中间帧。
    • 访问链接:DAIN GitHub
  7. VoxelMorph

    • 特点:用于医学图像配准的3D卷积神经网络。
    • 功能:图像配准,3D变换。
    • 使用方法:提供医学图像数据,模型进行配准。
    • 访问链接:VoxelMorph GitHub
  8. Pose Animator

    • 特点:基于关键点的动画生成工具。
    • 功能:关键点检测,人物动作生成。
    • 使用方法:提供关键点数据,生成动画序列。
    • 访问链接:Pose Animator GitHub
  9. Style-Based Generator Architectures

    • 特点:用于生成多样化图像的StyleGAN架构。
    • 功能:图像生成,风格控制。
    • 使用方法:训练模型以控制图像的风格和内容。
    • 访问链接:StyleGAN GitHub
  10. OpenPose

    • 特点:实时多人关键点检测。
    • 功能:关键点检测,姿态估计。
    • 使用方法:提供视频或图像,模型检测人物关键点。
    • 访问链接:OpenPose GitHub
  11. TensorFlow Graphics

    • 特点:用于处理和生成3D图形的TensorFlow库。
    • 功能:3D图形处理,图像生成。
    • 使用方法:使用库中的模型和工具进行3D图形任务。
    • 访问链接:TensorFlow Graphics GitHub
  12. 3D-Front

    • 特点:大规模3D场景理解数据集。
    • 功能:3D场景分析,数据集构建。
    • 使用方法:利用数据集进行3D场景理解的研究。
    • 访问链接:3D-Front GitHub
  13. Mocap-Autoencoder

    • 特点:用于动作捕捉数据的自动编码器。
    • 功能:动作捕捉,数据压缩。
    • 使用方法:提供动作捕捉数据,模型进行学习和压缩。
    • 访问链接:Mocap-Autoencoder GitHub
  14. BodyNet

    • 特点:用于从单张图像中估计人体姿态和形状的网络。
    • 功能:人体姿态估计,3D人体建模。
    • 使用方法:提供人体图像,模型估计姿态和形状。
    • 访问链接:BodyNet GitHub
  15. Human Motion Prediction

    • 特点:预测未来人体动作的模型。
    • 功能:动作预测,时间序列分析。
    • 使用方法:提供过去的动作序列,模型预测未来动作。
    • 访问链接:Human Motion Prediction GitHub
  16. Video GAN

    • 特点:用于生成视频内容的生成对抗网络。
    • 功能:视频生成,动作迁移。
    • 使用方法:训练模型以生成视频或迁移动作。
    • 访问链接:Video GAN GitHub
  17. 3D-R2N2

    • 特点:从单张图像中生成3D重建模型。
    • 功能:3D重建,图像到3D转换。
    • 使用方法:提供图像,模型生成3D模型。
    • 访问链接:3D-R2N2 GitHub
  18. Face3D

    • 特点:用于从人脸图像生成3D人脸模型的深度学习框架。
    • 功能:3D人脸重建,面部特征提取。
    • 使用方法:提供人脸图像,模型生成3D人脸。
    • 访问链接:Face3D GitHub
  19. VIBE

    • 特点:用于从视频序列估计人体动作的网络。
    • 功能:动作估计,3D姿态预测。
    • 使用方法:提供视频,模型估计人体动作。
    • 访问链接:VIBE GitHub
  20. UV-Fitting-Network

    • 特点:用于3D人体建模的UV拟合网络。
    • 功能:3D人体建模,UV映射。
    • 使用方法:提供人体图像,模型进行UV拟合。
    • 访问链接:UV-Fitting-Network GitHub

对于初学者来说,选择容易上手的项目主要取决于个人的兴趣、编程背景和学习目标。以下是一些比较适合新手入门的项目,以及推荐的学习方法:

  1. Neural Style Transfer (NST)

  2. DeepArt.io

    • 基于NST,提供了用户友好的Web界面,适合没有编程经验的人。
    • 使用方法:访问DeepArt.io,按照网站上的指南操作。
  3. OpenPose

    • 实时多人关键点检测,适合对计算机视觉感兴趣的新手。
    • 教程推荐:OpenPose Tutorial
  4. TensorFlow Graphics

  5. 3D-R2N2

    • 从单张图像生成3D重建模型,适合对3D建模感兴趣的新手。
    • 教程推荐:项目GitHub仓库中的README文件通常包含使用指南。
  6. Face3D

    • 专注于从人脸图像生成3D人脸模型,适合对面部识别和3D建模感兴趣的新手。
    • 教程推荐:Face3D GitHub
  7. VIBE

    • 动作估计模型,适合对动作识别和预测感兴趣的新手。
    • 教程推荐:项目GitHub仓库中的文档和示例代码。
  8. UV-Fitting-Network

    • 3D人体建模,适合对服装和3D建模感兴趣的新手。
    • 教程推荐:项目GitHub仓库中的示例和文档。

对于新手来说,以下是一些通用的学习方法和指南:

  • 在线课程:参加如Coursera、edX、Udemy等平台上的在线课程,学习Python编程、机器学习和深度学习基础。

  • 官方文档:阅读项目的官方文档,了解项目的背景、功能和使用场景。

  • 示例代码:运行项目提供的示例代码,理解代码的工作原理。

  • 社区参与:加入项目的GitHub社区、论坛或聊天室,向其他用户学习并提问。

  • 动手实践:通过实际操作来学习,尝试修改代码并观察结果。

  • 逐步深入:从简单的项目开始,逐步过渡到更复杂的项目。

  • 记录学习过程:记录自己的学习过程和遇到的问题,有助于巩固知识。

  • 开源贡献:当对项目有一定了解后,尝试为项目贡献代码或文档。

深度学习和3D建模是一个不断发展的领域,新手在学习过程中需要不断更新知识和技能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

代码讲故事

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

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

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

打赏作者

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

抵扣说明:

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

余额充值